@ledgerhq/device-management-kit 1.1.0 → 1.2.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 (204) hide show
  1. package/lib/cjs/package.json +1 -1
  2. package/lib/cjs/src/api/apdu/utils/ApduBuilder.js +1 -1
  3. package/lib/cjs/src/api/apdu/utils/ApduBuilder.js.map +3 -3
  4. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  5. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
  6. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js +1 -1
  7. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js.map +3 -3
  8. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +1 -1
  9. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +3 -3
  10. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js +1 -1
  11. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js.map +3 -3
  12. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +1 -1
  13. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +2 -2
  14. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js +1 -1
  15. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js.map +3 -3
  16. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js +1 -1
  17. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js.map +3 -3
  18. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  19. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +3 -3
  20. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  21. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +3 -3
  22. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/types.js +1 -1
  23. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/types.js.map +3 -3
  24. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js +1 -1
  25. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js.map +3 -3
  26. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +1 -1
  27. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +3 -3
  28. package/lib/cjs/src/api/device-action/os/GoToDashboard/types.js +1 -1
  29. package/lib/cjs/src/api/device-action/os/GoToDashboard/types.js.map +3 -3
  30. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +1 -1
  31. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +2 -2
  32. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js +1 -1
  33. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js.map +2 -2
  34. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js +1 -1
  35. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js.map +3 -3
  36. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.js +1 -1
  37. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.js.map +3 -3
  38. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js +1 -1
  39. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js.map +3 -3
  40. package/lib/cjs/src/api/device-action/os/ListApps/types.js +1 -1
  41. package/lib/cjs/src/api/device-action/os/ListApps/types.js.map +3 -3
  42. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js +1 -1
  43. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js.map +3 -3
  44. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +1 -1
  45. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +3 -3
  46. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/types.js +1 -1
  47. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/types.js.map +3 -3
  48. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js +1 -1
  49. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js.map +3 -3
  50. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  51. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +3 -3
  52. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/types.js +1 -1
  53. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/types.js.map +3 -3
  54. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +1 -1
  55. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +3 -3
  56. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js +1 -1
  57. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js.map +3 -3
  58. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js +1 -1
  59. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js.map +3 -3
  60. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
  61. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +3 -3
  62. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  63. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +3 -3
  64. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js +1 -1
  65. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js.map +3 -3
  66. package/lib/cjs/src/api/index.js +1 -1
  67. package/lib/cjs/src/api/index.js.map +3 -3
  68. package/lib/cjs/src/api/types.js +1 -1
  69. package/lib/cjs/src/api/types.js.map +1 -1
  70. package/lib/cjs/src/api/utils/ApplicationChecker.js +2 -0
  71. package/lib/cjs/src/api/utils/ApplicationChecker.js.map +7 -0
  72. package/lib/cjs/src/api/utils/ApplicationChecker.test.js +2 -0
  73. package/lib/cjs/src/api/utils/ApplicationChecker.test.js.map +7 -0
  74. package/lib/cjs/src/api/utils/ApplicationResolver.js +2 -0
  75. package/lib/cjs/src/api/utils/ApplicationResolver.js.map +7 -0
  76. package/lib/cjs/src/api/utils/Base64String.js +1 -1
  77. package/lib/cjs/src/api/utils/Base64String.js.map +3 -3
  78. package/lib/cjs/src/api/utils/Base64String.test.js +1 -1
  79. package/lib/cjs/src/api/utils/Base64String.test.js.map +3 -3
  80. package/lib/esm/package.json +1 -1
  81. package/lib/esm/src/api/apdu/utils/ApduBuilder.js +1 -1
  82. package/lib/esm/src/api/apdu/utils/ApduBuilder.js.map +3 -3
  83. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  84. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
  85. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js +1 -1
  86. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js.map +3 -3
  87. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +1 -1
  88. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +3 -3
  89. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js +1 -0
  90. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js.map +4 -4
  91. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +1 -1
  92. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +3 -3
  93. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js +1 -1
  94. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js.map +3 -3
  95. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/types.js +1 -0
  96. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/types.js.map +4 -4
  97. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  98. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +3 -3
  99. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  100. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +3 -3
  101. package/lib/esm/src/api/device-action/os/GetDeviceStatus/types.js +1 -0
  102. package/lib/esm/src/api/device-action/os/GetDeviceStatus/types.js.map +4 -4
  103. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js +1 -1
  104. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js.map +3 -3
  105. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +1 -1
  106. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +3 -3
  107. package/lib/esm/src/api/device-action/os/GoToDashboard/types.js +1 -0
  108. package/lib/esm/src/api/device-action/os/GoToDashboard/types.js.map +4 -4
  109. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +1 -1
  110. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +3 -3
  111. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js +1 -1
  112. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js.map +3 -3
  113. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/types.js +1 -0
  114. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/types.js.map +4 -4
  115. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.js +1 -1
  116. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.js.map +3 -3
  117. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js +1 -1
  118. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js.map +3 -3
  119. package/lib/esm/src/api/device-action/os/ListApps/types.js +1 -0
  120. package/lib/esm/src/api/device-action/os/ListApps/types.js.map +4 -4
  121. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js +1 -1
  122. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js.map +3 -3
  123. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +1 -1
  124. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +3 -3
  125. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/types.js +1 -0
  126. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/types.js.map +4 -4
  127. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js +1 -1
  128. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js.map +3 -3
  129. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  130. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +3 -3
  131. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/types.js +1 -0
  132. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/types.js.map +4 -4
  133. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +1 -1
  134. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +3 -3
  135. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js +1 -1
  136. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js.map +3 -3
  137. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/types.js +1 -0
  138. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/types.js.map +4 -4
  139. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
  140. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +3 -3
  141. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  142. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +3 -3
  143. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js +1 -0
  144. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js.map +4 -4
  145. package/lib/esm/src/api/index.js +1 -1
  146. package/lib/esm/src/api/index.js.map +3 -3
  147. package/lib/esm/src/api/utils/ApplicationChecker.js +2 -0
  148. package/lib/esm/src/api/utils/ApplicationChecker.js.map +7 -0
  149. package/lib/esm/src/api/utils/ApplicationChecker.test.js +2 -0
  150. package/lib/esm/src/api/utils/ApplicationChecker.test.js.map +7 -0
  151. package/lib/esm/src/api/utils/ApplicationResolver.js +1 -0
  152. package/lib/esm/src/api/utils/ApplicationResolver.js.map +7 -0
  153. package/lib/esm/src/api/utils/Base64String.js +1 -1
  154. package/lib/esm/src/api/utils/Base64String.js.map +3 -3
  155. package/lib/esm/src/api/utils/Base64String.test.js +1 -1
  156. package/lib/esm/src/api/utils/Base64String.test.js.map +3 -3
  157. package/lib/types/src/api/apdu/utils/ApduBuilder.d.ts +7 -0
  158. package/lib/types/src/api/apdu/utils/ApduBuilder.d.ts.map +1 -1
  159. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts.map +1 -1
  160. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.d.ts.map +1 -1
  161. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.d.ts +9 -1
  162. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.d.ts.map +1 -1
  163. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.d.ts.map +1 -1
  164. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts +13 -2
  165. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts.map +1 -1
  166. package/lib/types/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.d.ts.map +1 -1
  167. package/lib/types/src/api/device-action/os/GetDeviceStatus/types.d.ts +6 -0
  168. package/lib/types/src/api/device-action/os/GetDeviceStatus/types.d.ts.map +1 -1
  169. package/lib/types/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.d.ts +1 -1
  170. package/lib/types/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.d.ts.map +1 -1
  171. package/lib/types/src/api/device-action/os/GoToDashboard/types.d.ts +9 -1
  172. package/lib/types/src/api/device-action/os/GoToDashboard/types.d.ts.map +1 -1
  173. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.d.ts.map +1 -1
  174. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts +9 -1
  175. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts.map +1 -1
  176. package/lib/types/src/api/device-action/os/ListApps/ListAppsDeviceAction.d.ts.map +1 -1
  177. package/lib/types/src/api/device-action/os/ListApps/types.d.ts +6 -0
  178. package/lib/types/src/api/device-action/os/ListApps/types.d.ts.map +1 -1
  179. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.d.ts.map +1 -1
  180. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/types.d.ts +8 -1
  181. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/types.d.ts.map +1 -1
  182. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.d.ts.map +1 -1
  183. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts +12 -2
  184. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts.map +1 -1
  185. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.d.ts.map +1 -1
  186. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts +8 -0
  187. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts.map +1 -1
  188. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.d.ts.map +1 -1
  189. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts +9 -1
  190. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts.map +1 -1
  191. package/lib/types/src/api/index.d.ts +4 -2
  192. package/lib/types/src/api/index.d.ts.map +1 -1
  193. package/lib/types/src/api/types.d.ts +1 -0
  194. package/lib/types/src/api/types.d.ts.map +1 -1
  195. package/lib/types/src/api/utils/ApplicationChecker.d.ts +14 -0
  196. package/lib/types/src/api/utils/ApplicationChecker.d.ts.map +1 -0
  197. package/lib/types/src/api/utils/ApplicationChecker.test.d.ts +2 -0
  198. package/lib/types/src/api/utils/ApplicationChecker.test.d.ts.map +1 -0
  199. package/lib/types/src/api/utils/ApplicationResolver.d.ts +12 -0
  200. package/lib/types/src/api/utils/ApplicationResolver.d.ts.map +1 -0
  201. package/lib/types/src/api/utils/Base64String.d.ts +1 -0
  202. package/lib/types/src/api/utils/Base64String.d.ts.map +1 -1
  203. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  204. package/package.json +5 -5
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.ts"],
4
- "sourcesContent": ["import { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport {\n GLOBAL_ERRORS,\n GlobalCommandError,\n} from \"@api/command/utils/GlobalCommandError\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { setupGetDeviceStatusMock } from \"@api/device-action/__test-utils__/setupTestMachine\";\nimport { testDeviceActionStates } from \"@api/device-action/__test-utils__/testDeviceActionStates\";\nimport { DeviceActionStatus } from \"@api/device-action/model/DeviceActionState\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport { UnknownDAError } from \"@api/device-action/os/Errors\";\nimport { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\nimport { UnknownDeviceExchangeError } from \"@root/src\";\n\nimport { GoToDashboardDeviceAction } from \"./GoToDashboardDeviceAction\";\nimport { type GoToDashboardDAState } from \"./types\";\n\nvi.mock(\"@api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction\");\n\ndescribe(\"GoToDashboardDeviceAction\", () => {\n const closeAppMock = vi.fn();\n const getAppAndVersionMock = vi.fn();\n const getDeviceSessionStateMock = vi.fn();\n const setDeviceSessionStateMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n closeApp: closeAppMock,\n getAppAndVersion: getAppAndVersionMock,\n getDeviceSessionState: getDeviceSessionStateMock,\n setDeviceSessionState: setDeviceSessionStateMock,\n };\n }\n\n const {\n sendCommand: sendCommandMock,\n getDeviceSessionState: apiGetDeviceSessionStateMock,\n } = makeDeviceActionInternalApiMock();\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"without overriding `extractDependencies`\", () => {\n it(\"should run the device action with device already on dashboard\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock();\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"1.5.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GetDeviceStatus events (mocked for tests)\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action with device not on dashboard\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"Bitcoin\", version: \"1.0.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n\n sendCommandMock\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.5.0\",\n },\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"success cases\", () => {\n it(\"should success if the device is already on dashboard\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock();\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"1.5.0\" },\n });\n\n getAppAndVersionMock.mockReturnValue({\n app: \"BOLOS\",\n version: \"1.5.0\",\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should success if the device is not on dashboard\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock();\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n });\n\n closeAppMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n getAppAndVersionMock.mockReturnValue(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.5.0\",\n },\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"error cases\", () => {\n it(\"should return an error if GetDeviceStatus return an error\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([new UnknownDAError(\"Unknown error\")]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"1.5.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"Unknown error\"),\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n describe(\"not on dashboard\", () => {\n it(\"should return an error if closeApp fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: {},\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: \"Bitcoin\",\n });\n\n closeAppMock.mockReturnValue(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Close app failed\"),\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Close app failed\"),\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should return an error if getAppAndVersion fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n const error = new GlobalCommandError({\n ...GLOBAL_ERRORS[\"5501\"],\n errorCode: \"5501\",\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: \"Bitcoin\",\n });\n\n closeAppMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n getAppAndVersionMock.mockResolvedValue(\n CommandResultFactory({\n error,\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Error,\n error,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should return an error if getAppAndVersion does not return an app name\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: \"Bitcoin\",\n });\n\n closeAppMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n getAppAndVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n name: null,\n version: \"1.0.0\",\n },\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"currentApp === null\"),\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_CommandResult", "import_GlobalCommandError", "import_DeviceModel", "import_DeviceStatus", "import_makeInternalApi", "import_setupTestMachine", "import_testDeviceActionStates", "import_DeviceActionState", "import_UserInteractionRequired", "import_Errors", "import_DeviceSessionState", "import_src", "import_GoToDashboardDeviceAction", "closeAppMock", "getAppAndVersionMock", "getDeviceSessionStateMock", "setDeviceSessionStateMock", "extractDependenciesMock", "sendCommandMock", "apiGetDeviceSessionStateMock", "resolve", "reject", "goToDashboardDeviceAction", "expectedStates", "error"]
4
+ "sourcesContent": ["import { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport {\n GLOBAL_ERRORS,\n GlobalCommandError,\n} from \"@api/command/utils/GlobalCommandError\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { setupGetDeviceStatusMock } from \"@api/device-action/__test-utils__/setupTestMachine\";\nimport { testDeviceActionStates } from \"@api/device-action/__test-utils__/testDeviceActionStates\";\nimport { DeviceActionStatus } from \"@api/device-action/model/DeviceActionState\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport { UnknownDAError } from \"@api/device-action/os/Errors\";\nimport { getDeviceStatusDAStateStep } from \"@api/device-action/os/GetDeviceStatus/types\";\nimport { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\nimport { UnknownDeviceExchangeError } from \"@root/src\";\n\nimport { GoToDashboardDeviceAction } from \"./GoToDashboardDeviceAction\";\nimport { type GoToDashboardDAState, goToDashboardDAStateStep } from \"./types\";\n\nvi.mock(\"@api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction\");\n\ndescribe(\"GoToDashboardDeviceAction\", () => {\n const closeAppMock = vi.fn();\n const getAppAndVersionMock = vi.fn();\n const getDeviceSessionStateMock = vi.fn();\n const setDeviceSessionStateMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n closeApp: closeAppMock,\n getAppAndVersion: getAppAndVersionMock,\n getDeviceSessionState: getDeviceSessionStateMock,\n setDeviceSessionState: setDeviceSessionStateMock,\n };\n }\n\n const {\n sendCommand: sendCommandMock,\n getDeviceSessionState: apiGetDeviceSessionStateMock,\n } = makeDeviceActionInternalApiMock();\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"without overriding `extractDependencies`\", () => {\n it(\"should run the device action with device already on dashboard\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock();\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"1.5.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending, // GetDeviceStatus events (mocked for tests)\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action with device not on dashboard\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"Bitcoin\", version: \"1.0.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n\n sendCommandMock\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.5.0\",\n },\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.CLOSE_APP,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"success cases\", () => {\n it(\"should success if the device is already on dashboard\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock();\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"1.5.0\" },\n });\n\n getAppAndVersionMock.mockReturnValue({\n app: \"BOLOS\",\n version: \"1.5.0\",\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should success if the device is not on dashboard\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock();\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n });\n\n closeAppMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n getAppAndVersionMock.mockReturnValue(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.5.0\",\n },\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"error cases\", () => {\n it(\"should return an error if GetDeviceStatus return an error\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([new UnknownDAError(\"Unknown error\")]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"1.5.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"Unknown error\"),\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n describe(\"not on dashboard\", () => {\n it(\"should return an error if closeApp fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: {},\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: \"Bitcoin\",\n });\n\n closeAppMock.mockReturnValue(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Close app failed\"),\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Close app failed\"),\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should return an error if getAppAndVersion fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n const error = new GlobalCommandError({\n ...GLOBAL_ERRORS[\"5501\"],\n errorCode: \"5501\",\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: \"Bitcoin\",\n });\n\n closeAppMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n getAppAndVersionMock.mockResolvedValue(\n CommandResultFactory({\n error,\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.CLOSE_APP,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Error,\n error,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should return an error if getAppAndVersion does not return an app name\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: \"Bitcoin\",\n });\n\n closeAppMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n getAppAndVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n name: null,\n version: \"1.0.0\",\n },\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.CLOSE_APP,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"currentApp === null\"),\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_CommandResult", "import_GlobalCommandError", "import_DeviceModel", "import_DeviceStatus", "import_makeInternalApi", "import_setupTestMachine", "import_testDeviceActionStates", "import_DeviceActionState", "import_UserInteractionRequired", "import_Errors", "import_types", "import_DeviceSessionState", "import_src", "import_GoToDashboardDeviceAction", "closeAppMock", "getAppAndVersionMock", "getDeviceSessionStateMock", "setDeviceSessionStateMock", "extractDependenciesMock", "sendCommandMock", "apiGetDeviceSessionStateMock", "resolve", "reject", "goToDashboardDeviceAction", "expectedStates", "error"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var u=(t,e,D,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of p(e))!n.call(t,o)&&o!==D&&a(t,o,{get:()=>e[o],enumerable:!(r=i(e,o))||r.enumerable});return t};var d=t=>u(a({},"__esModule",{value:!0}),t);var A={};module.exports=d(A);
1
+ "use strict";var a=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var A=(e,t)=>{for(var r in t)a(e,r,{get:t[r],enumerable:!0})},i=(e,t,r,D)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of p(t))!d.call(e,o)&&o!==r&&a(e,o,{get:()=>t[o],enumerable:!(D=s(t,o))||D.enumerable});return e};var n=e=>i(a({},"__esModule",{value:!0}),e);var u={};A(u,{goToDashboardDAStateStep:()=>S});module.exports=n(u);const S=Object.freeze({GET_DEVICE_STATUS:"os.goToDashboard.steps.getDeviceStatus",DASHBOARD_CHECK:"os.goToDashboard.steps.dashboardCheck",CLOSE_APP:"os.goToDashboard.steps.closeApp",CONFIRM_DASHBOARD_OPEN:"os.goToDashboard.steps.confirmDashboardOpen"});0&&(module.exports={goToDashboardDAStateStep});
2
2
  //# sourceMappingURL=types.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/api/device-action/os/GoToDashboard/types.ts"],
