@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/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.ts"],
4
- "sourcesContent": ["import { concat, of, throwError } from \"rxjs\";\n\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { setupGoToDashboardMock } from \"@api/device-action/__test-utils__/setupTestMachine\";\nimport { setupGetDeviceMetadataMock } 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 { OutOfMemoryDAError } from \"@api/device-action/os/Errors\";\nimport type { GetDeviceMetadataDAOutput } from \"@api/device-action/os/GetDeviceMetadata/types\";\nimport type { DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\nimport type { SecureChannelEventPayload } from \"@api/secure-channel/task/types\";\nimport { SecureChannelEventType } from \"@api/secure-channel/task/types\";\nimport type { Application } from \"@internal/manager-api/model/Application\";\n\nimport { InstallOrUpdateAppsDeviceAction } from \"./InstallOrUpdateAppsDeviceAction\";\nimport type { InstallOrUpdateAppsDAState } from \"./types\";\n\nvi.mock(\"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\");\nvi.mock(\n \"@api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction\",\n);\n\ndescribe(\"InstallOrUpdateAppsDeviceAction\", () => {\n const apiMock = makeDeviceActionInternalApiMock();\n const buildInstallPlanMock = vi.fn();\n const predictOutOfMemoryMock = vi.fn();\n const installAppMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n buildInstallPlan: buildInstallPlanMock,\n predictOutOfMemory: predictOutOfMemoryMock,\n installApp: installAppMock,\n };\n }\n\n beforeEach(() => {\n vi.clearAllMocks();\n apiMock.getDeviceSessionState.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n } as DeviceSessionState);\n });\n\n describe(\"success cases\", () => {\n it(\"Install two applications\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n predictOutOfMemoryMock.mockResolvedValueOnce({\n outOfMemory: false,\n });\n installAppMock\n .mockReturnValueOnce(\n of(\n {\n type: SecureChannelEventType.PermissionRequested,\n },\n {\n type: SecureChannelEventType.PermissionGranted,\n },\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 0.5 },\n },\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 1 },\n },\n ),\n )\n .mockReturnValueOnce(\n of(\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 0.25 },\n },\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 0.75 },\n },\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 1 },\n },\n ),\n );\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // PredictOutOfMemory\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // GoToDashboard\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // InstallApp\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // InstallApp install first app\n {\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.AllowSecureConnection,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0.5,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // InstallApp install second app\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 1,\n currentProgress: 0.25,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 1,\n currentProgress: 0.75,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 1,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 1,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 1,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n output: {\n successfullyInstalled: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as unknown as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n },\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"No install is needed\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [],\n alreadyInstalled: [\"Ethereum\", \"Solana\", \"Bitcoin\", \"XRP\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n output: {\n successfullyInstalled: [],\n alreadyInstalled: [\"Ethereum\", \"Solana\", \"Bitcoin\", \"XRP\"],\n missingApplications: [\"MyShitCoin\"],\n },\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n });\n\n describe(\"error cases\", () => {\n it(\"Update device metadata failure\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceMetadataMock(\n {\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput,\n true,\n );\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [{ name: \"Bitcoin\" }],\n allowMissingApplication: false,\n },\n });\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new UnknownDAError(\"GetDeviceMetadata failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Build install plan failure\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [{ name: \"Bitcoin\" }],\n allowMissingApplication: false,\n },\n });\n\n buildInstallPlanMock.mockResolvedValueOnce({\n error: new UnknownDAError(\"BuildInstallPlan failed\"),\n });\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new UnknownDAError(\"BuildInstallPlan failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Predict out of memory failure\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n predictOutOfMemoryMock.mockResolvedValueOnce({\n error: new UnknownDAError(\"PredictOutOfMemory failed\"),\n });\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // PredictOutOfMemory\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new UnknownDAError(\"PredictOutOfMemory failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Is out of memory\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n predictOutOfMemoryMock.mockResolvedValueOnce({\n outOfMemory: true,\n });\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // PredictOutOfMemory\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new OutOfMemoryDAError(\n \"Not enough memory for those applications\",\n ),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Go to dashboard failure\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock(true);\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n predictOutOfMemoryMock.mockResolvedValueOnce({\n outOfMemory: false,\n });\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // PredictOutOfMemory\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // GoToDashboard\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new UnknownDAError(\"GoToDashboard failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Install app failure\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n predictOutOfMemoryMock.mockResolvedValueOnce({\n outOfMemory: false,\n });\n installAppMock.mockReturnValue(\n concat(\n of({\n type: SecureChannelEventType.Exchange,\n payload: {\n data: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n } as SecureChannelEventPayload[\"Exchange\"],\n }),\n throwError(() => new UnknownDAError(\"Secure channel error\")),\n ),\n );\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // PredictOutOfMemory\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // GoToDashboard\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // InstallApp\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new UnknownDAError(\"Secure channel error\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { concat, of, throwError } from \"rxjs\";\n\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { setupGoToDashboardMock } from \"@api/device-action/__test-utils__/setupTestMachine\";\nimport { setupGetDeviceMetadataMock } 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 { OutOfMemoryDAError } from \"@api/device-action/os/Errors\";\nimport type { GetDeviceMetadataDAOutput } from \"@api/device-action/os/GetDeviceMetadata/types\";\nimport type { DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\nimport type { SecureChannelEventPayload } from \"@api/secure-channel/task/types\";\nimport { SecureChannelEventType } from \"@api/secure-channel/task/types\";\nimport type { Application } from \"@internal/manager-api/model/Application\";\n\nimport { InstallOrUpdateAppsDeviceAction } from \"./InstallOrUpdateAppsDeviceAction\";\nimport {\n type InstallOrUpdateAppsDAState,\n installOrUpdateAppsDAStateStep,\n} from \"./types\";\n\nvi.mock(\"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\");\nvi.mock(\n \"@api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction\",\n);\n\ndescribe(\"InstallOrUpdateAppsDeviceAction\", () => {\n const apiMock = makeDeviceActionInternalApiMock();\n const buildInstallPlanMock = vi.fn();\n const predictOutOfMemoryMock = vi.fn();\n const installAppMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n buildInstallPlan: buildInstallPlanMock,\n predictOutOfMemory: predictOutOfMemoryMock,\n installApp: installAppMock,\n };\n }\n\n beforeEach(() => {\n vi.clearAllMocks();\n apiMock.getDeviceSessionState.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n } as DeviceSessionState);\n });\n\n describe(\"success cases\", () => {\n it(\"Install two applications\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n predictOutOfMemoryMock.mockResolvedValueOnce({\n outOfMemory: false,\n });\n installAppMock\n .mockReturnValueOnce(\n of(\n {\n type: SecureChannelEventType.PermissionRequested,\n },\n {\n type: SecureChannelEventType.PermissionGranted,\n },\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 0.5 },\n },\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 1 },\n },\n ),\n )\n .mockReturnValueOnce(\n of(\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 0.25 },\n },\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 0.75 },\n },\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 1 },\n },\n ),\n );\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // PredictOutOfMemory\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // GoToDashboard\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // InstallApp\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // InstallApp install first app\n {\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.AllowSecureConnection,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0.5,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // InstallApp install second app\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 1,\n currentProgress: 0.25,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 1,\n currentProgress: 0.75,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 1,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 1,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 1,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n output: {\n successfullyInstalled: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as unknown as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n },\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"No install is needed\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [],\n alreadyInstalled: [\"Ethereum\", \"Solana\", \"Bitcoin\", \"XRP\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n output: {\n successfullyInstalled: [],\n alreadyInstalled: [\"Ethereum\", \"Solana\", \"Bitcoin\", \"XRP\"],\n missingApplications: [\"MyShitCoin\"],\n },\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n });\n\n describe(\"error cases\", () => {\n it(\"Update device metadata failure\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceMetadataMock(\n {\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput,\n true,\n );\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [{ name: \"Bitcoin\" }],\n allowMissingApplication: false,\n },\n });\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new UnknownDAError(\"GetDeviceMetadata failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Build install plan failure\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [{ name: \"Bitcoin\" }],\n allowMissingApplication: false,\n },\n });\n\n buildInstallPlanMock.mockResolvedValueOnce({\n error: new UnknownDAError(\"BuildInstallPlan failed\"),\n });\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new UnknownDAError(\"BuildInstallPlan failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Predict out of memory failure\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n predictOutOfMemoryMock.mockResolvedValueOnce({\n error: new UnknownDAError(\"PredictOutOfMemory failed\"),\n });\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // PredictOutOfMemory\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new UnknownDAError(\"PredictOutOfMemory failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Is out of memory\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n predictOutOfMemoryMock.mockResolvedValueOnce({\n outOfMemory: true,\n });\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // PredictOutOfMemory\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new OutOfMemoryDAError(\n \"Not enough memory for those applications\",\n ),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Go to dashboard failure\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock(true);\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n predictOutOfMemoryMock.mockResolvedValueOnce({\n outOfMemory: false,\n });\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // PredictOutOfMemory\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // GoToDashboard\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new UnknownDAError(\"GoToDashboard failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Install app failure\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n predictOutOfMemoryMock.mockResolvedValueOnce({\n outOfMemory: false,\n });\n installAppMock.mockReturnValue(\n concat(\n of({\n type: SecureChannelEventType.Exchange,\n payload: {\n data: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n } as SecureChannelEventPayload[\"Exchange\"],\n }),\n throwError(() => new UnknownDAError(\"Secure channel error\")),\n ),\n );\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // PredictOutOfMemory\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // GoToDashboard\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // InstallApp\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.UPDATE_DEVICE_METADATA,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new UnknownDAError(\"Secure channel error\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_rxjs", "import_DeviceStatus", "import_makeInternalApi", "import_setupTestMachine", "import_testDeviceActionStates", "import_DeviceActionState", "import_UserInteractionRequired", "import_Errors", "import_DeviceSessionState", "import_types", "import_InstallOrUpdateAppsDeviceAction", "apiMock", "buildInstallPlanMock", "predictOutOfMemoryMock", "installAppMock", "extractDependenciesMock", "resolve", "reject", "deviceAction", "installPlan", "expectedStates"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var s=(r,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of i(e))!l.call(r,t)&&t!==o&&a(r,t,{get:()=>e[t],enumerable:!(n=p(e,t))||n.enumerable});return r};var d=r=>s(a({},"__esModule",{value:!0}),r);var c={};module.exports=d(c);
1
+ "use strict";var p=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var s=(t,e)=>{for(var a in e)p(t,a,{get:e[a],enumerable:!0})},d=(t,e,a,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of i(e))!l.call(t,r)&&r!==a&&p(t,r,{get:()=>e[r],enumerable:!(n=o(e,r))||n.enumerable});return t};var A=t=>d(p({},"__esModule",{value:!0}),t);var D={};s(D,{installOrUpdateAppsDAStateStep:()=>c});module.exports=A(D);const c=Object.freeze({UPDATE_DEVICE_METADATA:"os.installOrUpdateApps.steps.updateDeviceMetadata",BUILD_INSTALL_PLAN:"os.installOrUpdateApps.steps.buildInstallPlan",CHECK_IF_ENOUGH_MEMORY:"os.installOrUpdateApps.steps.checkIfEnoughMemory",INSTALL_APPLICATION:"os.installOrUpdateApps.steps.installApplication"});0&&(module.exports={installOrUpdateAppsDAStateStep});
2
2
  //# sourceMappingURL=types.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/api/device-action/os/InstallOrUpdateApps/types.ts"],
4
- "sourcesContent": ["import type { CommandErrorResult } from \"@api/command/model/CommandResult\";\nimport type { DeviceModelId } from \"@api/device/DeviceModel\";\nimport type { DeviceActionState } from \"@api/device-action/model/DeviceActionState\";\nimport type {\n OutOfMemoryDAError,\n UnsupportedApplicationDAError,\n UnsupportedFirmwareDAError,\n} from \"@api/device-action/os/Errors\";\nimport type {\n GetDeviceMetadataDAError,\n GetDeviceMetadataDARequiredInteraction,\n} from \"@api/device-action/os/GetDeviceMetadata/types\";\nimport type { GoToDashboardDARequiredInteraction } from \"@api/device-action/os/GoToDashboard/types\";\nimport type { GoToDashboardDAInput } from \"@api/device-action/os/GoToDashboard/types\";\nimport type { InstallAppDAError } from \"@api/secure-channel/device-action/InstallApp/types\";\nimport type { Application } from \"@internal/manager-api/model/Application\";\nimport type { SecureChannelInstallDAErrors } from \"@internal/secure-channel/model/Errors\";\n\n/**\n * An application version used as application constraint should either be a valid semantic versioning formatted\n * string, or \"latest\" to ensure the app is always up-to-date.\n */\nexport type ApplicationVersionConstraint =\n | `${number}.${number}.${number}`\n | `${number}.${number}.${number}-${string}`\n | `${number}.${number}.${number}+${string}`\n | `${number}.${number}.${number}-${string}+${string}`\n | \"latest\";\n\nexport type ApplicationConstraint = {\n /**\n * Required minimal version of the application, if already installed on the device.\n */\n readonly minVersion: ApplicationVersionConstraint;\n\n /**\n * List of device models that require the minVersion.\n */\n readonly applicableModels?: DeviceModelId[];\n\n /**\n * List of device models that do not require the minVersion.\n */\n readonly exemptModels?: DeviceModelId[];\n};\n\nexport type ApplicationDependency = {\n /**\n * Name of the application to install.\n */\n readonly name: string;\n\n /**\n * List of constraints for the application.\n * If no constraints are provided, no version checks are performed.\n * If the current device model is not concerned by any listed contraints, no version checks are performed.\n */\n readonly constraints?: ApplicationConstraint[];\n};\n\nexport type InstallPlan = {\n readonly installPlan: Application[];\n readonly alreadyInstalled: string[];\n readonly missingApplications: string[];\n readonly currentIndex: number;\n readonly currentProgress: number;\n};\n\nexport type InstallOrUpdateAppsDAOutput = {\n readonly successfullyInstalled: Application[];\n readonly alreadyInstalled: string[];\n readonly missingApplications: string[];\n};\n\nexport type InstallOrUpdateAppsDAInput = GoToDashboardDAInput & {\n readonly applications: ApplicationDependency[];\n readonly allowMissingApplication: boolean;\n};\n\nexport type InstallOrUpdateAppsDAError =\n | GetDeviceMetadataDAError\n | InstallAppDAError\n | OutOfMemoryDAError\n | UnsupportedApplicationDAError\n | UnsupportedFirmwareDAError\n | SecureChannelInstallDAErrors\n | CommandErrorResult[\"error\"];\n\nexport type InstallOrUpdateAppsDARequiredInteraction =\n | GoToDashboardDARequiredInteraction\n | GetDeviceMetadataDARequiredInteraction;\n\nexport type InstallOrUpdateAppsDAIntermediateValue = {\n requiredUserInteraction: InstallOrUpdateAppsDARequiredInteraction;\n installPlan: InstallPlan | null;\n deviceId?: Uint8Array;\n};\n\nexport type InstallOrUpdateAppsDAState = DeviceActionState<\n InstallOrUpdateAppsDAOutput,\n InstallOrUpdateAppsDAError,\n InstallOrUpdateAppsDAIntermediateValue\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 { DeviceModelId } from \"@api/device/DeviceModel\";\nimport type { DeviceActionState } from \"@api/device-action/model/DeviceActionState\";\nimport type {\n OutOfMemoryDAError,\n UnsupportedApplicationDAError,\n UnsupportedFirmwareDAError,\n} from \"@api/device-action/os/Errors\";\nimport type {\n GetDeviceMetadataDAError,\n GetDeviceMetadataDARequiredInteraction,\n} from \"@api/device-action/os/GetDeviceMetadata/types\";\nimport type {\n GoToDashboardDARequiredInteraction,\n GoToDashboardDAStateStep,\n} from \"@api/device-action/os/GoToDashboard/types\";\nimport type { GoToDashboardDAInput } from \"@api/device-action/os/GoToDashboard/types\";\nimport type { InstallAppDAError } from \"@api/secure-channel/device-action/InstallApp/types\";\nimport type { Application } from \"@internal/manager-api/model/Application\";\nimport type { SecureChannelInstallDAErrors } from \"@internal/secure-channel/model/Errors\";\n\nexport const installOrUpdateAppsDAStateStep = Object.freeze({\n UPDATE_DEVICE_METADATA: \"os.installOrUpdateApps.steps.updateDeviceMetadata\",\n BUILD_INSTALL_PLAN: \"os.installOrUpdateApps.steps.buildInstallPlan\",\n CHECK_IF_ENOUGH_MEMORY: \"os.installOrUpdateApps.steps.checkIfEnoughMemory\",\n INSTALL_APPLICATION: \"os.installOrUpdateApps.steps.installApplication\",\n} as const);\n\nexport type InstallOrUpdateAppsDAStateStep =\n (typeof installOrUpdateAppsDAStateStep)[keyof typeof installOrUpdateAppsDAStateStep];\n\n/**\n * An application version used as application constraint should either be a valid semantic versioning formatted\n * string, or \"latest\" to ensure the app is always up-to-date.\n */\nexport type ApplicationVersionConstraint =\n | `${number}.${number}.${number}`\n | `${number}.${number}.${number}-${string}`\n | `${number}.${number}.${number}+${string}`\n | `${number}.${number}.${number}-${string}+${string}`\n | \"latest\";\n\nexport type ApplicationConstraint = {\n /**\n * Required minimal version of the application, if already installed on the device.\n */\n readonly minVersion: ApplicationVersionConstraint;\n\n /**\n * List of device models that require the minVersion.\n */\n readonly applicableModels?: DeviceModelId[];\n\n /**\n * List of device models that do not require the minVersion.\n */\n readonly exemptModels?: DeviceModelId[];\n};\n\nexport type ApplicationDependency = {\n /**\n * Name of the application to install.\n */\n readonly name: string;\n\n /**\n * List of constraints for the application.\n * If no constraints are provided, no version checks are performed.\n * If the current device model is not concerned by any listed contraints, no version checks are performed.\n */\n readonly constraints?: ApplicationConstraint[];\n};\n\nexport type InstallPlan = {\n readonly installPlan: Application[];\n readonly alreadyInstalled: string[];\n readonly missingApplications: string[];\n readonly currentIndex: number;\n readonly currentProgress: number;\n};\n\nexport type InstallOrUpdateAppsDAOutput = {\n readonly successfullyInstalled: Application[];\n readonly alreadyInstalled: string[];\n readonly missingApplications: string[];\n};\n\nexport type InstallOrUpdateAppsDAInput = GoToDashboardDAInput & {\n readonly applications: ApplicationDependency[];\n readonly allowMissingApplication: boolean;\n};\n\nexport type InstallOrUpdateAppsDAError =\n | GetDeviceMetadataDAError\n | InstallAppDAError\n | OutOfMemoryDAError\n | UnsupportedApplicationDAError\n | UnsupportedFirmwareDAError\n | SecureChannelInstallDAErrors\n | CommandErrorResult[\"error\"];\n\nexport type InstallOrUpdateAppsDARequiredInteraction =\n | GoToDashboardDARequiredInteraction\n | GetDeviceMetadataDARequiredInteraction;\n\nexport type InstallOrUpdateAppsDAIntermediateValue = {\n requiredUserInteraction: InstallOrUpdateAppsDARequiredInteraction;\n installPlan: InstallPlan | null;\n deviceId?: Uint8Array;\n step: InstallOrUpdateAppsDAStateStep | GoToDashboardDAStateStep;\n};\n\nexport type InstallOrUpdateAppsDAState = DeviceActionState<\n InstallOrUpdateAppsDAOutput,\n InstallOrUpdateAppsDAError,\n InstallOrUpdateAppsDAIntermediateValue\n>;\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oCAAAE,IAAA,eAAAC,EAAAH,GAqBO,MAAME,EAAiC,OAAO,OAAO,CAC1D,uBAAwB,oDACxB,mBAAoB,gDACpB,uBAAwB,mDACxB,oBAAqB,iDACvB,CAAU",
6
+ "names": ["types_exports", "__export", "installOrUpdateAppsDAStateStep", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var u=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var S=(o,e)=>{for(var a in e)u(o,a,{get:e[a],enumerable:!0})},g=(o,e,a,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of L(e))!y.call(o,r)&&r!==a&&u(o,r,{get:()=>e[r],enumerable:!(s=D(e,r))||s.enumerable});return o};var x=o=>g(u({},"__esModule",{value:!0}),o);var v={};S(v,{ListAppsDeviceAction:()=>E});module.exports=x(v);var p=require("purify-ts"),n=require("xstate"),c=require("../../../command/model/CommandResult"),l=require("../../../command/os/ListAppsCommand"),i=require("../../../device-action/model/UserInteractionRequired"),A=require("../../../device-action/os/Const"),m=require("../../../device-action/os/GoToDashboard/GoToDashboardDeviceAction"),d=require("../../../device-action/xstate-utils/XStateDeviceAction");class E extends d.XStateDeviceAction{makeStateMachine(e){const{listApps:a}=this.extractDependencies(e),s=this.input.unlockTimeout??A.DEFAULT_UNLOCK_TIMEOUT_MS,r=new m.GoToDashboardDeviceAction({input:{unlockTimeout:s}}).makeStateMachine(e);return(0,n.setup)({types:{input:{unlockTimeout:s},context:{},output:{}},actors:{listApps:(0,n.fromPromise)(a),goToDashboard:r},guards:{hasError:({context:t})=>t._internalState.error!==null,hasMoreApps:t=>t.context._internalState.shouldContinue},actions:{assignAllowListApps:(0,n.assign)({intermediateValue:t=>({requiredUserInteraction:i.UserInteractionRequired.AllowListApps})}),assignErrorFromEvent:(0,n.assign)({_internalState:t=>({...t.context._internalState,error:t.event.error})})}}).createMachine({id:"ListAppsDeviceAction",initial:"DeviceReady",context:t=>({input:{unlockTimeout:t.input.unlockTimeout},intermediateValue:{requiredUserInteraction:i.UserInteractionRequired.None},_internalState:{error:null,apps:[],shouldContinue:!1}}),states:{DeviceReady:{always:{target:"GoToDashboard"}},GoToDashboard:{invoke:{id:"dashboard",src:"goToDashboard",input:t=>({unlockTimeout:t.context.input.unlockTimeout}),onSnapshot:{actions:(0,n.assign)({intermediateValue:t=>t.event.snapshot.context.intermediateValue})},onDone:{target:"GoToDashboardCheck",actions:(0,n.assign)({_internalState:t=>t.event.output.caseOf({Right:()=>t.context._internalState,Left:h=>({...t.context._internalState,error:h})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GoToDashboardCheck:{always:[{target:"Error",guard:"hasError"},{target:"ListApps"}]},ListApps:{entry:"assignAllowListApps",invoke:{src:"listApps",input:t=>!1,onDone:{target:"Continue",actions:(0,n.assign)({_internalState:t=>(0,c.isSuccessCommandResult)(t.event.output)?{...t.context._internalState,apps:t.context._internalState.apps.concat(t.event.output.data),shouldContinue:t.event.output.data.length>=2}:{...t.context._internalState,error:t.event.output.error},intermediateValue:t=>({...t.context.intermediateValue,requiredUserInteraction:i.UserInteractionRequired.None})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ListAppsCheck:{always:[{target:"Error",guard:"hasError"},"ListAppsContinue"]},ListAppsContinue:{invoke:{src:"listApps",input:t=>!0,onDone:{target:"Continue",actions:(0,n.assign)({_internalState:t=>(0,c.isSuccessCommandResult)(t.event.output)?{...t.context._internalState,apps:t.context._internalState.apps.concat(t.event.output.data),shouldContinue:t.event.output.data.length>=2}:{...t.context._internalState,error:t.event.output.error}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},Continue:{always:[{target:"ListAppsContinue",guard:"hasMoreApps"},{target:"Success"}]},Success:{type:"final"},Error:{type:"final"}},output:t=>t.context._internalState.error?(0,p.Left)(t.context._internalState.error):(0,p.Right)(t.context._internalState.apps)})}extractDependencies(e){return{listApps:async({input:s})=>{const r=new l.ListAppsCommand({isContinue:s});return e.sendCommand(r)}}}}0&&(module.exports={ListAppsDeviceAction});
1
+ "use strict";var u=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var g=(a,e)=>{for(var o in e)u(a,o,{get:e[o],enumerable:!0})},x=(a,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of S(e))!y.call(a,r)&&r!==o&&u(a,r,{get:()=>e[r],enumerable:!(s=L(e,r))||s.enumerable});return a};var E=a=>x(u({},"__esModule",{value:!0}),a);var f={};g(f,{ListAppsDeviceAction:()=>v});module.exports=E(f);var p=require("purify-ts"),n=require("xstate"),c=require("../../../command/model/CommandResult"),A=require("../../../command/os/ListAppsCommand"),i=require("../../../device-action/model/UserInteractionRequired"),m=require("../../../device-action/os/Const"),d=require("../../../device-action/os/GoToDashboard/GoToDashboardDeviceAction"),h=require("../../../device-action/xstate-utils/XStateDeviceAction"),l=require("./types");class v extends h.XStateDeviceAction{makeStateMachine(e){const{listApps:o}=this.extractDependencies(e),s=this.input.unlockTimeout??m.DEFAULT_UNLOCK_TIMEOUT_MS,r=new d.GoToDashboardDeviceAction({input:{unlockTimeout:s}}).makeStateMachine(e);return(0,n.setup)({types:{input:{unlockTimeout:s},context:{},output:{}},actors:{listApps:(0,n.fromPromise)(o),goToDashboard:r},guards:{hasError:({context:t})=>t._internalState.error!==null,hasMoreApps:t=>t.context._internalState.shouldContinue},actions:{assignAllowListApps:(0,n.assign)({intermediateValue:t=>({requiredUserInteraction:i.UserInteractionRequired.AllowListApps,step:l.listAppsDAStateStep.LIST_APPS})}),assignErrorFromEvent:(0,n.assign)({_internalState:t=>({...t.context._internalState,error:t.event.error})})}}).createMachine({id:"ListAppsDeviceAction",initial:"DeviceReady",context:t=>({input:{unlockTimeout:t.input.unlockTimeout},intermediateValue:{requiredUserInteraction:i.UserInteractionRequired.None,step:l.listAppsDAStateStep.GO_TO_DASHBOARD},_internalState:{error:null,apps:[],shouldContinue:!1}}),states:{DeviceReady:{always:{target:"GoToDashboard"}},GoToDashboard:{invoke:{id:"dashboard",src:"goToDashboard",input:t=>({unlockTimeout:t.context.input.unlockTimeout}),onSnapshot:{actions:(0,n.assign)({intermediateValue:t=>t.event.snapshot.context.intermediateValue})},onDone:{target:"GoToDashboardCheck",actions:(0,n.assign)({_internalState:t=>t.event.output.caseOf({Right:()=>t.context._internalState,Left:D=>({...t.context._internalState,error:D})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GoToDashboardCheck:{always:[{target:"Error",guard:"hasError"},{target:"ListApps"}]},ListApps:{entry:"assignAllowListApps",invoke:{src:"listApps",input:t=>!1,onDone:{target:"Continue",actions:(0,n.assign)({_internalState:t=>(0,c.isSuccessCommandResult)(t.event.output)?{...t.context._internalState,apps:t.context._internalState.apps.concat(t.event.output.data),shouldContinue:t.event.output.data.length>=2}:{...t.context._internalState,error:t.event.output.error},intermediateValue:t=>({...t.context.intermediateValue,requiredUserInteraction:i.UserInteractionRequired.None})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ListAppsCheck:{always:[{target:"Error",guard:"hasError"},"ListAppsContinue"]},ListAppsContinue:{invoke:{src:"listApps",input:t=>!0,onDone:{target:"Continue",actions:(0,n.assign)({_internalState:t=>(0,c.isSuccessCommandResult)(t.event.output)?{...t.context._internalState,apps:t.context._internalState.apps.concat(t.event.output.data),shouldContinue:t.event.output.data.length>=2}:{...t.context._internalState,error:t.event.output.error}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},Continue:{always:[{target:"ListAppsContinue",guard:"hasMoreApps"},{target:"Success"}]},Success:{type:"final"},Error:{type:"final"}},output:t=>t.context._internalState.error?(0,p.Left)(t.context._internalState.error):(0,p.Right)(t.context._internalState.apps)})}extractDependencies(e){return{listApps:async({input:s})=>{const r=new A.ListAppsCommand({isContinue:s});return e.sendCommand(r)}}}}0&&(module.exports={ListAppsDeviceAction});
2
2
  //# sourceMappingURL=ListAppsDeviceAction.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/api/device-action/os/ListApps/ListAppsDeviceAction.ts"],
4
- "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport { isSuccessCommandResult } from \"@api/command/model/CommandResult\";\nimport {\n type AppResponse,\n ListAppsCommand,\n type ListAppsCommandResult,\n} from \"@api/command/os/ListAppsCommand\";\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 { GoToDashboardDeviceAction } from \"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\";\nimport { type StateMachineTypes } from \"@api/device-action/xstate-utils/StateMachineTypes\";\nimport {\n type DeviceActionStateMachine,\n XStateDeviceAction,\n} from \"@api/device-action/xstate-utils/XStateDeviceAction\";\n\nimport {\n type ListAppsDAError,\n type ListAppsDAInput,\n type ListAppsDAIntermediateValue,\n type ListAppsDAOutput,\n} from \"./types\";\n\ntype ListAppsMachineInternalState = {\n readonly error: ListAppsDAError | null;\n readonly apps: AppResponse[];\n readonly shouldContinue: boolean;\n};\n\nexport type MachineDependencies = {\n readonly listApps: ({\n input,\n }: {\n input: boolean;\n }) => Promise<ListAppsCommandResult>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class ListAppsDeviceAction extends XStateDeviceAction<\n ListAppsDAOutput,\n ListAppsDAInput,\n ListAppsDAError,\n ListAppsDAIntermediateValue,\n ListAppsMachineInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n ListAppsDAOutput,\n ListAppsDAInput,\n ListAppsDAError,\n ListAppsDAIntermediateValue,\n ListAppsMachineInternalState\n > {\n type types = StateMachineTypes<\n ListAppsDAOutput,\n ListAppsDAInput,\n ListAppsDAError,\n ListAppsDAIntermediateValue,\n ListAppsMachineInternalState\n >;\n\n const { listApps } = this.extractDependencies(internalApi);\n\n const unlockTimeout = this.input.unlockTimeout ?? DEFAULT_UNLOCK_TIMEOUT_MS;\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 listApps: fromPromise<ListAppsCommandResult, boolean>(listApps),\n goToDashboard: goToDashboardMachine,\n },\n guards: {\n hasError: ({ context }: { context: types[\"context\"] }) => {\n return context._internalState.error !== null;\n },\n hasMoreApps: (_) => _.context._internalState.shouldContinue,\n },\n actions: {\n assignAllowListApps: assign({\n intermediateValue: (_) =>\n ({\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n }) satisfies types[\"context\"][\"intermediateValue\"],\n }),\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 },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QBkCWsAuBBADj2AImAG6oDGYWZGqA9gHYB0RpFASmAIYQCeAxAG0ADAF1EoHLVioaDcSAAeiAIwBOIYwAcANgDsyzat2HlAJgDMegDQgeKg412ntAVm3mdp1af0uAvn42aJi4+CzklNR0TADitAAqtAScsAAWAEa0nABOEHwQDGCMqPTEtADWRRApGVm5wmJIIJLSsvTySgguquaMACy6rvrKfSOqfTZ2CKZC2v3K2ou6xn2mms7+gSDB2HiEJBFUbYxxiclpmTl5YNnZtNmMOAA2nBgAZvcAtozVF3UQDXkLRk0Q6iG6vQGQ2UIzGE1siE0ykYLiEaLRuiECxcbmUASC6F2YQOFCO0ROCSSNUuuQAwqkwGRyoJRECpCC5E1OsosZpHAZBi5zKpuhjJohTBZHBt3N5UapVGp8dtCaF9qxIsdTlS-ld6YzmQJlI0JOy2mCEDyHPpNILhaKhLpxQg+kI+ZjzGZdD0seYPMqdmrwqSogxGIG9vlCsVShUihHiRqyWGE7AECUymRXtEGoCmsDzVyVAM+cpzGtzKjvdp1ppnZWNNosW4+sLNEJUdo+gHVXtg5ryam+Dc7g9nq8Ptlvqn+8mmKn07Gs21c6z82bQUXLSXGGWK1XVDW1s6XMZ+kKzLaZk3XD2Qn2SQOU738HwFJhXkVOG8MDcABTKKiaIAJR8DOj5zuGL6wHmpqtJuoDcjue6aA21a1s6ejIuo2imDiCy6H0PS6HeRLqocobztBtIMDQ9AAK5gFG9BFBmcZQfeiYUccqY0fQdGMYumbZgwq4ms0G6cohKiaC4pZCOMQjlu4bguPWqyMJKrhdpKmLLNopFBhBlEcWRfECUxI73I8LzvF8plGUmJm8bRJSCWxy45qIsESfBUmKBKMzIjMnpyTitp+uY9ZyburYWDCfQ1ro5aGQ+TnHOZblMT5BYIQFlqoaojDaCK5iuq2XY1s6iW6I4h54bJlheKlXEhhlrkMdlxpsn57RbgYbiMLMeFrLpMxCiewqOOV4xEai6x4sq9C0BAcDyOB6V5bl-mdAAtNozq7S4jAKqdFgKdW+4teRbXkv2HDcFMcEcn10kuqYzowrVTjaR4TXrNds4mdq5y1FcPUvRaazHaVl5Cq66hqQiCDjJpMplQYmijClWwbdx5Ig9S-z6kyEOFm97bIqsh4KsKZYlQdyOSnywrluYsxDJTmwEpxN1PlRvNk3l3IGMiOIDB2ZWtq6H3I5WtV9BePhYm6gymIDxk8dRHWMULO0SlicyyYBPRlt4jXRXM2hqN6lg8j0GubWGmWdXrr35QsOhDbJh5+l44XwlM5hOCixhej4Ip9Ei3a49BQPHAAyvRZAULA8Drr1UM4nMMxeM4NaoR4TrI0KOczX0cWKo7+NhgAorc9xu1DoxFYBuE6O2OgKfWZ46EYimzAsXYBAEQA */\n id: \"ListAppsDeviceAction\",\n initial: \"DeviceReady\",\n context: (_) => {\n return {\n input: {\n unlockTimeout: _.input.unlockTimeout,\n },\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n error: null,\n apps: [],\n shouldContinue: false,\n },\n };\n },\n states: {\n DeviceReady: {\n always: {\n target: \"GoToDashboard\",\n },\n },\n GoToDashboard: {\n invoke: {\n id: \"dashboard\",\n src: \"goToDashboard\",\n input: (_) => ({\n unlockTimeout: _.context.input.unlockTimeout,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n target: \"GoToDashboardCheck\",\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<ListAppsMachineInternalState>({\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: \"ListApps\",\n },\n ],\n },\n ListApps: {\n // NOTE: This is a timeout that is currently not used\n // We need to discuss this as a team, how do we want to\n // handle the case when the user does not validate or reject on the device\n // after: {\n // 15000: \"Error\",\n // actions: assign({\n // _internalState: (_) => ({\n // error: new UnknownDAError(\"ListAppsTimeout\"),\n // }),\n // }),\n // },\n entry: \"assignAllowListApps\",\n invoke: {\n src: \"listApps\",\n input: (_) => false,\n onDone: {\n target: \"Continue\",\n actions: assign({\n _internalState: (_) => {\n if (isSuccessCommandResult(_.event.output)) {\n return {\n ..._.context._internalState,\n apps: _.context._internalState.apps.concat(\n _.event.output.data,\n ),\n shouldContinue: _.event.output.data.length >= 2,\n };\n }\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n },\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n }),\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n ListAppsCheck: {\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n \"ListAppsContinue\",\n ],\n },\n ListAppsContinue: {\n invoke: {\n src: \"listApps\",\n input: (_) => true,\n onDone: {\n target: \"Continue\",\n actions: assign({\n _internalState: (_) => {\n if (isSuccessCommandResult(_.event.output)) {\n return {\n ..._.context._internalState,\n apps: _.context._internalState.apps.concat(\n _.event.output.data,\n ),\n shouldContinue: _.event.output.data.length >= 2,\n };\n }\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n Continue: {\n always: [\n {\n target: \"ListAppsContinue\",\n guard: \"hasMoreApps\",\n },\n {\n target: \"Success\",\n },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: (_) => {\n if (_.context._internalState.error) {\n return Left(_.context._internalState.error);\n }\n\n return Right(_.context._internalState.apps);\n },\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const listApps = async ({ input }: { input: boolean }) => {\n const command = new ListAppsCommand({ isContinue: input });\n return internalApi.sendCommand(command);\n };\n\n return {\n listApps,\n };\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["ListAppsDeviceAction_exports", "__export", "ListAppsDeviceAction", "__toCommonJS", "import_purify_ts", "import_xstate", "import_CommandResult", "import_ListAppsCommand", "import_UserInteractionRequired", "import_Const", "import_GoToDashboardDeviceAction", "import_XStateDeviceAction", "internalApi", "listApps", "unlockTimeout", "goToDashboardMachine", "context", "_", "error", "input", "command"]
4
+ "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport { isSuccessCommandResult } from \"@api/command/model/CommandResult\";\nimport {\n type AppResponse,\n ListAppsCommand,\n type ListAppsCommandResult,\n} from \"@api/command/os/ListAppsCommand\";\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 { GoToDashboardDeviceAction } from \"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\";\nimport { type StateMachineTypes } from \"@api/device-action/xstate-utils/StateMachineTypes\";\nimport {\n type DeviceActionStateMachine,\n XStateDeviceAction,\n} from \"@api/device-action/xstate-utils/XStateDeviceAction\";\n\nimport {\n type ListAppsDAError,\n type ListAppsDAInput,\n type ListAppsDAIntermediateValue,\n type ListAppsDAOutput,\n listAppsDAStateStep,\n} from \"./types\";\n\ntype ListAppsMachineInternalState = {\n readonly error: ListAppsDAError | null;\n readonly apps: AppResponse[];\n readonly shouldContinue: boolean;\n};\n\nexport type MachineDependencies = {\n readonly listApps: ({\n input,\n }: {\n input: boolean;\n }) => Promise<ListAppsCommandResult>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class ListAppsDeviceAction extends XStateDeviceAction<\n ListAppsDAOutput,\n ListAppsDAInput,\n ListAppsDAError,\n ListAppsDAIntermediateValue,\n ListAppsMachineInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n ListAppsDAOutput,\n ListAppsDAInput,\n ListAppsDAError,\n ListAppsDAIntermediateValue,\n ListAppsMachineInternalState\n > {\n type types = StateMachineTypes<\n ListAppsDAOutput,\n ListAppsDAInput,\n ListAppsDAError,\n ListAppsDAIntermediateValue,\n ListAppsMachineInternalState\n >;\n\n const { listApps } = this.extractDependencies(internalApi);\n\n const unlockTimeout = this.input.unlockTimeout ?? DEFAULT_UNLOCK_TIMEOUT_MS;\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 listApps: fromPromise<ListAppsCommandResult, boolean>(listApps),\n goToDashboard: goToDashboardMachine,\n },\n guards: {\n hasError: ({ context }: { context: types[\"context\"] }) => {\n return context._internalState.error !== null;\n },\n hasMoreApps: (_) => _.context._internalState.shouldContinue,\n },\n actions: {\n assignAllowListApps: assign({\n intermediateValue: (_) =>\n ({\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n step: listAppsDAStateStep.LIST_APPS,\n }) satisfies types[\"context\"][\"intermediateValue\"],\n }),\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 },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QBkCWsAuBBADj2AImAG6oDGYWZGqA9gHYB0RpFASmAIYQCeAxAG0ADAF1EoHLVioaDcSAAeiAIwBOIYwAcANgDsyzat2HlAJgDMegDQgeKg412ntAVm3mdp1af0uAvn42aJi4+CzklNR0TADitAAqtAScsAAWAEa0nABOEHwQDGCMqPTEtADWRRApGVm5wmJIIJLSsvTySgguquaMACy6rvrKfSOqfTZ2CKZC2v3K2ou6xn2mms7+gSDB2HiEJBFUbYxxiclpmTl5YNnZtNmMOAA2nBgAZvcAtozVF3UQDXkLRk0Q6iG6vQGQ2UIzGE1siE0ykYLiEaLRuiECxcbmUASC6F2YQOFCO0ROCSSNUuuQAwqkwGRyoJRECpCC5E1OsosZpHAZBi5zKpuhjJohTBZHBt3N5UapVGp8dtCaF9qxIsdTlS-ld6YzmQJlI0JOy2mCEDyHPpNILhaKhLpxQg+kI+ZjzGZdD0seYPMqdmrwqSogxGIG9vlCsVShUihHiRqyWGE7AECUymRXtEGoCmsDzVyVAM+cpzGtzKjvdp1ppnZWNNosW4+sLNEJUdo+gHVXtg5ryam+Dc7g9nq8Ptlvqn+8mmKn07Gs21c6z82bQUXLSXGGWK1XVDW1s6XMZ+kKzLaZk3XD2Qn2SQOU738HwFJhXkVOG8MDcABTKKiaIAJR8DOj5zuGL6wHmpqtJuoDcjue6aA21a1s6ejIuo2imDiCy6H0PS6HeRLqocobztBtIMDQ9AAK5gFG9BFBmcZQfeiYUccqY0fQdGMYumbZgwq4ms0G6cohKiaC4pZCOMQjlu4bguPWqyMJKrhdpKmLLNopFBhBlEcWRfECUxI73I8LzvF8plGUmJm8bRJSCWxy45qIsESfBUmKBKMzIjMnpyTitp+uY9ZyburYWDCfQ1ro5aGQ+TnHOZblMT5BYIQFlqoaojDaCK5iuq2XY1s6iW6I4h54bJlheKlXEhhlrkMdlxpsn57RbgYbiMLMeFrLpMxCiewqOOV4xEai6x4sq9C0BAcDyOB6V5bl-mdAAtNozq7S4jAKqdFgKdW+4teRbXkv2HDcFMcEcn10kuqYzowrVTjaR4TXrNds4mdq5y1FcPUvRaazHaVl5Cq66hqQiCDjJpMplQYmijClWwbdx5Ig9S-z6kyEOFm97bIqsh4KsKZYlQdyOSnywrluYsxDJTmwEpxN1PlRvNk3l3IGMiOIDB2ZWtq6H3I5WtV9BePhYm6gymIDxk8dRHWMULO0SlicyyYBPRlt4jXRXM2hqN6lg8j0GubWGmWdXrr35QsOhDbJh5+l44XwlM5hOCixhej4Ip9Ei3a49BQPHAAyvRZAULA8Drr1UM4nMMxeM4NaoR4TrI0KOczX0cWKo7+NhgAorc9xu1DoxFYBuE6O2OgKfWZ46EYimzAsXYBAEQA */\n id: \"ListAppsDeviceAction\",\n initial: \"DeviceReady\",\n context: (_) => {\n return {\n input: {\n unlockTimeout: _.input.unlockTimeout,\n },\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.GO_TO_DASHBOARD,\n },\n _internalState: {\n error: null,\n apps: [],\n shouldContinue: false,\n },\n };\n },\n states: {\n DeviceReady: {\n always: {\n target: \"GoToDashboard\",\n },\n },\n GoToDashboard: {\n invoke: {\n id: \"dashboard\",\n src: \"goToDashboard\",\n input: (_) => ({\n unlockTimeout: _.context.input.unlockTimeout,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n target: \"GoToDashboardCheck\",\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<ListAppsMachineInternalState>({\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: \"ListApps\",\n },\n ],\n },\n ListApps: {\n // NOTE: This is a timeout that is currently not used\n // We need to discuss this as a team, how do we want to\n // handle the case when the user does not validate or reject on the device\n // after: {\n // 15000: \"Error\",\n // actions: assign({\n // _internalState: (_) => ({\n // error: new UnknownDAError(\"ListAppsTimeout\"),\n // }),\n // }),\n // },\n entry: \"assignAllowListApps\",\n invoke: {\n src: \"listApps\",\n input: (_) => false,\n onDone: {\n target: \"Continue\",\n actions: assign({\n _internalState: (_) => {\n if (isSuccessCommandResult(_.event.output)) {\n return {\n ..._.context._internalState,\n apps: _.context._internalState.apps.concat(\n _.event.output.data,\n ),\n shouldContinue: _.event.output.data.length >= 2,\n };\n }\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n },\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n }),\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n ListAppsCheck: {\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n \"ListAppsContinue\",\n ],\n },\n ListAppsContinue: {\n invoke: {\n src: \"listApps\",\n input: (_) => true,\n onDone: {\n target: \"Continue\",\n actions: assign({\n _internalState: (_) => {\n if (isSuccessCommandResult(_.event.output)) {\n return {\n ..._.context._internalState,\n apps: _.context._internalState.apps.concat(\n _.event.output.data,\n ),\n shouldContinue: _.event.output.data.length >= 2,\n };\n }\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n Continue: {\n always: [\n {\n target: \"ListAppsContinue\",\n guard: \"hasMoreApps\",\n },\n {\n target: \"Success\",\n },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: (_) => {\n if (_.context._internalState.error) {\n return Left(_.context._internalState.error);\n }\n\n return Right(_.context._internalState.apps);\n },\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const listApps = async ({ input }: { input: boolean }) => {\n const command = new ListAppsCommand({ isContinue: input });\n return internalApi.sendCommand(command);\n };\n\n return {\n listApps,\n };\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["ListAppsDeviceAction_exports", "__export", "ListAppsDeviceAction", "__toCommonJS", "import_purify_ts", "import_xstate", "import_CommandResult", "import_ListAppsCommand", "import_UserInteractionRequired", "import_Const", "import_GoToDashboardDeviceAction", "import_XStateDeviceAction", "import_types", "internalApi", "listApps", "unlockTimeout", "goToDashboardMachine", "context", "_", "error", "input", "command"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=require("../../../command/model/CommandResult"),A=require("../../../command/utils/GlobalCommandError"),t=require("../../../device-action/__test-utils__/data"),d=require("../../../device-action/__test-utils__/makeInternalApi"),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"),m=require("../../../device-action/os/Errors"),l=require("./ListAppsDeviceAction");vi.mock("@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction");describe("ListAppsDeviceAction",()=>{const{sendCommand:p}=(0,d.makeDeviceActionInternalApiMock)();beforeEach(()=>{vi.resetAllMocks()}),describe("success cases",()=>{it("should run the device action with no apps installed",()=>new Promise((r,o)=>{(0,u.setupGoToDashboardMock)();const s=new l.ListAppsDeviceAction({input:{}});p.mockResolvedValue((0,a.CommandResultFactory)({data:[]}));const i=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowListApps},status:e.DeviceActionStatus.Pending},{output:[],status:e.DeviceActionStatus.Completed}];(0,c.testDeviceActionStates)(s,i,(0,d.makeDeviceActionInternalApiMock)(),{onDone:r,onError:o})})),it("should run the device action with one app installed",()=>new Promise((r,o)=>{(0,u.setupGoToDashboardMock)();const s=new l.ListAppsDeviceAction({input:{unlockTimeout:500}});p.mockResolvedValueOnce((0,a.CommandResultFactory)({data:[t.BTC_APP]}));const i=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowListApps},status:e.DeviceActionStatus.Pending},{output:[t.BTC_APP],status:e.DeviceActionStatus.Completed}];(0,c.testDeviceActionStates)(s,i,(0,d.makeDeviceActionInternalApiMock)(),{onDone:r,onError:o})})),it("should run the device action with two app installed",()=>new Promise((r,o)=>{(0,u.setupGoToDashboardMock)();const s=new l.ListAppsDeviceAction({input:{unlockTimeout:500}});p.mockResolvedValueOnce((0,a.CommandResultFactory)({data:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP]})).mockResolvedValueOnce((0,a.CommandResultFactory)({data:[]}));const i=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowListApps},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{output:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP],status:e.DeviceActionStatus.Completed}];(0,c.testDeviceActionStates)(s,i,(0,d.makeDeviceActionInternalApiMock)(),{onDone:r,onError:o})})),it("should run the device action with three app installed",()=>new Promise((r,o)=>{(0,u.setupGoToDashboardMock)();const s=new l.ListAppsDeviceAction({input:{unlockTimeout:500}});p.mockResolvedValueOnce((0,a.CommandResultFactory)({data:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP]})).mockResolvedValueOnce((0,a.CommandResultFactory)({data:[t.ETH_APP]}));const i=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowListApps},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{output:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP,t.ETH_APP],status:e.DeviceActionStatus.Completed}];(0,c.testDeviceActionStates)(s,i,(0,d.makeDeviceActionInternalApiMock)(),{onDone:r,onError:o})})),it("should run the device action with four app installed",()=>new Promise((r,o)=>{(0,u.setupGoToDashboardMock)();const s=new l.ListAppsDeviceAction({input:{unlockTimeout:500}});p.mockResolvedValueOnce((0,a.CommandResultFactory)({data:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP]})).mockResolvedValueOnce((0,a.CommandResultFactory)({data:[t.ETH_APP,t.SOLANA_APP]})).mockResolvedValueOnce((0,a.CommandResultFactory)({data:[]}));const i=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowListApps},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{output:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP,t.ETH_APP,t.SOLANA_APP],status:e.DeviceActionStatus.Completed}];(0,c.testDeviceActionStates)(s,i,(0,d.makeDeviceActionInternalApiMock)(),{onDone:r,onError:o})})),it("should run the device action with five app installed",()=>new Promise((r,o)=>{(0,u.setupGoToDashboardMock)();const s=new l.ListAppsDeviceAction({input:{unlockTimeout:500}});p.mockResolvedValueOnce((0,a.CommandResultFactory)({data:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP]})).mockResolvedValueOnce((0,a.CommandResultFactory)({data:[t.ETH_APP,t.SOLANA_APP]})).mockResolvedValueOnce((0,a.CommandResultFactory)({data:[t.DOGECOIN_APP]}));const i=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowListApps},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{output:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP,t.ETH_APP,t.SOLANA_APP,t.DOGECOIN_APP],status:e.DeviceActionStatus.Completed}];(0,c.testDeviceActionStates)(s,i,(0,d.makeDeviceActionInternalApiMock)(),{onDone:r,onError:o})}))}),describe("error cases",()=>{it("should return an error if GoTodashboard fails",()=>new Promise((r,o)=>{(0,u.setupGoToDashboardMock)(!0);const s=new l.ListAppsDeviceAction({input:{unlockTimeout:500}});p.mockResolvedValue((0,a.CommandResultFactory)({data:[]}));const i=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{error:new m.UnknownDAError("GoToDashboard failed"),status:e.DeviceActionStatus.Error}];(0,c.testDeviceActionStates)(s,i,(0,d.makeDeviceActionInternalApiMock)(),{onDone:r,onError:o})})),it("should run the device action if GoTodashboard fails",()=>new Promise((r,o)=>{(0,u.setupGoToDashboardMock)(!0);const s=new l.ListAppsDeviceAction({input:{unlockTimeout:500}});p.mockResolvedValue((0,a.CommandResultFactory)({data:[]}));const i=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{error:new m.UnknownDAError("GoToDashboard failed"),status:e.DeviceActionStatus.Error}];(0,c.testDeviceActionStates)(s,i,(0,d.makeDeviceActionInternalApiMock)(),{onDone:r,onError:o})})),it("should return an error if ListApps fails",()=>new Promise((r,o)=>{(0,u.setupGoToDashboardMock)();const s=new l.ListAppsDeviceAction({input:{unlockTimeout:500}}),i=new A.GlobalCommandError({errorCode:"5501",...A.GLOBAL_ERRORS[5501]});p.mockResolvedValue((0,a.CommandResultFactory)({error:i}));const P=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowListApps},status:e.DeviceActionStatus.Pending},{error:i,status:e.DeviceActionStatus.Error}];(0,c.testDeviceActionStates)(s,P,(0,d.makeDeviceActionInternalApiMock)(),{onDone:r,onError:o})})),it("should return an error if ListAppsContinue fails",()=>new Promise((r,o)=>{(0,u.setupGoToDashboardMock)();const s=new l.ListAppsDeviceAction({input:{unlockTimeout:500}});p.mockResolvedValueOnce((0,a.CommandResultFactory)({data:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP]})).mockRejectedValueOnce(new m.UnknownDAError("mocked error"));const i=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowListApps},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{error:new m.UnknownDAError("mocked error"),status:e.DeviceActionStatus.Error}];(0,c.testDeviceActionStates)(s,i,(0,d.makeDeviceActionInternalApiMock)(),{onDone:r,onError:o})}))})});
1
+ "use strict";var d=require("../../../command/model/CommandResult"),P=require("../../../command/utils/GlobalCommandError"),t=require("../../../device-action/__test-utils__/data"),u=require("../../../device-action/__test-utils__/makeInternalApi"),p=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"),S=require("../../../device-action/os/Errors"),l=require("../../../device-action/os/GoToDashboard/types"),A=require("./ListAppsDeviceAction"),i=require("./types");vi.mock("@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction");describe("ListAppsDeviceAction",()=>{const{sendCommand:m}=(0,u.makeDeviceActionInternalApiMock)();beforeEach(()=>{vi.resetAllMocks()}),describe("success cases",()=>{it("should run the device action with no apps installed",()=>new Promise((s,o)=>{(0,p.setupGoToDashboardMock)();const a=new A.ListAppsDeviceAction({input:{}});m.mockResolvedValue((0,d.CommandResultFactory)({data:[]}));const r=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.listAppsDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:l.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowListApps,step:i.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{output:[],status:e.DeviceActionStatus.Completed}];(0,c.testDeviceActionStates)(a,r,(0,u.makeDeviceActionInternalApiMock)(),{onDone:s,onError:o})})),it("should run the device action with one app installed",()=>new Promise((s,o)=>{(0,p.setupGoToDashboardMock)();const a=new A.ListAppsDeviceAction({input:{unlockTimeout:500}});m.mockResolvedValueOnce((0,d.CommandResultFactory)({data:[t.BTC_APP]}));const r=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.listAppsDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:l.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowListApps,step:i.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{output:[t.BTC_APP],status:e.DeviceActionStatus.Completed}];(0,c.testDeviceActionStates)(a,r,(0,u.makeDeviceActionInternalApiMock)(),{onDone:s,onError:o})})),it("should run the device action with two app installed",()=>new Promise((s,o)=>{(0,p.setupGoToDashboardMock)();const a=new A.ListAppsDeviceAction({input:{unlockTimeout:500}});m.mockResolvedValueOnce((0,d.CommandResultFactory)({data:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP]})).mockResolvedValueOnce((0,d.CommandResultFactory)({data:[]}));const r=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.listAppsDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:l.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowListApps,step:i.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{output:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP],status:e.DeviceActionStatus.Completed}];(0,c.testDeviceActionStates)(a,r,(0,u.makeDeviceActionInternalApiMock)(),{onDone:s,onError:o})})),it("should run the device action with three app installed",()=>new Promise((s,o)=>{(0,p.setupGoToDashboardMock)();const a=new A.ListAppsDeviceAction({input:{unlockTimeout:500}});m.mockResolvedValueOnce((0,d.CommandResultFactory)({data:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP]})).mockResolvedValueOnce((0,d.CommandResultFactory)({data:[t.ETH_APP]}));const r=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.listAppsDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:l.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowListApps,step:i.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{output:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP,t.ETH_APP],status:e.DeviceActionStatus.Completed}];(0,c.testDeviceActionStates)(a,r,(0,u.makeDeviceActionInternalApiMock)(),{onDone:s,onError:o})})),it("should run the device action with four app installed",()=>new Promise((s,o)=>{(0,p.setupGoToDashboardMock)();const a=new A.ListAppsDeviceAction({input:{unlockTimeout:500}});m.mockResolvedValueOnce((0,d.CommandResultFactory)({data:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP]})).mockResolvedValueOnce((0,d.CommandResultFactory)({data:[t.ETH_APP,t.SOLANA_APP]})).mockResolvedValueOnce((0,d.CommandResultFactory)({data:[]}));const r=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.listAppsDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:l.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowListApps,step:i.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{output:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP,t.ETH_APP,t.SOLANA_APP],status:e.DeviceActionStatus.Completed}];(0,c.testDeviceActionStates)(a,r,(0,u.makeDeviceActionInternalApiMock)(),{onDone:s,onError:o})})),it("should run the device action with five app installed",()=>new Promise((s,o)=>{(0,p.setupGoToDashboardMock)();const a=new A.ListAppsDeviceAction({input:{unlockTimeout:500}});m.mockResolvedValueOnce((0,d.CommandResultFactory)({data:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP]})).mockResolvedValueOnce((0,d.CommandResultFactory)({data:[t.ETH_APP,t.SOLANA_APP]})).mockResolvedValueOnce((0,d.CommandResultFactory)({data:[t.DOGECOIN_APP]}));const r=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.listAppsDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:l.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowListApps,step:i.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{output:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP,t.ETH_APP,t.SOLANA_APP,t.DOGECOIN_APP],status:e.DeviceActionStatus.Completed}];(0,c.testDeviceActionStates)(a,r,(0,u.makeDeviceActionInternalApiMock)(),{onDone:s,onError:o})}))}),describe("error cases",()=>{it("should return an error if GoTodashboard fails",()=>new Promise((s,o)=>{(0,p.setupGoToDashboardMock)(!0);const a=new A.ListAppsDeviceAction({input:{unlockTimeout:500}});m.mockResolvedValue((0,d.CommandResultFactory)({data:[]}));const r=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.listAppsDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:l.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{error:new S.UnknownDAError("GoToDashboard failed"),status:e.DeviceActionStatus.Error}];(0,c.testDeviceActionStates)(a,r,(0,u.makeDeviceActionInternalApiMock)(),{onDone:s,onError:o})})),it("should run the device action if GoTodashboard fails",()=>new Promise((s,o)=>{(0,p.setupGoToDashboardMock)(!0);const a=new A.ListAppsDeviceAction({input:{unlockTimeout:500}});m.mockResolvedValue((0,d.CommandResultFactory)({data:[]}));const r=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.listAppsDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:l.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{error:new S.UnknownDAError("GoToDashboard failed"),status:e.DeviceActionStatus.Error}];(0,c.testDeviceActionStates)(a,r,(0,u.makeDeviceActionInternalApiMock)(),{onDone:s,onError:o})})),it("should return an error if ListApps fails",()=>new Promise((s,o)=>{(0,p.setupGoToDashboardMock)();const a=new A.ListAppsDeviceAction({input:{unlockTimeout:500}}),r=new P.GlobalCommandError({errorCode:"5501",...P.GLOBAL_ERRORS[5501]});m.mockResolvedValue((0,d.CommandResultFactory)({error:r}));const D=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.listAppsDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:l.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowListApps,step:i.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{error:r,status:e.DeviceActionStatus.Error}];(0,c.testDeviceActionStates)(a,D,(0,u.makeDeviceActionInternalApiMock)(),{onDone:s,onError:o})})),it("should return an error if ListAppsContinue fails",()=>new Promise((s,o)=>{(0,p.setupGoToDashboardMock)();const a=new A.ListAppsDeviceAction({input:{unlockTimeout:500}});m.mockResolvedValueOnce((0,d.CommandResultFactory)({data:[t.BTC_APP,t.CUSTOM_LOCK_SCREEN_APP]})).mockRejectedValueOnce(new S.UnknownDAError("mocked error"));const r=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.listAppsDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:l.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowListApps,step:i.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{error:new S.UnknownDAError("mocked error"),status:e.DeviceActionStatus.Error}];(0,c.testDeviceActionStates)(a,r,(0,u.makeDeviceActionInternalApiMock)(),{onDone:s,onError:o})}))})});
2
2
  //# sourceMappingURL=ListAppsDeviceAction.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/api/device-action/os/ListApps/ListAppsDeviceAction.test.ts"],
4
- "sourcesContent": ["import { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport { type ListAppsResponse } from \"@api/command/os/ListAppsCommand\";\nimport {\n GLOBAL_ERRORS,\n GlobalCommandError,\n} from \"@api/command/utils/GlobalCommandError\";\nimport {\n BTC_APP,\n CUSTOM_LOCK_SCREEN_APP,\n DOGECOIN_APP,\n ETH_APP,\n SOLANA_APP,\n} from \"@api/device-action/__test-utils__/data\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { setupGoToDashboardMock } 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\";\n\nimport { ListAppsDeviceAction } from \"./ListAppsDeviceAction\";\nimport { type ListAppsDAState } from \"./types\";\n\nvi.mock(\"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\");\n\ndescribe(\"ListAppsDeviceAction\", () => {\n const { sendCommand: sendCommandMock } = makeDeviceActionInternalApiMock();\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"success cases\", () => {\n it(\"should run the device action with no apps installed\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: {},\n });\n\n sendCommandMock.mockResolvedValue(CommandResultFactory({ data: [] }));\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n },\n status: DeviceActionStatus.Pending, // ListApps\n },\n {\n output: [],\n status: DeviceActionStatus.Completed, // Success\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action with one app installed\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n sendCommandMock.mockResolvedValueOnce(\n CommandResultFactory({ data: [BTC_APP] }),\n );\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n },\n status: DeviceActionStatus.Pending, // ListApps\n },\n {\n output: [BTC_APP],\n status: DeviceActionStatus.Completed, // Success\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action with two app installed\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n sendCommandMock\n .mockResolvedValueOnce(\n CommandResultFactory({ data: [BTC_APP, CUSTOM_LOCK_SCREEN_APP] }),\n )\n .mockResolvedValueOnce(CommandResultFactory({ data: [] }));\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n },\n status: DeviceActionStatus.Pending, // ListApps\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // ContinueListApps\n },\n {\n output: [BTC_APP, CUSTOM_LOCK_SCREEN_APP],\n status: DeviceActionStatus.Completed, // Success\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action with three app installed\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n sendCommandMock\n .mockResolvedValueOnce(\n CommandResultFactory({ data: [BTC_APP, CUSTOM_LOCK_SCREEN_APP] }),\n )\n .mockResolvedValueOnce(CommandResultFactory({ data: [ETH_APP] }));\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n },\n status: DeviceActionStatus.Pending, // ListApps\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // ContinueListApps\n },\n {\n output: [BTC_APP, CUSTOM_LOCK_SCREEN_APP, ETH_APP],\n status: DeviceActionStatus.Completed, // Success\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action with four app installed\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n sendCommandMock\n .mockResolvedValueOnce(\n CommandResultFactory({ data: [BTC_APP, CUSTOM_LOCK_SCREEN_APP] }),\n )\n .mockResolvedValueOnce(\n CommandResultFactory({ data: [ETH_APP, SOLANA_APP] }),\n )\n .mockResolvedValueOnce(CommandResultFactory({ data: [] }));\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n },\n status: DeviceActionStatus.Pending, // ListApps\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // ContinueListApps\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // ContinueListApps\n },\n {\n output: [BTC_APP, CUSTOM_LOCK_SCREEN_APP, ETH_APP, SOLANA_APP],\n status: DeviceActionStatus.Completed, // Success\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action with five app installed\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n sendCommandMock\n .mockResolvedValueOnce(\n CommandResultFactory({ data: [BTC_APP, CUSTOM_LOCK_SCREEN_APP] }),\n )\n .mockResolvedValueOnce(\n CommandResultFactory({ data: [ETH_APP, SOLANA_APP] }),\n )\n .mockResolvedValueOnce(\n CommandResultFactory({ data: [DOGECOIN_APP] }),\n );\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n },\n status: DeviceActionStatus.Pending, // ListApps\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // ContinueListApps\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // ContinueListApps\n },\n {\n output: [\n BTC_APP,\n CUSTOM_LOCK_SCREEN_APP,\n ETH_APP,\n SOLANA_APP,\n DOGECOIN_APP,\n ] as ListAppsResponse,\n status: DeviceActionStatus.Completed, // Success\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\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 GoTodashboard fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock(true);\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n sendCommandMock.mockResolvedValue(CommandResultFactory({ data: [] }));\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n error: new UnknownDAError(\"GoToDashboard failed\"),\n status: DeviceActionStatus.Error, // Error\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action if GoTodashboard fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock(true);\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n sendCommandMock.mockResolvedValue(CommandResultFactory({ data: [] }));\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n error: new UnknownDAError(\"GoToDashboard failed\"),\n status: DeviceActionStatus.Error, // Error\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should return an error if ListApps fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n const globalError = new GlobalCommandError({\n errorCode: \"5501\",\n ...GLOBAL_ERRORS[\"5501\"],\n });\n\n sendCommandMock.mockResolvedValue(\n CommandResultFactory({\n error: globalError,\n }),\n );\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n },\n status: DeviceActionStatus.Pending, // ListApps\n },\n {\n error: globalError,\n status: DeviceActionStatus.Error, // Error\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should return an error if ListAppsContinue fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n sendCommandMock\n .mockResolvedValueOnce(\n CommandResultFactory({ data: [BTC_APP, CUSTOM_LOCK_SCREEN_APP] }),\n )\n .mockRejectedValueOnce(new UnknownDAError(\"mocked error\"));\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n },\n status: DeviceActionStatus.Pending, // ListApps\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // ContinueListApps\n },\n {\n error: new UnknownDAError(\"mocked error\"),\n status: DeviceActionStatus.Error, // Success\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_CommandResult", "import_GlobalCommandError", "import_data", "import_makeInternalApi", "import_setupTestMachine", "import_testDeviceActionStates", "import_DeviceActionState", "import_UserInteractionRequired", "import_Errors", "import_ListAppsDeviceAction", "sendCommandMock", "resolve", "reject", "listAppsDeviceAction", "expectedStates", "globalError"]
4
+ "sourcesContent": ["import { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport { type ListAppsResponse } from \"@api/command/os/ListAppsCommand\";\nimport {\n GLOBAL_ERRORS,\n GlobalCommandError,\n} from \"@api/command/utils/GlobalCommandError\";\nimport {\n BTC_APP,\n CUSTOM_LOCK_SCREEN_APP,\n DOGECOIN_APP,\n ETH_APP,\n SOLANA_APP,\n} from \"@api/device-action/__test-utils__/data\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { setupGoToDashboardMock } 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 { goToDashboardDAStateStep } from \"@api/device-action/os/GoToDashboard/types\";\n\nimport { ListAppsDeviceAction } from \"./ListAppsDeviceAction\";\nimport { type ListAppsDAState, listAppsDAStateStep } from \"./types\";\n\nvi.mock(\"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\");\n\ndescribe(\"ListAppsDeviceAction\", () => {\n const { sendCommand: sendCommandMock } = makeDeviceActionInternalApiMock();\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"success cases\", () => {\n it(\"should run the device action with no apps installed\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: {},\n });\n\n sendCommandMock.mockResolvedValue(CommandResultFactory({ data: [] }));\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.GO_TO_DASHBOARD,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n step: listAppsDAStateStep.LIST_APPS,\n },\n status: DeviceActionStatus.Pending, // ListApps\n },\n {\n output: [],\n status: DeviceActionStatus.Completed, // Success\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action with one app installed\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n sendCommandMock.mockResolvedValueOnce(\n CommandResultFactory({ data: [BTC_APP] }),\n );\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.GO_TO_DASHBOARD,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n step: listAppsDAStateStep.LIST_APPS,\n },\n status: DeviceActionStatus.Pending, // ListApps\n },\n {\n output: [BTC_APP],\n status: DeviceActionStatus.Completed, // Success\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action with two app installed\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n sendCommandMock\n .mockResolvedValueOnce(\n CommandResultFactory({ data: [BTC_APP, CUSTOM_LOCK_SCREEN_APP] }),\n )\n .mockResolvedValueOnce(CommandResultFactory({ data: [] }));\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.GO_TO_DASHBOARD,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n step: listAppsDAStateStep.LIST_APPS,\n },\n status: DeviceActionStatus.Pending, // ListApps\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.LIST_APPS,\n },\n status: DeviceActionStatus.Pending, // ContinueListApps\n },\n {\n output: [BTC_APP, CUSTOM_LOCK_SCREEN_APP],\n status: DeviceActionStatus.Completed, // Success\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action with three app installed\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n sendCommandMock\n .mockResolvedValueOnce(\n CommandResultFactory({ data: [BTC_APP, CUSTOM_LOCK_SCREEN_APP] }),\n )\n .mockResolvedValueOnce(CommandResultFactory({ data: [ETH_APP] }));\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.GO_TO_DASHBOARD,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n step: listAppsDAStateStep.LIST_APPS,\n },\n status: DeviceActionStatus.Pending, // ListApps\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.LIST_APPS,\n },\n status: DeviceActionStatus.Pending, // ContinueListApps\n },\n {\n output: [BTC_APP, CUSTOM_LOCK_SCREEN_APP, ETH_APP],\n status: DeviceActionStatus.Completed, // Success\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action with four app installed\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n sendCommandMock\n .mockResolvedValueOnce(\n CommandResultFactory({ data: [BTC_APP, CUSTOM_LOCK_SCREEN_APP] }),\n )\n .mockResolvedValueOnce(\n CommandResultFactory({ data: [ETH_APP, SOLANA_APP] }),\n )\n .mockResolvedValueOnce(CommandResultFactory({ data: [] }));\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.GO_TO_DASHBOARD,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n step: listAppsDAStateStep.LIST_APPS,\n },\n status: DeviceActionStatus.Pending, // ListApps\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.LIST_APPS,\n },\n status: DeviceActionStatus.Pending, // ContinueListApps\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.LIST_APPS,\n },\n status: DeviceActionStatus.Pending, // ContinueListApps\n },\n {\n output: [BTC_APP, CUSTOM_LOCK_SCREEN_APP, ETH_APP, SOLANA_APP],\n status: DeviceActionStatus.Completed, // Success\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action with five app installed\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n sendCommandMock\n .mockResolvedValueOnce(\n CommandResultFactory({ data: [BTC_APP, CUSTOM_LOCK_SCREEN_APP] }),\n )\n .mockResolvedValueOnce(\n CommandResultFactory({ data: [ETH_APP, SOLANA_APP] }),\n )\n .mockResolvedValueOnce(\n CommandResultFactory({ data: [DOGECOIN_APP] }),\n );\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.GO_TO_DASHBOARD,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n step: listAppsDAStateStep.LIST_APPS,\n },\n status: DeviceActionStatus.Pending, // ListApps\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.LIST_APPS,\n },\n status: DeviceActionStatus.Pending, // ContinueListApps\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.LIST_APPS,\n },\n status: DeviceActionStatus.Pending, // ContinueListApps\n },\n {\n output: [\n BTC_APP,\n CUSTOM_LOCK_SCREEN_APP,\n ETH_APP,\n SOLANA_APP,\n DOGECOIN_APP,\n ] as ListAppsResponse,\n status: DeviceActionStatus.Completed, // Success\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\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 GoTodashboard fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock(true);\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n sendCommandMock.mockResolvedValue(CommandResultFactory({ data: [] }));\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.GO_TO_DASHBOARD,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n error: new UnknownDAError(\"GoToDashboard failed\"),\n status: DeviceActionStatus.Error, // Error\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action if GoTodashboard fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock(true);\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n sendCommandMock.mockResolvedValue(CommandResultFactory({ data: [] }));\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.GO_TO_DASHBOARD,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n error: new UnknownDAError(\"GoToDashboard failed\"),\n status: DeviceActionStatus.Error, // Error\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should return an error if ListApps fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n const globalError = new GlobalCommandError({\n errorCode: \"5501\",\n ...GLOBAL_ERRORS[\"5501\"],\n });\n\n sendCommandMock.mockResolvedValue(\n CommandResultFactory({\n error: globalError,\n }),\n );\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.GO_TO_DASHBOARD,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n step: listAppsDAStateStep.LIST_APPS,\n },\n status: DeviceActionStatus.Pending, // ListApps\n },\n {\n error: globalError,\n status: DeviceActionStatus.Error, // Error\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should return an error if ListAppsContinue fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n const listAppsDeviceAction = new ListAppsDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n sendCommandMock\n .mockResolvedValueOnce(\n CommandResultFactory({ data: [BTC_APP, CUSTOM_LOCK_SCREEN_APP] }),\n )\n .mockRejectedValueOnce(new UnknownDAError(\"mocked error\"));\n\n const expectedStates: Array<ListAppsDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.GO_TO_DASHBOARD,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardDeviceAction\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: goToDashboardDAStateStep.GET_DEVICE_STATUS,\n },\n status: DeviceActionStatus.Pending, // GoToDashboardCheck\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n step: listAppsDAStateStep.LIST_APPS,\n },\n status: DeviceActionStatus.Pending, // ListApps\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: listAppsDAStateStep.LIST_APPS,\n },\n status: DeviceActionStatus.Pending, // ContinueListApps\n },\n {\n error: new UnknownDAError(\"mocked error\"),\n status: DeviceActionStatus.Error, // Success\n },\n ];\n\n testDeviceActionStates(\n listAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_CommandResult", "import_GlobalCommandError", "import_data", "import_makeInternalApi", "import_setupTestMachine", "import_testDeviceActionStates", "import_DeviceActionState", "import_UserInteractionRequired", "import_Errors", "import_types", "import_ListAppsDeviceAction", "sendCommandMock", "resolve", "reject", "listAppsDeviceAction", "expectedStates", "globalError"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var p=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var a=(t,r,s,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let e of A(r))!n.call(t,e)&&e!==s&&p(t,e,{get:()=>r[e],enumerable:!(o=i(r,e))||o.enumerable});return t};var D=t=>a(p({},"__esModule",{value:!0}),t);var d={};module.exports=D(d);
1
+ "use strict";var o=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var n=(e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})},D=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let p of i(t))!a.call(e,p)&&p!==r&&o(e,p,{get:()=>t[p],enumerable:!(s=A(t,p))||s.enumerable});return e};var d=e=>D(o({},"__esModule",{value:!0}),e);var m={};n(m,{listAppsDAStateStep:()=>y});module.exports=d(m);const y=Object.freeze({GO_TO_DASHBOARD:"os.listApps.steps.goToDashboard",LIST_APPS:"os.listApps.steps.listApps"});0&&(module.exports={listAppsDAStateStep});
2
2
  //# sourceMappingURL=types.js.map