@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.
- package/lib/application-control/backup.js +3 -3
- package/lib/application-control/backup.js.map +1 -1
- package/lib/application-control/index.d.ts +4 -4
- package/lib/application-control/index.d.ts.map +1 -1
- package/lib/application-control/index.js +1 -4
- package/lib/application-control/index.js.map +1 -1
- package/lib/application-control/install.d.ts +1 -1
- package/lib/application-control/install.d.ts.map +1 -1
- package/lib/application-control/install.js +41 -54
- package/lib/application-control/install.js.map +1 -1
- package/lib/application-control/models.d.ts +0 -4
- package/lib/application-control/models.d.ts.map +1 -1
- package/lib/application-control/models.js +13 -22
- package/lib/application-control/models.js.map +1 -1
- package/lib/application-control/status.d.ts +0 -6
- package/lib/application-control/status.d.ts.map +1 -1
- package/lib/application-control/status.js +3 -19
- package/lib/application-control/status.js.map +1 -1
- package/lib/application-control/utils.d.ts +3 -0
- package/lib/application-control/utils.d.ts.map +1 -1
- package/lib/application-control/utils.js +50 -21
- package/lib/application-control/utils.js.map +1 -1
- package/lib/cloud-connection/bootstrap-provision.d.ts +1 -1
- package/lib/cloud-connection/bootstrap-provision.d.ts.map +1 -1
- package/lib/cloud-connection/bootstrap-provision.js +9 -9
- package/lib/cloud-connection/bootstrap-provision.js.map +1 -1
- package/lib/cloud-connection/cmd-status.d.ts +8 -0
- package/lib/cloud-connection/cmd-status.d.ts.map +1 -0
- package/lib/cloud-connection/cmd-status.js +62 -0
- package/lib/cloud-connection/cmd-status.js.map +1 -0
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts +10 -2
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.js +156 -66
- package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
- package/lib/cloud-connection/device-agent.d.ts.map +1 -1
- package/lib/cloud-connection/device-agent.js +4 -3
- package/lib/cloud-connection/device-agent.js.map +1 -1
- package/lib/cloud-connection/live-updates-handler.d.ts +10 -18
- package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -1
- package/lib/cloud-connection/live-updates-handler.js +50 -50
- package/lib/cloud-connection/live-updates-handler.js.map +1 -1
- package/lib/cloud-connection/messages.d.ts +3 -1
- package/lib/cloud-connection/messages.d.ts.map +1 -1
- package/lib/cloud-connection/messages.js +13 -1
- package/lib/cloud-connection/messages.js.map +1 -1
- package/lib/cloud-connection/passthrough-handler.d.ts +11 -0
- package/lib/cloud-connection/passthrough-handler.d.ts.map +1 -0
- package/lib/cloud-connection/passthrough-handler.js +59 -0
- package/lib/cloud-connection/passthrough-handler.js.map +1 -0
- package/lib/cloud-connection/publisher.d.ts +1 -0
- package/lib/cloud-connection/publisher.d.ts.map +1 -1
- package/lib/cloud-connection/publisher.js +14 -0
- package/lib/cloud-connection/publisher.js.map +1 -1
- package/lib/cloud-connection/shadow-handler.d.ts +2 -3
- package/lib/cloud-connection/shadow-handler.d.ts.map +1 -1
- package/lib/cloud-connection/shadow-handler.js +18 -4
- package/lib/cloud-connection/shadow-handler.js.map +1 -1
- package/lib/cloud-connection/shadow-handler.test.d.ts +2 -0
- package/lib/cloud-connection/shadow-handler.test.d.ts.map +1 -0
- package/lib/cloud-connection/shadow-handler.test.js +321 -0
- package/lib/cloud-connection/shadow-handler.test.js.map +1 -0
- package/lib/environment.d.ts +1 -0
- package/lib/environment.d.ts.map +1 -1
- package/lib/environment.js +3 -2
- package/lib/environment.js.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/infrastructure/agent-config.d.ts +15 -48
- package/lib/infrastructure/agent-config.d.ts.map +1 -1
- package/lib/infrastructure/agent-config.js.map +1 -1
- package/lib/infrastructure/agent-config.test.js +0 -6
- package/lib/infrastructure/agent-config.test.js.map +1 -1
- package/lib/infrastructure/system-id.js +2 -2
- package/lib/infrastructure/system-id.js.map +1 -1
- package/lib/infrastructure/tokens-and-device-cfg.d.ts.map +1 -1
- package/lib/infrastructure/tokens-and-device-cfg.js +5 -9
- package/lib/infrastructure/tokens-and-device-cfg.js.map +1 -1
- package/lib/local-connection/rabbitmq-connection.d.ts +4 -0
- package/lib/local-connection/rabbitmq-connection.d.ts.map +1 -0
- package/lib/local-connection/rabbitmq-connection.js +58 -0
- package/lib/local-connection/rabbitmq-connection.js.map +1 -0
- package/lib/subcommands/app/app.d.ts +4 -3
- package/lib/subcommands/app/app.d.ts.map +1 -1
- package/lib/subcommands/app/app.js +78 -27
- package/lib/subcommands/app/app.js.map +1 -1
- package/lib/subcommands/app/index.js +2 -2
- package/lib/subcommands/device/clean.js +4 -4
- package/lib/subcommands/device/clean.js.map +1 -1
- package/lib/subcommands/device/device.d.ts +1 -1
- package/lib/subcommands/device/device.d.ts.map +1 -1
- package/lib/subcommands/device/device.js +9 -10
- package/lib/subcommands/device/device.js.map +1 -1
- package/lib/subcommands/index.d.ts +0 -1
- package/lib/subcommands/index.d.ts.map +1 -1
- package/lib/subcommands/login.d.ts +0 -1
- package/lib/subcommands/login.d.ts.map +1 -1
- package/lib/subcommands/login.js +1 -9
- package/lib/subcommands/login.js.map +1 -1
- package/lib/util/directories.d.ts +11 -12
- package/lib/util/directories.d.ts.map +1 -1
- package/lib/util/directories.js +24 -29
- package/lib/util/directories.js.map +1 -1
- package/lib/util/fetch-with-timeout.d.ts +4 -0
- package/lib/util/fetch-with-timeout.d.ts.map +1 -0
- package/lib/util/fetch-with-timeout.js +15 -0
- package/lib/util/fetch-with-timeout.js.map +1 -0
- package/lib/util/logger.js +1 -0
- package/lib/util/logger.js.map +1 -1
- package/lib/util/require-logged-in-and-paid-plan.d.ts +2 -0
- package/lib/util/require-logged-in-and-paid-plan.d.ts.map +1 -0
- package/lib/util/require-logged-in-and-paid-plan.js +18 -0
- package/lib/util/require-logged-in-and-paid-plan.js.map +1 -0
- package/package.json +20 -32
- package/readme.md +100 -89
- package/src/application-control/backup.ts +3 -3
- package/src/application-control/index.ts +0 -6
- package/src/application-control/install.ts +53 -73
- package/src/application-control/models.ts +7 -19
- package/src/application-control/status.ts +3 -19
- package/src/application-control/utils.ts +61 -22
- package/src/cloud-connection/bootstrap-provision.ts +13 -10
- package/src/cloud-connection/cmd-status.ts +71 -0
- package/src/cloud-connection/device-agent-cloud-connection.ts +211 -102
- package/src/cloud-connection/device-agent.ts +7 -4
- package/src/cloud-connection/live-updates-handler.ts +79 -86
- package/src/cloud-connection/messages.ts +22 -1
- package/src/cloud-connection/passthrough-handler.ts +67 -0
- package/src/cloud-connection/publisher.ts +21 -0
- package/src/cloud-connection/shadow-handler.test.ts +361 -0
- package/src/cloud-connection/shadow-handler.ts +28 -7
- package/src/environment.ts +4 -1
- package/src/index.ts +2 -2
- package/src/infrastructure/agent-config.test.ts +0 -7
- package/src/infrastructure/agent-config.ts +24 -2
- package/src/infrastructure/system-id.ts +1 -1
- package/src/infrastructure/tokens-and-device-cfg.ts +8 -13
- package/src/local-connection/rabbitmq-connection.ts +53 -0
- package/src/subcommands/app/app.ts +82 -31
- package/src/subcommands/app/index.ts +4 -4
- package/src/subcommands/device/clean.ts +4 -4
- package/src/subcommands/device/device.ts +13 -13
- package/src/subcommands/login.ts +1 -9
- package/src/util/directories.ts +31 -29
- package/src/util/fetch-with-timeout.ts +18 -0
- package/src/util/logger.ts +2 -0
- package/src/util/require-logged-in-and-paid-plan.ts +16 -0
- package/lib/cloud-connection/app-install-status.d.ts +0 -16
- package/lib/cloud-connection/app-install-status.d.ts.map +0 -1
- package/lib/cloud-connection/app-install-status.js +0 -53
- package/lib/cloud-connection/app-install-status.js.map +0 -1
- 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
|
+
}
|
package/src/util/logger.ts
CHANGED
|
@@ -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
|
-
}
|