4
- "sourcesContent": ["import { type CommandErrorResult } from \"@api/command/model/CommandResult\";\nimport { type DeviceActionState } from \"@api/device-action/model/DeviceActionState\";\nimport { type UnknownDAError } from \"@api/device-action/os/Errors\";\nimport {\n type GetDeviceStatusDAError,\n type GetDeviceStatusDAInput,\n type GetDeviceStatusDARequiredInteraction,\n} from \"@api/device-action/os/GetDeviceStatus/types\";\n\nexport type GoToDashboardDAOutput = void;\nexport type GoToDashboardDAInput = GetDeviceStatusDAInput;\n\nexport type GoToDashboardDAError =\n | GetDeviceStatusDAError\n | UnknownDAError\n | CommandErrorResult[\"error\"];\n\nexport type GoToDashboardDARequiredInteraction =\n GetDeviceStatusDARequiredInteraction;\n\nexport type GoToDashboardDAIntermediateValue = {\n readonly requiredUserInteraction: GoToDashboardDARequiredInteraction;\n};\n\nexport type GoToDashboardDAState = DeviceActionState<\n GoToDashboardDAOutput,\n GoToDashboardDAError,\n GoToDashboardDAIntermediateValue\n>;\n"],
5
- "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
- "names": ["types_exports", "__toCommonJS"]
4
+ "sourcesContent": ["import { type CommandErrorResult } from \"@api/command/model/CommandResult\";\nimport { type DeviceActionState } from \"@api/device-action/model/DeviceActionState\";\nimport { type UnknownDAError } from \"@api/device-action/os/Errors\";\nimport {\n type GetDeviceStatusDAError,\n type GetDeviceStatusDAInput,\n type GetDeviceStatusDARequiredInteraction,\n type GetDeviceStatusDAStateStep,\n} from \"@api/device-action/os/GetDeviceStatus/types\";\n\nexport const goToDashboardDAStateStep = Object.freeze({\n GET_DEVICE_STATUS: \"os.goToDashboard.steps.getDeviceStatus\",\n DASHBOARD_CHECK: \"os.goToDashboard.steps.dashboardCheck\",\n CLOSE_APP: \"os.goToDashboard.steps.closeApp\",\n CONFIRM_DASHBOARD_OPEN: \"os.goToDashboard.steps.confirmDashboardOpen\",\n} as const);\n\nexport type GoToDashboardDAStateStep =\n (typeof goToDashboardDAStateStep)[keyof typeof goToDashboardDAStateStep];\n\nexport type GoToDashboardDAOutput = void;\nexport type GoToDashboardDAInput = GetDeviceStatusDAInput;\n\nexport type GoToDashboardDAError =\n | GetDeviceStatusDAError\n | UnknownDAError\n | CommandErrorResult[\"error\"];\n\nexport type GoToDashboardDARequiredInteraction =\n GetDeviceStatusDARequiredInteraction;\n\nexport type GoToDashboardDAIntermediateValue = {\n readonly requiredUserInteraction: GoToDashboardDARequiredInteraction;\n readonly step: GoToDashboardDAStateStep | GetDeviceStatusDAStateStep;\n};\n\nexport type GoToDashboardDAState = DeviceActionState<\n GoToDashboardDAOutput,\n GoToDashboardDAError,\n GoToDashboardDAIntermediateValue\n>;\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,IAAA,eAAAC,EAAAH,GAUO,MAAME,EAA2B,OAAO,OAAO,CACpD,kBAAmB,yCACnB,gBAAiB,wCACjB,UAAW,kCACX,uBAAwB,6CAC1B,CAAU",
6
+ "names": ["types_exports", "__export", "goToDashboardDAStateStep", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var A=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var U=Object.prototype.hasOwnProperty;var V=(i,t)=>{for(var l in t)A(i,l,{get:t[l],enumerable:!0})},T=(i,t,l,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of E(t))!U.call(i,o)&&o!==l&&A(i,o,{get:()=>t[o],enumerable:!(c=P(t,o))||c.enumerable});return i};var k=i=>T(A({},"__esModule",{value:!0}),i);var w={};V(w,{InstallOrUpdateAppsDeviceAction:()=>b});module.exports=k(w);var u=require("purify-ts"),n=require("xstate"),s=require("../../../device-action/model/UserInteractionRequired"),x=require("../../../device-action/os/Const"),y=require("../../../device-action/os/Errors"),g=require("../../../device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction"),v=require("../../../device-action/os/GoToDashboard/GoToDashboardDeviceAction"),O=require("../../../device-action/task/BuildAppsInstallPlanTask"),D=require("../../../device-action/task/PredictOutOfMemoryTask"),f=require("../../../device-action/xstate-utils/XStateDeviceAction"),h=require("../../../device-session/DeviceSessionState"),M=require("../../../secure-channel/task/ConnectToSecureChannelTask"),p=require("../../../secure-channel/task/types");class b extends f.XStateDeviceAction{makeStateMachine(t){const{buildInstallPlan:l,predictOutOfMemory:c,installApp:o}=this.extractDependencies(t),r=this.input.unlockTimeout??x.DEFAULT_UNLOCK_TIMEOUT_MS,d=new g.GetDeviceMetadataDeviceAction({input:{unlockTimeout:r,useSecureChannel:!0,forceUpdate:!1}}).makeStateMachine(t),m=new v.GoToDashboardDeviceAction({input:{unlockTimeout:r}}).makeStateMachine(t);return(0,n.setup)({types:{input:{unlockTimeout:r},context:{},output:{}},actors:{updateMetadata:d,buildInstallPlan:(0,n.fromPromise)(l),predictOutOfMemory:(0,n.fromPromise)(c),goToDashboard:m,installApp:(0,n.fromObservable)(o)},guards:{hasError:({context:e})=>e._internalState.error!==null,hasInstallPlan:e=>e.context.intermediateValue.installPlan!==null,hasMoreApps:e=>e.context._internalState.currentIndex<e.context.intermediateValue.installPlan.installPlan.length},actions:{assignErrorFromEvent:(0,n.assign)({_internalState:e=>({...e.context._internalState,error:e.event.error})}),nextAppIndex:(0,n.assign)({_internalState:e=>({...e.context._internalState,currentIndex:e.context._internalState.currentIndex+1})}),cleanupDeviceState:()=>{const e=t.getDeviceSessionState();e.sessionStateType!==h.DeviceSessionStateType.Connected&&t.setDeviceSessionState({...e,installedApps:[],appsUpdates:void 0})}}}).createMachine({id:"InstallOrUpdateAppsDeviceAction",initial:"DeviceReady",context:e=>({input:{applications:e.input.applications,allowMissingApplication:e.input.allowMissingApplication,unlockTimeout:e.input.unlockTimeout},intermediateValue:{requiredUserInteraction:s.UserInteractionRequired.None,installPlan:null},_internalState:{error:null,osVersion:null,currentIndex:0}}),states:{DeviceReady:{always:[{target:"UpdateDeviceMetadata"}]},UpdateDeviceMetadata:{exit:(0,n.assign)({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:s.UserInteractionRequired.None})}),invoke:{id:"updateMetadata",src:"updateMetadata",input:e=>({unlockTimeout:e.context.input.unlockTimeout,useSecureChannel:!0,forceUpdate:!1}),onSnapshot:{actions:(0,n.assign)({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:e.event.snapshot.context.intermediateValue.requiredUserInteraction,deviceId:e.event.snapshot.context.intermediateValue.deviceId??e.context.intermediateValue.deviceId})})},onDone:{target:"UpdateDeviceMetadataCheck",actions:(0,n.assign)({_internalState:e=>e.event.output.caseOf({Right:a=>({...e.context._internalState,osVersion:a.firmwareVersion.metadata}),Left:a=>({...e.context._internalState,error:a})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},UpdateDeviceMetadataCheck:{always:[{target:"Error",guard:"hasError"},{target:"Success",guard:"hasInstallPlan"},{target:"BuildInstallPlan"}]},BuildInstallPlan:{invoke:{src:"buildInstallPlan",input:e=>({applications:e.context.input.applications,allowMissingApplication:e.context.input.allowMissingApplication}),onDone:{target:"BuildInstallPlanCheck",actions:(0,n.assign)({_internalState:e=>"error"in e.event.output?{...e.context._internalState,error:e.event.output.error}:e.context._internalState,intermediateValue:e=>"error"in e.event.output?e.context.intermediateValue:{...e.context.intermediateValue,installPlan:{installPlan:e.event.output.installPlan,alreadyInstalled:e.event.output.alreadyInstalled,missingApplications:e.event.output.missingApplications,currentIndex:0,currentProgress:0}}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildInstallPlanCheck:{always:[{guard:"hasError",target:"Error"},{target:"PredictOutOfMemory",guard:"hasMoreApps"},{target:"Success"}]},PredictOutOfMemory:{invoke:{src:"predictOutOfMemory",input:e=>({installPlan:e.context.intermediateValue.installPlan.installPlan}),onDone:{target:"PredictOutOfMemoryCheck",actions:(0,n.assign)({_internalState:e=>"error"in e.event.output?{...e.context._internalState,error:e.event.output.error}:e.event.output.outOfMemory?{...e.context._internalState,error:new y.OutOfMemoryDAError("Not enough memory for those applications")}:e.context._internalState})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},PredictOutOfMemoryCheck:{always:[{guard:"hasError",target:"Error"},{target:"GoToDashboard"}]},GoToDashboard:{invoke:{id:"goToDashboard",src:"goToDashboard",input:e=>({unlockTimeout:e.context.input.unlockTimeout}),onSnapshot:{actions:(0,n.assign)({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:e.event.snapshot.context.intermediateValue.requiredUserInteraction})})},onDone:{target:"GoToDashboardCheck",actions:(0,n.assign)({_internalState:e=>e.event.output.caseOf({Right:()=>e.context._internalState,Left:a=>({...e.context._internalState,error:a})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GoToDashboardCheck:{always:[{target:"Error",guard:"hasError"},{target:"InstallApp",actions:"cleanupDeviceState"}]},InstallApp:{exit:(0,n.assign)({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:s.UserInteractionRequired.None})}),invoke:{id:"installApp",src:"installApp",input:e=>({osVersion:e.context._internalState.osVersion,application:e.context.intermediateValue.installPlan.installPlan[e.context._internalState.currentIndex]}),onSnapshot:{actions:(0,n.assign)({intermediateValue:e=>{switch(e.event.snapshot.context?.type){case p.SecureChannelEventType.DeviceId:return{...e.context.intermediateValue,deviceId:e.event.snapshot.context.payload.deviceId};case p.SecureChannelEventType.PermissionRequested:return{...e.context.intermediateValue,requiredUserInteraction:s.UserInteractionRequired.AllowSecureConnection};case p.SecureChannelEventType.PermissionGranted:{const a=t.getDeviceSessionState();return a.sessionStateType!==h.DeviceSessionStateType.Connected&&t.setDeviceSessionState({...a,isSecureConnectionAllowed:!0}),{...e.context.intermediateValue,requiredUserInteraction:s.UserInteractionRequired.None}}case p.SecureChannelEventType.Progress:return{...e.context.intermediateValue,installPlan:{...e.context.intermediateValue.installPlan,currentIndex:e.context._internalState.currentIndex,currentProgress:e.event.snapshot.context.payload.progress}};default:return e.context.intermediateValue}},_internalState:e=>e.event.snapshot.context?.type===p.SecureChannelEventType.Error?{...e.context._internalState,error:e.event.snapshot.context.error.mapInstallDAErrors()}:e.context._internalState})},onDone:{target:"InstallAppCheck",actions:"nextAppIndex"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},InstallAppCheck:{always:[{target:"Error",guard:"hasError"},{target:"InstallApp",guard:"hasMoreApps"},{target:"UpdateDeviceMetadata"}]},Success:{type:"final"},Error:{type:"final"}},output:e=>{const{context:a}=e,{error:S}=a._internalState,{installPlan:I}=a.intermediateValue;return S?(0,u.Left)(S):(0,u.Right)({successfullyInstalled:I.installPlan,alreadyInstalled:I.alreadyInstalled,missingApplications:I.missingApplications})}})}extractDependencies(t){return{buildInstallPlan:r=>Promise.resolve(new O.BuildAppsInstallPlanTask(t,{applications:r.input.applications,allowMissingApplication:r.input.allowMissingApplication}).run()),predictOutOfMemory:r=>Promise.resolve(new D.PredictOutOfMemoryTask(t,{installPlan:r.input.installPlan}).run()),installApp:r=>{const{osVersion:d,application:m}=r.input,e=t.getSecureChannelService().installApp(d,m);return new M.ConnectToSecureChannelTask(t,{connection:e}).run()}}}}0&&(module.exports={InstallOrUpdateAppsDeviceAction});
1
+ "use strict";var I=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var V=Object.prototype.hasOwnProperty;var T=(i,t)=>{for(var l in t)I(i,l,{get:t[l],enumerable:!0})},k=(i,t,l,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of U(t))!V.call(i,o)&&o!==l&&I(i,o,{get:()=>t[o],enumerable:!(c=E(t,o))||c.enumerable});return i};var b=i=>k(I({},"__esModule",{value:!0}),i);var C={};T(C,{InstallOrUpdateAppsDeviceAction:()=>w});module.exports=b(C);var u=require("purify-ts"),n=require("xstate"),s=require("../../../device-action/model/UserInteractionRequired"),x=require("../../../device-action/os/Const"),y=require("../../../device-action/os/Errors"),g=require("../../../device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction"),D=require("../../../device-action/os/GoToDashboard/GoToDashboardDeviceAction"),O=require("../../../device-action/task/BuildAppsInstallPlanTask"),v=require("../../../device-action/task/PredictOutOfMemoryTask"),f=require("../../../device-action/xstate-utils/XStateDeviceAction"),h=require("../../../device-session/DeviceSessionState"),M=require("../../../secure-channel/task/ConnectToSecureChannelTask"),p=require("../../../secure-channel/task/types"),P=require("./types");class w extends f.XStateDeviceAction{makeStateMachine(t){const{buildInstallPlan:l,predictOutOfMemory:c,installApp:o}=this.extractDependencies(t),r=this.input.unlockTimeout??x.DEFAULT_UNLOCK_TIMEOUT_MS,d=new g.GetDeviceMetadataDeviceAction({input:{unlockTimeout:r,useSecureChannel:!0,forceUpdate:!1}}).makeStateMachine(t),m=new D.GoToDashboardDeviceAction({input:{unlockTimeout:r}}).makeStateMachine(t);return(0,n.setup)({types:{input:{unlockTimeout:r},context:{},output:{}},actors:{updateMetadata:d,buildInstallPlan:(0,n.fromPromise)(l),predictOutOfMemory:(0,n.fromPromise)(c),goToDashboard:m,installApp:(0,n.fromObservable)(o)},guards:{hasError:({context:e})=>e._internalState.error!==null,hasInstallPlan:e=>e.context.intermediateValue.installPlan!==null,hasMoreApps:e=>e.context._internalState.currentIndex<e.context.intermediateValue.installPlan.installPlan.length},actions:{assignErrorFromEvent:(0,n.assign)({_internalState:e=>({...e.context._internalState,error:e.event.error})}),nextAppIndex:(0,n.assign)({_internalState:e=>({...e.context._internalState,currentIndex:e.context._internalState.currentIndex+1})}),cleanupDeviceState:()=>{const e=t.getDeviceSessionState();e.sessionStateType!==h.DeviceSessionStateType.Connected&&t.setDeviceSessionState({...e,installedApps:[],appsUpdates:void 0})}}}).createMachine({id:"InstallOrUpdateAppsDeviceAction",initial:"DeviceReady",context:e=>({input:{applications:e.input.applications,allowMissingApplication:e.input.allowMissingApplication,unlockTimeout:e.input.unlockTimeout},intermediateValue:{requiredUserInteraction:s.UserInteractionRequired.None,step:P.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},_internalState:{error:null,osVersion:null,currentIndex:0}}),states:{DeviceReady:{always:[{target:"UpdateDeviceMetadata"}]},UpdateDeviceMetadata:{exit:(0,n.assign)({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:s.UserInteractionRequired.None})}),invoke:{id:"updateMetadata",src:"updateMetadata",input:e=>({unlockTimeout:e.context.input.unlockTimeout,useSecureChannel:!0,forceUpdate:!1}),onSnapshot:{actions:(0,n.assign)({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:e.event.snapshot.context.intermediateValue.requiredUserInteraction,deviceId:e.event.snapshot.context.intermediateValue.deviceId??e.context.intermediateValue.deviceId})})},onDone:{target:"UpdateDeviceMetadataCheck",actions:(0,n.assign)({_internalState:e=>e.event.output.caseOf({Right:a=>({...e.context._internalState,osVersion:a.firmwareVersion.metadata}),Left:a=>({...e.context._internalState,error:a})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},UpdateDeviceMetadataCheck:{always:[{target:"Error",guard:"hasError"},{target:"Success",guard:"hasInstallPlan"},{target:"BuildInstallPlan"}]},BuildInstallPlan:{invoke:{src:"buildInstallPlan",input:e=>({applications:e.context.input.applications,allowMissingApplication:e.context.input.allowMissingApplication}),onDone:{target:"BuildInstallPlanCheck",actions:(0,n.assign)({_internalState:e=>"error"in e.event.output?{...e.context._internalState,error:e.event.output.error}:e.context._internalState,intermediateValue:e=>"error"in e.event.output?e.context.intermediateValue:{...e.context.intermediateValue,installPlan:{installPlan:e.event.output.installPlan,alreadyInstalled:e.event.output.alreadyInstalled,missingApplications:e.event.output.missingApplications,currentIndex:0,currentProgress:0}}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildInstallPlanCheck:{always:[{guard:"hasError",target:"Error"},{target:"PredictOutOfMemory",guard:"hasMoreApps"},{target:"Success"}]},PredictOutOfMemory:{invoke:{src:"predictOutOfMemory",input:e=>({installPlan:e.context.intermediateValue.installPlan.installPlan}),onDone:{target:"PredictOutOfMemoryCheck",actions:(0,n.assign)({_internalState:e=>"error"in e.event.output?{...e.context._internalState,error:e.event.output.error}:e.event.output.outOfMemory?{...e.context._internalState,error:new y.OutOfMemoryDAError("Not enough memory for those applications")}:e.context._internalState})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},PredictOutOfMemoryCheck:{always:[{guard:"hasError",target:"Error"},{target:"GoToDashboard"}]},GoToDashboard:{invoke:{id:"goToDashboard",src:"goToDashboard",input:e=>({unlockTimeout:e.context.input.unlockTimeout}),onSnapshot:{actions:(0,n.assign)({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:e.event.snapshot.context.intermediateValue.requiredUserInteraction})})},onDone:{target:"GoToDashboardCheck",actions:(0,n.assign)({_internalState:e=>e.event.output.caseOf({Right:()=>e.context._internalState,Left:a=>({...e.context._internalState,error:a})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GoToDashboardCheck:{always:[{target:"Error",guard:"hasError"},{target:"InstallApp",actions:"cleanupDeviceState"}]},InstallApp:{exit:(0,n.assign)({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:s.UserInteractionRequired.None})}),invoke:{id:"installApp",src:"installApp",input:e=>({osVersion:e.context._internalState.osVersion,application:e.context.intermediateValue.installPlan.installPlan[e.context._internalState.currentIndex]}),onSnapshot:{actions:(0,n.assign)({intermediateValue:e=>{switch(e.event.snapshot.context?.type){case p.SecureChannelEventType.DeviceId:return{...e.context.intermediateValue,deviceId:e.event.snapshot.context.payload.deviceId};case p.SecureChannelEventType.PermissionRequested:return{...e.context.intermediateValue,requiredUserInteraction:s.UserInteractionRequired.AllowSecureConnection};case p.SecureChannelEventType.PermissionGranted:{const a=t.getDeviceSessionState();return a.sessionStateType!==h.DeviceSessionStateType.Connected&&t.setDeviceSessionState({...a,isSecureConnectionAllowed:!0}),{...e.context.intermediateValue,requiredUserInteraction:s.UserInteractionRequired.None}}case p.SecureChannelEventType.Progress:return{...e.context.intermediateValue,installPlan:{...e.context.intermediateValue.installPlan,currentIndex:e.context._internalState.currentIndex,currentProgress:e.event.snapshot.context.payload.progress}};default:return e.context.intermediateValue}},_internalState:e=>e.event.snapshot.context?.type===p.SecureChannelEventType.Error?{...e.context._internalState,error:e.event.snapshot.context.error.mapInstallDAErrors()}:e.context._internalState})},onDone:{target:"InstallAppCheck",actions:"nextAppIndex"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},InstallAppCheck:{always:[{target:"Error",guard:"hasError"},{target:"InstallApp",guard:"hasMoreApps"},{target:"UpdateDeviceMetadata"}]},Success:{type:"final"},Error:{type:"final"}},output:e=>{const{context:a}=e,{error:S}=a._internalState,{installPlan:A}=a.intermediateValue;return S?(0,u.Left)(S):(0,u.Right)({successfullyInstalled:A.installPlan,alreadyInstalled:A.alreadyInstalled,missingApplications:A.missingApplications})}})}extractDependencies(t){return{buildInstallPlan:r=>Promise.resolve(new O.BuildAppsInstallPlanTask(t,{applications:r.input.applications,allowMissingApplication:r.input.allowMissingApplication}).run()),predictOutOfMemory:r=>Promise.resolve(new v.PredictOutOfMemoryTask(t,{installPlan:r.input.installPlan}).run()),installApp:r=>{const{osVersion:d,application:m}=r.input,e=t.getSecureChannelService().installApp(d,m);return new M.ConnectToSecureChannelTask(t,{connection:e}).run()}}}}0&&(module.exports={InstallOrUpdateAppsDeviceAction});
2
2
  //# sourceMappingURL=InstallOrUpdateAppsDeviceAction.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.ts"],
4
- "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { type Observable } from \"rxjs\";\nimport { assign, fromObservable, fromPromise, setup } from \"xstate\";\n\nimport { type InternalApi } from \"@api/device-action/DeviceAction\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport { DEFAULT_UNLOCK_TIMEOUT_MS } from \"@api/device-action/os/Const\";\nimport { OutOfMemoryDAError } from \"@api/device-action/os/Errors\";\nimport { GetDeviceMetadataDeviceAction } from \"@api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction\";\nimport { GoToDashboardDeviceAction } from \"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\";\nimport {\n BuildAppsInstallPlanTask,\n type BuildAppsInstallPlanTaskResult,\n} from \"@api/device-action/task/BuildAppsInstallPlanTask\";\nimport {\n PredictOutOfMemoryTask,\n type PredictOutOfMemoryTaskResult,\n} from \"@api/device-action/task/PredictOutOfMemoryTask\";\nimport { type StateMachineTypes } from \"@api/device-action/xstate-utils/StateMachineTypes\";\nimport {\n type DeviceActionStateMachine,\n XStateDeviceAction,\n} from \"@api/device-action/xstate-utils/XStateDeviceAction\";\nimport { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\nimport { type GetOsVersionResponse } from \"@api/index\";\nimport { ConnectToSecureChannelTask } from \"@api/secure-channel/task/ConnectToSecureChannelTask\";\nimport { SecureChannelEventType } from \"@api/secure-channel/task/types\";\nimport { type SecureChannelEvent } from \"@api/secure-channel/task/types\";\nimport { type Application } from \"@internal/manager-api/model/Application\";\n\nimport {\n type ApplicationDependency,\n type InstallOrUpdateAppsDAError,\n type InstallOrUpdateAppsDAInput,\n type InstallOrUpdateAppsDAIntermediateValue,\n type InstallOrUpdateAppsDAOutput,\n} from \"./types\";\n\ntype InstallOrUpdateAppsMachineInternalState = {\n readonly error: InstallOrUpdateAppsDAError | null;\n readonly osVersion: GetOsVersionResponse | null;\n readonly currentIndex: number;\n};\n\nexport type MachineDependencies = {\n readonly buildInstallPlan: (arg0: {\n input: {\n applications: ApplicationDependency[];\n allowMissingApplication: boolean;\n };\n }) => Promise<BuildAppsInstallPlanTaskResult>;\n readonly predictOutOfMemory: (arg0: {\n input: {\n installPlan: Application[];\n };\n }) => Promise<PredictOutOfMemoryTaskResult>;\n readonly installApp: (arg0: {\n input: {\n osVersion: GetOsVersionResponse;\n application: Application;\n };\n }) => Observable<SecureChannelEvent>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class InstallOrUpdateAppsDeviceAction extends XStateDeviceAction<\n InstallOrUpdateAppsDAOutput,\n InstallOrUpdateAppsDAInput,\n InstallOrUpdateAppsDAError,\n InstallOrUpdateAppsDAIntermediateValue,\n InstallOrUpdateAppsMachineInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n InstallOrUpdateAppsDAOutput,\n InstallOrUpdateAppsDAInput,\n InstallOrUpdateAppsDAError,\n InstallOrUpdateAppsDAIntermediateValue,\n InstallOrUpdateAppsMachineInternalState\n > {\n type types = StateMachineTypes<\n InstallOrUpdateAppsDAOutput,\n InstallOrUpdateAppsDAInput,\n InstallOrUpdateAppsDAError,\n InstallOrUpdateAppsDAIntermediateValue,\n InstallOrUpdateAppsMachineInternalState\n >;\n\n const { buildInstallPlan, predictOutOfMemory, installApp } =\n this.extractDependencies(internalApi);\n\n const unlockTimeout = this.input.unlockTimeout ?? DEFAULT_UNLOCK_TIMEOUT_MS;\n\n const updateMetadataMachine = new GetDeviceMetadataDeviceAction({\n input: {\n unlockTimeout,\n useSecureChannel: true,\n forceUpdate: false,\n },\n }).makeStateMachine(internalApi);\n\n const goToDashboardMachine = new GoToDashboardDeviceAction({\n input: {\n unlockTimeout,\n },\n }).makeStateMachine(internalApi);\n\n return setup({\n types: {\n input: {\n unlockTimeout,\n } as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n actors: {\n updateMetadata: updateMetadataMachine,\n buildInstallPlan: fromPromise(buildInstallPlan),\n predictOutOfMemory: fromPromise(predictOutOfMemory),\n goToDashboard: goToDashboardMachine,\n installApp: fromObservable(installApp),\n },\n guards: {\n hasError: ({ context }) => context._internalState.error !== null,\n hasInstallPlan: (_) => _.context.intermediateValue.installPlan !== null,\n hasMoreApps: (_) =>\n _.context._internalState.currentIndex <\n _.context.intermediateValue.installPlan!.installPlan.length,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n nextAppIndex: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n currentIndex: _.context._internalState.currentIndex + 1,\n }),\n }),\n cleanupDeviceState: () => {\n // After app successful installation, cleanup the device session state\n // to force fetching the new device state when required\n const state = internalApi.getDeviceSessionState();\n if (state.sessionStateType !== DeviceSessionStateType.Connected) {\n internalApi.setDeviceSessionState({\n ...state,\n installedApps: [],\n appsUpdates: undefined,\n });\n }\n },\n },\n }).createMachine({\n id: \"InstallOrUpdateAppsDeviceAction\",\n initial: \"DeviceReady\",\n context: (_) => {\n return {\n input: {\n applications: _.input.applications,\n allowMissingApplication: _.input.allowMissingApplication,\n unlockTimeout: _.input.unlockTimeout,\n },\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n _internalState: {\n error: null,\n osVersion: null,\n currentIndex: 0,\n },\n };\n },\n states: {\n DeviceReady: {\n always: [\n {\n target: \"UpdateDeviceMetadata\",\n },\n ],\n },\n UpdateDeviceMetadata: {\n exit: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n }),\n }),\n invoke: {\n id: \"updateMetadata\",\n src: \"updateMetadata\",\n input: (_) => ({\n unlockTimeout: _.context.input.unlockTimeout,\n useSecureChannel: true,\n forceUpdate: false,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n requiredUserInteraction:\n _.event.snapshot.context.intermediateValue\n .requiredUserInteraction,\n deviceId:\n _.event.snapshot.context.intermediateValue.deviceId ??\n _.context.intermediateValue.deviceId,\n }),\n }),\n },\n onDone: {\n target: \"UpdateDeviceMetadataCheck\",\n actions: assign({\n _internalState: (_) =>\n _.event.output.caseOf<InstallOrUpdateAppsMachineInternalState>(\n {\n Right: (data) => ({\n ..._.context._internalState,\n osVersion: data.firmwareVersion.metadata!,\n }),\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n },\n ),\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n UpdateDeviceMetadataCheck: {\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"Success\",\n guard: \"hasInstallPlan\",\n },\n {\n target: \"BuildInstallPlan\",\n },\n ],\n },\n BuildInstallPlan: {\n invoke: {\n src: \"buildInstallPlan\",\n input: (_) => ({\n applications: _.context.input.applications,\n allowMissingApplication: _.context.input.allowMissingApplication,\n }),\n onDone: {\n target: \"BuildInstallPlanCheck\",\n actions: assign({\n _internalState: (_) => {\n if (\"error\" in _.event.output) {\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n } else {\n return _.context._internalState;\n }\n },\n intermediateValue: (_) => {\n if (\"error\" in _.event.output) {\n return _.context.intermediateValue;\n } else {\n return {\n ..._.context.intermediateValue,\n installPlan: {\n installPlan: _.event.output.installPlan,\n alreadyInstalled: _.event.output.alreadyInstalled,\n missingApplications: _.event.output.missingApplications,\n currentIndex: 0,\n currentProgress: 0,\n },\n };\n }\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n BuildInstallPlanCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"PredictOutOfMemory\",\n guard: \"hasMoreApps\",\n },\n {\n target: \"Success\",\n },\n ],\n },\n PredictOutOfMemory: {\n invoke: {\n src: \"predictOutOfMemory\",\n input: (_) => ({\n installPlan: _.context.intermediateValue.installPlan!.installPlan,\n }),\n onDone: {\n target: \"PredictOutOfMemoryCheck\",\n actions: assign({\n _internalState: (_) => {\n if (\"error\" in _.event.output) {\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n } else if (_.event.output.outOfMemory) {\n return {\n ..._.context._internalState,\n error: new OutOfMemoryDAError(\n \"Not enough memory for those applications\",\n ),\n };\n } else {\n return _.context._internalState;\n }\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n PredictOutOfMemoryCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"GoToDashboard\",\n },\n ],\n },\n GoToDashboard: {\n invoke: {\n id: \"goToDashboard\",\n src: \"goToDashboard\",\n input: (_) => ({\n unlockTimeout: _.context.input.unlockTimeout,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n requiredUserInteraction:\n _.event.snapshot.context.intermediateValue\n .requiredUserInteraction,\n }),\n }),\n },\n onDone: {\n target: \"GoToDashboardCheck\",\n actions: assign({\n _internalState: (_) =>\n _.event.output.caseOf<InstallOrUpdateAppsMachineInternalState>(\n {\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n },\n ),\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GoToDashboardCheck: {\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"InstallApp\",\n actions: \"cleanupDeviceState\",\n },\n ],\n },\n InstallApp: {\n exit: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n }),\n }),\n invoke: {\n id: \"installApp\",\n src: \"installApp\",\n input: (_) => ({\n osVersion: _.context._internalState.osVersion!,\n application:\n _.context.intermediateValue.installPlan!.installPlan[\n _.context._internalState.currentIndex\n ]!,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => {\n switch (_.event.snapshot.context?.type) {\n case SecureChannelEventType.DeviceId: {\n return {\n ..._.context.intermediateValue,\n deviceId: _.event.snapshot.context.payload.deviceId,\n };\n }\n case SecureChannelEventType.PermissionRequested: {\n return {\n ..._.context.intermediateValue,\n requiredUserInteraction:\n UserInteractionRequired.AllowSecureConnection,\n };\n }\n case SecureChannelEventType.PermissionGranted: {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n internalApi.setDeviceSessionState({\n ...deviceState,\n isSecureConnectionAllowed: true,\n });\n }\n return {\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n };\n }\n case SecureChannelEventType.Progress: {\n return {\n ..._.context.intermediateValue,\n installPlan: {\n ..._.context.intermediateValue.installPlan!,\n currentIndex: _.context._internalState.currentIndex,\n currentProgress:\n _.event.snapshot.context.payload.progress,\n },\n };\n }\n default:\n return _.context.intermediateValue;\n }\n },\n _internalState: (_) => {\n if (\n _.event.snapshot.context?.type ===\n SecureChannelEventType.Error\n ) {\n return {\n ..._.context._internalState,\n error:\n _.event.snapshot.context.error.mapInstallDAErrors(),\n };\n }\n return _.context._internalState;\n },\n }),\n },\n onDone: {\n target: \"InstallAppCheck\",\n actions: \"nextAppIndex\",\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n InstallAppCheck: {\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"InstallApp\",\n guard: \"hasMoreApps\",\n },\n {\n target: \"UpdateDeviceMetadata\",\n },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: (args) => {\n const { context } = args;\n const { error } = context._internalState;\n const { installPlan } = context.intermediateValue;\n if (error) {\n return Left(error);\n }\n return Right({\n successfullyInstalled: installPlan!.installPlan,\n alreadyInstalled: installPlan!.alreadyInstalled,\n missingApplications: installPlan!.missingApplications,\n });\n },\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const buildInstallPlan = (arg0: {\n input: {\n applications: ApplicationDependency[];\n allowMissingApplication: boolean;\n };\n }) =>\n Promise.resolve(\n new BuildAppsInstallPlanTask(internalApi, {\n applications: arg0.input.applications,\n allowMissingApplication: arg0.input.allowMissingApplication,\n }).run(),\n );\n\n const predictOutOfMemory = (arg0: {\n input: {\n installPlan: Application[];\n };\n }) =>\n Promise.resolve(\n new PredictOutOfMemoryTask(internalApi, {\n installPlan: arg0.input.installPlan,\n }).run(),\n );\n\n const installApp = (arg0: {\n input: {\n osVersion: GetOsVersionResponse;\n application: Application;\n };\n }) => {\n const { osVersion, application } = arg0.input;\n const connection = internalApi\n .getSecureChannelService()\n .installApp(osVersion, application);\n return new ConnectToSecureChannelTask(internalApi, {\n connection,\n }).run();\n };\n\n return {\n buildInstallPlan,\n predictOutOfMemory,\n installApp,\n };\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { type Observable } from \"rxjs\";\nimport { assign, fromObservable, fromPromise, setup } from \"xstate\";\n\nimport { type InternalApi } from \"@api/device-action/DeviceAction\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport { DEFAULT_UNLOCK_TIMEOUT_MS } from \"@api/device-action/os/Const\";\nimport { OutOfMemoryDAError } from \"@api/device-action/os/Errors\";\nimport { GetDeviceMetadataDeviceAction } from \"@api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction\";\nimport { GoToDashboardDeviceAction } from \"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\";\nimport {\n BuildAppsInstallPlanTask,\n type BuildAppsInstallPlanTaskResult,\n} from \"@api/device-action/task/BuildAppsInstallPlanTask\";\nimport {\n PredictOutOfMemoryTask,\n type PredictOutOfMemoryTaskResult,\n} from \"@api/device-action/task/PredictOutOfMemoryTask\";\nimport { type StateMachineTypes } from \"@api/device-action/xstate-utils/StateMachineTypes\";\nimport {\n type DeviceActionStateMachine,\n XStateDeviceAction,\n} from \"@api/device-action/xstate-utils/XStateDeviceAction\";\nimport { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\nimport { type GetOsVersionResponse } from \"@api/index\";\nimport { ConnectToSecureChannelTask } from \"@api/secure-channel/task/ConnectToSecureChannelTask\";\nimport { SecureChannelEventType } from \"@api/secure-channel/task/types\";\nimport { type SecureChannelEvent } from \"@api/secure-channel/task/types\";\nimport { type Application } from \"@internal/manager-api/model/Application\";\n\nimport {\n type ApplicationDependency,\n type InstallOrUpdateAppsDAError,\n type InstallOrUpdateAppsDAInput,\n type InstallOrUpdateAppsDAIntermediateValue,\n type InstallOrUpdateAppsDAOutput,\n installOrUpdateAppsDAStateStep,\n} from \"./types\";\n\ntype InstallOrUpdateAppsMachineInternalState = {\n readonly error: InstallOrUpdateAppsDAError | null;\n readonly osVersion: GetOsVersionResponse | null;\n readonly currentIndex: number;\n};\n\nexport type MachineDependencies = {\n readonly buildInstallPlan: (arg0: {\n input: {\n applications: ApplicationDependency[];\n allowMissingApplication: boolean;\n };\n }) => Promise<BuildAppsInstallPlanTaskResult>;\n readonly predictOutOfMemory: (arg0: {\n input: {\n installPlan: Application[];\n };\n }) => Promise<PredictOutOfMemoryTaskResult>;\n readonly installApp: (arg0: {\n input: {\n osVersion: GetOsVersionResponse;\n application: Application;\n };\n }) => Observable<SecureChannelEvent>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class InstallOrUpdateAppsDeviceAction extends XStateDeviceAction<\n InstallOrUpdateAppsDAOutput,\n InstallOrUpdateAppsDAInput,\n InstallOrUpdateAppsDAError,\n InstallOrUpdateAppsDAIntermediateValue,\n InstallOrUpdateAppsMachineInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n InstallOrUpdateAppsDAOutput,\n InstallOrUpdateAppsDAInput,\n InstallOrUpdateAppsDAError,\n InstallOrUpdateAppsDAIntermediateValue,\n InstallOrUpdateAppsMachineInternalState\n > {\n type types = StateMachineTypes<\n InstallOrUpdateAppsDAOutput,\n InstallOrUpdateAppsDAInput,\n InstallOrUpdateAppsDAError,\n InstallOrUpdateAppsDAIntermediateValue,\n InstallOrUpdateAppsMachineInternalState\n >;\n\n const { buildInstallPlan, predictOutOfMemory, installApp } =\n this.extractDependencies(internalApi);\n\n const unlockTimeout = this.input.unlockTimeout ?? DEFAULT_UNLOCK_TIMEOUT_MS;\n\n const updateMetadataMachine = new GetDeviceMetadataDeviceAction({\n input: {\n unlockTimeout,\n useSecureChannel: true,\n forceUpdate: false,\n },\n }).makeStateMachine(internalApi);\n\n const goToDashboardMachine = new GoToDashboardDeviceAction({\n input: {\n unlockTimeout,\n },\n }).makeStateMachine(internalApi);\n\n return setup({\n types: {\n input: {\n unlockTimeout,\n } as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n actors: {\n updateMetadata: updateMetadataMachine,\n buildInstallPlan: fromPromise(buildInstallPlan),\n predictOutOfMemory: fromPromise(predictOutOfMemory),\n goToDashboard: goToDashboardMachine,\n installApp: fromObservable(installApp),\n },\n guards: {\n hasError: ({ context }) => context._internalState.error !== null,\n hasInstallPlan: (_) => _.context.intermediateValue.installPlan !== null,\n hasMoreApps: (_) =>\n _.context._internalState.currentIndex <\n _.context.intermediateValue.installPlan!.installPlan.length,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n nextAppIndex: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n currentIndex: _.context._internalState.currentIndex + 1,\n }),\n }),\n cleanupDeviceState: () => {\n // After app successful installation, cleanup the device session state\n // to force fetching the new device state when required\n const state = internalApi.getDeviceSessionState();\n if (state.sessionStateType !== DeviceSessionStateType.Connected) {\n internalApi.setDeviceSessionState({\n ...state,\n installedApps: [],\n appsUpdates: undefined,\n });\n }\n },\n },\n }).createMachine({\n id: \"InstallOrUpdateAppsDeviceAction\",\n initial: \"DeviceReady\",\n context: (_) => {\n return {\n input: {\n applications: _.input.applications,\n allowMissingApplication: _.input.allowMissingApplication,\n unlockTimeout: _.input.unlockTimeout,\n },\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n _internalState: {\n error: null,\n osVersion: null,\n currentIndex: 0,\n },\n };\n },\n states: {\n DeviceReady: {\n always: [\n {\n target: \"UpdateDeviceMetadata\",\n },\n ],\n },\n UpdateDeviceMetadata: {\n exit: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n }),\n }),\n invoke: {\n id: \"updateMetadata\",\n src: \"updateMetadata\",\n input: (_) => ({\n unlockTimeout: _.context.input.unlockTimeout,\n useSecureChannel: true,\n forceUpdate: false,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n requiredUserInteraction:\n _.event.snapshot.context.intermediateValue\n .requiredUserInteraction,\n deviceId:\n _.event.snapshot.context.intermediateValue.deviceId ??\n _.context.intermediateValue.deviceId,\n }),\n }),\n },\n onDone: {\n target: \"UpdateDeviceMetadataCheck\",\n actions: assign({\n _internalState: (_) =>\n _.event.output.caseOf<InstallOrUpdateAppsMachineInternalState>(\n {\n Right: (data) => ({\n ..._.context._internalState,\n osVersion: data.firmwareVersion.metadata!,\n }),\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n },\n ),\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n UpdateDeviceMetadataCheck: {\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"Success\",\n guard: \"hasInstallPlan\",\n },\n {\n target: \"BuildInstallPlan\",\n },\n ],\n },\n BuildInstallPlan: {\n invoke: {\n src: \"buildInstallPlan\",\n input: (_) => ({\n applications: _.context.input.applications,\n allowMissingApplication: _.context.input.allowMissingApplication,\n }),\n onDone: {\n target: \"BuildInstallPlanCheck\",\n actions: assign({\n _internalState: (_) => {\n if (\"error\" in _.event.output) {\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n } else {\n return _.context._internalState;\n }\n },\n intermediateValue: (_) => {\n if (\"error\" in _.event.output) {\n return _.context.intermediateValue;\n } else {\n return {\n ..._.context.intermediateValue,\n installPlan: {\n installPlan: _.event.output.installPlan,\n alreadyInstalled: _.event.output.alreadyInstalled,\n missingApplications: _.event.output.missingApplications,\n currentIndex: 0,\n currentProgress: 0,\n },\n };\n }\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n BuildInstallPlanCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"PredictOutOfMemory\",\n guard: \"hasMoreApps\",\n },\n {\n target: \"Success\",\n },\n ],\n },\n PredictOutOfMemory: {\n invoke: {\n src: \"predictOutOfMemory\",\n input: (_) => ({\n installPlan: _.context.intermediateValue.installPlan!.installPlan,\n }),\n onDone: {\n target: \"PredictOutOfMemoryCheck\",\n actions: assign({\n _internalState: (_) => {\n if (\"error\" in _.event.output) {\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n } else if (_.event.output.outOfMemory) {\n return {\n ..._.context._internalState,\n error: new OutOfMemoryDAError(\n \"Not enough memory for those applications\",\n ),\n };\n } else {\n return _.context._internalState;\n }\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n PredictOutOfMemoryCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"GoToDashboard\",\n },\n ],\n },\n GoToDashboard: {\n invoke: {\n id: \"goToDashboard\",\n src: \"goToDashboard\",\n input: (_) => ({\n unlockTimeout: _.context.input.unlockTimeout,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n requiredUserInteraction:\n _.event.snapshot.context.intermediateValue\n .requiredUserInteraction,\n }),\n }),\n },\n onDone: {\n target: \"GoToDashboardCheck\",\n actions: assign({\n _internalState: (_) =>\n _.event.output.caseOf<InstallOrUpdateAppsMachineInternalState>(\n {\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n },\n ),\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GoToDashboardCheck: {\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"InstallApp\",\n actions: \"cleanupDeviceState\",\n },\n ],\n },\n InstallApp: {\n exit: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n }),\n }),\n invoke: {\n id: \"installApp\",\n src: \"installApp\",\n input: (_) => ({\n osVersion: _.context._internalState.osVersion!,\n application:\n _.context.intermediateValue.installPlan!.installPlan[\n _.context._internalState.currentIndex\n ]!,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => {\n switch (_.event.snapshot.context?.type) {\n case SecureChannelEventType.DeviceId: {\n return {\n ..._.context.intermediateValue,\n deviceId: _.event.snapshot.context.payload.deviceId,\n };\n }\n case SecureChannelEventType.PermissionRequested: {\n return {\n ..._.context.intermediateValue,\n requiredUserInteraction:\n UserInteractionRequired.AllowSecureConnection,\n };\n }\n case SecureChannelEventType.PermissionGranted: {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n internalApi.setDeviceSessionState({\n ...deviceState,\n isSecureConnectionAllowed: true,\n });\n }\n return {\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n };\n }\n case SecureChannelEventType.Progress: {\n return {\n ..._.context.intermediateValue,\n installPlan: {\n ..._.context.intermediateValue.installPlan!,\n currentIndex: _.context._internalState.currentIndex,\n currentProgress:\n _.event.snapshot.context.payload.progress,\n },\n };\n }\n default:\n return _.context.intermediateValue;\n }\n },\n _internalState: (_) => {\n if (\n _.event.snapshot.context?.type ===\n SecureChannelEventType.Error\n ) {\n return {\n ..._.context._internalState,\n error:\n _.event.snapshot.context.error.mapInstallDAErrors(),\n };\n }\n return _.context._internalState;\n },\n }),\n },\n onDone: {\n target: \"InstallAppCheck\",\n actions: \"nextAppIndex\",\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n InstallAppCheck: {\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"InstallApp\",\n guard: \"hasMoreApps\",\n },\n {\n target: \"UpdateDeviceMetadata\",\n },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: (args) => {\n const { context } = args;\n const { error } = context._internalState;\n const { installPlan } = context.intermediateValue;\n if (error) {\n return Left(error);\n }\n return Right({\n successfullyInstalled: installPlan!.installPlan,\n alreadyInstalled: installPlan!.alreadyInstalled,\n missingApplications: installPlan!.missingApplications,\n });\n },\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const buildInstallPlan = (arg0: {\n input: {\n applications: ApplicationDependency[];\n allowMissingApplication: boolean;\n };\n }) =>\n Promise.resolve(\n new BuildAppsInstallPlanTask(internalApi, {\n applications: arg0.input.applications,\n allowMissingApplication: arg0.input.allowMissingApplication,\n }).run(),\n );\n\n const predictOutOfMemory = (arg0: {\n input: {\n installPlan: Application[];\n };\n }) =>\n Promise.resolve(\n new PredictOutOfMemoryTask(internalApi, {\n installPlan: arg0.input.installPlan,\n }).run(),\n );\n\n const installApp = (arg0: {\n input: {\n osVersion: GetOsVersionResponse;\n application: Application;\n };\n }) => {\n const { osVersion, application } = arg0.input;\n const connection = internalApi\n .getSecureChannelService()\n .installApp(osVersion, application);\n return new ConnectToSecureChannelTask(internalApi, {\n connection,\n }).run();\n };\n\n return {\n buildInstallPlan,\n predictOutOfMemory,\n installApp,\n };\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["InstallOrUpdateAppsDeviceAction_exports", "__export", "InstallOrUpdateAppsDeviceAction", "__toCommonJS", "import_purify_ts", "import_xstate", "import_UserInteractionRequired", "import_Const", "import_Errors", "import_GetDeviceMetadataDeviceAction", "import_GoToDashboardDeviceAction", "import_BuildAppsInstallPlanTask", "import_PredictOutOfMemoryTask", "import_XStateDeviceAction", "import_DeviceSessionState", "import_ConnectToSecureChannelTask", "import_types", "internalApi", "buildInstallPlan", "predictOutOfMemory", "installApp", "unlockTimeout", "updateMetadataMachine", "goToDashboardMachine", "context", "_", "state", "data", "error", "deviceState", "args", "installPlan", "arg0", "osVersion", "application", "connection"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var g=require("rxjs"),V=require("../../../device/DeviceStatus"),y=require("../../../device-action/__test-utils__/makeInternalApi"),v=require("../../../device-action/__test-utils__/setupTestMachine"),l=require("../../../device-action/__test-utils__/setupTestMachine"),u=require("../../../device-action/__test-utils__/testDeviceActionStates"),e=require("../../../device-action/model/DeviceActionState"),n=require("../../../device-action/model/UserInteractionRequired"),c=require("../../../device-action/os/Errors"),D=require("../../../device-action/os/Errors"),f=require("../../../device-session/DeviceSessionState"),d=require("../../../secure-channel/task/types"),m=require("./InstallOrUpdateAppsDeviceAction");vi.mock("@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction");vi.mock("@api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction");describe("InstallOrUpdateAppsDeviceAction",()=>{const o=(0,y.makeDeviceActionInternalApiMock)(),p=vi.fn(),I=vi.fn(),A=vi.fn();function P(){return{buildInstallPlan:p,predictOutOfMemory:I,installApp:A}}beforeEach(()=>{vi.clearAllMocks(),o.getDeviceSessionState.mockReturnValue({sessionStateType:f.DeviceSessionStateType.Connected,deviceStatus:V.DeviceStatus.CONNECTED})}),describe("success cases",()=>{it("Install two applications",()=>new Promise((r,i)=>{(0,v.setupGoToDashboardMock)(),(0,l.setupGetDeviceMetadataMock)({firmwareVersion:{metadata:{targetId:857735172}}});const a=new m.InstallOrUpdateAppsDeviceAction({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),t={installPlan:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]};p.mockResolvedValueOnce(t),I.mockResolvedValueOnce({outOfMemory:!1}),A.mockReturnValueOnce((0,g.of)({type:d.SecureChannelEventType.PermissionRequested},{type:d.SecureChannelEventType.PermissionGranted},{type:d.SecureChannelEventType.Progress,payload:{progress:.5}},{type:d.SecureChannelEventType.Progress,payload:{progress:1}})).mockReturnValueOnce((0,g.of)({type:d.SecureChannelEventType.Progress,payload:{progress:.25}},{type:d.SecureChannelEventType.Progress,payload:{progress:.75}},{type:d.SecureChannelEventType.Progress,payload:{progress:1}})),vi.spyOn(a,"extractDependencies").mockReturnValue(P());const s=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowSecureConnection,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:.5}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:1}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:1}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:1}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:1,currentProgress:.25}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:1,currentProgress:.75}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:1,currentProgress:1}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:1,currentProgress:1}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:1,currentProgress:1}},status:e.DeviceActionStatus.Pending},{output:{successfullyInstalled:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]},status:e.DeviceActionStatus.Completed}];(0,u.testDeviceActionStates)(a,s,o,{onDone:r,onError:i})})),it("No install is needed",()=>new Promise((r,i)=>{(0,v.setupGoToDashboardMock)(),(0,l.setupGetDeviceMetadataMock)({firmwareVersion:{metadata:{targetId:857735172}}});const a=new m.InstallOrUpdateAppsDeviceAction({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),t={installPlan:[],alreadyInstalled:["Ethereum","Solana","Bitcoin","XRP"],missingApplications:["MyShitCoin"]};p.mockResolvedValueOnce(t),vi.spyOn(a,"extractDependencies").mockReturnValue(P());const s=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{output:{successfullyInstalled:[],alreadyInstalled:["Ethereum","Solana","Bitcoin","XRP"],missingApplications:["MyShitCoin"]},status:e.DeviceActionStatus.Completed}];(0,u.testDeviceActionStates)(a,s,o,{onDone:r,onError:i})}))}),describe("error cases",()=>{it("Update device metadata failure",()=>new Promise((r,i)=>{(0,l.setupGetDeviceMetadataMock)({firmwareVersion:{metadata:{targetId:857735172}}},!0);const a=new m.InstallOrUpdateAppsDeviceAction({input:{applications:[{name:"Bitcoin"}],allowMissingApplication:!1}});vi.spyOn(a,"extractDependencies").mockReturnValue(P());const t=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{error:new c.UnknownDAError("GetDeviceMetadata failed"),status:e.DeviceActionStatus.Error}];(0,u.testDeviceActionStates)(a,t,o,{onDone:r,onError:i})})),it("Build install plan failure",()=>new Promise((r,i)=>{(0,l.setupGetDeviceMetadataMock)({firmwareVersion:{metadata:{targetId:857735172}}});const a=new m.InstallOrUpdateAppsDeviceAction({input:{applications:[{name:"Bitcoin"}],allowMissingApplication:!1}});p.mockResolvedValueOnce({error:new c.UnknownDAError("BuildInstallPlan failed")}),vi.spyOn(a,"extractDependencies").mockReturnValue(P());const t=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{error:new c.UnknownDAError("BuildInstallPlan failed"),status:e.DeviceActionStatus.Error}];(0,u.testDeviceActionStates)(a,t,o,{onDone:r,onError:i})})),it("Predict out of memory failure",()=>new Promise((r,i)=>{(0,l.setupGetDeviceMetadataMock)({firmwareVersion:{metadata:{targetId:857735172}}});const a=new m.InstallOrUpdateAppsDeviceAction({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),t={installPlan:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]};p.mockResolvedValueOnce(t),I.mockResolvedValueOnce({error:new c.UnknownDAError("PredictOutOfMemory failed")}),vi.spyOn(a,"extractDependencies").mockReturnValue(P());const s=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{error:new c.UnknownDAError("PredictOutOfMemory failed"),status:e.DeviceActionStatus.Error}];(0,u.testDeviceActionStates)(a,s,o,{onDone:r,onError:i})})),it("Is out of memory",()=>new Promise((r,i)=>{(0,l.setupGetDeviceMetadataMock)({firmwareVersion:{metadata:{targetId:857735172}}});const a=new m.InstallOrUpdateAppsDeviceAction({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),t={installPlan:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]};p.mockResolvedValueOnce(t),I.mockResolvedValueOnce({outOfMemory:!0}),vi.spyOn(a,"extractDependencies").mockReturnValue(P());const s=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{error:new D.OutOfMemoryDAError("Not enough memory for those applications"),status:e.DeviceActionStatus.Error}];(0,u.testDeviceActionStates)(a,s,o,{onDone:r,onError:i})})),it("Go to dashboard failure",()=>new Promise((r,i)=>{(0,v.setupGoToDashboardMock)(!0),(0,l.setupGetDeviceMetadataMock)({firmwareVersion:{metadata:{targetId:857735172}}});const a=new m.InstallOrUpdateAppsDeviceAction({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),t={installPlan:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]};p.mockResolvedValueOnce(t),I.mockResolvedValueOnce({outOfMemory:!1}),vi.spyOn(a,"extractDependencies").mockReturnValue(P());const s=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{error:new c.UnknownDAError("GoToDashboard failed"),status:e.DeviceActionStatus.Error}];(0,u.testDeviceActionStates)(a,s,o,{onDone:r,onError:i})})),it("Install app failure",()=>new Promise((r,i)=>{(0,v.setupGoToDashboardMock)(),(0,l.setupGetDeviceMetadataMock)({firmwareVersion:{metadata:{targetId:857735172}}});const a=new m.InstallOrUpdateAppsDeviceAction({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),t={installPlan:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]};p.mockResolvedValueOnce(t),I.mockResolvedValueOnce({outOfMemory:!1}),A.mockReturnValue((0,g.concat)((0,g.of)({type:d.SecureChannelEventType.Exchange,payload:{data:new Uint8Array([0,1,2,3])}}),(0,g.throwError)(()=>new c.UnknownDAError("Secure channel error")))),vi.spyOn(a,"extractDependencies").mockReturnValue(P());const s=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{error:new c.UnknownDAError("Secure channel error"),status:e.DeviceActionStatus.Error}];(0,u.testDeviceActionStates)(a,s,o,{onDone:r,onError:i})}))})});
1
+ "use strict";var m=require("rxjs"),V=require("../../../device/DeviceStatus"),g=require("../../../device-action/__test-utils__/makeInternalApi"),I=require("../../../device-action/__test-utils__/setupTestMachine"),u=require("../../../device-action/__test-utils__/setupTestMachine"),c=require("../../../device-action/__test-utils__/testDeviceActionStates"),e=require("../../../device-action/model/DeviceActionState"),n=require("../../../device-action/model/UserInteractionRequired"),d=require("../../../device-action/os/Errors"),U=require("../../../device-action/os/Errors"),M=require("../../../device-session/DeviceSessionState"),A=require("../../../secure-channel/task/types"),p=require("./InstallOrUpdateAppsDeviceAction"),t=require("./types");vi.mock("@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction");vi.mock("@api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction");describe("InstallOrUpdateAppsDeviceAction",()=>{const l=(0,g.makeDeviceActionInternalApiMock)(),E=vi.fn(),D=vi.fn(),T=vi.fn();function P(){return{buildInstallPlan:E,predictOutOfMemory:D,installApp:T}}beforeEach(()=>{vi.clearAllMocks(),l.getDeviceSessionState.mockReturnValue({sessionStateType:M.DeviceSessionStateType.Connected,deviceStatus:V.DeviceStatus.CONNECTED})}),describe("success cases",()=>{it("Install two applications",()=>new Promise((i,s)=>{(0,I.setupGoToDashboardMock)(),(0,u.setupGetDeviceMetadataMock)({firmwareVersion:{metadata:{targetId:857735172}}});const r=new p.InstallOrUpdateAppsDeviceAction({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),a={installPlan:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]};E.mockResolvedValueOnce(a),D.mockResolvedValueOnce({outOfMemory:!1}),T.mockReturnValueOnce((0,m.of)({type:A.SecureChannelEventType.PermissionRequested},{type:A.SecureChannelEventType.PermissionGranted},{type:A.SecureChannelEventType.Progress,payload:{progress:.5}},{type:A.SecureChannelEventType.Progress,payload:{progress:1}})).mockReturnValueOnce((0,m.of)({type:A.SecureChannelEventType.Progress,payload:{progress:.25}},{type:A.SecureChannelEventType.Progress,payload:{progress:.75}},{type:A.SecureChannelEventType.Progress,payload:{progress:1}})),vi.spyOn(r,"extractDependencies").mockReturnValue(P());const o=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowSecureConnection,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:.5}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:1}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:1}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:1}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:1,currentProgress:.25}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:1,currentProgress:.75}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:1,currentProgress:1}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:1,currentProgress:1}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:1,currentProgress:1}},status:e.DeviceActionStatus.Pending},{output:{successfullyInstalled:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]},status:e.DeviceActionStatus.Completed}];(0,c.testDeviceActionStates)(r,o,l,{onDone:i,onError:s})})),it("No install is needed",()=>new Promise((i,s)=>{(0,I.setupGoToDashboardMock)(),(0,u.setupGetDeviceMetadataMock)({firmwareVersion:{metadata:{targetId:857735172}}});const r=new p.InstallOrUpdateAppsDeviceAction({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),a={installPlan:[],alreadyInstalled:["Ethereum","Solana","Bitcoin","XRP"],missingApplications:["MyShitCoin"]};E.mockResolvedValueOnce(a),vi.spyOn(r,"extractDependencies").mockReturnValue(P());const o=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{output:{successfullyInstalled:[],alreadyInstalled:["Ethereum","Solana","Bitcoin","XRP"],missingApplications:["MyShitCoin"]},status:e.DeviceActionStatus.Completed}];(0,c.testDeviceActionStates)(r,o,l,{onDone:i,onError:s})}))}),describe("error cases",()=>{it("Update device metadata failure",()=>new Promise((i,s)=>{(0,u.setupGetDeviceMetadataMock)({firmwareVersion:{metadata:{targetId:857735172}}},!0);const r=new p.InstallOrUpdateAppsDeviceAction({input:{applications:[{name:"Bitcoin"}],allowMissingApplication:!1}});vi.spyOn(r,"extractDependencies").mockReturnValue(P());const a=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{error:new d.UnknownDAError("GetDeviceMetadata failed"),status:e.DeviceActionStatus.Error}];(0,c.testDeviceActionStates)(r,a,l,{onDone:i,onError:s})})),it("Build install plan failure",()=>new Promise((i,s)=>{(0,u.setupGetDeviceMetadataMock)({firmwareVersion:{metadata:{targetId:857735172}}});const r=new p.InstallOrUpdateAppsDeviceAction({input:{applications:[{name:"Bitcoin"}],allowMissingApplication:!1}});E.mockResolvedValueOnce({error:new d.UnknownDAError("BuildInstallPlan failed")}),vi.spyOn(r,"extractDependencies").mockReturnValue(P());const a=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{error:new d.UnknownDAError("BuildInstallPlan failed"),status:e.DeviceActionStatus.Error}];(0,c.testDeviceActionStates)(r,a,l,{onDone:i,onError:s})})),it("Predict out of memory failure",()=>new Promise((i,s)=>{(0,u.setupGetDeviceMetadataMock)({firmwareVersion:{metadata:{targetId:857735172}}});const r=new p.InstallOrUpdateAppsDeviceAction({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),a={installPlan:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]};E.mockResolvedValueOnce(a),D.mockResolvedValueOnce({error:new d.UnknownDAError("PredictOutOfMemory failed")}),vi.spyOn(r,"extractDependencies").mockReturnValue(P());const o=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{error:new d.UnknownDAError("PredictOutOfMemory failed"),status:e.DeviceActionStatus.Error}];(0,c.testDeviceActionStates)(r,o,l,{onDone:i,onError:s})})),it("Is out of memory",()=>new Promise((i,s)=>{(0,u.setupGetDeviceMetadataMock)({firmwareVersion:{metadata:{targetId:857735172}}});const r=new p.InstallOrUpdateAppsDeviceAction({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),a={installPlan:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]};E.mockResolvedValueOnce(a),D.mockResolvedValueOnce({outOfMemory:!0}),vi.spyOn(r,"extractDependencies").mockReturnValue(P());const o=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{error:new U.OutOfMemoryDAError("Not enough memory for those applications"),status:e.DeviceActionStatus.Error}];(0,c.testDeviceActionStates)(r,o,l,{onDone:i,onError:s})})),it("Go to dashboard failure",()=>new Promise((i,s)=>{(0,I.setupGoToDashboardMock)(!0),(0,u.setupGetDeviceMetadataMock)({firmwareVersion:{metadata:{targetId:857735172}}});const r=new p.InstallOrUpdateAppsDeviceAction({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),a={installPlan:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]};E.mockResolvedValueOnce(a),D.mockResolvedValueOnce({outOfMemory:!1}),vi.spyOn(r,"extractDependencies").mockReturnValue(P());const o=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{error:new d.UnknownDAError("GoToDashboard failed"),status:e.DeviceActionStatus.Error}];(0,c.testDeviceActionStates)(r,o,l,{onDone:i,onError:s})})),it("Install app failure",()=>new Promise((i,s)=>{(0,I.setupGoToDashboardMock)(),(0,u.setupGetDeviceMetadataMock)({firmwareVersion:{metadata:{targetId:857735172}}});const r=new p.InstallOrUpdateAppsDeviceAction({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),a={installPlan:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]};E.mockResolvedValueOnce(a),D.mockResolvedValueOnce({outOfMemory:!1}),T.mockReturnValue((0,m.concat)((0,m.of)({type:A.SecureChannelEventType.Exchange,payload:{data:new Uint8Array([0,1,2,3])}}),(0,m.throwError)(()=>new d.UnknownDAError("Secure channel error")))),vi.spyOn(r,"extractDependencies").mockReturnValue(P());const o=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:null},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:t.installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,installPlan:{...a,currentIndex:0,currentProgress:0}},status:e.DeviceActionStatus.Pending},{error:new d.UnknownDAError("Secure channel error"),status:e.DeviceActionStatus.Error}];(0,c.testDeviceActionStates)(r,o,l,{onDone:i,onError:s})}))})});
2
2
  //# sourceMappingURL=InstallOrUpdateAppsDeviceAction.test.js.map