@alwaysai/device-agent-schemas 1.1.1 → 1.1.2
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/constants.d.ts +4 -0
- package/lib/constants.d.ts.map +1 -1
- package/lib/constants.js +5 -1
- package/lib/constants.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -1
- package/lib/index.js.map +1 -1
- package/lib/types.d.ts +3 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +10 -4
- package/lib/types.js.map +1 -1
- package/lib/types.test.js +19 -19
- package/lib/types.test.js.map +1 -1
- package/package.json +1 -1
- package/src/constants.ts +5 -0
- package/src/index.ts +7 -0
- package/src/types.test.ts +26 -20
- package/src/types.ts +19 -4
package/lib/constants.d.ts
CHANGED
|
@@ -2,6 +2,10 @@ export declare const PROJECT_ID_PATTERN = "([0-9a-z]+-+)+([0-9a-z])+";
|
|
|
2
2
|
export declare const DEVICE_ID_PATTERN = "([0-9a-z]+-+)+([0-9a-z])+";
|
|
3
3
|
export declare const APP_RELEASE_ID_PATTERN = "[0-9a-z]{64}";
|
|
4
4
|
export declare const MODEL_ID_PATTERN = "[A-Za-z0-9_]+/[A-Za-z0-9_]*";
|
|
5
|
+
export declare const CLIENT_TOPIC_PREFIX = "to-client";
|
|
6
|
+
export declare const CLOUD_TOPIC_PREFIX = "to-cloud";
|
|
7
|
+
export declare const DEVICE_TOPIC_PREFIX = "to-device";
|
|
8
|
+
export declare const DEVICE_TYPE = "aai-device";
|
|
5
9
|
export declare const keyMirrors: {
|
|
6
10
|
agentMessageType: {
|
|
7
11
|
app_logs: "app_logs";
|
package/lib/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAC9D,eAAO,MAAM,iBAAiB,8BAA8B,CAAC;AAC7D,eAAO,MAAM,sBAAsB,iBAAiB,CAAC;AACrD,eAAO,MAAM,gBAAgB,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAC9D,eAAO,MAAM,iBAAiB,8BAA8B,CAAC;AAC7D,eAAO,MAAM,sBAAsB,iBAAiB,CAAC;AACrD,eAAO,MAAM,gBAAgB,gCAAgC,CAAC;AAE9D,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,kBAAkB,aAAa,CAAC;AAC7C,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,WAAW,eAAe,CAAC;AA6CxC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQtB,CAAC;AAEF,eAAO,MAAM,sBAAsB,8FAA6C,CAAC;AACjF,oBAAY,qBAAqB,GAAG,MAAM,OAAO,UAAU,CAAC,gBAAgB,CAAC;AAE7E,eAAO,MAAM,uBAAuB,yIAA8C,CAAC;AACnF,oBAAY,sBAAsB,GAAG,MAAM,OAAO,UAAU,CAAC,iBAAiB,CAAC;AAE/E,eAAO,MAAM,cAAc,qCAAqC,CAAC;AACjE,oBAAY,aAAa,GAAG,MAAM,OAAO,UAAU,CAAC,QAAQ,CAAC;AAE7D,eAAO,MAAM,qBAAqB,kCAA4C,CAAC;AAC/E,oBAAY,oBAAoB,GAAG,MAAM,OAAO,UAAU,CAAC,eAAe,CAAC;AAE3E,eAAO,MAAM,uBAAuB,aAA8C,CAAC;AACnF,oBAAY,sBAAsB,GAAG,MAAM,OAAO,UAAU,CAAC,iBAAiB,CAAC;AAE/E,eAAO,MAAM,iBAAiB,kBAAwC,CAAC;AACvE,oBAAY,gBAAgB,GAAG,MAAM,OAAO,UAAU,CAAC,WAAW,CAAC;AAEnE,eAAO,MAAM,sBAAsB,yDAA6C,CAAC;AACjF,oBAAY,qBAAqB,GAAG,MAAM,OAAO,UAAU,CAAC,gBAAgB,CAAC"}
|
package/lib/constants.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.appInstallStatusValues = exports.liveUpdatesValues = exports.appVersionControlValues = exports.appStateControlValues = exports.appStateValues = exports.clientMessageTypeValues = exports.agentMessageTypeValues = exports.keyMirrors = exports.MODEL_ID_PATTERN = exports.APP_RELEASE_ID_PATTERN = exports.DEVICE_ID_PATTERN = exports.PROJECT_ID_PATTERN = void 0;
|
|
3
|
+
exports.appInstallStatusValues = exports.liveUpdatesValues = exports.appVersionControlValues = exports.appStateControlValues = exports.appStateValues = exports.clientMessageTypeValues = exports.agentMessageTypeValues = exports.keyMirrors = exports.DEVICE_TYPE = exports.DEVICE_TOPIC_PREFIX = exports.CLOUD_TOPIC_PREFIX = exports.CLIENT_TOPIC_PREFIX = exports.MODEL_ID_PATTERN = exports.APP_RELEASE_ID_PATTERN = exports.DEVICE_ID_PATTERN = exports.PROJECT_ID_PATTERN = void 0;
|
|
4
4
|
const utils_1 = require("./utils");
|
|
5
5
|
exports.PROJECT_ID_PATTERN = '([0-9a-z]+-+)+([0-9a-z])+';
|
|
6
6
|
exports.DEVICE_ID_PATTERN = '([0-9a-z]+-+)+([0-9a-z])+';
|
|
7
7
|
exports.APP_RELEASE_ID_PATTERN = '[0-9a-z]{64}';
|
|
8
8
|
exports.MODEL_ID_PATTERN = '[A-Za-z0-9_]+/[A-Za-z0-9_]*';
|
|
9
|
+
exports.CLIENT_TOPIC_PREFIX = 'to-client';
|
|
10
|
+
exports.CLOUD_TOPIC_PREFIX = 'to-cloud';
|
|
11
|
+
exports.DEVICE_TOPIC_PREFIX = 'to-device';
|
|
12
|
+
exports.DEVICE_TYPE = 'aai-device';
|
|
9
13
|
const agentMessageTypeEnum = (0, utils_1.keyMirror)({
|
|
10
14
|
app_logs: null,
|
|
11
15
|
app_state: null,
|
package/lib/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAEvB,QAAA,kBAAkB,GAAG,2BAA2B,CAAC;AACjD,QAAA,iBAAiB,GAAG,2BAA2B,CAAC;AAChD,QAAA,sBAAsB,GAAG,cAAc,CAAC;AACxC,QAAA,gBAAgB,GAAG,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAEvB,QAAA,kBAAkB,GAAG,2BAA2B,CAAC;AACjD,QAAA,iBAAiB,GAAG,2BAA2B,CAAC;AAChD,QAAA,sBAAsB,GAAG,cAAc,CAAC;AACxC,QAAA,gBAAgB,GAAG,6BAA6B,CAAC;AAEjD,QAAA,mBAAmB,GAAG,WAAW,CAAC;AAClC,QAAA,kBAAkB,GAAG,UAAU,CAAC;AAChC,QAAA,mBAAmB,GAAG,WAAW,CAAC;AAClC,QAAA,WAAW,GAAG,YAAY,CAAC;AAExC,MAAM,oBAAoB,GAAG,IAAA,iBAAS,EAAC;IACrC,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,IAAI;IAClB,kBAAkB,EAAE,IAAI;IACxB,mBAAmB,EAAE,IAAI;CAC1B,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,IAAA,iBAAS,EAAC;IACtC,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI;IACzB,0BAA0B,EAAE,IAAI;IAChC,6BAA6B,EAAE,IAAI;IACnC,kBAAkB,EAAE,IAAI;CACzB,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,IAAA,iBAAS,EAAC;IAC7B,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,IAAI;CACjB,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,IAAA,iBAAS,EAAC;IACpC,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,IAAA,iBAAS,EAAC;IACtC,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,IAAA,iBAAS,EAAC;IAChC,YAAY,EAAE,IAAI;CACnB,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,IAAA,iBAAS,EAAC;IACrC,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;AAEU,QAAA,UAAU,GAAG;IACxB,gBAAgB,EAAE,oBAAoB;IACtC,iBAAiB,EAAE,qBAAqB;IACxC,QAAQ,EAAE,YAAY;IACtB,eAAe,EAAE,mBAAmB;IACpC,iBAAiB,EAAE,qBAAqB;IACxC,WAAW,EAAE,eAAe;IAC5B,gBAAgB,EAAE,oBAAoB;CACvC,CAAC;AAEW,QAAA,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAU,CAAC,gBAAgB,CAAC,CAAC;AAGpE,QAAA,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAU,CAAC,iBAAiB,CAAC,CAAC;AAGtE,QAAA,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAU,CAAC,QAAQ,CAAC,CAAC;AAGpD,QAAA,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAU,CAAC,eAAe,CAAC,CAAC;AAGlE,QAAA,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAU,CAAC,iBAAiB,CAAC,CAAC;AAGtE,QAAA,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAU,CAAC,WAAW,CAAC,CAAC;AAG1D,QAAA,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAU,CAAC,gBAAgB,CAAC,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { validateDeviceAgentMessage, validateClientMessage, DeviceAgentMessage, ClientMessage, DeviceAgentMessagePayload, ClientMessagePayload } from './types';
|
|
1
|
+
import { validateDeviceAgentMessage, validateClientMessage, DeviceAgentMessage, ClientMessage, DeviceAgentMessagePayload, ClientMessagePayload, getClientTopic, getCloudTopic, getDeviceTopic } from './types';
|
|
2
2
|
import { AppDetailsPacket, AppStatePacket, ServiceStatusPacket, AppStateMessage } from './schemas/agent/application-state-schema';
|
|
3
3
|
import { AppLogsPacket, AppLogsMessage } from './schemas/agent/application-logs-schema';
|
|
4
4
|
import { AppInstallCloudResponseMessage, AppStateControlPacket, AppStateControlMessage, AppVersionControlPacket, AppVersionControlMessage, ModelInstallPayload } from './schemas/client/application-action-schema';
|
|
@@ -7,5 +7,5 @@ import { DeviceStatsMessage } from './schemas/agent/device-status-schema';
|
|
|
7
7
|
import { AppInstallStatusMessage, AppInstallStatusPacket } from './schemas/agent/app-install-status-schema';
|
|
8
8
|
import { AppStateControlValue, AppStateValue, keyMirrors } from './constants';
|
|
9
9
|
import { SignedUrlsRequestMessage } from './schemas/agent/request-data-from-cloud';
|
|
10
|
-
export { AppLogsPacket, AppDetailsPacket, ServiceStatusPacket, AppStatePacket, ModelInstallPayload, AppInstallStatusPacket, AppStateControlPacket, AppVersionControlPacket, AppStateControlValue, AppStateValue, LiveUpdatesToggles, DeviceAgentMessagePayload, ClientMessagePayload, DeviceStatsMessage, AppStateMessage, AppLogsMessage, AppInstallStatusMessage, AppStateControlMessage, AppVersionControlMessage, AppInstallCloudResponseMessage, LiveUpdatesToggleMessage, SignedUrlsRequestMessage, DeviceAgentMessage, ClientMessage, validateDeviceAgentMessage, validateClientMessage, keyMirrors, };
|
|
10
|
+
export { getClientTopic, getCloudTopic, getDeviceTopic, AppLogsPacket, AppDetailsPacket, ServiceStatusPacket, AppStatePacket, ModelInstallPayload, AppInstallStatusPacket, AppStateControlPacket, AppVersionControlPacket, AppStateControlValue, AppStateValue, LiveUpdatesToggles, DeviceAgentMessagePayload, ClientMessagePayload, DeviceStatsMessage, AppStateMessage, AppLogsMessage, AppInstallStatusMessage, AppStateControlMessage, AppVersionControlMessage, AppInstallCloudResponseMessage, LiveUpdatesToggleMessage, SignedUrlsRequestMessage, DeviceAgentMessage, ClientMessage, validateDeviceAgentMessage, validateClientMessage, keyMirrors, };
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,yBAAyB,EACzB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,cAAc,EACf,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EAChB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAEnF,OAAO,EAEL,cAAc,EACd,aAAa,EACb,cAAc,EAEd,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EAEpB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,8BAA8B,EAC9B,wBAAwB,EACxB,wBAAwB,EAExB,kBAAkB,EAClB,aAAa,EAEb,0BAA0B,EAC1B,qBAAqB,EAErB,UAAU,GACX,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.keyMirrors = exports.validateClientMessage = exports.validateDeviceAgentMessage = void 0;
|
|
3
|
+
exports.keyMirrors = exports.validateClientMessage = exports.validateDeviceAgentMessage = exports.getDeviceTopic = exports.getCloudTopic = exports.getClientTopic = void 0;
|
|
4
4
|
// export types here
|
|
5
5
|
const types_1 = require("./types");
|
|
6
6
|
Object.defineProperty(exports, "validateDeviceAgentMessage", { enumerable: true, get: function () { return types_1.validateDeviceAgentMessage; } });
|
|
7
7
|
Object.defineProperty(exports, "validateClientMessage", { enumerable: true, get: function () { return types_1.validateClientMessage; } });
|
|
8
|
+
Object.defineProperty(exports, "getClientTopic", { enumerable: true, get: function () { return types_1.getClientTopic; } });
|
|
9
|
+
Object.defineProperty(exports, "getCloudTopic", { enumerable: true, get: function () { return types_1.getCloudTopic; } });
|
|
10
|
+
Object.defineProperty(exports, "getDeviceTopic", { enumerable: true, get: function () { return types_1.getDeviceTopic; } });
|
|
8
11
|
const constants_1 = require("./constants");
|
|
9
12
|
Object.defineProperty(exports, "keyMirrors", { enumerable: true, get: function () { return constants_1.keyMirrors; } });
|
|
10
13
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oBAAoB;AACpB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oBAAoB;AACpB,mCAUiB;AA6Df,2GAtEA,kCAA0B,OAsEA;AAC1B,sGAtEA,6BAAqB,OAsEA;AAhCrB,+FAjCA,sBAAc,OAiCA;AACd,8FAjCA,qBAAa,OAiCA;AACb,+FAjCA,sBAAc,OAiCA;AAPhB,2CAA8E;AAuC5E,2FAvC4C,sBAAU,OAuC5C"}
|
package/lib/types.d.ts
CHANGED
|
@@ -18,6 +18,9 @@ export interface ClientMessage {
|
|
|
18
18
|
topic: string;
|
|
19
19
|
payload: ClientMessagePayload;
|
|
20
20
|
}
|
|
21
|
+
export declare const getClientTopic: (deviceUuid: string, deviceType?: string) => string;
|
|
22
|
+
export declare const getCloudTopic: (deviceUuid: string, deviceType?: string) => string;
|
|
23
|
+
export declare const getDeviceTopic: (deviceUuid: string, deviceType?: string) => string;
|
|
21
24
|
export declare const validateDeviceAgentMessage: import("ajv").ValidateFunction<DeviceAgentMessage>;
|
|
22
25
|
export declare const validateClientMessage: import("ajv").ValidateFunction<ClientMessage>;
|
|
23
26
|
//# sourceMappingURL=types.d.ts.map
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,kBAAkB,EACnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,eAAe,EAEhB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,EAEtB,wBAAwB,EAGxB,iCAAiC,EAElC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,wBAAwB,EAEzB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,cAAc,EAAiB,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,kBAAkB,EACnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,eAAe,EAEhB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,EAEtB,wBAAwB,EAGxB,iCAAiC,EAElC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,wBAAwB,EAEzB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,cAAc,EAAiB,MAAM,yCAAyC,CAAC;AASxF,OAAO,EACL,uBAAuB,EAExB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,wBAAwB,EAEzB,MAAM,yCAAyC,CAAC;AAEjD,oBAAY,yBAAyB,GACjC,kBAAkB,GAClB,cAAc,GACd,eAAe,GACf,uBAAuB,GACvB,wBAAwB,CAAC;AAG7B,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,yBAAyB,CAAC;CACpC;AAED,oBAAY,oBAAoB,GAC5B,sBAAsB,GACtB,wBAAwB,GACxB,8BAA8B,GAC9B,iCAAiC,GACjC,wBAAwB,CAAC;AAE7B,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AAoFD,eAAO,MAAM,cAAc,eAAgB,MAAM,eAAc,MAAM,WACf,CAAC;AAEvD,eAAO,MAAM,aAAa,eAAgB,MAAM,eAAc,MAAM,WACf,CAAC;AAEtD,eAAO,MAAM,cAAc,eAAgB,MAAM,eAAc,MAAM,WACf,CAAC;AAIvD,eAAO,MAAM,0BAA0B,oDAAsC,CAAC;AAI9E,eAAO,MAAM,qBAAqB,+CAAuC,CAAC"}
|
package/lib/types.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateClientMessage = exports.validateDeviceAgentMessage = void 0;
|
|
3
|
+
exports.validateClientMessage = exports.validateDeviceAgentMessage = exports.getDeviceTopic = exports.getCloudTopic = exports.getClientTopic = void 0;
|
|
4
4
|
const ajv_1 = require("ajv");
|
|
5
5
|
const common_schema_1 = require("./schemas/common-schema");
|
|
6
6
|
const device_status_schema_1 = require("./schemas/agent/device-status-schema");
|
|
@@ -49,12 +49,12 @@ const agentMessageSchema = (0, utils_1.loadSchemaAsObject)({
|
|
|
49
49
|
toCloud: {
|
|
50
50
|
description: 'Messages sent from the agent itself to cloud backend',
|
|
51
51
|
type: 'string',
|
|
52
|
-
pattern:
|
|
52
|
+
pattern: `^${constants_1.CLOUD_TOPIC_PREFIX}/${constants_1.DEVICE_TYPE}/${constants_1.DEVICE_ID_PATTERN}`,
|
|
53
53
|
},
|
|
54
54
|
toClient: {
|
|
55
55
|
description: 'Messages sent from the agent itself to console client',
|
|
56
56
|
type: 'string',
|
|
57
|
-
pattern:
|
|
57
|
+
pattern: `^${constants_1.CLIENT_TOPIC_PREFIX}/${constants_1.DEVICE_TYPE}/${constants_1.DEVICE_ID_PATTERN}`,
|
|
58
58
|
},
|
|
59
59
|
},
|
|
60
60
|
});
|
|
@@ -85,10 +85,16 @@ const clientMessageSchema = (0, utils_1.loadSchemaAsObject)({
|
|
|
85
85
|
message: {
|
|
86
86
|
description: 'Topic on which messages are sent to device agent.',
|
|
87
87
|
type: 'string',
|
|
88
|
-
pattern:
|
|
88
|
+
pattern: `^${constants_1.DEVICE_TOPIC_PREFIX}/${constants_1.DEVICE_TYPE}/${constants_1.DEVICE_ID_PATTERN}`,
|
|
89
89
|
},
|
|
90
90
|
},
|
|
91
91
|
});
|
|
92
|
+
const getClientTopic = (deviceUuid, deviceType = constants_1.DEVICE_TYPE) => `${constants_1.CLIENT_TOPIC_PREFIX}/${deviceType}/${deviceUuid}`;
|
|
93
|
+
exports.getClientTopic = getClientTopic;
|
|
94
|
+
const getCloudTopic = (deviceUuid, deviceType = constants_1.DEVICE_TYPE) => `${constants_1.CLOUD_TOPIC_PREFIX}/${deviceType}/${deviceUuid}`;
|
|
95
|
+
exports.getCloudTopic = getCloudTopic;
|
|
96
|
+
const getDeviceTopic = (deviceUuid, deviceType = constants_1.DEVICE_TYPE) => `${constants_1.DEVICE_TOPIC_PREFIX}/${deviceType}/${deviceUuid}`;
|
|
97
|
+
exports.getDeviceTopic = getDeviceTopic;
|
|
92
98
|
// Device Agent Message Codec and Validation Method
|
|
93
99
|
const agentMessageSchemaType = agentMessageSchema;
|
|
94
100
|
exports.validateDeviceAgentMessage = ajv.compile(agentMessageSchemaType);
|
package/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA,6BAA0C;AAC1C,2DAAuD;AACvD,+EAG8C;AAC9C,uFAGkD;AAClD,0FASoD;AACpD,4FAGqD;AACrD,qFAAwF;AACxF,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/types.test.js
CHANGED
|
@@ -5,7 +5,7 @@ const validAgentMessages = [
|
|
|
5
5
|
{
|
|
6
6
|
timestamp: 'Mon, 06 Jun 2022 20:21:46 GMT',
|
|
7
7
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
8
|
-
topic: '
|
|
8
|
+
topic: (0, types_1.getCloudTopic)('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
9
9
|
payload: {
|
|
10
10
|
messageType: 'signed_urls_request',
|
|
11
11
|
signedUrlsRequest: {
|
|
@@ -17,7 +17,7 @@ const validAgentMessages = [
|
|
|
17
17
|
{
|
|
18
18
|
timestamp: 'Mon, 06 Jun 2022 20:21:46 GMT',
|
|
19
19
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
20
|
-
topic: '
|
|
20
|
+
topic: (0, types_1.getClientTopic)('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
21
21
|
payload: {
|
|
22
22
|
messageType: 'device_stats',
|
|
23
23
|
deviceStats: {
|
|
@@ -30,7 +30,7 @@ const validAgentMessages = [
|
|
|
30
30
|
{
|
|
31
31
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
32
32
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
33
|
-
topic: '
|
|
33
|
+
topic: (0, types_1.getClientTopic)('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
34
34
|
payload: {
|
|
35
35
|
messageType: 'app_logs',
|
|
36
36
|
appLogs: {
|
|
@@ -42,7 +42,7 @@ const validAgentMessages = [
|
|
|
42
42
|
{
|
|
43
43
|
timestamp: 'Mon, 06 Jun 2022 20:21:46 GMT',
|
|
44
44
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
45
|
-
topic: '
|
|
45
|
+
topic: (0, types_1.getClientTopic)('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
46
46
|
payload: {
|
|
47
47
|
messageType: 'app_state',
|
|
48
48
|
appState: [
|
|
@@ -64,7 +64,7 @@ const validAgentMessages = [
|
|
|
64
64
|
{
|
|
65
65
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
66
66
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
67
|
-
topic: '
|
|
67
|
+
topic: (0, types_1.getClientTopic)('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
68
68
|
payload: {
|
|
69
69
|
messageType: 'app_install_status',
|
|
70
70
|
appInstallStatus: {
|
|
@@ -76,7 +76,7 @@ const validAgentMessages = [
|
|
|
76
76
|
{
|
|
77
77
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
78
78
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
79
|
-
topic: '
|
|
79
|
+
topic: (0, types_1.getClientTopic)('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
80
80
|
payload: {
|
|
81
81
|
messageType: 'app_install_status',
|
|
82
82
|
appInstallStatus: {
|
|
@@ -92,7 +92,7 @@ const invalidAgentMessages = [
|
|
|
92
92
|
{
|
|
93
93
|
timestamp: 'Mon, 06 Jun 2022 20:21:46 GMT',
|
|
94
94
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
95
|
-
topic: '
|
|
95
|
+
topic: (0, types_1.getClientTopic)('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
96
96
|
payload: {
|
|
97
97
|
messageType: 'device_stats',
|
|
98
98
|
deviceStats: {
|
|
@@ -107,7 +107,7 @@ const invalidAgentMessages = [
|
|
|
107
107
|
{
|
|
108
108
|
timestamp: 'Mon, 06 Jun 2022 20:21:46 GMT',
|
|
109
109
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
110
|
-
topic: '
|
|
110
|
+
topic: (0, types_1.getClientTopic)('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
111
111
|
payload: {
|
|
112
112
|
messageType: 'device_stats',
|
|
113
113
|
deviceStats: {
|
|
@@ -121,7 +121,7 @@ const invalidAgentMessages = [
|
|
|
121
121
|
{
|
|
122
122
|
timestamp: 'Mon, 06 Jun 2022 20:21:46 GMT',
|
|
123
123
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
124
|
-
topic: '
|
|
124
|
+
topic: (0, types_1.getClientTopic)('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
125
125
|
payload: {
|
|
126
126
|
messageType: 'app_state',
|
|
127
127
|
applicationState: {
|
|
@@ -134,7 +134,7 @@ const invalidAgentMessages = [
|
|
|
134
134
|
{
|
|
135
135
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
136
136
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
137
|
-
topic: '
|
|
137
|
+
topic: (0, types_1.getClientTopic)('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
138
138
|
payload: {
|
|
139
139
|
messageType: 'app_logs',
|
|
140
140
|
applicationLogs: {
|
|
@@ -146,7 +146,7 @@ const invalidAgentMessages = [
|
|
|
146
146
|
{
|
|
147
147
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
148
148
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
149
|
-
topic: '
|
|
149
|
+
topic: (0, types_1.getClientTopic)('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
150
150
|
payload: {
|
|
151
151
|
messageType: 'install_status',
|
|
152
152
|
installationStatus: {
|
|
@@ -159,7 +159,7 @@ const invalidAgentMessages = [
|
|
|
159
159
|
{
|
|
160
160
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
161
161
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
162
|
-
topic: '
|
|
162
|
+
topic: (0, types_1.getClientTopic)('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
163
163
|
payload: {
|
|
164
164
|
messageType: 'install_status',
|
|
165
165
|
installationStatus: {
|
|
@@ -171,7 +171,7 @@ const invalidAgentMessages = [
|
|
|
171
171
|
{
|
|
172
172
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
173
173
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
174
|
-
topic: '
|
|
174
|
+
topic: (0, types_1.getClientTopic)('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
175
175
|
payload: {
|
|
176
176
|
messageType: 'install_status',
|
|
177
177
|
installationStatus: {
|
|
@@ -184,7 +184,7 @@ const invalidAgentMessages = [
|
|
|
184
184
|
const validClientMessages = [
|
|
185
185
|
{
|
|
186
186
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
187
|
-
topic: '
|
|
187
|
+
topic: (0, types_1.getDeviceTopic)('8195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
188
188
|
payload: {
|
|
189
189
|
messageType: 'live_state_updates',
|
|
190
190
|
liveUpdatesToggles: {
|
|
@@ -195,7 +195,7 @@ const validClientMessages = [
|
|
|
195
195
|
},
|
|
196
196
|
{
|
|
197
197
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
198
|
-
topic: '
|
|
198
|
+
topic: (0, types_1.getDeviceTopic)('8195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
199
199
|
payload: {
|
|
200
200
|
messageType: 'app_state_control',
|
|
201
201
|
appStateControl: {
|
|
@@ -206,7 +206,7 @@ const validClientMessages = [
|
|
|
206
206
|
},
|
|
207
207
|
{
|
|
208
208
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
209
|
-
topic: '
|
|
209
|
+
topic: (0, types_1.getDeviceTopic)('8195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
210
210
|
payload: {
|
|
211
211
|
messageType: 'app_version_control',
|
|
212
212
|
appVersionControl: {
|
|
@@ -219,7 +219,7 @@ const validClientMessages = [
|
|
|
219
219
|
const invalidClientMessages = [
|
|
220
220
|
{
|
|
221
221
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
222
|
-
topic: '
|
|
222
|
+
topic: (0, types_1.getDeviceTopic)('8195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
223
223
|
payload: {
|
|
224
224
|
messageType: 'live_updates',
|
|
225
225
|
toggle: 56,
|
|
@@ -227,7 +227,7 @@ const invalidClientMessages = [
|
|
|
227
227
|
},
|
|
228
228
|
{
|
|
229
229
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
230
|
-
topic: '
|
|
230
|
+
topic: (0, types_1.getDeviceTopic)('8195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
231
231
|
payload: {
|
|
232
232
|
messageType: 'app_state_control',
|
|
233
233
|
appStateControl: {
|
|
@@ -238,7 +238,7 @@ const invalidClientMessages = [
|
|
|
238
238
|
},
|
|
239
239
|
{
|
|
240
240
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
241
|
-
topic: '
|
|
241
|
+
topic: (0, types_1.getDeviceTopic)('8195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
242
242
|
payload: {
|
|
243
243
|
messageType: 'app_version_control',
|
|
244
244
|
appVersionControl: {
|
package/lib/types.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../src/types.test.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../src/types.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/constants.ts
CHANGED
|
@@ -5,6 +5,11 @@ export const DEVICE_ID_PATTERN = '([0-9a-z]+-+)+([0-9a-z])+';
|
|
|
5
5
|
export const APP_RELEASE_ID_PATTERN = '[0-9a-z]{64}';
|
|
6
6
|
export const MODEL_ID_PATTERN = '[A-Za-z0-9_]+/[A-Za-z0-9_]*';
|
|
7
7
|
|
|
8
|
+
export const CLIENT_TOPIC_PREFIX = 'to-client';
|
|
9
|
+
export const CLOUD_TOPIC_PREFIX = 'to-cloud';
|
|
10
|
+
export const DEVICE_TOPIC_PREFIX = 'to-device';
|
|
11
|
+
export const DEVICE_TYPE = 'aai-device';
|
|
12
|
+
|
|
8
13
|
const agentMessageTypeEnum = keyMirror({
|
|
9
14
|
app_logs: null,
|
|
10
15
|
app_state: null,
|
package/src/index.ts
CHANGED
|
@@ -6,6 +6,9 @@ import {
|
|
|
6
6
|
ClientMessage,
|
|
7
7
|
DeviceAgentMessagePayload,
|
|
8
8
|
ClientMessagePayload,
|
|
9
|
+
getClientTopic,
|
|
10
|
+
getCloudTopic,
|
|
11
|
+
getDeviceTopic,
|
|
9
12
|
} from './types';
|
|
10
13
|
import {
|
|
11
14
|
AppDetailsPacket,
|
|
@@ -35,6 +38,10 @@ import { AppStateControlValue, AppStateValue, keyMirrors } from './constants';
|
|
|
35
38
|
import { SignedUrlsRequestMessage } from './schemas/agent/request-data-from-cloud';
|
|
36
39
|
|
|
37
40
|
export {
|
|
41
|
+
// getters
|
|
42
|
+
getClientTopic,
|
|
43
|
+
getCloudTopic,
|
|
44
|
+
getDeviceTopic,
|
|
38
45
|
// types
|
|
39
46
|
AppLogsPacket,
|
|
40
47
|
AppDetailsPacket,
|
package/src/types.test.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
validateClientMessage,
|
|
3
|
+
validateDeviceAgentMessage,
|
|
4
|
+
getCloudTopic,
|
|
5
|
+
getClientTopic,
|
|
6
|
+
getDeviceTopic,
|
|
7
|
+
} from './types';
|
|
2
8
|
|
|
3
9
|
const validAgentMessages = [
|
|
4
10
|
{
|
|
5
11
|
timestamp: 'Mon, 06 Jun 2022 20:21:46 GMT',
|
|
6
12
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
7
|
-
topic: '
|
|
13
|
+
topic: getCloudTopic('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
8
14
|
payload: {
|
|
9
15
|
messageType: 'signed_urls_request',
|
|
10
16
|
signedUrlsRequest: {
|
|
@@ -17,7 +23,7 @@ const validAgentMessages = [
|
|
|
17
23
|
{
|
|
18
24
|
timestamp: 'Mon, 06 Jun 2022 20:21:46 GMT',
|
|
19
25
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
20
|
-
topic: '
|
|
26
|
+
topic: getClientTopic('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
21
27
|
payload: {
|
|
22
28
|
messageType: 'device_stats',
|
|
23
29
|
deviceStats: {
|
|
@@ -30,7 +36,7 @@ const validAgentMessages = [
|
|
|
30
36
|
{
|
|
31
37
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
32
38
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
33
|
-
topic: '
|
|
39
|
+
topic: getClientTopic('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
34
40
|
payload: {
|
|
35
41
|
messageType: 'app_logs',
|
|
36
42
|
appLogs: {
|
|
@@ -42,7 +48,7 @@ const validAgentMessages = [
|
|
|
42
48
|
{
|
|
43
49
|
timestamp: 'Mon, 06 Jun 2022 20:21:46 GMT',
|
|
44
50
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
45
|
-
topic: '
|
|
51
|
+
topic: getClientTopic('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
46
52
|
payload: {
|
|
47
53
|
messageType: 'app_state',
|
|
48
54
|
appState: [
|
|
@@ -64,7 +70,7 @@ const validAgentMessages = [
|
|
|
64
70
|
{
|
|
65
71
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
66
72
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
67
|
-
topic: '
|
|
73
|
+
topic: getClientTopic('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
68
74
|
payload: {
|
|
69
75
|
messageType: 'app_install_status',
|
|
70
76
|
appInstallStatus: {
|
|
@@ -77,7 +83,7 @@ const validAgentMessages = [
|
|
|
77
83
|
{
|
|
78
84
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
79
85
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
80
|
-
topic: '
|
|
86
|
+
topic: getClientTopic('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
81
87
|
payload: {
|
|
82
88
|
messageType: 'app_install_status',
|
|
83
89
|
appInstallStatus: {
|
|
@@ -95,7 +101,7 @@ const invalidAgentMessages = [
|
|
|
95
101
|
{
|
|
96
102
|
timestamp: 'Mon, 06 Jun 2022 20:21:46 GMT',
|
|
97
103
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
98
|
-
topic: '
|
|
104
|
+
topic: getClientTopic('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
99
105
|
payload: {
|
|
100
106
|
messageType: 'device_stats',
|
|
101
107
|
deviceStats: {
|
|
@@ -110,7 +116,7 @@ const invalidAgentMessages = [
|
|
|
110
116
|
{
|
|
111
117
|
timestamp: 'Mon, 06 Jun 2022 20:21:46 GMT',
|
|
112
118
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
113
|
-
topic: '
|
|
119
|
+
topic: getClientTopic('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
114
120
|
payload: {
|
|
115
121
|
messageType: 'device_stats',
|
|
116
122
|
deviceStats: {
|
|
@@ -124,7 +130,7 @@ const invalidAgentMessages = [
|
|
|
124
130
|
{
|
|
125
131
|
timestamp: 'Mon, 06 Jun 2022 20:21:46 GMT',
|
|
126
132
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
127
|
-
topic: '
|
|
133
|
+
topic: getClientTopic('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
128
134
|
payload: {
|
|
129
135
|
messageType: 'app_state',
|
|
130
136
|
applicationState: {
|
|
@@ -137,7 +143,7 @@ const invalidAgentMessages = [
|
|
|
137
143
|
{
|
|
138
144
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
139
145
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
140
|
-
topic: '
|
|
146
|
+
topic: getClientTopic('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
141
147
|
payload: {
|
|
142
148
|
messageType: 'app_logs',
|
|
143
149
|
applicationLogs: {
|
|
@@ -149,7 +155,7 @@ const invalidAgentMessages = [
|
|
|
149
155
|
{
|
|
150
156
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
151
157
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
152
|
-
topic: '
|
|
158
|
+
topic: getClientTopic('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
153
159
|
payload: {
|
|
154
160
|
messageType: 'install_status',
|
|
155
161
|
installationStatus: {
|
|
@@ -163,7 +169,7 @@ const invalidAgentMessages = [
|
|
|
163
169
|
{
|
|
164
170
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
165
171
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
166
|
-
topic: '
|
|
172
|
+
topic: getClientTopic('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
167
173
|
payload: {
|
|
168
174
|
messageType: 'install_status',
|
|
169
175
|
installationStatus: {
|
|
@@ -175,7 +181,7 @@ const invalidAgentMessages = [
|
|
|
175
181
|
{
|
|
176
182
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
177
183
|
deviceId: '68195e4f-045c-4a9e-ae50-b87ed4d611f7',
|
|
178
|
-
topic: '
|
|
184
|
+
topic: getClientTopic('68195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
179
185
|
payload: {
|
|
180
186
|
messageType: 'install_status',
|
|
181
187
|
installationStatus: {
|
|
@@ -189,7 +195,7 @@ const invalidAgentMessages = [
|
|
|
189
195
|
const validClientMessages = [
|
|
190
196
|
{
|
|
191
197
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
192
|
-
topic: '
|
|
198
|
+
topic: getDeviceTopic('8195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
193
199
|
payload: {
|
|
194
200
|
messageType: 'live_state_updates',
|
|
195
201
|
liveUpdatesToggles: {
|
|
@@ -200,7 +206,7 @@ const validClientMessages = [
|
|
|
200
206
|
},
|
|
201
207
|
{
|
|
202
208
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
203
|
-
topic: '
|
|
209
|
+
topic: getDeviceTopic('8195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
204
210
|
payload: {
|
|
205
211
|
messageType: 'app_state_control',
|
|
206
212
|
appStateControl: {
|
|
@@ -211,7 +217,7 @@ const validClientMessages = [
|
|
|
211
217
|
},
|
|
212
218
|
{
|
|
213
219
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
214
|
-
topic: '
|
|
220
|
+
topic: getDeviceTopic('8195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
215
221
|
payload: {
|
|
216
222
|
messageType: 'app_version_control',
|
|
217
223
|
appVersionControl: {
|
|
@@ -226,7 +232,7 @@ const validClientMessages = [
|
|
|
226
232
|
const invalidClientMessages = [
|
|
227
233
|
{
|
|
228
234
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
229
|
-
topic: '
|
|
235
|
+
topic: getDeviceTopic('8195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
230
236
|
payload: {
|
|
231
237
|
messageType: 'live_updates',
|
|
232
238
|
toggle: 56,
|
|
@@ -234,7 +240,7 @@ const invalidClientMessages = [
|
|
|
234
240
|
},
|
|
235
241
|
{
|
|
236
242
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
237
|
-
topic: '
|
|
243
|
+
topic: getDeviceTopic('8195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
238
244
|
payload: {
|
|
239
245
|
messageType: 'app_state_control',
|
|
240
246
|
appStateControl: {
|
|
@@ -245,7 +251,7 @@ const invalidClientMessages = [
|
|
|
245
251
|
},
|
|
246
252
|
{
|
|
247
253
|
timestamp: 'Fri, 27 May 2022 03:47:15 GMT',
|
|
248
|
-
topic: '
|
|
254
|
+
topic: getDeviceTopic('8195e4f-045c-4a9e-ae50-b87ed4d611f7'),
|
|
249
255
|
payload: {
|
|
250
256
|
messageType: 'app_version_control',
|
|
251
257
|
appVersionControl: {
|
package/src/types.ts
CHANGED
|
@@ -23,7 +23,13 @@ import {
|
|
|
23
23
|
liveUpdatesToggleSchema,
|
|
24
24
|
} from './schemas/client/device-agent-action-schema';
|
|
25
25
|
import { AppLogsMessage, appLogsSchema } from './schemas/agent/application-logs-schema';
|
|
26
|
-
import {
|
|
26
|
+
import {
|
|
27
|
+
DEVICE_ID_PATTERN,
|
|
28
|
+
CLIENT_TOPIC_PREFIX,
|
|
29
|
+
CLOUD_TOPIC_PREFIX,
|
|
30
|
+
DEVICE_TOPIC_PREFIX,
|
|
31
|
+
DEVICE_TYPE,
|
|
32
|
+
} from './constants';
|
|
27
33
|
import { loadSchemaAsObject } from './utils';
|
|
28
34
|
import {
|
|
29
35
|
AppInstallStatusMessage,
|
|
@@ -101,12 +107,12 @@ const agentMessageSchema = loadSchemaAsObject({
|
|
|
101
107
|
toCloud: {
|
|
102
108
|
description: 'Messages sent from the agent itself to cloud backend',
|
|
103
109
|
type: 'string',
|
|
104
|
-
pattern:
|
|
110
|
+
pattern: `^${CLOUD_TOPIC_PREFIX}/${DEVICE_TYPE}/${DEVICE_ID_PATTERN}`,
|
|
105
111
|
},
|
|
106
112
|
toClient: {
|
|
107
113
|
description: 'Messages sent from the agent itself to console client',
|
|
108
114
|
type: 'string',
|
|
109
|
-
pattern:
|
|
115
|
+
pattern: `^${CLIENT_TOPIC_PREFIX}/${DEVICE_TYPE}/${DEVICE_ID_PATTERN}`,
|
|
110
116
|
},
|
|
111
117
|
},
|
|
112
118
|
});
|
|
@@ -139,11 +145,20 @@ const clientMessageSchema = loadSchemaAsObject({
|
|
|
139
145
|
message: {
|
|
140
146
|
description: 'Topic on which messages are sent to device agent.',
|
|
141
147
|
type: 'string',
|
|
142
|
-
pattern:
|
|
148
|
+
pattern: `^${DEVICE_TOPIC_PREFIX}/${DEVICE_TYPE}/${DEVICE_ID_PATTERN}`,
|
|
143
149
|
},
|
|
144
150
|
},
|
|
145
151
|
});
|
|
146
152
|
|
|
153
|
+
export const getClientTopic = (deviceUuid: string, deviceType: string = DEVICE_TYPE) =>
|
|
154
|
+
`${CLIENT_TOPIC_PREFIX}/${deviceType}/${deviceUuid}`;
|
|
155
|
+
|
|
156
|
+
export const getCloudTopic = (deviceUuid: string, deviceType: string = DEVICE_TYPE) =>
|
|
157
|
+
`${CLOUD_TOPIC_PREFIX}/${deviceType}/${deviceUuid}`;
|
|
158
|
+
|
|
159
|
+
export const getDeviceTopic = (deviceUuid: string, deviceType: string = DEVICE_TYPE) =>
|
|
160
|
+
`${DEVICE_TOPIC_PREFIX}/${deviceType}/${deviceUuid}`;
|
|
161
|
+
|
|
147
162
|
// Device Agent Message Codec and Validation Method
|
|
148
163
|
const agentMessageSchemaType: JSONSchemaType<DeviceAgentMessage> = agentMessageSchema;
|
|
149
164
|
export const validateDeviceAgentMessage = ajv.compile(agentMessageSchemaType);
|