@alwaysai/device-agent 0.0.13 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/lib/application-control/backup.js +3 -3
  2. package/lib/application-control/backup.js.map +1 -1
  3. package/lib/application-control/index.d.ts +4 -4
  4. package/lib/application-control/index.d.ts.map +1 -1
  5. package/lib/application-control/index.js +1 -4
  6. package/lib/application-control/index.js.map +1 -1
  7. package/lib/application-control/install.d.ts +1 -1
  8. package/lib/application-control/install.d.ts.map +1 -1
  9. package/lib/application-control/install.js +41 -54
  10. package/lib/application-control/install.js.map +1 -1
  11. package/lib/application-control/models.d.ts +0 -4
  12. package/lib/application-control/models.d.ts.map +1 -1
  13. package/lib/application-control/models.js +13 -22
  14. package/lib/application-control/models.js.map +1 -1
  15. package/lib/application-control/status.d.ts +0 -6
  16. package/lib/application-control/status.d.ts.map +1 -1
  17. package/lib/application-control/status.js +3 -19
  18. package/lib/application-control/status.js.map +1 -1
  19. package/lib/application-control/utils.d.ts +3 -0
  20. package/lib/application-control/utils.d.ts.map +1 -1
  21. package/lib/application-control/utils.js +50 -21
  22. package/lib/application-control/utils.js.map +1 -1
  23. package/lib/cloud-connection/bootstrap-provision.d.ts +1 -1
  24. package/lib/cloud-connection/bootstrap-provision.d.ts.map +1 -1
  25. package/lib/cloud-connection/bootstrap-provision.js +9 -9
  26. package/lib/cloud-connection/bootstrap-provision.js.map +1 -1
  27. package/lib/cloud-connection/cmd-status.d.ts +8 -0
  28. package/lib/cloud-connection/cmd-status.d.ts.map +1 -0
  29. package/lib/cloud-connection/cmd-status.js +62 -0
  30. package/lib/cloud-connection/cmd-status.js.map +1 -0
  31. package/lib/cloud-connection/device-agent-cloud-connection.d.ts +10 -2
  32. package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
  33. package/lib/cloud-connection/device-agent-cloud-connection.js +156 -66
  34. package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
  35. package/lib/cloud-connection/device-agent.d.ts.map +1 -1
  36. package/lib/cloud-connection/device-agent.js +4 -3
  37. package/lib/cloud-connection/device-agent.js.map +1 -1
  38. package/lib/cloud-connection/live-updates-handler.d.ts +10 -18
  39. package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -1
  40. package/lib/cloud-connection/live-updates-handler.js +50 -50
  41. package/lib/cloud-connection/live-updates-handler.js.map +1 -1
  42. package/lib/cloud-connection/messages.d.ts +3 -1
  43. package/lib/cloud-connection/messages.d.ts.map +1 -1
  44. package/lib/cloud-connection/messages.js +13 -1
  45. package/lib/cloud-connection/messages.js.map +1 -1
  46. package/lib/cloud-connection/passthrough-handler.d.ts +11 -0
  47. package/lib/cloud-connection/passthrough-handler.d.ts.map +1 -0
  48. package/lib/cloud-connection/passthrough-handler.js +59 -0
  49. package/lib/cloud-connection/passthrough-handler.js.map +1 -0
  50. package/lib/cloud-connection/publisher.d.ts +1 -0
  51. package/lib/cloud-connection/publisher.d.ts.map +1 -1
  52. package/lib/cloud-connection/publisher.js +14 -0
  53. package/lib/cloud-connection/publisher.js.map +1 -1
  54. package/lib/cloud-connection/shadow-handler.d.ts +2 -3
  55. package/lib/cloud-connection/shadow-handler.d.ts.map +1 -1
  56. package/lib/cloud-connection/shadow-handler.js +18 -4
  57. package/lib/cloud-connection/shadow-handler.js.map +1 -1
  58. package/lib/cloud-connection/shadow-handler.test.d.ts +2 -0
  59. package/lib/cloud-connection/shadow-handler.test.d.ts.map +1 -0
  60. package/lib/cloud-connection/shadow-handler.test.js +321 -0
  61. package/lib/cloud-connection/shadow-handler.test.js.map +1 -0
  62. package/lib/environment.d.ts +1 -0
  63. package/lib/environment.d.ts.map +1 -1
  64. package/lib/environment.js +3 -2
  65. package/lib/environment.js.map +1 -1
  66. package/lib/index.js +2 -2
  67. package/lib/index.js.map +1 -1
  68. package/lib/infrastructure/agent-config.d.ts +15 -48
  69. package/lib/infrastructure/agent-config.d.ts.map +1 -1
  70. package/lib/infrastructure/agent-config.js.map +1 -1
  71. package/lib/infrastructure/agent-config.test.js +0 -6
  72. package/lib/infrastructure/agent-config.test.js.map +1 -1
  73. package/lib/infrastructure/system-id.js +2 -2
  74. package/lib/infrastructure/system-id.js.map +1 -1
  75. package/lib/infrastructure/tokens-and-device-cfg.d.ts.map +1 -1
  76. package/lib/infrastructure/tokens-and-device-cfg.js +5 -9
  77. package/lib/infrastructure/tokens-and-device-cfg.js.map +1 -1
  78. package/lib/local-connection/rabbitmq-connection.d.ts +4 -0
  79. package/lib/local-connection/rabbitmq-connection.d.ts.map +1 -0
  80. package/lib/local-connection/rabbitmq-connection.js +58 -0
  81. package/lib/local-connection/rabbitmq-connection.js.map +1 -0
  82. package/lib/subcommands/app/app.d.ts +4 -3
  83. package/lib/subcommands/app/app.d.ts.map +1 -1
  84. package/lib/subcommands/app/app.js +78 -27
  85. package/lib/subcommands/app/app.js.map +1 -1
  86. package/lib/subcommands/app/index.js +2 -2
  87. package/lib/subcommands/device/clean.js +4 -4
  88. package/lib/subcommands/device/clean.js.map +1 -1
  89. package/lib/subcommands/device/device.d.ts +1 -1
  90. package/lib/subcommands/device/device.d.ts.map +1 -1
  91. package/lib/subcommands/device/device.js +9 -10
  92. package/lib/subcommands/device/device.js.map +1 -1
  93. package/lib/subcommands/index.d.ts +0 -1
  94. package/lib/subcommands/index.d.ts.map +1 -1
  95. package/lib/subcommands/login.d.ts +0 -1
  96. package/lib/subcommands/login.d.ts.map +1 -1
  97. package/lib/subcommands/login.js +1 -9
  98. package/lib/subcommands/login.js.map +1 -1
  99. package/lib/util/directories.d.ts +11 -12
  100. package/lib/util/directories.d.ts.map +1 -1
  101. package/lib/util/directories.js +24 -29
  102. package/lib/util/directories.js.map +1 -1
  103. package/lib/util/fetch-with-timeout.d.ts +4 -0
  104. package/lib/util/fetch-with-timeout.d.ts.map +1 -0
  105. package/lib/util/fetch-with-timeout.js +15 -0
  106. package/lib/util/fetch-with-timeout.js.map +1 -0
  107. package/lib/util/logger.js +1 -0
  108. package/lib/util/logger.js.map +1 -1
  109. package/lib/util/require-logged-in-and-paid-plan.d.ts +2 -0
  110. package/lib/util/require-logged-in-and-paid-plan.d.ts.map +1 -0
  111. package/lib/util/require-logged-in-and-paid-plan.js +18 -0
  112. package/lib/util/require-logged-in-and-paid-plan.js.map +1 -0
  113. package/package.json +20 -32
  114. package/readme.md +100 -89
  115. package/src/application-control/backup.ts +3 -3
  116. package/src/application-control/index.ts +0 -6
  117. package/src/application-control/install.ts +53 -73
  118. package/src/application-control/models.ts +7 -19
  119. package/src/application-control/status.ts +3 -19
  120. package/src/application-control/utils.ts +61 -22
  121. package/src/cloud-connection/bootstrap-provision.ts +13 -10
  122. package/src/cloud-connection/cmd-status.ts +71 -0
  123. package/src/cloud-connection/device-agent-cloud-connection.ts +211 -102
  124. package/src/cloud-connection/device-agent.ts +7 -4
  125. package/src/cloud-connection/live-updates-handler.ts +79 -86
  126. package/src/cloud-connection/messages.ts +22 -1
  127. package/src/cloud-connection/passthrough-handler.ts +67 -0
  128. package/src/cloud-connection/publisher.ts +21 -0
  129. package/src/cloud-connection/shadow-handler.test.ts +361 -0
  130. package/src/cloud-connection/shadow-handler.ts +28 -7
  131. package/src/environment.ts +4 -1
  132. package/src/index.ts +2 -2
  133. package/src/infrastructure/agent-config.test.ts +0 -7
  134. package/src/infrastructure/agent-config.ts +24 -2
  135. package/src/infrastructure/system-id.ts +1 -1
  136. package/src/infrastructure/tokens-and-device-cfg.ts +8 -13
  137. package/src/local-connection/rabbitmq-connection.ts +53 -0
  138. package/src/subcommands/app/app.ts +82 -31
  139. package/src/subcommands/app/index.ts +4 -4
  140. package/src/subcommands/device/clean.ts +4 -4
  141. package/src/subcommands/device/device.ts +13 -13
  142. package/src/subcommands/login.ts +1 -9
  143. package/src/util/directories.ts +31 -29
  144. package/src/util/fetch-with-timeout.ts +18 -0
  145. package/src/util/logger.ts +2 -0
  146. package/src/util/require-logged-in-and-paid-plan.ts +16 -0
  147. package/lib/cloud-connection/app-install-status.d.ts +0 -16
  148. package/lib/cloud-connection/app-install-status.d.ts.map +0 -1
  149. package/lib/cloud-connection/app-install-status.js +0 -53
  150. package/lib/cloud-connection/app-install-status.js.map +0 -1
  151. package/src/cloud-connection/app-install-status.ts +0 -62
