@alwaysai/device-agent 0.0.13 → 0.0.14

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 (119) 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/cmd-status.d.ts +16 -0
  24. package/lib/cloud-connection/cmd-status.d.ts.map +1 -0
  25. package/lib/cloud-connection/cmd-status.js +49 -0
  26. package/lib/cloud-connection/cmd-status.js.map +1 -0
  27. package/lib/cloud-connection/device-agent-cloud-connection.d.ts +10 -1
  28. package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
  29. package/lib/cloud-connection/device-agent-cloud-connection.js +73 -33
  30. package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
  31. package/lib/cloud-connection/passthrough-handler.d.ts +11 -0
  32. package/lib/cloud-connection/passthrough-handler.d.ts.map +1 -0
  33. package/lib/cloud-connection/passthrough-handler.js +59 -0
  34. package/lib/cloud-connection/passthrough-handler.js.map +1 -0
  35. package/lib/cloud-connection/publisher.d.ts +1 -0
  36. package/lib/cloud-connection/publisher.d.ts.map +1 -1
  37. package/lib/cloud-connection/publisher.js +14 -0
  38. package/lib/cloud-connection/publisher.js.map +1 -1
  39. package/lib/cloud-connection/shadow-handler.d.ts +2 -3
  40. package/lib/cloud-connection/shadow-handler.d.ts.map +1 -1
  41. package/lib/cloud-connection/shadow-handler.js +18 -4
  42. package/lib/cloud-connection/shadow-handler.js.map +1 -1
  43. package/lib/cloud-connection/shadow-handler.test.d.ts +2 -0
  44. package/lib/cloud-connection/shadow-handler.test.d.ts.map +1 -0
  45. package/lib/cloud-connection/shadow-handler.test.js +321 -0
  46. package/lib/cloud-connection/shadow-handler.test.js.map +1 -0
  47. package/lib/environment.d.ts +1 -0
  48. package/lib/environment.d.ts.map +1 -1
  49. package/lib/environment.js +2 -1
  50. package/lib/environment.js.map +1 -1
  51. package/lib/infrastructure/agent-config.d.ts +15 -48
  52. package/lib/infrastructure/agent-config.d.ts.map +1 -1
  53. package/lib/infrastructure/agent-config.js.map +1 -1
  54. package/lib/infrastructure/agent-config.test.js +0 -6
  55. package/lib/infrastructure/agent-config.test.js.map +1 -1
  56. package/lib/infrastructure/system-id.js +2 -2
  57. package/lib/infrastructure/system-id.js.map +1 -1
  58. package/lib/infrastructure/tokens-and-device-cfg.d.ts.map +1 -1
  59. package/lib/infrastructure/tokens-and-device-cfg.js +5 -9
  60. package/lib/infrastructure/tokens-and-device-cfg.js.map +1 -1
  61. package/lib/local-connection/rabbitmq-connection.d.ts +4 -0
  62. package/lib/local-connection/rabbitmq-connection.d.ts.map +1 -0
  63. package/lib/local-connection/rabbitmq-connection.js +58 -0
  64. package/lib/local-connection/rabbitmq-connection.js.map +1 -0
  65. package/lib/subcommands/app/app.d.ts +2 -1
  66. package/lib/subcommands/app/app.d.ts.map +1 -1
  67. package/lib/subcommands/app/app.js +56 -23
  68. package/lib/subcommands/app/app.js.map +1 -1
  69. package/lib/subcommands/device/clean.js +4 -4
  70. package/lib/subcommands/device/clean.js.map +1 -1
  71. package/lib/subcommands/device/device.d.ts +1 -1
  72. package/lib/subcommands/device/device.d.ts.map +1 -1
  73. package/lib/subcommands/device/device.js +7 -9
  74. package/lib/subcommands/device/device.js.map +1 -1
  75. package/lib/subcommands/index.d.ts +0 -1
  76. package/lib/subcommands/index.d.ts.map +1 -1
  77. package/lib/subcommands/login.d.ts +0 -1
  78. package/lib/subcommands/login.d.ts.map +1 -1
  79. package/lib/subcommands/login.js +1 -9
  80. package/lib/subcommands/login.js.map +1 -1
  81. package/lib/util/fetch-with-timeout.d.ts +4 -0
  82. package/lib/util/fetch-with-timeout.d.ts.map +1 -0
  83. package/lib/util/fetch-with-timeout.js +15 -0
  84. package/lib/util/fetch-with-timeout.js.map +1 -0
  85. package/lib/util/require-logged-in-and-paid-plan.d.ts +2 -0
  86. package/lib/util/require-logged-in-and-paid-plan.d.ts.map +1 -0
  87. package/lib/util/require-logged-in-and-paid-plan.js +18 -0
  88. package/lib/util/require-logged-in-and-paid-plan.js.map +1 -0
  89. package/lib/util/timer.d.ts +2 -0
  90. package/lib/util/timer.d.ts.map +1 -0
  91. package/lib/util/timer.js +6 -0
  92. package/lib/util/timer.js.map +1 -0
  93. package/package.json +20 -32
  94. package/readme.md +100 -89
  95. package/src/application-control/backup.ts +3 -3
  96. package/src/application-control/index.ts +0 -6
  97. package/src/application-control/install.ts +53 -73
  98. package/src/application-control/models.ts +7 -19
  99. package/src/application-control/status.ts +3 -19
  100. package/src/application-control/utils.ts +61 -22
  101. package/src/cloud-connection/cmd-status.ts +52 -0
  102. package/src/cloud-connection/device-agent-cloud-connection.ts +94 -47
  103. package/src/cloud-connection/passthrough-handler.ts +67 -0
  104. package/src/cloud-connection/publisher.ts +21 -0
  105. package/src/cloud-connection/shadow-handler.test.ts +361 -0
  106. package/src/cloud-connection/shadow-handler.ts +28 -7
  107. package/src/environment.ts +3 -0
  108. package/src/infrastructure/agent-config.test.ts +0 -7
  109. package/src/infrastructure/agent-config.ts +24 -2
  110. package/src/infrastructure/system-id.ts +1 -1
  111. package/src/infrastructure/tokens-and-device-cfg.ts +8 -13
  112. package/src/local-connection/rabbitmq-connection.ts +53 -0
  113. package/src/subcommands/app/app.ts +61 -27
  114. package/src/subcommands/device/clean.ts +4 -4
  115. package/src/subcommands/device/device.ts +8 -11
  116. package/src/subcommands/login.ts +1 -9
  117. package/src/util/fetch-with-timeout.ts +18 -0
  118. package/src/util/require-logged-in-and-paid-plan.ts +16 -0
  119. package/src/util/timer.ts +1 -0
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.downloadPackageUsingPresignedUrl = exports.buildApp = exports.requireAppInstalled = exports.getAppDir = void 0;
3
+ exports.downloadPackageUsingPresignedUrl = exports.buildApp = exports.requireAppReady = exports.requireAppInstalled = exports.getAppDir = void 0;
4
4
  const docker_compose_1 = require("docker-compose");
