@alwaysai/device-agent 1.5.0 → 2.0.0
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/config.d.ts.map +1 -1
- package/lib/application-control/config.js +8 -3
- package/lib/application-control/config.js.map +1 -1
- package/lib/application-control/environment-variables.d.ts +1 -5
- package/lib/application-control/environment-variables.d.ts.map +1 -1
- package/lib/application-control/environment-variables.js +9 -26
- package/lib/application-control/environment-variables.js.map +1 -1
- package/lib/application-control/environment-variables.test.js +27 -7
- package/lib/application-control/environment-variables.test.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.map +1 -1
- package/lib/application-control/install.js +8 -7
- package/lib/application-control/install.js.map +1 -1
- package/lib/application-control/models.d.ts +0 -11
- package/lib/application-control/models.d.ts.map +1 -1
- package/lib/application-control/models.js +5 -54
- package/lib/application-control/models.js.map +1 -1
- package/lib/application-control/utils.d.ts +0 -4
- package/lib/application-control/utils.d.ts.map +1 -1
- package/lib/application-control/utils.js +1 -24
- package/lib/application-control/utils.js.map +1 -1
- package/lib/cloud-connection/bootstrap-provision.js +3 -2
- package/lib/cloud-connection/bootstrap-provision.js.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts +10 -15
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.js +279 -250
- 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 +11 -9
- package/lib/cloud-connection/device-agent.js.map +1 -1
- package/lib/cloud-connection/live-updates-handler.d.ts +18 -28
- package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -1
- package/lib/cloud-connection/live-updates-handler.js +54 -169
- package/lib/cloud-connection/live-updates-handler.js.map +1 -1
- package/lib/cloud-connection/live-updates-handler.test.js +71 -165
- package/lib/cloud-connection/live-updates-handler.test.js.map +1 -1
- package/lib/cloud-connection/passthrough-handler.d.ts +4 -1
- package/lib/cloud-connection/passthrough-handler.d.ts.map +1 -1
- package/lib/cloud-connection/passthrough-handler.js +30 -11
- package/lib/cloud-connection/passthrough-handler.js.map +1 -1
- package/lib/cloud-connection/shadow-handler.d.ts +5 -3
- package/lib/cloud-connection/shadow-handler.d.ts.map +1 -1
- package/lib/cloud-connection/shadow-handler.js +59 -27
- package/lib/cloud-connection/shadow-handler.js.map +1 -1
- package/lib/cloud-connection/shadow-handler.test.js +45 -57
- package/lib/cloud-connection/shadow-handler.test.js.map +1 -1
- package/lib/cloud-connection/shadow.d.ts.map +1 -1
- package/lib/cloud-connection/shadow.js +2 -1
- package/lib/cloud-connection/shadow.js.map +1 -1
- package/lib/cloud-connection/transaction-manager.d.ts +4 -2
- package/lib/cloud-connection/transaction-manager.d.ts.map +1 -1
- package/lib/cloud-connection/transaction-manager.js +18 -29
- package/lib/cloud-connection/transaction-manager.js.map +1 -1
- package/lib/cloud-connection/transaction-manager.test.js +3 -3
- package/lib/cloud-connection/transaction-manager.test.js.map +1 -1
- package/lib/device-control/device-control.d.ts +8 -8
- package/lib/device-control/device-control.d.ts.map +1 -1
- package/lib/device-control/device-control.js +95 -71
- package/lib/device-control/device-control.js.map +1 -1
- package/lib/docker/docker-compose.d.ts.map +1 -1
- package/lib/docker/docker-compose.js +2 -1
- package/lib/docker/docker-compose.js.map +1 -1
- package/lib/infrastructure/agent-config.d.ts +2 -1
- package/lib/infrastructure/agent-config.d.ts.map +1 -1
- package/lib/infrastructure/agent-config.js +7 -7
- package/lib/infrastructure/agent-config.js.map +1 -1
- package/lib/infrastructure/agent-config.test.js +3 -1
- package/lib/infrastructure/agent-config.test.js.map +1 -1
- package/lib/infrastructure/config-check-utility.d.ts +6 -0
- package/lib/infrastructure/config-check-utility.d.ts.map +1 -0
- package/lib/infrastructure/config-check-utility.js +67 -0
- package/lib/infrastructure/config-check-utility.js.map +1 -0
- package/lib/infrastructure/config-check-utility.test.d.ts +2 -0
- package/lib/infrastructure/config-check-utility.test.d.ts.map +1 -0
- package/lib/infrastructure/config-check-utility.test.js +109 -0
- package/lib/infrastructure/config-check-utility.test.js.map +1 -0
- package/lib/infrastructure/device-certificate.d.ts +10 -0
- package/lib/infrastructure/device-certificate.d.ts.map +1 -0
- package/lib/infrastructure/device-certificate.js +47 -0
- package/lib/infrastructure/device-certificate.js.map +1 -0
- package/lib/infrastructure/device-certificate.test.d.ts +2 -0
- package/lib/infrastructure/device-certificate.test.d.ts.map +1 -0
- package/lib/infrastructure/device-certificate.test.js +24 -0
- package/lib/infrastructure/device-certificate.test.js.map +1 -0
- package/lib/infrastructure/legacy-migration/legacy-file.test.d.ts +2 -0
- package/lib/infrastructure/legacy-migration/legacy-file.test.d.ts.map +1 -0
- package/lib/infrastructure/legacy-migration/legacy-file.test.js +61 -0
- package/lib/infrastructure/legacy-migration/legacy-file.test.js.map +1 -0
- package/lib/infrastructure/legacy-migration/legacy-files.d.ts +75 -0
- package/lib/infrastructure/legacy-migration/legacy-files.d.ts.map +1 -0
- package/lib/infrastructure/legacy-migration/legacy-files.js +75 -0
- package/lib/infrastructure/legacy-migration/legacy-files.js.map +1 -0
- package/lib/infrastructure/legacy-migration/legacy-migration.d.ts +6 -0
- package/lib/infrastructure/legacy-migration/legacy-migration.d.ts.map +1 -0
- package/lib/infrastructure/legacy-migration/legacy-migration.js +149 -0
- package/lib/infrastructure/legacy-migration/legacy-migration.js.map +1 -0
- package/lib/infrastructure/legacy-migration/legacy-migration.test.d.ts +2 -0
- package/lib/infrastructure/legacy-migration/legacy-migration.test.d.ts.map +1 -0
- package/lib/infrastructure/legacy-migration/legacy-migration.test.js +226 -0
- package/lib/infrastructure/legacy-migration/legacy-migration.test.js.map +1 -0
- package/lib/infrastructure/require-files-present-ready.test.d.ts +2 -0
- package/lib/infrastructure/require-files-present-ready.test.d.ts.map +1 -0
- package/lib/infrastructure/require-files-present-ready.test.js +44 -0
- package/lib/infrastructure/require-files-present-ready.test.js.map +1 -0
- package/lib/infrastructure/required-config-checks.d.ts +2 -0
- package/lib/infrastructure/required-config-checks.d.ts.map +1 -0
- package/lib/infrastructure/required-config-checks.js +30 -0
- package/lib/infrastructure/required-config-checks.js.map +1 -0
- package/lib/infrastructure/tokens-and-device-cfg.d.ts.map +1 -1
- package/lib/infrastructure/tokens-and-device-cfg.js +11 -8
- package/lib/infrastructure/tokens-and-device-cfg.js.map +1 -1
- package/lib/local-connection/rabbitmq-connection.d.ts.map +1 -1
- package/lib/local-connection/rabbitmq-connection.js +14 -14
- package/lib/local-connection/rabbitmq-connection.js.map +1 -1
- package/lib/secure-tunneling/secure-tunneling.d.ts +9 -9
- package/lib/secure-tunneling/secure-tunneling.d.ts.map +1 -1
- package/lib/secure-tunneling/secure-tunneling.js +21 -16
- package/lib/secure-tunneling/secure-tunneling.js.map +1 -1
- package/lib/secure-tunneling/secure-tunneling.test.js +11 -13
- package/lib/secure-tunneling/secure-tunneling.test.js.map +1 -1
- package/lib/subcommands/app/analytics.d.ts.map +1 -1
- package/lib/subcommands/app/analytics.js +1 -2
- package/lib/subcommands/app/analytics.js.map +1 -1
- package/lib/subcommands/app/env-vars.d.ts +4 -0
- package/lib/subcommands/app/env-vars.d.ts.map +1 -1
- package/lib/subcommands/app/env-vars.js +52 -6
- package/lib/subcommands/app/env-vars.js.map +1 -1
- package/lib/subcommands/app/index.d.ts.map +1 -1
- package/lib/subcommands/app/index.js +1 -3
- package/lib/subcommands/app/index.js.map +1 -1
- package/lib/subcommands/app/models.d.ts +0 -11
- package/lib/subcommands/app/models.d.ts.map +1 -1
- package/lib/subcommands/app/models.js +2 -58
- package/lib/subcommands/app/models.js.map +1 -1
- package/lib/subcommands/app/shadow.d.ts.map +1 -1
- package/lib/subcommands/app/shadow.js +6 -5
- package/lib/subcommands/app/shadow.js.map +1 -1
- package/lib/subcommands/app/version.d.ts.map +1 -1
- package/lib/subcommands/app/version.js +2 -4
- package/lib/subcommands/app/version.js.map +1 -1
- package/lib/subcommands/config.d.ts +2 -0
- package/lib/subcommands/config.d.ts.map +1 -0
- package/lib/subcommands/config.js +39 -0
- package/lib/subcommands/config.js.map +1 -0
- package/lib/subcommands/device/clean.d.ts +1 -1
- package/lib/subcommands/device/clean.d.ts.map +1 -1
- package/lib/subcommands/device/clean.js +23 -13
- package/lib/subcommands/device/clean.js.map +1 -1
- package/lib/subcommands/device/index.d.ts.map +1 -1
- package/lib/subcommands/device/index.js +3 -1
- package/lib/subcommands/device/index.js.map +1 -1
- package/lib/subcommands/device/init.js +8 -8
- package/lib/subcommands/device/init.js.map +1 -1
- package/lib/subcommands/device/migrate.d.ts +2 -0
- package/lib/subcommands/device/migrate.d.ts.map +1 -0
- package/lib/subcommands/device/migrate.js +24 -0
- package/lib/subcommands/device/migrate.js.map +1 -0
- package/lib/subcommands/device/refresh.d.ts.map +1 -1
- package/lib/subcommands/device/refresh.js +1 -0
- package/lib/subcommands/device/refresh.js.map +1 -1
- package/lib/subcommands/index.d.ts +1 -1
- package/lib/subcommands/index.d.ts.map +1 -1
- package/lib/subcommands/index.js +3 -1
- package/lib/subcommands/index.js.map +1 -1
- package/lib/subcommands/rabbitmq-connection.d.ts +1 -1
- package/lib/subcommands/rabbitmq-connection.d.ts.map +1 -1
- package/lib/util/aai-error.d.ts +12 -0
- package/lib/util/aai-error.d.ts.map +1 -0
- package/lib/util/aai-error.js +11 -0
- package/lib/util/aai-error.js.map +1 -0
- package/lib/util/aws-regions.d.ts +2 -0
- package/lib/util/aws-regions.d.ts.map +1 -0
- package/lib/util/{cloud-mode-ready.js → aws-regions.js} +2 -20
- package/lib/util/aws-regions.js.map +1 -0
- package/lib/util/check-for-updates.d.ts.map +1 -1
- package/lib/util/check-for-updates.js +5 -28
- package/lib/util/check-for-updates.js.map +1 -1
- package/lib/util/clean-certs.d.ts.map +1 -1
- package/lib/util/clean-certs.js +5 -4
- package/lib/util/clean-certs.js.map +1 -1
- package/lib/util/directories.d.ts +4 -18
- package/lib/util/directories.d.ts.map +1 -1
- package/lib/util/directories.js +18 -32
- package/lib/util/directories.js.map +1 -1
- package/lib/util/file.d.ts +4 -0
- package/lib/util/file.d.ts.map +1 -1
- package/lib/util/file.js +65 -4
- package/lib/util/file.js.map +1 -1
- package/lib/util/get-device-id.d.ts.map +1 -1
- package/lib/util/get-device-id.js +7 -1
- package/lib/util/get-device-id.js.map +1 -1
- package/lib/util/http-client.js +3 -3
- package/lib/util/http-client.js.map +1 -1
- package/package.json +19 -17
- package/readme.md +12 -32
- package/src/application-control/config.ts +9 -12
- package/src/application-control/environment-variables.test.ts +28 -7
- package/src/application-control/environment-variables.ts +13 -40
- package/src/application-control/index.ts +3 -16
- package/src/application-control/install.ts +15 -10
- package/src/application-control/models.ts +6 -87
- package/src/application-control/utils.ts +0 -28
- package/src/cloud-connection/bootstrap-provision.ts +7 -7
- package/src/cloud-connection/device-agent-cloud-connection.ts +639 -525
- package/src/cloud-connection/device-agent.ts +16 -7
- package/src/cloud-connection/live-updates-handler.test.ts +121 -189
- package/src/cloud-connection/live-updates-handler.ts +99 -234
- package/src/cloud-connection/passthrough-handler.ts +55 -18
- package/src/cloud-connection/shadow-handler.test.ts +45 -57
- package/src/cloud-connection/shadow-handler.ts +103 -57
- package/src/cloud-connection/shadow.ts +4 -1
- package/src/cloud-connection/transaction-manager.test.ts +3 -3
- package/src/cloud-connection/transaction-manager.ts +53 -39
- package/src/device-control/device-control.ts +102 -70
- package/src/docker/docker-compose.ts +3 -2
- package/src/infrastructure/agent-config.test.ts +6 -2
- package/src/infrastructure/agent-config.ts +8 -7
- package/src/infrastructure/config-check-utility.test.ts +154 -0
- package/src/infrastructure/config-check-utility.ts +77 -0
- package/src/infrastructure/device-certificate.test.ts +40 -0
- package/src/infrastructure/device-certificate.ts +58 -0
- package/src/infrastructure/legacy-migration/legacy-file.test.ts +88 -0
- package/src/infrastructure/legacy-migration/legacy-files.ts +101 -0
- package/src/infrastructure/legacy-migration/legacy-migration.test.ts +396 -0
- package/src/infrastructure/legacy-migration/legacy-migration.ts +229 -0
- package/src/infrastructure/require-files-present-ready.test.ts +53 -0
- package/src/infrastructure/required-config-checks.ts +33 -0
- package/src/infrastructure/tokens-and-device-cfg.ts +12 -10
- package/src/local-connection/rabbitmq-connection.ts +22 -17
- package/src/secure-tunneling/secure-tunneling.test.ts +20 -22
- package/src/secure-tunneling/secure-tunneling.ts +41 -29
- package/src/subcommands/app/analytics.ts +2 -4
- package/src/subcommands/app/env-vars.ts +72 -9
- package/src/subcommands/app/index.ts +3 -11
- package/src/subcommands/app/models.ts +5 -81
- package/src/subcommands/app/shadow.ts +6 -5
- package/src/subcommands/app/version.ts +3 -4
- package/src/subcommands/config.ts +42 -0
- package/src/subcommands/device/clean.ts +31 -17
- package/src/subcommands/device/index.ts +3 -1
- package/src/subcommands/device/init.ts +11 -11
- package/src/subcommands/device/migrate.ts +20 -0
- package/src/subcommands/device/refresh.ts +1 -0
- package/src/subcommands/index.ts +3 -1
- package/src/util/aai-error.ts +20 -0
- package/src/util/{cloud-mode-ready.ts → aws-regions.ts} +0 -24
- package/src/util/check-for-updates.ts +14 -30
- package/src/util/clean-certs.ts +8 -4
- package/src/util/directories.ts +23 -67
- package/src/util/file.ts +83 -3
- package/src/util/get-device-id.ts +7 -7
- package/src/util/http-client.ts +2 -2
- package/lib/util/cloud-mode-ready.d.ts +0 -3
- package/lib/util/cloud-mode-ready.d.ts.map +0 -1
- package/lib/util/cloud-mode-ready.js.map +0 -1
- package/lib/util/download-file.d.ts +0 -6
- package/lib/util/download-file.d.ts.map +0 -1
- package/lib/util/download-file.js +0 -25
- package/lib/util/download-file.js.map +0 -1
- package/lib/util/fetch-with-timeout.d.ts +0 -4
- package/lib/util/fetch-with-timeout.d.ts.map +0 -1
- package/lib/util/fetch-with-timeout.js +0 -30
- package/lib/util/fetch-with-timeout.js.map +0 -1
- package/lib/util/parsing.d.ts +0 -2
- package/lib/util/parsing.d.ts.map +0 -1
- package/lib/util/parsing.js +0 -17
- package/lib/util/parsing.js.map +0 -1
- package/src/util/download-file.ts +0 -25
- package/src/util/fetch-with-timeout.ts +0 -35
- package/src/util/parsing.ts +0 -11
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LEGACY_CREDENTIALS_FILE_DIR = exports.LegacyFiles = exports.LegacyAaiConfigFile = exports.validateLegacyAaiConfig = exports.legacyAaiConfigSchema = exports.LEGACY_AAI_CONFIG_FILE_DIR = void 0;
|
|
4
|
+
const config_nodejs_1 = require("@alwaysai/config-nodejs");
|
|
5
|
+
const ajv_1 = require("ajv");
|
|
6
|
+
const constants_1 = require("alwaysai/lib/constants");
|
|
7
|
+
const infrastructure_1 = require("alwaysai/lib/infrastructure");
|
|
8
|
+
const paths_1 = require("alwaysai/lib/paths");
|
|
9
|
+
const path_1 = require("path");
|
|
10
|
+
const directories_1 = require("../../util/directories");
|
|
11
|
+
const agent_config_1 = require("../agent-config");
|
|
12
|
+
// alwaysai.config.json
|
|
13
|
+
exports.LEGACY_AAI_CONFIG_FILE_DIR = (0, path_1.join)(paths_1.LOCAL_AAI_CFG_DIR, paths_1.ALWAYSAI_CONFIG_FILE_NAME);
|
|
14
|
+
exports.legacyAaiConfigSchema = {
|
|
15
|
+
type: 'object',
|
|
16
|
+
properties: {
|
|
17
|
+
systemId: {
|
|
18
|
+
type: 'string',
|
|
19
|
+
enum: constants_1.SYSTEM_IDS
|
|
20
|
+
},
|
|
21
|
+
deviceUuid: {
|
|
22
|
+
type: 'string'
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
required: ['systemId', 'deviceUuid']
|
|
26
|
+
};
|
|
27
|
+
const ajv = new ajv_1.default();
|
|
28
|
+
exports.validateLegacyAaiConfig = ajv.compile(exports.legacyAaiConfigSchema);
|
|
29
|
+
function LegacyAaiConfigFile(baseDir) {
|
|
30
|
+
const filePath = baseDir
|
|
31
|
+
? (0, path_1.join)(baseDir, paths_1.ALWAYSAI_CONFIG_FILE_NAME)
|
|
32
|
+
: exports.LEGACY_AAI_CONFIG_FILE_DIR;
|
|
33
|
+
const configFile = (0, config_nodejs_1.ConfigFileSchema)({
|
|
34
|
+
path: filePath,
|
|
35
|
+
validateFunction: exports.validateLegacyAaiConfig
|
|
36
|
+
});
|
|
37
|
+
return configFile;
|
|
38
|
+
}
|
|
39
|
+
exports.LegacyAaiConfigFile = LegacyAaiConfigFile;
|
|
40
|
+
function LegacyFiles(baseDir) {
|
|
41
|
+
const filePath = baseDir !== null && baseDir !== void 0 ? baseDir : paths_1.LOCAL_AAI_CFG_DIR;
|
|
42
|
+
const legacyCertificates = new infrastructure_1.LocalLegacyDeviceCertificates(filePath);
|
|
43
|
+
const legacyCredentialsFileDirPath = (0, path_1.join)(filePath, paths_1.DEVICE_TOKEN_FILE_NAME);
|
|
44
|
+
const legacyCertificateDirPath = legacyCertificates.getCertificateDirectoryPath();
|
|
45
|
+
const legacyAgentConfigFile = (0, agent_config_1.AgentConfigFile)((0, path_1.join)(filePath, agent_config_1.AGENT_CONFIG_FILE_NAME));
|
|
46
|
+
const legacyAaiCfgFileDirPath = (0, path_1.join)(filePath, paths_1.ALWAYSAI_CONFIG_FILE_NAME);
|
|
47
|
+
const legacyAgentCfgFileDirPath = (0, path_1.join)(filePath, agent_config_1.AGENT_CONFIG_FILE_NAME);
|
|
48
|
+
const legacyDeviceAgentCfgPath = (0, path_1.join)(filePath, directories_1.DEVICE_AGENT_CFG_DIR);
|
|
49
|
+
return {
|
|
50
|
+
getFilePath() {
|
|
51
|
+
return filePath;
|
|
52
|
+
},
|
|
53
|
+
getLegacyAgentConfigFile() {
|
|
54
|
+
return legacyAgentConfigFile;
|
|
55
|
+
},
|
|
56
|
+
getLegacyCertificates() {
|
|
57
|
+
return legacyCertificates;
|
|
58
|
+
},
|
|
59
|
+
getLegacyDeviceAgentConfigDirPath() {
|
|
60
|
+
return legacyDeviceAgentCfgPath;
|
|
61
|
+
},
|
|
62
|
+
getLegacyFileMigrationPaths() {
|
|
63
|
+
return {
|
|
64
|
+
deviceCerts: legacyCertificateDirPath,
|
|
65
|
+
credentialsConfig: legacyCredentialsFileDirPath,
|
|
66
|
+
aaiConfig: legacyAaiCfgFileDirPath,
|
|
67
|
+
agentConfig: legacyAgentCfgFileDirPath
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
exports.LegacyFiles = LegacyFiles;
|
|
73
|
+
// alwaysai.credentials.json
|
|
74
|
+
exports.LEGACY_CREDENTIALS_FILE_DIR = (0, path_1.join)(paths_1.LOCAL_AAI_CFG_DIR, paths_1.DEVICE_TOKEN_FILE_NAME);
|
|
75
|
+
//# sourceMappingURL=legacy-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-files.js","sourceRoot":"","sources":["../../../src/infrastructure/legacy-migration/legacy-files.ts"],"names":[],"mappings":";;;AAAA,2DAGiC;AACjC,6BAA0C;AAC1C,sDAA8D;AAC9D,gEAA4E;AAC5E,8CAI4B;AAC5B,+BAA4B;AAC5B,wDAA8D;AAC9D,kDAA0E;AAE1E,uBAAuB;AACV,QAAA,0BAA0B,GAAG,IAAA,WAAI,EAC5C,yBAAiB,EACjB,iCAAyB,CAC1B,CAAC;AAOW,QAAA,qBAAqB,GAAoC;IACpE,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,sBAAU;SACjB;QACD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;SACf;KACF;IACD,QAAQ,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;CACrC,CAAC;AAEF,MAAM,GAAG,GAAG,IAAI,aAAG,EAAE,CAAC;AAET,QAAA,uBAAuB,GAAG,GAAG,CAAC,OAAO,CAAC,6BAAqB,CAAC,CAAC;AAE1E,SAAgB,mBAAmB,CACjC,OAAgB;IAEhB,MAAM,QAAQ,GAAG,OAAO;QACtB,CAAC,CAAC,IAAA,WAAI,EAAC,OAAO,EAAE,iCAAyB,CAAC;QAC1C,CAAC,CAAC,kCAA0B,CAAC;IAC/B,MAAM,UAAU,GAAG,IAAA,gCAAgB,EAAC;QAClC,IAAI,EAAE,QAAQ;QACd,gBAAgB,EAAE,+BAAuB;KAC1C,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAZD,kDAYC;AAED,SAAgB,WAAW,CAAC,OAAgB;IAC1C,MAAM,QAAQ,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,yBAAiB,CAAC;IAC9C,MAAM,kBAAkB,GAAG,IAAI,8CAA6B,CAAC,QAAQ,CAAC,CAAC;IACvE,MAAM,4BAA4B,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,8BAAsB,CAAC,CAAC;IAC5E,MAAM,wBAAwB,GAC5B,kBAAkB,CAAC,2BAA2B,EAAE,CAAC;IACnD,MAAM,qBAAqB,GAAG,IAAA,8BAAe,EAC3C,IAAA,WAAI,EAAC,QAAQ,EAAE,qCAAsB,CAAC,CACvC,CAAC;IACF,MAAM,uBAAuB,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,iCAAyB,CAAC,CAAC;IAC1E,MAAM,yBAAyB,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,qCAAsB,CAAC,CAAC;IACzE,MAAM,wBAAwB,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,kCAAoB,CAAC,CAAC;IAEtE,OAAO;QACL,WAAW;YACT,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,wBAAwB;YACtB,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QACD,qBAAqB;YACnB,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QACD,iCAAiC;YAC/B,OAAO,wBAAwB,CAAC;QAClC,CAAC;QACD,2BAA2B;YACzB,OAAO;gBACL,WAAW,EAAE,wBAAwB;gBACrC,iBAAiB,EAAE,4BAA4B;gBAC/C,SAAS,EAAE,uBAAuB;gBAClC,WAAW,EAAE,yBAAyB;aACvC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAnCD,kCAmCC;AAED,4BAA4B;AACf,QAAA,2BAA2B,GAAG,IAAA,WAAI,EAC7C,yBAAiB,EACjB,8BAAsB,CACvB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { LegacyAaiConfig } from './legacy-files';
|
|
2
|
+
export declare function migrateAgentConfigFile(baseDir?: string): Promise<void>;
|
|
3
|
+
export declare function migrateCertificates(baseDir?: string): Promise<void>;
|
|
4
|
+
export declare function migrateDeviceTokens(parsedAaiCfg: LegacyAaiConfig, baseDir?: string): Promise<void>;
|
|
5
|
+
export declare function migrateFromLegacyCertsAndTokens(baseDir?: string): Promise<boolean>;
|
|
6
|
+
//# sourceMappingURL=legacy-migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-migration.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/legacy-migration/legacy-migration.ts"],"names":[],"mappings":"AA8BA,OAAO,EAEL,eAAe,EAGhB,MAAM,gBAAgB,CAAC;AAMxB,wBAAsB,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,iBA8C5D;AAED,wBAAsB,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,iBAiBzD;AAED,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,eAAe,EAC7B,OAAO,CAAC,EAAE,MAAM,iBAyCjB;AAED,wBAAsB,+BAA+B,CACnD,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAyElB"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.migrateFromLegacyCertsAndTokens = exports.migrateDeviceTokens = exports.migrateCertificates = exports.migrateAgentConfigFile = void 0;
|
|
4
|
+
const device_1 = require("alwaysai/lib/core/device");
|
|
5
|
+
const infrastructure_1 = require("alwaysai/lib/infrastructure");
|
|
6
|
+
const paths_1 = require("alwaysai/lib/paths");
|
|
7
|
+
const util_1 = require("alwaysai/lib/util");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const rimraf_1 = require("rimraf");
|
|
10
|
+
const rabbitmq_connection_1 = require("../../local-connection/rabbitmq-connection");
|
|
11
|
+
const copy_dir_1 = require("../../util/copy-dir");
|
|
12
|
+
const directories_1 = require("../../util/directories");
|
|
13
|
+
const logger_1 = require("../../util/logger");
|
|
14
|
+
const agent_config_1 = require("../agent-config");
|
|
15
|
+
const config_check_utility_1 = require("../config-check-utility");
|
|
16
|
+
const device_certificate_1 = require("../device-certificate");
|
|
17
|
+
const required_config_checks_1 = require("../required-config-checks");
|
|
18
|
+
const legacy_files_1 = require("./legacy-files");
|
|
19
|
+
/*===================================================================
|
|
20
|
+
Migration Code
|
|
21
|
+
===================================================================*/
|
|
22
|
+
async function migrateAgentConfigFile(baseDir) {
|
|
23
|
+
logger_1.logger.debug('Migrating agent configuration file');
|
|
24
|
+
const legacyFiles = (0, legacy_files_1.LegacyFiles)(baseDir);
|
|
25
|
+
const legacyAgentConfigFile = legacyFiles.getLegacyAgentConfigFile();
|
|
26
|
+
const newAgentConfig = (0, agent_config_1.AgentConfigFile)((0, path_1.join)(baseDir !== null && baseDir !== void 0 ? baseDir : paths_1.LOCAL_AAI_CFG_DIR, (0, infrastructure_1.getDeviceConfigPath)(), agent_config_1.AGENT_CONFIG_FILE_NAME));
|
|
27
|
+
let parsedAgentConfig;
|
|
28
|
+
try {
|
|
29
|
+
parsedAgentConfig = legacyAgentConfigFile.read();
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
logger_1.logger.error(`Error reading agent config for:\n${(0, util_1.stringifyError)(e)}`);
|
|
33
|
+
logger_1.logger.error(`Agent Config Errors: ${JSON.stringify(legacyAgentConfigFile.getErrors(), null, 2)}`);
|
|
34
|
+
throw new Error(`Could not parse ${legacyAgentConfigFile.path} while migrating your legacy device files.`);
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
newAgentConfig.write(parsedAgentConfig);
|
|
38
|
+
// since this file is owned by the Device Agent
|
|
39
|
+
// we can remove it after migrating it
|
|
40
|
+
await (0, rimraf_1.default)(legacyAgentConfigFile.path);
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
logger_1.logger.error(`Error writing agent config for:\n${(0, util_1.stringifyError)(e)}`);
|
|
44
|
+
logger_1.logger.error(`Agent Config Errors: ${JSON.stringify(newAgentConfig.getErrors(), null, 2)}`);
|
|
45
|
+
throw new Error(`Could not parse ${newAgentConfig.path} while migrating your legacy device files.`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.migrateAgentConfigFile = migrateAgentConfigFile;
|
|
49
|
+
async function migrateCertificates(baseDir) {
|
|
50
|
+
logger_1.logger.debug(`baseDir ${baseDir}`);
|
|
51
|
+
const legacyFiles = (0, legacy_files_1.LegacyFiles)(baseDir);
|
|
52
|
+
const legacyCerts = legacyFiles.getLegacyCertificates();
|
|
53
|
+
const newDeviceCertificates = new infrastructure_1.LocalDeviceCertificates(baseDir ? (0, path_1.join)(baseDir, (0, infrastructure_1.getDeviceConfigPath)()) : undefined);
|
|
54
|
+
const spawner = (0, util_1.JsSpawner)(baseDir ? { path: baseDir } : {});
|
|
55
|
+
await spawner.mkdirp((0, path_1.join)(newDeviceCertificates.getCertificateDirectoryPath()));
|
|
56
|
+
await (0, copy_dir_1.copyDir)({
|
|
57
|
+
srcPath: legacyCerts.getCertificateDirectoryPath(),
|
|
58
|
+
destPath: newDeviceCertificates.getCertificateDirectoryPath()
|
|
59
|
+
});
|
|
60
|
+
await (0, rimraf_1.default)((0, device_certificate_1.getBootstrapCertificateDirectoryPath)(baseDir));
|
|
61
|
+
}
|
|
62
|
+
exports.migrateCertificates = migrateCertificates;
|
|
63
|
+
async function migrateDeviceTokens(parsedAaiCfg, baseDir) {
|
|
64
|
+
const systemId = (0, infrastructure_1.getSystemId)();
|
|
65
|
+
const deviceConfigDir = baseDir
|
|
66
|
+
? (0, path_1.join)(baseDir, (0, infrastructure_1.getDeviceConfigPath)(), infrastructure_1.DEVICE_CONFIG_FILE_NAME)
|
|
67
|
+
: baseDir;
|
|
68
|
+
const deviceConfig = (0, device_1.DeviceConfigFile)(deviceConfigDir);
|
|
69
|
+
const deviceUuid = parsedAaiCfg === null || parsedAaiCfg === void 0 ? void 0 : parsedAaiCfg.deviceUuid;
|
|
70
|
+
if (!deviceUuid) {
|
|
71
|
+
throw new Error(`deviceUuid not found in ${paths_1.ALWAYSAI_CONFIG_FILE_NAME}.`);
|
|
72
|
+
}
|
|
73
|
+
let legacyCredentialsFile;
|
|
74
|
+
if (baseDir) {
|
|
75
|
+
legacyCredentialsFile = (0, infrastructure_1.CredentialsJsonFile)((0, path_1.join)(baseDir, paths_1.DEVICE_TOKEN_FILE_NAME));
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
legacyCredentialsFile = (0, infrastructure_1.CredentialsJsonFile)(legacy_files_1.LEGACY_CREDENTIALS_FILE_DIR);
|
|
79
|
+
}
|
|
80
|
+
const legacyDeviceId = legacyCredentialsFile.getItem('deviceId');
|
|
81
|
+
const legacyTokens = {
|
|
82
|
+
accessToken: legacyCredentialsFile.getItem('accessToken'),
|
|
83
|
+
refreshToken: legacyCredentialsFile.getItem('refreshToken'),
|
|
84
|
+
idToken: legacyCredentialsFile.getItem('idToken')
|
|
85
|
+
};
|
|
86
|
+
const migratedTokens = Object.assign(Object.assign({}, legacyTokens), { systemId,
|
|
87
|
+
deviceUuid });
|
|
88
|
+
if (legacyDeviceId !== migratedTokens.deviceUuid) {
|
|
89
|
+
throw new Error(`deviceUuid from ${legacy_files_1.LEGACY_CREDENTIALS_FILE_DIR} (${legacyDeviceId}) and ${paths_1.ALWAYSAI_CONFIG_FILE_NAME} (${migratedTokens.deviceUuid}) do not match.`);
|
|
90
|
+
}
|
|
91
|
+
logger_1.logger.debug('Copying tokens to new device config file.');
|
|
92
|
+
deviceConfig.write(migratedTokens);
|
|
93
|
+
}
|
|
94
|
+
exports.migrateDeviceTokens = migrateDeviceTokens;
|
|
95
|
+
async function migrateFromLegacyCertsAndTokens(baseDir) {
|
|
96
|
+
const requiredConfiguration = await (0, required_config_checks_1.requiredConfigFilesPresentAndValid)(baseDir);
|
|
97
|
+
if (requiredConfiguration) {
|
|
98
|
+
logger_1.logger.debug('Device appears to be properly configured, no migration needed.');
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
const legacyFiles = (0, legacy_files_1.LegacyFiles)(baseDir);
|
|
102
|
+
const legacyFilePaths = legacyFiles.getLegacyFileMigrationPaths();
|
|
103
|
+
const legacyFilesPresent = await (0, config_check_utility_1.checkAllFilesArePresent)(Object.values(legacyFilePaths));
|
|
104
|
+
if (legacyFilesPresent) {
|
|
105
|
+
logger_1.logger.debug('Legacy certs and config files found. Migrating device certs and config files to updated folders.');
|
|
106
|
+
// get device ID from original in order to pass to new AaiCfgFile
|
|
107
|
+
const aaiConfig = (0, legacy_files_1.LegacyAaiConfigFile)(baseDir);
|
|
108
|
+
let parsedAaiCfg;
|
|
109
|
+
try {
|
|
110
|
+
parsedAaiCfg = aaiConfig.read();
|
|
111
|
+
}
|
|
112
|
+
catch (e) {
|
|
113
|
+
logger_1.logger.error(`Error reading AAI config for:\n${(0, util_1.stringifyError)(e)}`);
|
|
114
|
+
logger_1.logger.error(`${JSON.stringify(aaiConfig.getErrors(), null, 2)}`);
|
|
115
|
+
throw new Error(`Could not parse ${aaiConfig.path} while migrating your legacy device files.`);
|
|
116
|
+
}
|
|
117
|
+
// migrate deviceID to new alwaysai.device.json
|
|
118
|
+
await migrateDeviceTokens(parsedAaiCfg, baseDir);
|
|
119
|
+
// migrate certificates
|
|
120
|
+
logger_1.logger.debug('Copying legacy certificates to new file path.');
|
|
121
|
+
await migrateCertificates(baseDir);
|
|
122
|
+
// migrate alwaysai.agent.json to device folder
|
|
123
|
+
logger_1.logger.debug('Copying agent config file to new file path.');
|
|
124
|
+
await migrateAgentConfigFile(baseDir);
|
|
125
|
+
// if rabbitmq container is present, stop container and migrate files
|
|
126
|
+
try {
|
|
127
|
+
if (await (0, rabbitmq_connection_1.checkRabbitMQContainerRunning)()) {
|
|
128
|
+
await (0, rabbitmq_connection_1.stopRabbitMQContainer)();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
catch (e) {
|
|
132
|
+
logger_1.logger.error(`You may need to manually stop the container by running docker-compose down in the following directory: ${(0, directories_1.getDeviceAgentDockerComposePath)()}`);
|
|
133
|
+
logger_1.logger.debug(`Error in checking / stopping RabbitMQ container!\n${(0, util_1.stringifyError)(e)}`);
|
|
134
|
+
}
|
|
135
|
+
if (await (0, util_1.exists)((0, directories_1.getDeviceAgentConfigPath)(baseDir))) {
|
|
136
|
+
await (0, copy_dir_1.copyDir)({
|
|
137
|
+
srcPath: legacyFiles.getLegacyDeviceAgentConfigDirPath(),
|
|
138
|
+
destPath: (0, directories_1.getDeviceAgentConfigPath)(baseDir)
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
// For now, do not remove the legacy files to support legacy edgeIQ
|
|
142
|
+
logger_1.logger.debug(`Device certs and tokens migrated successfully from legacy.`);
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
logger_1.logger.debug('No legacy cert or config files found. Skipping migration.');
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
exports.migrateFromLegacyCertsAndTokens = migrateFromLegacyCertsAndTokens;
|
|
149
|
+
//# sourceMappingURL=legacy-migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-migration.js","sourceRoot":"","sources":["../../../src/infrastructure/legacy-migration/legacy-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-migration.test.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/legacy-migration/legacy-migration.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const constants_1 = require("alwaysai/lib/constants");
|
|
4
|
+
const device_1 = require("alwaysai/lib/core/device");
|
|
5
|
+
const infrastructure_1 = require("alwaysai/lib/infrastructure");
|
|
6
|
+
const paths_1 = require("alwaysai/lib/paths");
|
|
7
|
+
const util_1 = require("alwaysai/lib/util");
|
|
8
|
+
const fs_1 = require("fs");
|
|
9
|
+
const path_1 = require("path");
|
|
10
|
+
const rimraf_1 = require("rimraf");
|
|
11
|
+
const tempy = require("tempy");
|
|
12
|
+
const agent_config_1 = require("../agent-config");
|
|
13
|
+
const config_check_utility_1 = require("../config-check-utility");
|
|
14
|
+
const device_certificate_1 = require("../device-certificate");
|
|
15
|
+
const required_config_checks_1 = require("../required-config-checks");
|
|
16
|
+
const legacy_files_1 = require("./legacy-files");
|
|
17
|
+
const legacy_migration_1 = require("./legacy-migration");
|
|
18
|
+
describe('test migrateFromLegacyCertsAndTokens function', () => {
|
|
19
|
+
let tmpDir;
|
|
20
|
+
tmpDir = tempy.directory();
|
|
21
|
+
beforeAll(async () => {
|
|
22
|
+
jest.resetModules();
|
|
23
|
+
jest.clearAllMocks();
|
|
24
|
+
tmpDir = tempy.directory();
|
|
25
|
+
});
|
|
26
|
+
afterAll(async () => {
|
|
27
|
+
await (0, rimraf_1.rimraf)(tmpDir);
|
|
28
|
+
});
|
|
29
|
+
async function setupCurrentFiles(spawner, aaiConfig, deviceConfig) {
|
|
30
|
+
await spawner.mkdirp((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)()));
|
|
31
|
+
await spawner.writeFile((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)(), infrastructure_1.DEVICE_CONFIG_FILE_NAME), JSON.stringify(deviceConfig));
|
|
32
|
+
spawner.writeFile((0, path_1.join)(tmpDir, paths_1.ALWAYSAI_CONFIG_FILE_NAME), JSON.stringify(aaiConfig));
|
|
33
|
+
const testCerts = new infrastructure_1.LocalDeviceCertificates(tmpDir);
|
|
34
|
+
const certFilePath = testCerts.getCertificateDirectoryName();
|
|
35
|
+
await spawner.mkdirp((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)(), certFilePath));
|
|
36
|
+
await spawner.writeFile((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)(), certFilePath, testCerts.getCertificateFileName()), 'certificate data');
|
|
37
|
+
await spawner.writeFile((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)(), certFilePath, testCerts.getPrivateKeyFileName()), 'private key data');
|
|
38
|
+
await spawner.writeFile((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)(), certFilePath, testCerts.getRootCertificateFileName()), 'root cert data');
|
|
39
|
+
}
|
|
40
|
+
async function setupLegacyFiles(spawner, aaiConfig, deviceConfig, agentConfig) {
|
|
41
|
+
const testCerts = new infrastructure_1.LocalLegacyDeviceCertificates(tmpDir);
|
|
42
|
+
const certFilePath = testCerts.getCertificateDirectoryPath();
|
|
43
|
+
await spawner.mkdirp(certFilePath);
|
|
44
|
+
await spawner.writeFile((0, path_1.join)(tmpDir, paths_1.DEVICE_TOKEN_FILE_NAME), JSON.stringify(deviceConfig));
|
|
45
|
+
spawner.writeFile((0, path_1.join)(tmpDir, paths_1.ALWAYSAI_CONFIG_FILE_NAME), JSON.stringify(aaiConfig));
|
|
46
|
+
spawner.writeFile((0, path_1.join)(tmpDir, agent_config_1.AGENT_CONFIG_FILE_NAME), JSON.stringify(agentConfig));
|
|
47
|
+
await spawner.mkdirp(certFilePath);
|
|
48
|
+
await spawner.mkdirp((0, path_1.join)(certFilePath, 'bootstrap-certificates'));
|
|
49
|
+
await spawner.writeFile((0, path_1.join)(testCerts.getCertificateFilePath()), 'certificate data');
|
|
50
|
+
await spawner.writeFile((0, path_1.join)(testCerts.getPrivateKeyFilePath()), 'private key data');
|
|
51
|
+
await spawner.writeFile((0, path_1.join)(testCerts.getRootCertificateFilePath()), 'root cert data');
|
|
52
|
+
await spawner.writeFile((0, path_1.join)(testCerts.getCertificateIdFilePath()), 'certificate ID data');
|
|
53
|
+
await spawner.writeFile((0, path_1.join)(certFilePath, 'bootstrap-certificates', (0, device_certificate_1.getBootstrapCertificateFileName)()), 'certificate data');
|
|
54
|
+
await spawner.writeFile((0, path_1.join)(certFilePath, 'bootstrap-certificates', (0, device_certificate_1.getBootstrapPrivateKeyFileName)()), 'private key data');
|
|
55
|
+
await spawner.writeFile((0, path_1.join)(certFilePath, 'bootstrap-certificates', (0, device_certificate_1.getBootstrapIDFileName)()), 'root cert data');
|
|
56
|
+
}
|
|
57
|
+
test('test current files present migration does not happen', async () => {
|
|
58
|
+
const spawner = (0, util_1.JsSpawner)({ path: tmpDir });
|
|
59
|
+
const legacyCredentialsConfig = {
|
|
60
|
+
deviceId: '123-4567-8910-1234',
|
|
61
|
+
refreshToken: 'refresh',
|
|
62
|
+
accessToken: 'access',
|
|
63
|
+
idToken: 'id'
|
|
64
|
+
};
|
|
65
|
+
const aaiConfig = {
|
|
66
|
+
systemId: constants_1.SystemId.production,
|
|
67
|
+
deviceUuid: '123-4567-8910-1234'
|
|
68
|
+
};
|
|
69
|
+
// set up migrated/current configuration files
|
|
70
|
+
await setupCurrentFiles(spawner, legacyCredentialsConfig, aaiConfig);
|
|
71
|
+
const migrated = await (0, legacy_migration_1.migrateFromLegacyCertsAndTokens)(tmpDir);
|
|
72
|
+
// check migration not called
|
|
73
|
+
expect(migrated).toBe(false);
|
|
74
|
+
});
|
|
75
|
+
test('test no legacy files migration does not happen', async () => {
|
|
76
|
+
const testCerts = new infrastructure_1.LocalDeviceCertificates(tmpDir);
|
|
77
|
+
const certFilePath = testCerts.getCertificateDirectoryName();
|
|
78
|
+
// check pre-conditions
|
|
79
|
+
expect(await (0, util_1.exists)((0, path_1.join)(tmpDir, certFilePath))).toBe(false);
|
|
80
|
+
expect(await (0, util_1.exists)((0, path_1.join)(tmpDir, infrastructure_1.DEVICE_CONFIG_FILE_NAME))).toBe(false);
|
|
81
|
+
expect(await (0, util_1.exists)((0, path_1.join)(tmpDir, infrastructure_1.DEVICE_CONFIG_FILE_NAME))).toBe(false);
|
|
82
|
+
const migrated = await (0, legacy_migration_1.migrateFromLegacyCertsAndTokens)(tmpDir);
|
|
83
|
+
// check migration not called
|
|
84
|
+
expect(migrated).toBe(false);
|
|
85
|
+
});
|
|
86
|
+
it('test legacy files present but invalid and no current files present migration does not happen', async () => {
|
|
87
|
+
const spawner = (0, util_1.JsSpawner)({ path: tmpDir });
|
|
88
|
+
const legacyCredentialsConfig = {
|
|
89
|
+
deviceId: '123-abcd-8910-1234',
|
|
90
|
+
refreshToken: 'refresh',
|
|
91
|
+
accessToken: 'access',
|
|
92
|
+
idToken: 'id'
|
|
93
|
+
};
|
|
94
|
+
const aaiConfig = {
|
|
95
|
+
systemId: constants_1.SystemId.production,
|
|
96
|
+
deviceUuid: '123-4567-8910-1234'
|
|
97
|
+
};
|
|
98
|
+
const agentConfig = {
|
|
99
|
+
applications: []
|
|
100
|
+
};
|
|
101
|
+
// set up legacy files
|
|
102
|
+
await setupLegacyFiles(spawner, aaiConfig, legacyCredentialsConfig, agentConfig);
|
|
103
|
+
// confirm legacy files present and valid
|
|
104
|
+
const legacyFiles = (0, legacy_files_1.LegacyFiles)(tmpDir);
|
|
105
|
+
const legacyFilePaths = legacyFiles.getLegacyFileMigrationPaths();
|
|
106
|
+
const legacyFilesPresent = await (0, config_check_utility_1.checkAllFilesArePresent)(Object.values(legacyFilePaths));
|
|
107
|
+
expect(legacyFilesPresent).toBe(true);
|
|
108
|
+
// confirm that an error is thrown when the deviceUuid !== deviceId
|
|
109
|
+
await expect((0, legacy_migration_1.migrateFromLegacyCertsAndTokens)(tmpDir)).rejects.toThrowError();
|
|
110
|
+
});
|
|
111
|
+
it('test legacy files present and no current files present migration does happen', async () => {
|
|
112
|
+
const spawner = (0, util_1.JsSpawner)({ path: tmpDir });
|
|
113
|
+
const legacyCredentialsConfig = {
|
|
114
|
+
deviceId: '123-4567-8910-1234',
|
|
115
|
+
refreshToken: 'refresh',
|
|
116
|
+
accessToken: 'access',
|
|
117
|
+
idToken: 'id'
|
|
118
|
+
};
|
|
119
|
+
const aaiConfig = {
|
|
120
|
+
systemId: constants_1.SystemId.production,
|
|
121
|
+
deviceUuid: '123-4567-8910-1234'
|
|
122
|
+
};
|
|
123
|
+
const agentConfig = {
|
|
124
|
+
applications: []
|
|
125
|
+
};
|
|
126
|
+
// set up legacy files
|
|
127
|
+
await setupLegacyFiles(spawner, aaiConfig, legacyCredentialsConfig, agentConfig);
|
|
128
|
+
// check pre-conditions
|
|
129
|
+
// check that getBootstrapPrivateKeyFilePath() returns false so that
|
|
130
|
+
// bootstrapProvision won't be called on runDeviceAgentCloudInterface
|
|
131
|
+
const newBootstrapsDir = (0, path_1.join)((0, device_certificate_1.getBootstrapCertificateDirectoryPath)(tmpDir), (0, device_certificate_1.getBootstrapPrivateKeyFileName)());
|
|
132
|
+
const newBootstrapsPresent = (0, fs_1.existsSync)(newBootstrapsDir);
|
|
133
|
+
expect(newBootstrapsPresent).toBe(false);
|
|
134
|
+
// check no current files exist
|
|
135
|
+
const newFilesPresentPreMigrate = await (0, required_config_checks_1.requiredConfigFilesPresentAndValid)(tmpDir);
|
|
136
|
+
expect(newFilesPresentPreMigrate).toBe(false);
|
|
137
|
+
// check that legacy files are present
|
|
138
|
+
const legacyFiles = (0, legacy_files_1.LegacyFiles)(tmpDir);
|
|
139
|
+
const legacyFilePaths = legacyFiles.getLegacyFileMigrationPaths();
|
|
140
|
+
const legacyFilesPresent = await (0, config_check_utility_1.checkAllFilesArePresent)(Object.values(legacyFilePaths));
|
|
141
|
+
expect(legacyFilesPresent).toBe(true);
|
|
142
|
+
const migrated = await (0, legacy_migration_1.migrateFromLegacyCertsAndTokens)(tmpDir);
|
|
143
|
+
// check output -- current files are present and valid
|
|
144
|
+
expect(migrated).toBe(true);
|
|
145
|
+
const newFilesPresentPostMigrate = await (0, required_config_checks_1.requiredConfigFilesPresentAndValid)(tmpDir);
|
|
146
|
+
expect(newFilesPresentPostMigrate).toBe(true);
|
|
147
|
+
// check that getBootstrapPrivateKeyFilePath() returns false so that
|
|
148
|
+
// bootstrapProvision won't be called on runDeviceAgentCloudInterface
|
|
149
|
+
const newBootstrapsDirAfterMigration = (0, path_1.join)((0, device_certificate_1.getBootstrapCertificateDirectoryPath)(tmpDir), (0, device_certificate_1.getBootstrapPrivateKeyFileName)());
|
|
150
|
+
const newBootstrapsPresentAfterMigration = (0, fs_1.existsSync)(newBootstrapsDirAfterMigration);
|
|
151
|
+
expect(newBootstrapsPresentAfterMigration).toBe(false);
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
describe('test migrateDeviceTokens function', () => {
|
|
155
|
+
let tmpDir;
|
|
156
|
+
tmpDir = tempy.directory();
|
|
157
|
+
beforeAll(async () => {
|
|
158
|
+
tmpDir = tempy.directory();
|
|
159
|
+
});
|
|
160
|
+
afterAll(async () => {
|
|
161
|
+
await (0, rimraf_1.rimraf)(tmpDir);
|
|
162
|
+
});
|
|
163
|
+
it('test migrateDeviceTokens', async () => {
|
|
164
|
+
const deviceId = '123-4567-8910-1234';
|
|
165
|
+
const parsedConfig = {
|
|
166
|
+
systemId: constants_1.SystemId.production,
|
|
167
|
+
deviceUuid: deviceId
|
|
168
|
+
};
|
|
169
|
+
const deviceConfig = {
|
|
170
|
+
deviceId: deviceId,
|
|
171
|
+
refreshToken: 'refresh',
|
|
172
|
+
accessToken: 'access',
|
|
173
|
+
idToken: 'id'
|
|
174
|
+
};
|
|
175
|
+
const spawner = (0, util_1.JsSpawner)({ path: tmpDir });
|
|
176
|
+
await spawner.mkdirp((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)()));
|
|
177
|
+
await spawner.writeFile((0, path_1.join)(tmpDir, paths_1.DEVICE_TOKEN_FILE_NAME), JSON.stringify(deviceConfig));
|
|
178
|
+
await (0, legacy_migration_1.migrateDeviceTokens)(parsedConfig, tmpDir);
|
|
179
|
+
const newDeviceConfig = (0, device_1.DeviceConfigFile)((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)(), infrastructure_1.DEVICE_CONFIG_FILE_NAME));
|
|
180
|
+
const parsedNewDeviceConfig = newDeviceConfig.read();
|
|
181
|
+
expect(parsedNewDeviceConfig.deviceUuid).toEqual(deviceId);
|
|
182
|
+
expect(parsedNewDeviceConfig.idToken).toEqual(deviceConfig.idToken);
|
|
183
|
+
expect(parsedNewDeviceConfig.accessToken).toEqual(deviceConfig.accessToken);
|
|
184
|
+
expect(parsedNewDeviceConfig.refreshToken).toEqual(deviceConfig.refreshToken);
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
describe('test migrateAgentConfigFile function', () => {
|
|
188
|
+
let tmpDir;
|
|
189
|
+
tmpDir = tempy.directory();
|
|
190
|
+
beforeAll(async () => {
|
|
191
|
+
tmpDir = tempy.directory();
|
|
192
|
+
});
|
|
193
|
+
afterAll(async () => {
|
|
194
|
+
await (0, rimraf_1.rimraf)(tmpDir);
|
|
195
|
+
});
|
|
196
|
+
it('test migrateAgentConfigFile', async () => {
|
|
197
|
+
const newFilePath = (0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)(), agent_config_1.AGENT_CONFIG_FILE_NAME);
|
|
198
|
+
const legacyFilePath = (0, path_1.join)(tmpDir, agent_config_1.AGENT_CONFIG_FILE_NAME);
|
|
199
|
+
const spawner = (0, util_1.JsSpawner)({ path: tmpDir });
|
|
200
|
+
const legacyAgentConfigContents = {
|
|
201
|
+
applications: [
|
|
202
|
+
{
|
|
203
|
+
projectId: 'c8a1b5bd-e112-44e4-bfa4-fb9b42a4322c',
|
|
204
|
+
version: 'b0139ac93d91e8bd4bcb69575a7312c646f9af086b83364a3fe0b4472af04353',
|
|
205
|
+
ready: true
|
|
206
|
+
}
|
|
207
|
+
]
|
|
208
|
+
};
|
|
209
|
+
await spawner.writeFile(legacyFilePath, JSON.stringify(legacyAgentConfigContents));
|
|
210
|
+
const legacyFileExists = await (0, util_1.exists)(legacyFilePath);
|
|
211
|
+
expect(legacyFileExists).toEqual(true);
|
|
212
|
+
const legacyAgentConfig = (0, agent_config_1.AgentConfigFile)((0, path_1.join)(tmpDir, agent_config_1.AGENT_CONFIG_FILE_NAME));
|
|
213
|
+
const legacyAgentConfigReadContents = legacyAgentConfig.read();
|
|
214
|
+
expect(legacyAgentConfigReadContents.applications).toEqual(legacyAgentConfigContents.applications);
|
|
215
|
+
const newFileExists = await (0, util_1.exists)(newFilePath);
|
|
216
|
+
expect(newFileExists).toEqual(false);
|
|
217
|
+
await (0, legacy_migration_1.migrateAgentConfigFile)(tmpDir);
|
|
218
|
+
// confirm new file is valid
|
|
219
|
+
const newAgentConfig = (0, agent_config_1.AgentConfigFile)((0, path_1.join)(tmpDir, (0, infrastructure_1.getDeviceConfigPath)(), agent_config_1.AGENT_CONFIG_FILE_NAME));
|
|
220
|
+
const newAgentConfigContents = newAgentConfig.read();
|
|
221
|
+
expect(newAgentConfigContents.applications).toEqual(legacyAgentConfigContents.applications);
|
|
222
|
+
expect(newAgentConfig.path).toEqual(newFilePath);
|
|
223
|
+
expect(legacyFileExists).toEqual(true);
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
//# sourceMappingURL=legacy-migration.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-migration.test.js","sourceRoot":"","sources":["../../../src/infrastructure/legacy-migration/legacy-migration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-files-present-ready.test.d.ts","sourceRoot":"","sources":["../../src/infrastructure/require-files-present-ready.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const config_check_utility_1 = require("./config-check-utility");
|
|
4
|
+
const required_config_checks_1 = require("./required-config-checks");
|
|
5
|
+
const mockedDeviceCfgCheckFunction = jest.fn();
|
|
6
|
+
const mockedCertCheckFunction = jest.fn();
|
|
7
|
+
const mockedAaiCfgCheckFunction = jest.fn();
|
|
8
|
+
jest.mock('./config-check-utility');
|
|
9
|
+
jest
|
|
10
|
+
.mocked(config_check_utility_1.checkAaiConfigPresent)
|
|
11
|
+
.mockImplementation(mockedAaiCfgCheckFunction);
|
|
12
|
+
jest
|
|
13
|
+
.mocked(config_check_utility_1.checkDeviceConfigPresent)
|
|
14
|
+
.mockImplementation(mockedDeviceCfgCheckFunction);
|
|
15
|
+
jest
|
|
16
|
+
.mocked(config_check_utility_1.checkCertificatesPresent)
|
|
17
|
+
.mockImplementation(mockedCertCheckFunction);
|
|
18
|
+
describe('test requiredConfigFilesPresentAndValid', () => {
|
|
19
|
+
function setupMocks(mockDeviceCfgCheck, mockCertCheck, mockAaiCfgCheck) {
|
|
20
|
+
mockedDeviceCfgCheckFunction.mockResolvedValue(mockDeviceCfgCheck);
|
|
21
|
+
mockedCertCheckFunction.mockResolvedValue(mockCertCheck);
|
|
22
|
+
mockedAaiCfgCheckFunction.mockResolvedValue(mockAaiCfgCheck);
|
|
23
|
+
}
|
|
24
|
+
it('test return value when checkDeviceConfigPresent is false', async () => {
|
|
25
|
+
setupMocks(false, true, true);
|
|
26
|
+
const newConfigsPresent = await (0, required_config_checks_1.requiredConfigFilesPresentAndValid)();
|
|
27
|
+
expect(newConfigsPresent).toBe(false);
|
|
28
|
+
});
|
|
29
|
+
it('test return value when checkCertificatesPresent is false', async () => {
|
|
30
|
+
setupMocks(true, false, false);
|
|
31
|
+
const newConfigsPresent = await (0, required_config_checks_1.requiredConfigFilesPresentAndValid)();
|
|
32
|
+
expect(newConfigsPresent).toBe(false);
|
|
33
|
+
});
|
|
34
|
+
it('test return value when checkAaiConfigPresent is false', async () => {
|
|
35
|
+
setupMocks(true, true, false);
|
|
36
|
+
const newConfigsPresent = await (0, required_config_checks_1.requiredConfigFilesPresentAndValid)();
|
|
37
|
+
expect(newConfigsPresent).toBe(false);
|
|
38
|
+
});
|
|
39
|
+
it('test return value when all included functions return true', async () => {
|
|
40
|
+
setupMocks(true, true, true);
|
|
41
|
+
expect(await (0, required_config_checks_1.requiredConfigFilesPresentAndValid)()).toBe(true);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=require-files-present-ready.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-files-present-ready.test.js","sourceRoot":"","sources":["../../src/infrastructure/require-files-present-ready.test.ts"],"names":[],"mappings":";;AAAA,iEAIgC;AAChC,qEAA8E;AAE9E,MAAM,4BAA4B,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC/C,MAAM,uBAAuB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC1C,MAAM,yBAAyB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAE5C,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAEpC,IAAI;KACD,MAAM,CAAC,4CAAqB,CAAC;KAC7B,kBAAkB,CAAC,yBAAyB,CAAC,CAAC;AACjD,IAAI;KACD,MAAM,CAAC,+CAAwB,CAAC;KAChC,kBAAkB,CAAC,4BAA4B,CAAC,CAAC;AACpD,IAAI;KACD,MAAM,CAAC,+CAAwB,CAAC;KAChC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;AAE/C,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACvD,SAAS,UAAU,CAAC,kBAAkB,EAAE,aAAa,EAAE,eAAe;QACpE,4BAA4B,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;QACnE,uBAAuB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACzD,yBAAyB,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC/D,CAAC;IAED,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9B,MAAM,iBAAiB,GAAG,MAAM,IAAA,2DAAkC,GAAE,CAAC;QACrE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/B,MAAM,iBAAiB,GAAG,MAAM,IAAA,2DAAkC,GAAE,CAAC;QACrE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9B,MAAM,iBAAiB,GAAG,MAAM,IAAA,2DAAkC,GAAE,CAAC;QACrE,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,IAAA,2DAAkC,GAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"required-config-checks.d.ts","sourceRoot":"","sources":["../../src/infrastructure/required-config-checks.ts"],"names":[],"mappings":"AAOA,wBAAsB,kCAAkC,CAAC,OAAO,CAAC,KAAA,oBAyBhE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.requiredConfigFilesPresentAndValid = void 0;
|
|
4
|
+
const logger_1 = require("../util/logger");
|
|
5
|
+
const config_check_utility_1 = require("./config-check-utility");
|
|
6
|
+
async function requiredConfigFilesPresentAndValid(baseDir) {
|
|
7
|
+
// we need device/certificates, alwaysai.config.json, and device/alwaysai.device.json
|
|
8
|
+
logger_1.logger.debug('Checking for required configuration files.');
|
|
9
|
+
const newDeviceConfigPresent = await (0, config_check_utility_1.checkDeviceConfigPresent)(baseDir);
|
|
10
|
+
if (!newDeviceConfigPresent) {
|
|
11
|
+
logger_1.logger.debug('Required device configuration is not present and valid.');
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
// check new certificates are present
|
|
15
|
+
const certificatesPresent = await (0, config_check_utility_1.checkCertificatesPresent)(baseDir);
|
|
16
|
+
if (!certificatesPresent) {
|
|
17
|
+
logger_1.logger.debug('Required certificates paths not found.');
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
// TODO: add alwaysai.config.json check here
|
|
21
|
+
const aaiConfigPresent = await (0, config_check_utility_1.checkAaiConfigPresent)(baseDir);
|
|
22
|
+
if (!aaiConfigPresent) {
|
|
23
|
+
logger_1.logger.debug('Required aai configuration file is not present and valid.');
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
logger_1.logger.debug('All configuration files appear to be present.');
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
exports.requiredConfigFilesPresentAndValid = requiredConfigFilesPresentAndValid;
|
|
30
|
+
//# sourceMappingURL=required-config-checks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"required-config-checks.js","sourceRoot":"","sources":["../../src/infrastructure/required-config-checks.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,iEAIgC;AAEzB,KAAK,UAAU,kCAAkC,CAAC,OAAQ;IAC/D,qFAAqF;IACrF,eAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC3D,MAAM,sBAAsB,GAAG,MAAM,IAAA,+CAAwB,EAAC,OAAO,CAAC,CAAC;IACvE,IAAI,CAAC,sBAAsB,EAAE;QAC3B,eAAM,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACxE,OAAO,KAAK,CAAC;KACd;IAED,qCAAqC;IACrC,MAAM,mBAAmB,GAAG,MAAM,IAAA,+CAAwB,EAAC,OAAO,CAAC,CAAC;IACpE,IAAI,CAAC,mBAAmB,EAAE;QACxB,eAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;KACd;IAED,4CAA4C;IAC5C,MAAM,gBAAgB,GAAG,MAAM,IAAA,4CAAqB,EAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,CAAC,gBAAgB,EAAE;QACrB,eAAM,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC1E,OAAO,KAAK,CAAC;KACd;IAED,eAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC;AACd,CAAC;AAzBD,gFAyBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens-and-device-cfg.d.ts","sourceRoot":"","sources":["../../src/infrastructure/tokens-and-device-cfg.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tokens-and-device-cfg.d.ts","sourceRoot":"","sources":["../../src/infrastructure/tokens-and-device-cfg.ts"],"names":[],"mappings":"AAaA,wBAAsB,sBAAsB,CAAC,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,iBAsBzE"}
|