@@ -0,0 +1,18 @@
1
+ import nodeFetch from 'node-fetch';
2
+
3
+ export async function fetchWithTimeout(
4
+ url: string,
5
+ options: { timeout?: number } = {}
6
+ ) {
7
+ //time (ms)
8
+ const { timeout = 60000 } = options;
9
+
10
+ const controller = new AbortController();
11
+ const id = setTimeout(() => controller.abort(), timeout);
12
+ const response = await nodeFetch(url, {
13
+ ...options,
14
+ signal: controller.signal
15
+ });
16
+ clearTimeout(id);
17
+ return response;
18
+ }
@@ -26,3 +26,5 @@ export const logger = winston.createLogger({
26
26
  ),
27
27
  transports
28
28
  });
29
+
30
+ logger.info(`Initialized logger with log level: ${LOG_LEVEL}`);
@@ -0,0 +1,16 @@
1
+ import { checkPaidPlan } from 'alwaysai/lib/core/project';
2
+ import { CliAuthenticationClient } from 'alwaysai/lib/infrastructure';
3
+
4
+ export async function requireLoggedInAndPaidPlan() {
5
+ // FIXME: Remove this requirement
6
+ if (!CliAuthenticationClient().isSignedIn()) {
7
+ throw new Error('You must be logged in to run this command!');
8
+ }
9
+ // FIXME: This also requires Cognito and should be replaced by a check in
10
+ // microServiceHttpClient()
11
+ if (!(await checkPaidPlan())) {
12
+ throw new Error(
13
+ `This action only supported for Enterprise alwaysAI accounts!`
14
+ );
15
+ }
16
+ }
@@ -1,16 +0,0 @@
1
- import { AppInstallStatusPacket } from '@alwaysai/device-agent-schemas';
2
- export declare class AppInstallStatus {
3
- private appReleaseHash;
4
- private status;
5
- private message?;
6
- constructor(appReleaseHash: any, status: any, message?: any);
7
- getAppReleaseHash(): string;
8
- update(status: any, message?: any): void;
9
- getStatusPacket(): AppInstallStatusPacket;
10
- }
11
- export declare class AppInstallStatusManager {
12
- private appList;
13
- update(appReleaseHash: any, status: any, message?: any): void;
14
- getStatusPacket(appReleaseHash: any): AppInstallStatusPacket;
15
- }
16
- //# sourceMappingURL=app-install-status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app-install-status.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/app-install-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAGxE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,OAAO,CAAC,CAAS;gBAEb,cAAc,KAAA,EAAE,MAAM,KAAA,EAAE,OAAO,CAAC,KAAA;IAMrC,iBAAiB;IAIjB,MAAM,CAAC,MAAM,KAAA,EAAE,OAAO,CAAC,KAAA;IAKvB,eAAe,IAAI,sBAAsB;CAOjD;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,OAAO,CAA0B;IAElC,MAAM,CAAC,cAAc,KAAA,EAAE,MAAM,KAAA,EAAE,OAAO,CAAC,KAAA;IAkBvC,eAAe,CAAC,cAAc,KAAA;CAQtC"}
@@ -1,53 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AppInstallStatusManager = exports.AppInstallStatus = void 0;
4
- class AppInstallStatus {
5
- constructor(appReleaseHash, status, message) {
6
- this.appReleaseHash = appReleaseHash;
7
- this.status = status;
8
- this.message = message;
9
- }
10
- getAppReleaseHash() {
11
- return this.appReleaseHash;
12
- }
13
- update(status, message) {
14
- this.status = status;
15
- this.message = message;
16
- }
17
- getStatusPacket() {
18
- return {
19
- status: this.status,
20
- message: this.message,
21
- appReleaseHash: this.appReleaseHash
22
- };
23
- }
24
- }
25
- exports.AppInstallStatus = AppInstallStatus;
26
- class AppInstallStatusManager {
27
- constructor() {
28
- this.appList = [];
29
- }
30
- update(appReleaseHash, status, message) {
31
- // Update status if existing
32
- // TODO: Reimplement this as a map
33
- for (const app of this.appList) {
34
- if (app.getAppReleaseHash() === appReleaseHash) {
35
- app.update(status, message);
36
- return;
37
- }
38
- }
39
- // App was not found, so add to list
40
- const appInstallStatus = new AppInstallStatus(appReleaseHash, status, message);
41
- this.appList.push(appInstallStatus);
42
- }
43
- getStatusPacket(appReleaseHash) {
44
- for (const app of this.appList) {
45
- if (app.getAppReleaseHash() === appReleaseHash) {
46
- return app.getStatusPacket();
47
- }
48
- }
49
- throw new Error(`No status for ${appReleaseHash}`);
50
- }
51
- }
52
- exports.AppInstallStatusManager = AppInstallStatusManager;
53
- //# sourceMappingURL=app-install-status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app-install-status.js","sourceRoot":"","sources":["../../src/cloud-connection/app-install-status.ts"],"names":[],"mappings":";;;AAGA,MAAa,gBAAgB;IAK3B,YAAY,cAAc,EAAE,MAAM,EAAE,OAAQ;QAC1C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,iBAAiB;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,MAAM,EAAE,OAAQ;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,eAAe;QACpB,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC;IACJ,CAAC;CACF;AA3BD,4CA2BC;AAED,MAAa,uBAAuB;IAApC;QACU,YAAO,GAAuB,EAAE,CAAC;IA4B3C,CAAC;IA1BQ,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,OAAQ;QAC5C,4BAA4B;QAC5B,kCAAkC;QAClC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;YAC9B,IAAI,GAAG,CAAC,iBAAiB,EAAE,KAAK,cAAc,EAAE;gBAC9C,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC5B,OAAO;aACR;SACF;QACD,oCAAoC;QACpC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAC3C,cAAc,EACd,MAAM,EACN,OAAO,CACR,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACtC,CAAC;IAEM,eAAe,CAAC,cAAc;QACnC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;YAC9B,IAAI,GAAG,CAAC,iBAAiB,EAAE,KAAK,cAAc,EAAE;gBAC9C,OAAO,GAAG,CAAC,eAAe,EAAE,CAAC;aAC9B;SACF;QACD,MAAM,IAAI,KAAK,CAAC,iBAAiB,cAAc,EAAE,CAAC,CAAC;IACrD,CAAC;CACF;AA7BD,0DA6BC"}
@@ -1,62 +0,0 @@
1
- import { AppInstallStatusPacket } from '@alwaysai/device-agent-schemas';
2
- import { AppInstallStatusValue } from '@alwaysai/device-agent-schemas/lib/constants';
3
-
4
- export class AppInstallStatus {
5
- private appReleaseHash: string;
6
- private status: AppInstallStatusValue;
7
- private message?: string;
8
-
9
- constructor(appReleaseHash, status, message?) {
10
- this.appReleaseHash = appReleaseHash;
11
- this.status = status;
12
- this.message = message;
13
- }
14
-
15
- public getAppReleaseHash() {
16
- return this.appReleaseHash;
17
- }
18
-
19
- public update(status, message?) {
20
- this.status = status;
21
- this.message = message;
22
- }
23
-
24
- public getStatusPacket(): AppInstallStatusPacket {
25
- return {
26
- status: this.status,
27
- message: this.message,
28
- appReleaseHash: this.appReleaseHash
29
- };
30
- }
31
- }
32
-
33
- export class AppInstallStatusManager {
34
- private appList: AppInstallStatus[] = [];
35
-
36
- public update(appReleaseHash, status, message?) {
37
- // Update status if existing
38
- // TODO: Reimplement this as a map
39
- for (const app of this.appList) {
40
- if (app.getAppReleaseHash() === appReleaseHash) {
41
- app.update(status, message);
42
- return;
43
- }
44
- }
45
- // App was not found, so add to list
46
- const appInstallStatus = new AppInstallStatus(
47
- appReleaseHash,
48
- status,
49
- message
50
- );
51
- this.appList.push(appInstallStatus);
52
- }
53
-
54
- public getStatusPacket(appReleaseHash) {
55
- for (const app of this.appList) {
56
- if (app.getAppReleaseHash() === appReleaseHash) {
57
- return app.getStatusPacket();
58
- }
59
- }
60
- throw new Error(`No status for ${appReleaseHash}`);
61
- }
62
- }