5
5
  const path = require("path");
6
6
  const fs = require("fs");
7
7
  const constants_1 = require("alwaysai/lib/constants");
8
8
  const agent_config_1 = require("../infrastructure/agent-config");
9
- const node_fetch_1 = require("node-fetch");
9
+ const fetch_with_timeout_1 = require("../util/fetch-with-timeout");
10
10
  const app_1 = require("alwaysai/lib/core/app");
11
- const app_2 = require("alwaysai/lib/components/app");
12
11
  const run_in_dir_1 = require("../util/run-in-dir");
13
12
  const logger_1 = require("../util/logger");
14
13
  const directories_1 = require("../util/directories");
14
+ const spawner_1 = require("alwaysai/lib/util/spawner");
15
15
  function getAppDir(projectId) {
16
16
  return path.join(directories_1.APP_ROOT, projectId);
17
17
  }
@@ -22,29 +22,40 @@ async function requireAppInstalled(props) {
22
22
  if (!(await (0, agent_config_1.AgentConfigFile)().isAppPresent({ projectId }))) {
23
23
  throw new Error('Application is not installed');
24
24
  }
25
+ }
26
+ exports.requireAppInstalled = requireAppInstalled;
27
+ async function requireAppReady(props) {
28
+ const { projectId } = props;
29
+ await requireAppInstalled({ projectId });
25
30
  if (!(await (0, agent_config_1.AgentConfigFile)().isAppReady({ projectId }))) {
26
31
  throw new Error('Application is not done installing or updating');
27
32
  }
28
33
  }
