@alwaysai/device-agent 1.4.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.
Files changed (313) hide show
  1. package/lib/application-control/config.d.ts.map +1 -1
  2. package/lib/application-control/config.js +10 -5
  3. package/lib/application-control/config.js.map +1 -1
  4. package/lib/application-control/environment-variables.d.ts +1 -5
  5. package/lib/application-control/environment-variables.d.ts.map +1 -1
  6. package/lib/application-control/environment-variables.js +9 -26
  7. package/lib/application-control/environment-variables.js.map +1 -1
  8. package/lib/application-control/environment-variables.test.js +27 -7
  9. package/lib/application-control/environment-variables.test.js.map +1 -1
  10. package/lib/application-control/index.d.ts +4 -4
  11. package/lib/application-control/index.d.ts.map +1 -1
  12. package/lib/application-control/index.js +1 -4
  13. package/lib/application-control/index.js.map +1 -1
  14. package/lib/application-control/install.d.ts.map +1 -1
  15. package/lib/application-control/install.js +9 -7
  16. package/lib/application-control/install.js.map +1 -1
  17. package/lib/application-control/models.d.ts +5 -11
  18. package/lib/application-control/models.d.ts.map +1 -1
  19. package/lib/application-control/models.js +27 -64
  20. package/lib/application-control/models.js.map +1 -1
  21. package/lib/application-control/status.d.ts.map +1 -1
  22. package/lib/application-control/status.js +10 -12
  23. package/lib/application-control/status.js.map +1 -1
  24. package/lib/application-control/utils.d.ts +0 -4
  25. package/lib/application-control/utils.d.ts.map +1 -1
  26. package/lib/application-control/utils.js +3 -26
  27. package/lib/application-control/utils.js.map +1 -1
  28. package/lib/cloud-connection/bootstrap-provision.js +3 -2
  29. package/lib/cloud-connection/bootstrap-provision.js.map +1 -1
  30. package/lib/cloud-connection/device-agent-cloud-connection.d.ts +11 -16
  31. package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
  32. package/lib/cloud-connection/device-agent-cloud-connection.js +295 -246
  33. package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
  34. package/lib/cloud-connection/device-agent.d.ts.map +1 -1
  35. package/lib/cloud-connection/device-agent.js +11 -9
  36. package/lib/cloud-connection/device-agent.js.map +1 -1
  37. package/lib/cloud-connection/live-updates-handler.d.ts +18 -27
  38. package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -1
  39. package/lib/cloud-connection/live-updates-handler.js +58 -170
  40. package/lib/cloud-connection/live-updates-handler.js.map +1 -1
  41. package/lib/cloud-connection/live-updates-handler.test.js +76 -54
  42. package/lib/cloud-connection/live-updates-handler.test.js.map +1 -1
  43. package/lib/cloud-connection/passthrough-handler.d.ts +9 -4
  44. package/lib/cloud-connection/passthrough-handler.d.ts.map +1 -1
  45. package/lib/cloud-connection/passthrough-handler.js +95 -62
  46. package/lib/cloud-connection/passthrough-handler.js.map +1 -1
  47. package/lib/cloud-connection/shadow-handler.d.ts +5 -1
  48. package/lib/cloud-connection/shadow-handler.d.ts.map +1 -1
  49. package/lib/cloud-connection/shadow-handler.js +63 -31
  50. package/lib/cloud-connection/shadow-handler.js.map +1 -1
  51. package/lib/cloud-connection/shadow-handler.test.js +45 -57
  52. package/lib/cloud-connection/shadow-handler.test.js.map +1 -1
  53. package/lib/cloud-connection/shadow.d.ts.map +1 -1
  54. package/lib/cloud-connection/shadow.js +2 -1
  55. package/lib/cloud-connection/shadow.js.map +1 -1
  56. package/lib/cloud-connection/transaction-manager.d.ts +7 -2
  57. package/lib/cloud-connection/transaction-manager.d.ts.map +1 -1
  58. package/lib/cloud-connection/transaction-manager.js +29 -29
  59. package/lib/cloud-connection/transaction-manager.js.map +1 -1
  60. package/lib/cloud-connection/transaction-manager.test.js +105 -3
  61. package/lib/cloud-connection/transaction-manager.test.js.map +1 -1
  62. package/lib/device-control/device-control.d.ts +14 -6
  63. package/lib/device-control/device-control.d.ts.map +1 -1
  64. package/lib/device-control/device-control.js +172 -72
  65. package/lib/device-control/device-control.js.map +1 -1
  66. package/lib/docker/docker-compose.d.ts +14 -0
  67. package/lib/docker/docker-compose.d.ts.map +1 -0
  68. package/lib/docker/docker-compose.js +57 -0
  69. package/lib/docker/docker-compose.js.map +1 -0
  70. package/lib/index.js +2 -5
  71. package/lib/index.js.map +1 -1
  72. package/lib/infrastructure/agent-config.d.ts +46 -14
  73. package/lib/infrastructure/agent-config.d.ts.map +1 -1
  74. package/lib/infrastructure/agent-config.js +36 -21
  75. package/lib/infrastructure/agent-config.js.map +1 -1
  76. package/lib/infrastructure/agent-config.test.js +6 -1
  77. package/lib/infrastructure/agent-config.test.js.map +1 -1
  78. package/lib/infrastructure/config-check-utility.d.ts +6 -0
  79. package/lib/infrastructure/config-check-utility.d.ts.map +1 -0
  80. package/lib/infrastructure/config-check-utility.js +67 -0
  81. package/lib/infrastructure/config-check-utility.js.map +1 -0
  82. package/lib/infrastructure/config-check-utility.test.d.ts +2 -0
  83. package/lib/infrastructure/config-check-utility.test.d.ts.map +1 -0
  84. package/lib/infrastructure/config-check-utility.test.js +109 -0
  85. package/lib/infrastructure/config-check-utility.test.js.map +1 -0
  86. package/lib/infrastructure/device-certificate.d.ts +10 -0
  87. package/lib/infrastructure/device-certificate.d.ts.map +1 -0
  88. package/lib/infrastructure/device-certificate.js +47 -0
  89. package/lib/infrastructure/device-certificate.js.map +1 -0
  90. package/lib/infrastructure/device-certificate.test.d.ts +2 -0
  91. package/lib/infrastructure/device-certificate.test.d.ts.map +1 -0
  92. package/lib/infrastructure/device-certificate.test.js +24 -0
  93. package/lib/infrastructure/device-certificate.test.js.map +1 -0
  94. package/lib/infrastructure/legacy-migration/legacy-file.test.d.ts +2 -0
  95. package/lib/infrastructure/legacy-migration/legacy-file.test.d.ts.map +1 -0
  96. package/lib/infrastructure/legacy-migration/legacy-file.test.js +61 -0
  97. package/lib/infrastructure/legacy-migration/legacy-file.test.js.map +1 -0
  98. package/lib/infrastructure/legacy-migration/legacy-files.d.ts +75 -0
  99. package/lib/infrastructure/legacy-migration/legacy-files.d.ts.map +1 -0
  100. package/lib/infrastructure/legacy-migration/legacy-files.js +75 -0
  101. package/lib/infrastructure/legacy-migration/legacy-files.js.map +1 -0
  102. package/lib/infrastructure/legacy-migration/legacy-migration.d.ts +6 -0
  103. package/lib/infrastructure/legacy-migration/legacy-migration.d.ts.map +1 -0
  104. package/lib/infrastructure/legacy-migration/legacy-migration.js +149 -0
  105. package/lib/infrastructure/legacy-migration/legacy-migration.js.map +1 -0
  106. package/lib/infrastructure/legacy-migration/legacy-migration.test.d.ts +2 -0
  107. package/lib/infrastructure/legacy-migration/legacy-migration.test.d.ts.map +1 -0
  108. package/lib/infrastructure/legacy-migration/legacy-migration.test.js +226 -0
  109. package/lib/infrastructure/legacy-migration/legacy-migration.test.js.map +1 -0
  110. package/lib/infrastructure/require-files-present-ready.test.d.ts +2 -0
  111. package/lib/infrastructure/require-files-present-ready.test.d.ts.map +1 -0
  112. package/lib/infrastructure/require-files-present-ready.test.js +44 -0
  113. package/lib/infrastructure/require-files-present-ready.test.js.map +1 -0
  114. package/lib/infrastructure/required-config-checks.d.ts +2 -0
  115. package/lib/infrastructure/required-config-checks.d.ts.map +1 -0
  116. package/lib/infrastructure/required-config-checks.js +30 -0
  117. package/lib/infrastructure/required-config-checks.js.map +1 -0
  118. package/lib/infrastructure/tokens-and-device-cfg.d.ts.map +1 -1
  119. package/lib/infrastructure/tokens-and-device-cfg.js +11 -8
  120. package/lib/infrastructure/tokens-and-device-cfg.js.map +1 -1
  121. package/lib/local-connection/rabbitmq-connection.d.ts.map +1 -1
  122. package/lib/local-connection/rabbitmq-connection.js +21 -21
  123. package/lib/local-connection/rabbitmq-connection.js.map +1 -1
  124. package/lib/secure-tunneling/secure-tunneling.d.ts +15 -23
  125. package/lib/secure-tunneling/secure-tunneling.d.ts.map +1 -1
  126. package/lib/secure-tunneling/secure-tunneling.js +52 -47
  127. package/lib/secure-tunneling/secure-tunneling.js.map +1 -1
  128. package/lib/secure-tunneling/secure-tunneling.test.js +29 -31
  129. package/lib/secure-tunneling/secure-tunneling.test.js.map +1 -1
  130. package/lib/subcommands/app/analytics.d.ts.map +1 -1
  131. package/lib/subcommands/app/analytics.js +1 -2
  132. package/lib/subcommands/app/analytics.js.map +1 -1
  133. package/lib/subcommands/app/env-vars.d.ts +4 -0
  134. package/lib/subcommands/app/env-vars.d.ts.map +1 -1
  135. package/lib/subcommands/app/env-vars.js +52 -6
  136. package/lib/subcommands/app/env-vars.js.map +1 -1
  137. package/lib/subcommands/app/index.d.ts.map +1 -1
  138. package/lib/subcommands/app/index.js +1 -3
  139. package/lib/subcommands/app/index.js.map +1 -1
  140. package/lib/subcommands/app/models.d.ts +0 -11
  141. package/lib/subcommands/app/models.d.ts.map +1 -1
  142. package/lib/subcommands/app/models.js +2 -58
  143. package/lib/subcommands/app/models.js.map +1 -1
  144. package/lib/subcommands/app/shadow.d.ts.map +1 -1
  145. package/lib/subcommands/app/shadow.js +6 -5
  146. package/lib/subcommands/app/shadow.js.map +1 -1
  147. package/lib/subcommands/app/version.d.ts.map +1 -1
  148. package/lib/subcommands/app/version.js +2 -4
  149. package/lib/subcommands/app/version.js.map +1 -1
  150. package/lib/subcommands/config.d.ts +2 -0
  151. package/lib/subcommands/config.d.ts.map +1 -0
  152. package/lib/subcommands/config.js +39 -0
  153. package/lib/subcommands/config.js.map +1 -0
  154. package/lib/subcommands/device/clean.d.ts +1 -1
  155. package/lib/subcommands/device/clean.d.ts.map +1 -1
  156. package/lib/subcommands/device/clean.js +25 -15
  157. package/lib/subcommands/device/clean.js.map +1 -1
  158. package/lib/subcommands/device/get-info.d.ts +2 -0
  159. package/lib/subcommands/device/get-info.d.ts.map +1 -0
  160. package/lib/subcommands/device/get-info.js +36 -0
  161. package/lib/subcommands/device/get-info.js.map +1 -0
  162. package/lib/subcommands/device/index.d.ts.map +1 -1
  163. package/lib/subcommands/device/index.js +13 -2
  164. package/lib/subcommands/device/index.js.map +1 -1
  165. package/lib/subcommands/device/init.d.ts +5 -0
  166. package/lib/subcommands/device/init.d.ts.map +1 -0
  167. package/lib/subcommands/device/{device.js → init.js} +10 -49
  168. package/lib/subcommands/device/init.js.map +1 -0
  169. package/lib/subcommands/device/migrate.d.ts +2 -0
  170. package/lib/subcommands/device/migrate.d.ts.map +1 -0
  171. package/lib/subcommands/device/migrate.js +24 -0
  172. package/lib/subcommands/device/migrate.js.map +1 -0
  173. package/lib/subcommands/device/refresh.d.ts +2 -0
  174. package/lib/subcommands/device/refresh.d.ts.map +1 -0
  175. package/lib/subcommands/device/refresh.js +25 -0
  176. package/lib/subcommands/device/refresh.js.map +1 -0
  177. package/lib/subcommands/device/restart.d.ts +2 -0
  178. package/lib/subcommands/device/restart.d.ts.map +1 -0
  179. package/lib/subcommands/device/restart.js +14 -0
  180. package/lib/subcommands/device/restart.js.map +1 -0
  181. package/lib/subcommands/index.d.ts +1 -1
  182. package/lib/subcommands/index.d.ts.map +1 -1
  183. package/lib/subcommands/index.js +3 -1
  184. package/lib/subcommands/index.js.map +1 -1
  185. package/lib/subcommands/rabbitmq-connection.d.ts +1 -1
  186. package/lib/subcommands/rabbitmq-connection.d.ts.map +1 -1
  187. package/lib/util/aai-error.d.ts +12 -0
  188. package/lib/util/aai-error.d.ts.map +1 -0
  189. package/lib/util/aai-error.js +11 -0
  190. package/lib/util/aai-error.js.map +1 -0
  191. package/lib/util/aws-regions.d.ts +2 -0
  192. package/lib/util/aws-regions.d.ts.map +1 -0
  193. package/lib/util/{cloud-mode-ready.js → aws-regions.js} +2 -20
  194. package/lib/util/aws-regions.js.map +1 -0
  195. package/lib/util/check-for-updates.d.ts +3 -0
  196. package/lib/util/check-for-updates.d.ts.map +1 -0
  197. package/lib/util/check-for-updates.js +46 -0
  198. package/lib/util/check-for-updates.js.map +1 -0
  199. package/lib/util/clean-certs.d.ts.map +1 -1
  200. package/lib/util/clean-certs.js +5 -4
  201. package/lib/util/clean-certs.js.map +1 -1
  202. package/lib/util/directories.d.ts +4 -18
  203. package/lib/util/directories.d.ts.map +1 -1
  204. package/lib/util/directories.js +18 -32
  205. package/lib/util/directories.js.map +1 -1
  206. package/lib/util/file.d.ts +11 -0
  207. package/lib/util/file.d.ts.map +1 -0
  208. package/lib/util/file.js +127 -0
  209. package/lib/util/file.js.map +1 -0
  210. package/lib/util/file.test.d.ts +2 -0
  211. package/lib/util/file.test.d.ts.map +1 -0
  212. package/lib/util/file.test.js +87 -0
  213. package/lib/util/file.test.js.map +1 -0
  214. package/lib/util/get-device-id.d.ts.map +1 -1
  215. package/lib/util/get-device-id.js +7 -1
  216. package/lib/util/get-device-id.js.map +1 -1
  217. package/lib/util/http-client.js +3 -3
  218. package/lib/util/http-client.js.map +1 -1
  219. package/package.json +22 -19
  220. package/readme.md +15 -35
  221. package/src/application-control/config.ts +10 -13
  222. package/src/application-control/environment-variables.test.ts +28 -7
  223. package/src/application-control/environment-variables.ts +13 -40
  224. package/src/application-control/index.ts +3 -16
  225. package/src/application-control/install.ts +16 -10
  226. package/src/application-control/models.ts +40 -98
  227. package/src/application-control/status.ts +9 -7
  228. package/src/application-control/utils.ts +1 -29
  229. package/src/cloud-connection/bootstrap-provision.ts +7 -7
  230. package/src/cloud-connection/device-agent-cloud-connection.ts +647 -509
  231. package/src/cloud-connection/device-agent.ts +16 -7
  232. package/src/cloud-connection/live-updates-handler.test.ts +137 -64
  233. package/src/cloud-connection/live-updates-handler.ts +103 -234
  234. package/src/cloud-connection/passthrough-handler.ts +134 -75
  235. package/src/cloud-connection/shadow-handler.test.ts +45 -57
  236. package/src/cloud-connection/shadow-handler.ts +114 -56
  237. package/src/cloud-connection/shadow.ts +4 -1
  238. package/src/cloud-connection/transaction-manager.test.ts +127 -3
  239. package/src/cloud-connection/transaction-manager.ts +68 -39
  240. package/src/device-control/device-control.ts +179 -72
  241. package/src/docker/docker-compose.ts +61 -0
  242. package/src/index.ts +2 -6
  243. package/src/infrastructure/agent-config.test.ts +9 -2
  244. package/src/infrastructure/agent-config.ts +45 -46
  245. package/src/infrastructure/config-check-utility.test.ts +154 -0
  246. package/src/infrastructure/config-check-utility.ts +77 -0
  247. package/src/infrastructure/device-certificate.test.ts +40 -0
  248. package/src/infrastructure/device-certificate.ts +58 -0
  249. package/src/infrastructure/legacy-migration/legacy-file.test.ts +88 -0
  250. package/src/infrastructure/legacy-migration/legacy-files.ts +101 -0
  251. package/src/infrastructure/legacy-migration/legacy-migration.test.ts +396 -0
  252. package/src/infrastructure/legacy-migration/legacy-migration.ts +229 -0
  253. package/src/infrastructure/require-files-present-ready.test.ts +53 -0
  254. package/src/infrastructure/required-config-checks.ts +33 -0
  255. package/src/infrastructure/tokens-and-device-cfg.ts +12 -10
  256. package/src/local-connection/rabbitmq-connection.ts +28 -23
  257. package/src/secure-tunneling/secure-tunneling.test.ts +37 -39
  258. package/src/secure-tunneling/secure-tunneling.ts +74 -69
  259. package/src/subcommands/app/analytics.ts +2 -4
  260. package/src/subcommands/app/env-vars.ts +72 -9
  261. package/src/subcommands/app/index.ts +3 -11
  262. package/src/subcommands/app/models.ts +5 -81
  263. package/src/subcommands/app/shadow.ts +6 -5
  264. package/src/subcommands/app/version.ts +3 -4
  265. package/src/subcommands/config.ts +42 -0
  266. package/src/subcommands/device/clean.ts +32 -18
  267. package/src/subcommands/device/get-info.ts +49 -0
  268. package/src/subcommands/device/index.ts +13 -2
  269. package/src/subcommands/device/{device.ts → init.ts} +11 -69
  270. package/src/subcommands/device/migrate.ts +20 -0
  271. package/src/subcommands/device/refresh.ts +23 -0
  272. package/src/subcommands/device/restart.ts +11 -0
  273. package/src/subcommands/index.ts +3 -1
  274. package/src/util/aai-error.ts +20 -0
  275. package/src/util/{cloud-mode-ready.ts → aws-regions.ts} +0 -24
  276. package/src/util/check-for-updates.ts +53 -0
  277. package/src/util/clean-certs.ts +8 -4
  278. package/src/util/directories.ts +23 -67
  279. package/src/util/file.test.ts +90 -0
  280. package/src/util/file.ts +156 -0
  281. package/src/util/get-device-id.ts +7 -7
  282. package/src/util/http-client.ts +2 -2
  283. package/lib/docker/docker-compose-cmd.d.ts +0 -5
  284. package/lib/docker/docker-compose-cmd.d.ts.map +0 -1
  285. package/lib/docker/docker-compose-cmd.js +0 -16
  286. package/lib/docker/docker-compose-cmd.js.map +0 -1
  287. package/lib/subcommands/device/device.d.ts +0 -7
  288. package/lib/subcommands/device/device.d.ts.map +0 -1
  289. package/lib/subcommands/device/device.js.map +0 -1
  290. package/lib/util/cloud-mode-ready.d.ts +0 -3
  291. package/lib/util/cloud-mode-ready.d.ts.map +0 -1
  292. package/lib/util/cloud-mode-ready.js.map +0 -1
  293. package/lib/util/download-file.d.ts +0 -6
  294. package/lib/util/download-file.d.ts.map +0 -1
  295. package/lib/util/download-file.js +0 -25
  296. package/lib/util/download-file.js.map +0 -1
  297. package/lib/util/fetch-with-timeout.d.ts +0 -4
  298. package/lib/util/fetch-with-timeout.d.ts.map +0 -1
  299. package/lib/util/fetch-with-timeout.js +0 -30
  300. package/lib/util/fetch-with-timeout.js.map +0 -1
  301. package/lib/util/parsing.d.ts +0 -2
  302. package/lib/util/parsing.d.ts.map +0 -1
  303. package/lib/util/parsing.js +0 -17
  304. package/lib/util/parsing.js.map +0 -1
  305. package/lib/util/safe-rimraf.d.ts +0 -2
  306. package/lib/util/safe-rimraf.d.ts.map +0 -1
  307. package/lib/util/safe-rimraf.js +0 -16
  308. package/lib/util/safe-rimraf.js.map +0 -1
  309. package/src/docker/docker-compose-cmd.ts +0 -15
  310. package/src/util/download-file.ts +0 -25
  311. package/src/util/fetch-with-timeout.ts +0 -35
  312. package/src/util/parsing.ts +0 -11
  313. package/src/util/safe-rimraf.ts +0 -14