29
- exports.requireAppInstalled = requireAppInstalled;
34
+ exports.requireAppReady = requireAppReady;
30
35
  async function buildApp(props) {
31
36
  const { appDir } = props;
32
37
  // Build standalone image and docker-compose
33
- const targetJson = (0, app_1.TargetJsonFile)(appDir);
34
- const targetConfig = targetJson.read();
35
- if (targetConfig.targetProtocol !== 'docker:') {
38
+ const targetJsonFile = (0, app_1.TargetJsonFile)(appDir);
39
+ const targetCfg = targetJsonFile.read();
40
+ if (targetCfg.targetProtocol !== 'docker:') {
36
41
  throw new Error(`${constants_1.TARGET_JSON_FILE_NAME} is not properly configured!`);
37
42
  }
38
- await (0, run_in_dir_1.runInDir)(app_2.appDeployLinuxAndRemoteDevice, [
39
- {
40
- yes: true,
41
- generateDockerCompose: true,
42
- logs: false,
43
- stop: false,
44
- targetJson,
45
- targetConfig
43
+ await (0, run_in_dir_1.runInDir)(async () => {
44
+ await (0, app_1.writeStandaloneDockerfile)();
45
+ const spawner = (0, spawner_1.JsSpawner)();
46
+ const targetHardware = targetCfg.targetHardware;
47
+ if (await spawner.exists(constants_1.DOCKER_COMPOSE_FILE)) {
48
+ await (0, app_1.updateDockerComposeTargetHw)({
49
+ targetHardware
50
+ });
51
+ }
52
+ else {
53
+ await (0, app_1.writeDockerComposeFile)({
54
+ spawner: (0, spawner_1.JsSpawner)(),
55
+ cmd: await (0, app_1.getDockerComposeCmdForApp)({ targetHardware })
56
+ });
46
57
  }
47
- ], appDir);
58
+ }, [], appDir);
48
59
  const buildOut = await docker_compose_1.default.buildAll({ cwd: appDir });
49
60
  logger_1.logger.debug(`docker-compose build: ${JSON.stringify(buildOut, null, 2)}`);
50
61
  if (buildOut.exitCode !== 0) {
@@ -52,13 +63,31 @@ async function buildApp(props) {
52
63
  }
53
64
  }
54
65
  exports.buildApp = buildApp;
66
+ class HTTPResponseError extends Error {
67
+ constructor(response) {
68
+ super(`HTTP Error Response: ${response.status} ${response.statusText}`);
69
+ this.response = response;
70
+ }
71
+ }
72
+ const checkStatus = (response) => {
73
+ if (response.ok) {
74
+ // response.status >= 200 && response.status < 300
75
+ return response;
76
+ }
77
+ else {
78
+ throw new HTTPResponseError(response);
79
+ }
80
+ };
55
81
  async function downloadPackageUsingPresignedUrl(props) {
56
82
  const { localDest, presignedUrl } = props;
57
- logger_1.logger.info(`Downloading app package from ${presignedUrl}`);
58
- const response = await (0, node_fetch_1.default)(presignedUrl);
59
- if (response.status !== 200) {
60
- // If the URL is invalid; I think we shouldn't get here with the new changes
61
- throw new Error(`Status Code: ${response.status}, ${response.statusText}. Response: ${response.body}`);
83
+ logger_1.logger.debug(`Downloading package from ${presignedUrl}`);
84
+ let response;
85
+ try {
86
+ response = await (0, fetch_with_timeout_1.fetchWithTimeout)(presignedUrl);
87
+ }
88
+ catch (error) {
89
+ const errorBody = error.type === 'aborted' ? error : await error.response.text();
90
+ throw new Error(`downloadPackageUsingPresignedUrl: Error=${error}\n${errorBody}`);
62
91
  }
63
92
  /**
64
93
  * Write the app package to the hash directory
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare type CmdStatusType = 'idle' | 'in_progress';
2
+ export declare class CmdStatus {
3
+ private projectId;
4
+ private status;
5
+ constructor(projectId: string, status: CmdStatusType);
6
+ getProjectId(): string;
7
+ update(status: CmdStatusType): void;
8
+ getStatus(): CmdStatusType;
9
+ }
10
+ export declare class CmdStatusManager {
11
+ private apps;
12
+ update(projectId: string, status: CmdStatusType): void;
13
+ getAppCmdStatus(projectId: string): CmdStatusType;
14
+ anyCmdInProgress(): boolean;
15
+ }
16
+ //# sourceMappingURL=cmd-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmd-status.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/cmd-status.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa,GAAG,MAAM,GAAG,aAAa,CAAC;AAEnD,qBAAa,SAAS;IACpB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAgB;gBAElB,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;IAK7C,YAAY;IAIZ,MAAM,CAAC,MAAM,EAAE,aAAa;IAI5B,SAAS,IAAI,aAAa;CAGlC;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAA0C;IAE/C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;IAS/C,eAAe,CAAC,SAAS,EAAE,MAAM;IAOjC,gBAAgB;CAQxB"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CmdStatusManager = exports.CmdStatus = void 0;
4
+ class CmdStatus {
5
+ constructor(projectId, status) {
6
+ this.projectId = projectId;
7
+ this.status = status;
8
+ }
9
+ getProjectId() {
10
+ return this.projectId;
11
+ }
12
+ update(status) {
13
+ this.status = status;
14
+ }
15
+ getStatus() {
16
+ return this.status;
17
+ }
18
+ }
19
+ exports.CmdStatus = CmdStatus;
20
+ class CmdStatusManager {
21
+ constructor() {
22
+ this.apps = {};
23
+ }
24
+ update(projectId, status) {
25
+ if (projectId in this.apps) {
26
+ this.apps[projectId].update(status);
27
+ }
28
+ else {
29
+ const cmdStatus = new CmdStatus(projectId, status);
30
+ this.apps[projectId] = cmdStatus;
31
+ }
32
+ }
33
+ getAppCmdStatus(projectId) {
34
+ if (projectId in this.apps) {
35
+ return this.apps[projectId].getStatus();
36
+ }
37
+ throw new Error(`No status for ${projectId}`);
38
+ }
39
+ anyCmdInProgress() {
40
+ for (const projectId in this.apps) {
41
+ if (this.apps[projectId].getStatus() === 'in_progress') {
42
+ return true;
43
+ }
44
+ }
45
+ return false;
46
+ }
47
+ }
48
+ exports.CmdStatusManager = CmdStatusManager;
49
+ //# sourceMappingURL=cmd-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmd-status.js","sourceRoot":"","sources":["../../src/cloud-connection/cmd-status.ts"],"names":[],"mappings":";;;AAEA,MAAa,SAAS;IAIpB,YAAY,SAAiB,EAAE,MAAqB;QAClD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEM,MAAM,CAAC,MAAqB;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AApBD,8BAoBC;AAED,MAAa,gBAAgB;IAA7B;QACU,SAAI,GAAuC,EAAE,CAAC;IA0BxD,CAAC;IAxBQ,MAAM,CAAC,SAAiB,EAAE,MAAqB;QACpD,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACrC;aAAM;YACL,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;SAClC;IACH,CAAC;IAEM,eAAe,CAAC,SAAiB;QACtC,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE;YAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC;SACzC;QACD,MAAM,IAAI,KAAK,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC;IAChD,CAAC;IAEM,gBAAgB;QACrB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE;YACjC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,KAAK,aAAa,EAAE;gBACtD,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA3BD,4CA2BC"}
@@ -1,7 +1,11 @@
1
1
  import { ClientMessage } from '@alwaysai/device-agent-schemas';
2
+ import { ShadowTopics } from './shadow-handler';
3
+ import { Publisher } from './publisher';
4
+ import { CmdStatusType } from './cmd-status';
2
5
  export declare class DeviceAgentCloudConnection {
3
6
  private shadowHandler;
4
- private publisher;
7
+ publisher: Publisher;
8
+ private cmdStatusMgr;
5
9
  private liveUpdatesHandler;
6
10
  private appInstallStatusMgr;
7
11
  private device;
@@ -19,11 +23,16 @@ export declare class DeviceAgentCloudConnection {
19
23
  private handleAppConfigUpdates;
20
24
  constructor();
21
25
  getClientId(): string;
26
+ getToDeviceTopic(): string;
27
+ getShadowTopics(): ShadowTopics;
28
+ getCmdStatus(projectId: string): CmdStatusType;
22
29
  handleClientMessage({ topic, message }: {
23
30
  topic: string;
24
31
  message: ClientMessage;
25
32
  }): Promise<void>;
33
+ handleMessage(topic: string, message: ClientMessage | any): Promise<void>;
26
34
  setupHandlers(): Promise<void>;
35
+ stop(): void;
27
36
  }
28
37
  export declare function runDeviceAgentCloudInterface(): Promise<void>;
29
38
  //# sourceMappingURL=device-agent-cloud-connection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"device-agent-cloud-connection.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"AAWA,OAAO,EAOL,aAAa,EAEd,MAAM,gCAAgC,CAAC;AAoBxC,qBAAa,0BAA0B;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,MAAM,CAAiB;IAE/B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAE/D,OAAO,CAAC,cAAc,CAAmB;IAEzC,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,mBAAmB,CAEzB;IAEF,OAAO,CAAC,kBAAkB;YAYZ,mBAAmB;IAIjC,OAAO,CAAC,SAAS;YAMH,uBAAuB;YAkDvB,sBAAsB;;IAmE7B,WAAW,IAAI,MAAM;IAIf,mBAAmB,CAAC,EAC/B,KAAK,EACL,OAAO,EACR,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,aAAa,CAAC;KACxB;IA2EY,aAAa;CAoE3B;AAED,wBAAsB,4BAA4B,kBAgBjD"}
1
+ {"version":3,"file":"device-agent-cloud-connection.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"AAWA,OAAO,EAOL,aAAa,EAEd,MAAM,gCAAgC,CAAC;AAaxC,OAAO,EAAkC,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKxC,OAAO,EAAoB,aAAa,EAAE,MAAM,cAAc,CAAC;AAI/D,qBAAa,0BAA0B;IACrC,OAAO,CAAC,aAAa,CAAgB;IAC9B,SAAS,EAAE,SAAS,CAAC;IAC5B,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,MAAM,CAAiB;IAE/B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAE/D,OAAO,CAAC,cAAc,CAAmB;IAEzC,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,mBAAmB,CAEzB;IAEF,OAAO,CAAC,kBAAkB;YAYZ,mBAAmB;IAIjC,OAAO,CAAC,SAAS;YAMH,uBAAuB;YAmDvB,sBAAsB;;IAqE7B,WAAW,IAAI,MAAM;IAIrB,gBAAgB;IAIhB,eAAe,IAAI,YAAY;IAI/B,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa;IAIxC,mBAAmB,CAAC,EAC/B,KAAK,EACL,OAAO,EACR,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,aAAa,CAAC;KACxB;IAuFY,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,GAAG;IAsBzD,aAAa;IAuCnB,IAAI;CAGZ;AAED,wBAAsB,4BAA4B,kBAsBjD"}
@@ -16,6 +16,9 @@ const publisher_1 = require("./publisher");
16
16
  const live_updates_handler_1 = require("./live-updates-handler");
17
17
  const bootstrap_provision_1 = require("./bootstrap-provision");
18
18
  const app_install_status_1 = require("./app-install-status");
19
+ const cmd_status_1 = require("./cmd-status");
20
+ const passthrough_handler_1 = require("./passthrough-handler");
21
+ const environment_1 = require("../environment");
19
22
  class DeviceAgentCloudConnection {
20
23
  // Public Methods
21
24
  constructor() {
@@ -39,6 +42,7 @@ class DeviceAgentCloudConnection {
39
42
  });
40
43
  this.publisher = new publisher_1.Publisher(this.device, this.clientId);
41
44
  this.shadowHandler = new shadow_handler_1.ShadowHandler(this.clientId, this.publisher);
45
+ this.cmdStatusMgr = new cmd_status_1.CmdStatusManager();
42
46
  this.appInstallStatusMgr = new app_install_status_1.AppInstallStatusManager();
43
47
  this.liveUpdatesHandler = new live_updates_handler_1.LiveUpdatesHandler(this.publisher, this.appInstallStatusMgr);
44
48
  this.subscribe(this.toDeviceTopic);
@@ -60,12 +64,20 @@ class DeviceAgentCloudConnection {
60
64
  }
61
65
  }
62
66
  handleAppVersionControl(payload) {
63
- const { projectId, appReleaseHash } = payload;
64
- const signedUrlsRequest = { projectId, appReleaseHash };
65
- this.publishCloudRequest({
66
- messageType: device_agent_schemas_1.keyMirrors.agentMessageType.signed_urls_request,
67
- signedUrlsRequest
68
- });
67
+ switch (payload.baseCommand) {
68
+ case device_agent_schemas_1.keyMirrors.appVersionControl.install: {
69
+ const { projectId, appReleaseHash } = payload;
70
+ this.cmdStatusMgr.update(projectId, 'in_progress');
71
+ const signedUrlsRequest = { projectId, appReleaseHash };
72
+ this.publishCloudRequest({
73
+ messageType: device_agent_schemas_1.keyMirrors.agentMessageType.signed_urls_request,
74
+ signedUrlsRequest
75
+ });
76
+ break;
77
+ }
78
+ default:
79
+ logger_1.logger.warn(`Ignore App Version Control packet: ${JSON.stringify(payload, null, 2)}`);
80
+ }
69
81
  }
70
82
  handleAgentCommand(message) {
71
83
  switch (message.messageType) {
@@ -96,6 +108,7 @@ class DeviceAgentCloudConnection {
96
108
  this.liveUpdatesHandler.update({
97
109
  appInstallStatus: { toggle: false, appReleaseHash }
98
110
  });
111
+ this.cmdStatusMgr.update(projectId, 'idle');
99
112
  // update app config shadow for project
100
113
  await this.shadowHandler.publishAppState(projectId);
101
114
  return out;
@@ -109,14 +122,15 @@ class DeviceAgentCloudConnection {
109
122
  this.liveUpdatesHandler.update({
110
123
  appInstallStatus: { toggle: false, appReleaseHash }
111
124
  });
125
+ this.cmdStatusMgr.update(projectId, 'idle');
112
126
  // delete shadow for project
113
- // FIXME: Why do we delete the shadow? Doesn't this delete it for all projects?
114
- this.shadowHandler.deleteProjectShadow();
127
+ this.shadowHandler.deleteProjectShadow(projectId);
115
128
  }
116
129
  }
117
130
  async handleAppConfigUpdates(appConfgUpdates) {
118
131
  for (const appConfigUpdate of appConfgUpdates) {
119
132
  const { projectId, newAppCfg, updatedModels } = appConfigUpdate;
133
+ this.cmdStatusMgr.update(projectId, 'in_progress');
120
134
  if (updatedModels && Object.keys(updatedModels).length) {
121
135
  // Publish request for model urls
122
136
  this.newAppCfgQueue.push(newAppCfg);
@@ -148,7 +162,21 @@ class DeviceAgentCloudConnection {
148
162
  getClientId() {
149
163
  return this.clientId;
150
164
  }
165
+ getToDeviceTopic() {
166
+ return this.toDeviceTopic;
167
+ }
168
+ getShadowTopics() {
169
+ return this.shadowHandler.shadowTopics;
170
+ }
171
+ getCmdStatus(projectId) {
172
+ return this.cmdStatusMgr.getAppCmdStatus(projectId);
173
+ }
151
174
  async handleClientMessage({ topic, message }) {
175
+ const valid = (0, device_agent_schemas_1.validateClientMessage)(message);
176
+ if (!valid) {
177
+ logger_1.logger.error(`Error validating message: ${JSON.stringify({ topic, message, errors: device_agent_schemas_1.validateClientMessage.errors }, null, 2)}`);
178
+ return;
179
+ }
152
180
  const payload = message.payload;
153
181
  switch (payload.messageType) {
154
182
  case device_agent_schemas_1.keyMirrors.clientMessageType.app_state_control: {
@@ -179,7 +207,8 @@ class DeviceAgentCloudConnection {
179
207
  });
180
208
  const newAppCfg = this.newAppCfgQueue.shift();
181
209
  if (newAppCfg === undefined) {
182
- throw new Error('Unknown error while updating models via application config! No config present for model update.');
210
+ logger_1.logger.error('Unknown error while updating models via application config! No config present for model update.');
211
+ return;
183
212
  }
184
213
  await this.atomicApplicationUpdate(application_control_1.updateModelsWithPresignedUrls, [
185
214
  {
@@ -195,10 +224,30 @@ class DeviceAgentCloudConnection {
195
224
  logger_1.logger.error(`Invalid client message: '${JSON.stringify({ topic, message }, null, 2)}'`);
196
225
  }
197
226
  }
227
+ async handleMessage(topic, message) {
228
+ switch (topic) {
229
+ case this.shadowHandler.shadowTopics.projects.getAccepted:
230
+ case this.shadowHandler.shadowTopics.projects.updateDelta: {
231
+ const appConfigUpdates = await this.shadowHandler.handleShadowTopic({
232
+ topic,
233
+ payload: message.state
234
+ });
235
+ await this.handleAppConfigUpdates(appConfigUpdates);
236
+ break;
237
+ }
238
+ case this.toDeviceTopic:
239
+ this.handleClientMessage({
240
+ topic,
241
+ message
242
+ });
243
+ break;
244
+ default:
245
+ logger_1.logger.error(`Unexpected topic, ignoring! ${topic}`);
246
+ }
247
+ }
198
248
  async setupHandlers() {
199
249
  this.device.on('connect', (connack) => {
200
250
  logger_1.logger.info('Device Agent has connected to the cloud');
201
- // Get shadow updates
202
251
  this.shadowHandler.getShadowUpdates();
203
252
  });
204
253
  this.device.on('disconnect', () => {
@@ -207,33 +256,15 @@ class DeviceAgentCloudConnection {
207
256
  this.device.on('reconnect', () => {
208
257
  logger_1.logger.info(`Device Agent attempting to re-connect ${new Date().toLocaleString()}`);
209
258
  });
259
+ this.device.on('error', function (error) {
260
+ const errorString = error.message.toString();
261
+ logger_1.logger.error(`${errorString}`);
262
+ });
210
263
  this.device.on('message', async (topic, payload) => {
211
264
  try {
212
265
  const jsonPacket = JSON.parse(payload);
213
266
  logger_1.logger.debug(`Received message: ${JSON.stringify({ topic, jsonPacket }, null, 2)}`);
214
- if (Object.prototype.hasOwnProperty.call(jsonPacket, 'state')) {
215
- if (jsonPacket.clientToken === this.getClientId()) {
216
- logger_1.logger.debug(`Ignoring message sent from self: ${JSON.stringify({ topic, jsonPacket }, null, 2)}`);
217
- return;
218
- }
219
- const appConfigUpdates = await this.shadowHandler.handleShadowTopic({
220
- topic,
221
- payload: jsonPacket.state
222
- });
223
- await this.handleAppConfigUpdates(appConfigUpdates);
224
- }
225
- else {
226
- const valid = (0, device_agent_schemas_1.validateClientMessage)(jsonPacket);
227
- if (!valid) {
228
- logger_1.logger.error(`Error validating message: ${JSON.stringify(device_agent_schemas_1.validateClientMessage.errors, null, 2)}`);
229
- }
230
- else {
231
- this.handleClientMessage({
232
- topic,
233
- message: jsonPacket
234
- });
235
- }
236
- }
267
+ await this.handleMessage(topic, jsonPacket);
237
268
  }
238
269
  catch (error) {
239
270
  logger_1.logger.error(`Error parsing message: ${error}`);
@@ -243,6 +274,9 @@ class DeviceAgentCloudConnection {
243
274
  logger_1.logger.warn(`Device Agent is offline ${new Date().toLocaleString()}`);
244
275
  });
245
276
  }
277
+ stop() {
278
+ this.device.end();
279
+ }
246
280
  }
247
281
  exports.DeviceAgentCloudConnection = DeviceAgentCloudConnection;
248
282
  async function runDeviceAgentCloudInterface() {
@@ -250,6 +284,12 @@ async function runDeviceAgentCloudInterface() {
250
284
  if ((0, fs_1.existsSync)((0, directories_1.getCertificateFilePath)())) {
251
285
  const deviceAgent = new DeviceAgentCloudConnection();
252
286
  await deviceAgent.setupHandlers();
287
+ if (environment_1.ALWAYSAI_ANALYTICS_PASSTHROUGH === true) {
288
+ const publisher = deviceAgent.publisher;
289
+ const passthroughHandler = new passthrough_handler_1.PassthroughHandler(publisher);
290
+ await passthroughHandler.setup();
291
+ (0, passthrough_handler_1.runChannel)(passthroughHandler);
292
+ }
253
293
  }
254
294
  else if ((0, fs_1.existsSync)((0, directories_1.BOOTSTRAP_DEVICE_PRIVATE_KEY_FILE_PATH)())) {
255
295
  (0, bootstrap_provision_1.bootstrapProvision)();
@@ -1 +1 @@
1
- {"version":3,"file":"device-agent-cloud-connection.js","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device-agent-cloud-connection.js","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Publisher } from './publisher';
2
+ export declare class PassthroughHandler {
3
+ publisher: Publisher;
4
+ connection: any;
5
+ channel: any;
6
+ packetQueue: any;
7
+ constructor(publisher: Publisher);
8
+ setup(): Promise<void>;
9
+ }
10
+ export declare function runChannel(passthroughHandler: PassthroughHandler): Promise<void>;
11
+ //# sourceMappingURL=passthrough-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passthrough-handler.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/passthrough-handler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKxC,qBAAa,kBAAkB;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,MAAC;IACX,OAAO,MAAC;IACR,WAAW,MAAC;gBAEP,SAAS,EAAE,SAAS;IAInB,KAAK;CAUnB;AAsBD,wBAAsB,UAAU,CAAC,kBAAkB,EAAE,kBAAkB,iBAetE"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runChannel = exports.PassthroughHandler = void 0;
4
+ // eslint-disable-next-line
5
+ const amqp = require('amqplib');
6
+ const rabbitmq_connection_1 = require("../local-connection/rabbitmq-connection");
7
+ const logger_1 = require("../util/logger");
8
+ const messageQueue = [];
9
+ const ackQueue = [];
10
+ class PassthroughHandler {
11
+ constructor(publisher) {
12
+ this.publisher = publisher;
13
+ }
14
+ async setup() {
15
+ await (0, rabbitmq_connection_1.setupRabbitMQContainer)();
16
+ this.connection = await amqp.connect('amqp://localhost');
17
+ this.channel = await this.connection.createChannel();
18
+ this.channel.prefetch(1); // This ensures we only get one packet at a time! This appears to have prevented throttling
19
+ this.packetQueue = 'edgeiq-analytics-publish';
20
+ await this.channel.assertQueue(this.packetQueue, {
21
+ durable: true
22
+ });
23
+ }
24
+ }
25
+ exports.PassthroughHandler = PassthroughHandler;
26
+ async function processPublish(passthroughHandler) {
27
+ while (messageQueue.length > 0) {
28
+ const entry = messageQueue.shift();
29
+ const { packet, msg } = entry;
30
+ ackQueue.push(msg);
31
+ // FIXME: put real topic here
32
+ passthroughHandler.publisher.publishToCloudWithAck(packet, (errOrResp) => {
33
+ logger_1.logger.debug('packet published to cloud?', errOrResp);
34
+ while (ackQueue.length > 0) {
35
+ const msg = ackQueue.shift();
36
+ if (errOrResp === true) {
37
+ passthroughHandler.channel.ack(msg); // acknowledge, allow queue to discard
38
+ }
39
+ else if (errOrResp === false) {
40
+ passthroughHandler.channel.reject(msg, true); // reject and requeue
41
+ }
42
+ }
43
+ });
44
+ }
45
+ }
46
+ async function runChannel(passthroughHandler) {
47
+ logger_1.logger.debug('Beginning to consume packets');
48
+ passthroughHandler.channel.consume(passthroughHandler.packetQueue, function (msg) {
49
+ if (msg.content !== undefined) {
50
+ const packet = JSON.parse(msg.content.toString());
51
+ messageQueue.push({ packet, msg });
52
+ processPublish(passthroughHandler);
53
+ }
54
+ }, {
55
+ noAck: false // When true, RabbitMQ deletes message as soon as it is consumed
56
+ });
57
+ }
58
+ exports.runChannel = runChannel;
59
+ //# sourceMappingURL=passthrough-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passthrough-handler.js","sourceRoot":"","sources":["../../src/cloud-connection/passthrough-handler.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAChC,iFAAiF;AACjF,2CAAwC;AAGxC,MAAM,YAAY,GAAU,EAAE,CAAC;AAC/B,MAAM,QAAQ,GAAU,EAAE,CAAC;AAE3B,MAAa,kBAAkB;IAM7B,YAAY,SAAoB;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAA,4CAAsB,GAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,2FAA2F;QACrH,IAAI,CAAC,WAAW,GAAG,0BAA0B,CAAC;QAC9C,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;YAC/C,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;CACF;AApBD,gDAoBC;AAED,KAAK,UAAU,cAAc,CAAC,kBAAsC;IAClE,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,6BAA6B;QAC7B,kBAAkB,CAAC,SAAS,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE;YACvE,eAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,SAAS,CAAC,CAAC;YACtD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC7B,IAAI,SAAS,KAAK,IAAI,EAAE;oBACtB,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,sCAAsC;iBAC5E;qBAAM,IAAI,SAAS,KAAK,KAAK,EAAE;oBAC9B,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,qBAAqB;iBACpE;aACF;QACH,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,kBAAsC;IACrE,eAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC7C,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAChC,kBAAkB,CAAC,WAAW,EAC9B,UAAU,GAAG;QACX,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClD,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACnC,cAAc,CAAC,kBAAkB,CAAC,CAAC;SACpC;IACH,CAAC,EACD;QACE,KAAK,EAAE,KAAK,CAAC,gEAAgE;KAC9E,CACF,CAAC;AACJ,CAAC;AAfD,gCAeC"}
@@ -7,6 +7,7 @@ export declare class Publisher {
7
7
  constructor(client: any, clientId: string);
8
8
  private buildMessagePacket;
9
9
  publish(topic: string, payload: string): void;
10
+ publishToCloudWithAck(payload: string, ackNackCallback: CallableFunction): void;
10
11
  publishDeviceAgentPayload(topic: string, payload: DeviceAgentMessagePayload): void;
11
12
  publishToClient(payload: DeviceAgentMessagePayload): void;
12
13
  publishToCloud(payload: DeviceAgentMessagePayload): void;
@@ -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,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":"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;IAmB5B,yBAAyB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,yBAAyB;IAU7B,eAAe,CAAC,OAAO,EAAE,yBAAyB;IAIlD,cAAc,CAAC,OAAO,EAAE,yBAAyB;CAGzD"}
@@ -27,6 +27,20 @@ class Publisher {
27
27
  }
28
28
  });
29
29
  }
30
+ publishToCloudWithAck(payload, ackNackCallback) {
31
+ const topic = this.toCloudTopic;
32
+ logger_1.logger.debug('payload received to publishWithAck', payload);
33
+ this.client.publish(topic, payload, { qos: 1 }, (err, resp) => {
34
+ if (err) {
35
+ logger_1.logger.error(`Error publishing message: \nTopic: ${topic}\nMessage: ${payload}\nError: ${err}`);
36
+ ackNackCallback(false);
37
+ }
38
+ else if (resp) {
39
+ logger_1.logger.debug(`Successfully published message: \nTopic: ${topic}\nMessage: ${payload}`);
40
+ ackNackCallback(true);
41
+ }
42
+ });
43
+ }
30
44
  publishDeviceAgentPayload(topic, payload) {
31
45
  const packet = this.buildMessagePacket(topic, payload);
32
46
  const packetStr = JSON.stringify(packet);
@@ -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,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;AAxDD,8BAwDC"}
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,eAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,OAAO,CAAC,CAAC;QAC5D,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;AA7ED,8BA6EC"}
@@ -1,7 +1,7 @@
1
1
  import { AppConfig } from '@alwaysai/app-configuration-schemas';
2
2
  import { Publisher } from './publisher';
3
3
  import { AppConfigModels } from './shadow';
4
- interface ShadowTopics {
4
+ export interface ShadowTopics {
5
5
  projects: {
6
6
  update: string;
7
7
  get: string;
@@ -28,7 +28,6 @@ export declare class ShadowHandler {
28
28
  }): Promise<AppConfigUpdate[]>;
29
29
  publishAppState(projectId: string): Promise<void>;
30
30
  getShadowUpdates(): void;
31
- deleteProjectShadow(): void;
31
+ deleteProjectShadow(projectId: string): void;
32
32
  }
33
- export {};
34
33
  //# sourceMappingURL=shadow-handler.d.ts.map