@@ -0,0 +1,75 @@
1
+ import { ConfigFileSchemaReturnType } from '@alwaysai/config-nodejs';
2
+ import { JSONSchemaType } from 'ajv';
3
+ import { SystemId } from 'alwaysai/lib/constants';
4
+ import { LocalLegacyDeviceCertificates } from 'alwaysai/lib/infrastructure';
5
+ export declare const LEGACY_AAI_CONFIG_FILE_DIR: string;
6
+ export interface LegacyAaiConfig {
7
+ systemId: SystemId;
8
+ deviceUuid: string;
9
+ }
10
+ export declare const legacyAaiConfigSchema: JSONSchemaType<LegacyAaiConfig>;
11
+ export declare const validateLegacyAaiConfig: import("ajv").ValidateFunction<LegacyAaiConfig>;
12
+ export declare function LegacyAaiConfigFile(baseDir?: string): ConfigFileSchemaReturnType<LegacyAaiConfig>;
13
+ export declare function LegacyFiles(baseDir?: string): {
14
+ getFilePath(): string;
15
+ getLegacyAgentConfigFile(): {
16
+ name: string;
17
+ getApps: () => Promise<import("../agent-config").InstalledAppConfig[]>;
18
+ getReadyApps: () => Promise<import("../agent-config").InstalledAppConfig[]>;
19
+ getApp: (props: {
20
+ projectId: string;
21
+ }) => Promise<import("../agent-config").InstalledAppConfig | null>;
22
+ isAppPresent: (props: {
23
+ projectId: string;
24
+ }) => Promise<boolean>;
25
+ isAppReady: (props: {
26
+ projectId: string;
27
+ }) => Promise<boolean>;
28
+ setAppInstalling: (props: {
29
+ projectId: string;
30
+ version: string;
31
+ }) => Promise<void>;
32
+ setAppInstalled: (props: {
33
+ projectId: string;
34
+ version: string;
35
+ }) => Promise<void>;
36
+ setAppUninstalling: (props: {
37
+ projectId: string;
38
+ }) => Promise<void>;
39
+ setAppUninstalled: (props: {
40
+ projectId: string;
41
+ }) => Promise<void>;
42
+ getAppVersion: (props: {
43
+ projectId: string;
44
+ }) => Promise<string>;
45
+ setAppBackup: (props: {
46
+ projectId: string;
47
+ }) => Promise<void>;
48
+ getAppBackup: (props: {
49
+ projectId: string;
50
+ }) => Promise<import("../agent-config").AppBackupConfig | null>;
51
+ path: string;
52
+ read: () => import("../agent-config").AgentConfig;
53
+ readIfExists: () => import("../agent-config").AgentConfig | undefined;
54
+ readRaw: () => string;
55
+ readParsed: () => any;
56
+ write: (config: import("../agent-config").AgentConfig) => import("@alwaysai/config-nodejs/lib/config-file-schema").SerializedInfoType;
57
+ writeRaw: (serialized: string) => import("@alwaysai/config-nodejs/lib/config-file-schema").InfoType;
58
+ remove: () => import("@alwaysai/config-nodejs/lib/config-file-schema").InfoType;
59
+ update: (updater: (config: import("../agent-config").AgentConfig) => void) => import("@alwaysai/config-nodejs/lib/config-file-schema").InfoType;
60
+ exists: () => boolean;
61
+ initialize: () => void;
62
+ validate: import("ajv").ValidateFunction<import("../agent-config").AgentConfig>;
63
+ getErrors: () => import("ajv").ErrorObject<string, Record<string, any>, unknown>[] | null | undefined;
64
+ };
65
+ getLegacyCertificates(): LocalLegacyDeviceCertificates;
66
+ getLegacyDeviceAgentConfigDirPath(): string;
67
+ getLegacyFileMigrationPaths(): {
68
+ deviceCerts: string;
69
+ credentialsConfig: string;
70
+ aaiConfig: string;
71
+ agentConfig: string;
72
+ };
73
+ };
74
+ export declare const LEGACY_CREDENTIALS_FILE_DIR: string;
75
+ //# sourceMappingURL=legacy-files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-files.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/legacy-migration/legacy-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,0BAA0B,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAY,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAc,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAW5E,eAAO,MAAM,0BAA0B,QAGtC,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAAC,eAAe,CAYjE,CAAC;AAIF,eAAO,MAAM,uBAAuB,iDAAqC,CAAC;AAE1E,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,MAAM,GACf,0BAA0B,CAAC,eAAe,CAAC,CAU7C;AAED,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmC3C;AAGD,eAAO,MAAM,2BAA2B,QAGvC,CAAC"}
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=legacy-migration.test.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=require-files-present-ready.test.d.ts.map
@@ -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":""}