@ledgerhq/device-management-kit 1.0.1 → 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 (390) hide show
  1. package/README.md +63 -28
  2. package/lib/cjs/package.json +1 -1
  3. package/lib/cjs/src/api/DeviceManagementKit.js +1 -1
  4. package/lib/cjs/src/api/DeviceManagementKit.js.map +2 -2
  5. package/lib/cjs/src/api/apdu/utils/ApduBuilder.js +1 -1
  6. package/lib/cjs/src/api/apdu/utils/ApduBuilder.js.map +3 -3
  7. package/lib/cjs/src/api/command/os/GetBackgroundImageSizeCommand.js +2 -0
  8. package/lib/cjs/src/api/command/os/GetBackgroundImageSizeCommand.js.map +7 -0
  9. package/lib/cjs/src/api/command/os/GetBackgroundImageSizeCommand.test.js +2 -0
  10. package/lib/cjs/src/api/command/os/GetBackgroundImageSizeCommand.test.js.map +7 -0
  11. package/lib/cjs/src/api/device-action/DeviceAction.js +1 -1
  12. package/lib/cjs/src/api/device-action/DeviceAction.js.map +1 -1
  13. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  14. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  15. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  16. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
  17. package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js +1 -1
  18. package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
  19. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js +1 -1
  20. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js.map +3 -3
  21. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +1 -1
  22. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +3 -3
  23. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js +1 -1
  24. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js.map +3 -3
  25. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +1 -1
  26. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +2 -2
  27. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js +1 -1
  28. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js.map +3 -3
  29. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js +1 -1
  30. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js.map +3 -3
  31. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  32. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +3 -3
  33. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  34. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +3 -3
  35. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/types.js +1 -1
  36. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/types.js.map +3 -3
  37. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js +1 -1
  38. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js.map +3 -3
  39. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +1 -1
  40. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +3 -3
  41. package/lib/cjs/src/api/device-action/os/GoToDashboard/types.js +1 -1
  42. package/lib/cjs/src/api/device-action/os/GoToDashboard/types.js.map +3 -3
  43. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +1 -1
  44. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +2 -2
  45. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js +1 -1
  46. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js.map +2 -2
  47. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js +1 -1
  48. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js.map +3 -3
  49. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.js +1 -1
  50. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.js.map +3 -3
  51. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js +1 -1
  52. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js.map +3 -3
  53. package/lib/cjs/src/api/device-action/os/ListApps/types.js +1 -1
  54. package/lib/cjs/src/api/device-action/os/ListApps/types.js.map +3 -3
  55. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js +1 -1
  56. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js.map +3 -3
  57. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +1 -1
  58. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +3 -3
  59. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/types.js +1 -1
  60. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/types.js.map +3 -3
  61. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js +1 -1
  62. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js.map +3 -3
  63. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  64. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +3 -3
  65. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/types.js +1 -1
  66. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/types.js.map +3 -3
  67. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +1 -1
  68. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +3 -3
  69. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js +1 -1
  70. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js.map +3 -3
  71. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js +1 -1
  72. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js.map +3 -3
  73. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
  74. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +3 -3
  75. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  76. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +3 -3
  77. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js +1 -1
  78. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js.map +3 -3
  79. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.js +1 -1
  80. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.js.map +3 -3
  81. package/lib/cjs/src/api/device-action/xstate-utils/XStateDeviceAction.js +1 -1
  82. package/lib/cjs/src/api/device-action/xstate-utils/XStateDeviceAction.js.map +3 -3
  83. package/lib/cjs/src/api/index.js +1 -1
  84. package/lib/cjs/src/api/index.js.map +3 -3
  85. package/lib/cjs/src/api/logger-publisher/utils/noopLoggerFactory.js +2 -0
  86. package/lib/cjs/src/api/logger-publisher/utils/noopLoggerFactory.js.map +7 -0
  87. package/lib/cjs/src/api/logger-publisher/utils/noopLoggerFactory.test.js +2 -0
  88. package/lib/cjs/src/api/logger-publisher/utils/noopLoggerFactory.test.js.map +7 -0
  89. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +1 -1
  90. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +2 -2
  91. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js +1 -1
  92. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +3 -3
  93. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js +1 -1
  94. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js.map +3 -3
  95. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.test.js +1 -1
  96. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.test.js.map +3 -3
  97. package/lib/cjs/src/api/transport/model/Errors.js +1 -1
  98. package/lib/cjs/src/api/transport/model/Errors.js.map +3 -3
  99. package/lib/cjs/src/api/types.js +1 -1
  100. package/lib/cjs/src/api/types.js.map +1 -1
  101. package/lib/cjs/src/api/utils/ApplicationChecker.js +2 -0
  102. package/lib/cjs/src/api/utils/ApplicationChecker.js.map +7 -0
  103. package/lib/cjs/src/api/utils/ApplicationChecker.test.js +2 -0
  104. package/lib/cjs/src/api/utils/ApplicationChecker.test.js.map +7 -0
  105. package/lib/cjs/src/api/utils/ApplicationResolver.js +2 -0
  106. package/lib/cjs/src/api/utils/ApplicationResolver.js.map +7 -0
  107. package/lib/cjs/src/api/utils/Base64String.js +1 -1
  108. package/lib/cjs/src/api/utils/Base64String.js.map +3 -3
  109. package/lib/cjs/src/api/utils/Base64String.test.js +1 -1
  110. package/lib/cjs/src/api/utils/Base64String.test.js.map +3 -3
  111. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.js +1 -1
  112. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.js.map +3 -3
  113. package/lib/cjs/src/internal/device-session/di/deviceSessionTypes.js +1 -1
  114. package/lib/cjs/src/internal/device-session/di/deviceSessionTypes.js.map +2 -2
  115. package/lib/cjs/src/internal/device-session/model/DevicePinger.js +1 -1
  116. package/lib/cjs/src/internal/device-session/model/DevicePinger.js.map +2 -2
  117. package/lib/cjs/src/internal/device-session/model/DevicePinger.test.js +1 -1
  118. package/lib/cjs/src/internal/device-session/model/DevicePinger.test.js.map +2 -2
  119. package/lib/cjs/src/internal/device-session/model/DeviceSession.js +1 -1
  120. package/lib/cjs/src/internal/device-session/model/DeviceSession.js.map +3 -3
  121. package/lib/cjs/src/internal/device-session/model/DeviceSession.test.js +1 -1
  122. package/lib/cjs/src/internal/device-session/model/DeviceSession.test.js.map +3 -3
  123. package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.js +1 -1
  124. package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.js.map +2 -2
  125. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.js +1 -1
  126. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.js.map +3 -3
  127. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
  128. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +2 -2
  129. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.js +1 -1
  130. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.js.map +3 -3
  131. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js +1 -1
  132. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +2 -2
  133. package/lib/cjs/src/internal/device-session/service/IntentQueueService.js +2 -0
  134. package/lib/cjs/src/internal/device-session/service/IntentQueueService.js.map +7 -0
  135. package/lib/cjs/src/internal/device-session/service/IntentQueueService.test.js +2 -0
  136. package/lib/cjs/src/internal/device-session/service/IntentQueueService.test.js.map +7 -0
  137. package/lib/cjs/src/internal/device-session/use-case/UnsafeBypassIntentQueueUseCase.js +2 -0
  138. package/lib/cjs/src/internal/device-session/use-case/UnsafeBypassIntentQueueUseCase.js.map +7 -0
  139. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  140. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js.map +3 -3
  141. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js +1 -1
  142. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js.map +3 -3
  143. package/lib/esm/package.json +1 -1
  144. package/lib/esm/src/api/DeviceManagementKit.js +1 -1
  145. package/lib/esm/src/api/DeviceManagementKit.js.map +2 -2
  146. package/lib/esm/src/api/apdu/utils/ApduBuilder.js +1 -1
  147. package/lib/esm/src/api/apdu/utils/ApduBuilder.js.map +3 -3
  148. package/lib/esm/src/api/command/os/GetBackgroundImageSizeCommand.js +2 -0
  149. package/lib/esm/src/api/command/os/GetBackgroundImageSizeCommand.js.map +7 -0
  150. package/lib/esm/src/api/command/os/GetBackgroundImageSizeCommand.test.js +2 -0
  151. package/lib/esm/src/api/command/os/GetBackgroundImageSizeCommand.test.js.map +7 -0
  152. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  153. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  154. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  155. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
  156. package/lib/esm/src/api/device-action/model/UserInteractionRequired.js +1 -1
  157. package/lib/esm/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
  158. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js +1 -1
  159. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js.map +3 -3
  160. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +1 -1
  161. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +3 -3
  162. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js +1 -0
  163. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js.map +4 -4
  164. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +1 -1
  165. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +3 -3
  166. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js +1 -1
  167. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js.map +3 -3
  168. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/types.js +1 -0
  169. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/types.js.map +4 -4
  170. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  171. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +3 -3
  172. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  173. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +3 -3
  174. package/lib/esm/src/api/device-action/os/GetDeviceStatus/types.js +1 -0
  175. package/lib/esm/src/api/device-action/os/GetDeviceStatus/types.js.map +4 -4
  176. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js +1 -1
  177. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js.map +3 -3
  178. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +1 -1
  179. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +3 -3
  180. package/lib/esm/src/api/device-action/os/GoToDashboard/types.js +1 -0
  181. package/lib/esm/src/api/device-action/os/GoToDashboard/types.js.map +4 -4
  182. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +1 -1
  183. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +3 -3
  184. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js +1 -1
  185. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js.map +3 -3
  186. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/types.js +1 -0
  187. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/types.js.map +4 -4
  188. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.js +1 -1
  189. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.js.map +3 -3
  190. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js +1 -1
  191. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js.map +3 -3
  192. package/lib/esm/src/api/device-action/os/ListApps/types.js +1 -0
  193. package/lib/esm/src/api/device-action/os/ListApps/types.js.map +4 -4
  194. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js +1 -1
  195. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js.map +3 -3
  196. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +1 -1
  197. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +3 -3
  198. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/types.js +1 -0
  199. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/types.js.map +4 -4
  200. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js +1 -1
  201. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js.map +3 -3
  202. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  203. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +3 -3
  204. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/types.js +1 -0
  205. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/types.js.map +4 -4
  206. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +1 -1
  207. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +3 -3
  208. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js +1 -1
  209. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js.map +3 -3
  210. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/types.js +1 -0
  211. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/types.js.map +4 -4
  212. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
  213. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +3 -3
  214. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  215. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +3 -3
  216. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js +1 -0
  217. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js.map +4 -4
  218. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.js +1 -1
  219. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.js.map +3 -3
  220. package/lib/esm/src/api/device-action/xstate-utils/XStateDeviceAction.js +1 -1
  221. package/lib/esm/src/api/device-action/xstate-utils/XStateDeviceAction.js.map +3 -3
  222. package/lib/esm/src/api/index.js +1 -1
  223. package/lib/esm/src/api/index.js.map +3 -3
  224. package/lib/esm/src/api/logger-publisher/utils/noopLoggerFactory.js +2 -0
  225. package/lib/esm/src/api/logger-publisher/utils/noopLoggerFactory.js.map +7 -0
  226. package/lib/esm/src/api/logger-publisher/utils/noopLoggerFactory.test.js +2 -0
  227. package/lib/esm/src/api/logger-publisher/utils/noopLoggerFactory.test.js.map +7 -0
  228. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +1 -1
  229. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +3 -3
  230. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js +1 -1
  231. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +3 -3
  232. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js +1 -1
  233. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js.map +3 -3
  234. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.test.js +1 -1
  235. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.test.js.map +3 -3
  236. package/lib/esm/src/api/transport/model/Errors.js +1 -1
  237. package/lib/esm/src/api/transport/model/Errors.js.map +3 -3
  238. package/lib/esm/src/api/utils/ApplicationChecker.js +2 -0
  239. package/lib/esm/src/api/utils/ApplicationChecker.js.map +7 -0
  240. package/lib/esm/src/api/utils/ApplicationChecker.test.js +2 -0
  241. package/lib/esm/src/api/utils/ApplicationChecker.test.js.map +7 -0
  242. package/lib/esm/src/api/utils/ApplicationResolver.js +1 -0
  243. package/lib/esm/src/api/utils/ApplicationResolver.js.map +7 -0
  244. package/lib/esm/src/api/utils/Base64String.js +1 -1
  245. package/lib/esm/src/api/utils/Base64String.js.map +3 -3
  246. package/lib/esm/src/api/utils/Base64String.test.js +1 -1
  247. package/lib/esm/src/api/utils/Base64String.test.js.map +3 -3
  248. package/lib/esm/src/internal/device-session/di/deviceSessionModule.js +1 -1
  249. package/lib/esm/src/internal/device-session/di/deviceSessionModule.js.map +3 -3
  250. package/lib/esm/src/internal/device-session/di/deviceSessionTypes.js +1 -1
  251. package/lib/esm/src/internal/device-session/di/deviceSessionTypes.js.map +2 -2
  252. package/lib/esm/src/internal/device-session/model/DevicePinger.js +1 -1
  253. package/lib/esm/src/internal/device-session/model/DevicePinger.js.map +2 -2
  254. package/lib/esm/src/internal/device-session/model/DevicePinger.test.js +1 -1
  255. package/lib/esm/src/internal/device-session/model/DevicePinger.test.js.map +2 -2
  256. package/lib/esm/src/internal/device-session/model/DeviceSession.js +1 -1
  257. package/lib/esm/src/internal/device-session/model/DeviceSession.js.map +3 -3
  258. package/lib/esm/src/internal/device-session/model/DeviceSession.test.js +1 -1
  259. package/lib/esm/src/internal/device-session/model/DeviceSession.test.js.map +3 -3
  260. package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.js +1 -1
  261. package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.js.map +2 -2
  262. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.js +1 -1
  263. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.js.map +3 -3
  264. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
  265. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +2 -2
  266. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.js +1 -1
  267. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.js.map +3 -3
  268. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js +1 -1
  269. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +2 -2
  270. package/lib/esm/src/internal/device-session/service/IntentQueueService.js +2 -0
  271. package/lib/esm/src/internal/device-session/service/IntentQueueService.js.map +7 -0
  272. package/lib/esm/src/internal/device-session/service/IntentQueueService.test.js +2 -0
  273. package/lib/esm/src/internal/device-session/service/IntentQueueService.test.js.map +7 -0
  274. package/lib/esm/src/internal/device-session/use-case/UnsafeBypassIntentQueueUseCase.js +2 -0
  275. package/lib/esm/src/internal/device-session/use-case/UnsafeBypassIntentQueueUseCase.js.map +7 -0
  276. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  277. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js.map +3 -3
  278. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js +1 -1
  279. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js.map +3 -3
  280. package/lib/types/src/api/DeviceManagementKit.d.ts +10 -0
  281. package/lib/types/src/api/DeviceManagementKit.d.ts.map +1 -1
  282. package/lib/types/src/api/apdu/utils/ApduBuilder.d.ts +7 -0
  283. package/lib/types/src/api/apdu/utils/ApduBuilder.d.ts.map +1 -1
  284. package/lib/types/src/api/command/os/GetBackgroundImageSizeCommand.d.ts +17 -0
  285. package/lib/types/src/api/command/os/GetBackgroundImageSizeCommand.d.ts.map +1 -0
  286. package/lib/types/src/api/command/os/GetBackgroundImageSizeCommand.test.d.ts +2 -0
  287. package/lib/types/src/api/command/os/GetBackgroundImageSizeCommand.test.d.ts.map +1 -0
  288. package/lib/types/src/api/device-action/DeviceAction.d.ts +2 -1
  289. package/lib/types/src/api/device-action/DeviceAction.d.ts.map +1 -1
  290. package/lib/types/src/api/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  291. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts.map +1 -1
  292. package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts +4 -1
  293. package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts.map +1 -1
  294. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.d.ts.map +1 -1
  295. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.d.ts +9 -1
  296. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.d.ts.map +1 -1
  297. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.d.ts.map +1 -1
  298. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts +13 -2
  299. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts.map +1 -1
  300. package/lib/types/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.d.ts.map +1 -1
  301. package/lib/types/src/api/device-action/os/GetDeviceStatus/types.d.ts +6 -0
  302. package/lib/types/src/api/device-action/os/GetDeviceStatus/types.d.ts.map +1 -1
  303. package/lib/types/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.d.ts +1 -1
  304. package/lib/types/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.d.ts.map +1 -1
  305. package/lib/types/src/api/device-action/os/GoToDashboard/types.d.ts +9 -1
  306. package/lib/types/src/api/device-action/os/GoToDashboard/types.d.ts.map +1 -1
  307. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.d.ts.map +1 -1
  308. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts +9 -1
  309. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts.map +1 -1
  310. package/lib/types/src/api/device-action/os/ListApps/ListAppsDeviceAction.d.ts.map +1 -1
  311. package/lib/types/src/api/device-action/os/ListApps/types.d.ts +6 -0
  312. package/lib/types/src/api/device-action/os/ListApps/types.d.ts.map +1 -1
  313. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.d.ts.map +1 -1
  314. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/types.d.ts +8 -1
  315. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/types.d.ts.map +1 -1
  316. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.d.ts.map +1 -1
  317. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts +12 -2
  318. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts.map +1 -1
  319. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.d.ts.map +1 -1
  320. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts +8 -0
  321. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts.map +1 -1
  322. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.d.ts.map +1 -1
  323. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts +9 -1
  324. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts.map +1 -1
  325. package/lib/types/src/api/device-action/xstate-utils/XStateDeviceAction.d.ts +10 -1
  326. package/lib/types/src/api/device-action/xstate-utils/XStateDeviceAction.d.ts.map +1 -1
  327. package/lib/types/src/api/index.d.ts +11 -4
  328. package/lib/types/src/api/index.d.ts.map +1 -1
  329. package/lib/types/src/api/logger-publisher/utils/noopLoggerFactory.d.ts +12 -0
  330. package/lib/types/src/api/logger-publisher/utils/noopLoggerFactory.d.ts.map +1 -0
  331. package/lib/types/src/api/logger-publisher/utils/noopLoggerFactory.test.d.ts +2 -0
  332. package/lib/types/src/api/logger-publisher/utils/noopLoggerFactory.test.d.ts.map +1 -0
  333. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.d.ts.map +1 -1
  334. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts +1 -0
  335. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts.map +1 -1
  336. package/lib/types/src/api/transport/model/Errors.d.ts +5 -0
  337. package/lib/types/src/api/transport/model/Errors.d.ts.map +1 -1
  338. package/lib/types/src/api/types.d.ts +1 -0
  339. package/lib/types/src/api/types.d.ts.map +1 -1
  340. package/lib/types/src/api/utils/ApplicationChecker.d.ts +14 -0
  341. package/lib/types/src/api/utils/ApplicationChecker.d.ts.map +1 -0
  342. package/lib/types/src/api/utils/ApplicationChecker.test.d.ts +2 -0
  343. package/lib/types/src/api/utils/ApplicationChecker.test.d.ts.map +1 -0
  344. package/lib/types/src/api/utils/ApplicationResolver.d.ts +12 -0
  345. package/lib/types/src/api/utils/ApplicationResolver.d.ts.map +1 -0
  346. package/lib/types/src/api/utils/Base64String.d.ts +1 -0
  347. package/lib/types/src/api/utils/Base64String.d.ts.map +1 -1
  348. package/lib/types/src/internal/device-session/di/deviceSessionModule.d.ts.map +1 -1
  349. package/lib/types/src/internal/device-session/di/deviceSessionTypes.d.ts +1 -0
  350. package/lib/types/src/internal/device-session/di/deviceSessionTypes.d.ts.map +1 -1
  351. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts +13 -2
  352. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts.map +1 -1
  353. package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.d.ts +3 -1
  354. package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.d.ts.map +1 -1
  355. package/lib/types/src/internal/device-session/model/DeviceSessionRefresher.d.ts +0 -1
  356. package/lib/types/src/internal/device-session/model/DeviceSessionRefresher.d.ts.map +1 -1
  357. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.d.ts +1 -0
  358. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.d.ts.map +1 -1
  359. package/lib/types/src/internal/device-session/service/IntentQueueService.d.ts +101 -0
  360. package/lib/types/src/internal/device-session/service/IntentQueueService.d.ts.map +1 -0
  361. package/lib/types/src/internal/device-session/service/IntentQueueService.test.d.ts +2 -0
  362. package/lib/types/src/internal/device-session/service/IntentQueueService.test.d.ts.map +1 -0
  363. package/lib/types/src/internal/device-session/use-case/UnsafeBypassIntentQueueUseCase.d.ts +19 -0
  364. package/lib/types/src/internal/device-session/use-case/UnsafeBypassIntentQueueUseCase.d.ts.map +1 -0
  365. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  366. package/package.json +4 -4
  367. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.js +0 -2
  368. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.js.map +0 -7
  369. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.test.js +0 -2
  370. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.test.js.map +0 -7
  371. package/lib/cjs/src/internal/device-session/service/MutexService.js +0 -2
  372. package/lib/cjs/src/internal/device-session/service/MutexService.js.map +0 -7
  373. package/lib/cjs/src/internal/device-session/service/MutexService.test.js +0 -2
  374. package/lib/cjs/src/internal/device-session/service/MutexService.test.js.map +0 -7
  375. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.js +0 -2
  376. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.js.map +0 -7
  377. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.test.js +0 -2
  378. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.test.js.map +0 -7
  379. package/lib/esm/src/internal/device-session/service/MutexService.js +0 -2
  380. package/lib/esm/src/internal/device-session/service/MutexService.js.map +0 -7
  381. package/lib/esm/src/internal/device-session/service/MutexService.test.js +0 -2
  382. package/lib/esm/src/internal/device-session/service/MutexService.test.js.map +0 -7
  383. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.d.ts +0 -17
  384. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.d.ts.map +0 -1
  385. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.test.d.ts +0 -2
  386. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.test.d.ts.map +0 -1
  387. package/lib/types/src/internal/device-session/service/MutexService.d.ts +0 -6
  388. package/lib/types/src/internal/device-session/service/MutexService.d.ts.map +0 -1
  389. package/lib/types/src/internal/device-session/service/MutexService.test.d.ts +0 -2
  390. package/lib/types/src/internal/device-session/service/MutexService.test.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.ts"],
4
- "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type CommandResult,\n isSuccessCommandResult,\n} from \"@api/command/model/CommandResult\";\nimport { type InternalApi } from \"@api/device-action/DeviceAction\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport { UnknownDAError } from \"@api/device-action/os/Errors\";\nimport { OpenAppDeviceAction } from \"@api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction\";\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 CallTaskInAppDAError,\n type CallTaskInAppDAInput,\n type CallTaskInAppDAIntermediateValue,\n type CallTaskInAppDAInternalState,\n type CallTaskInAppDAOutput,\n} from \"./CallTaskInAppDeviceActionTypes\";\n\n/**\n * Tries to open an app on the device, and if it is successful, calls a task\n * in the app.\n * The output will be the result of the task.\n *\n * ```ts\n * input: {\n * appName: string;\n * task: (internalApi: InternalApi) => Promise<CommandResult<TaskResponse, TaskErrorCodes>>;\n * requiredUserInteraction: UserInteraction;\n * }\n * ```\n *\n * Example of usage:\n *\n * ```ts\n * const deviceAction = new CallTaskInAppDeviceAction({\n * input: {\n * appName: \"MyApp\",\n * task: async (internalApi: InternalApi) => internalApi.sendCommand(new MyAppSpecificCommand()),\n * requiredUserInteraction: UserInteractionRequired.None,\n * },\n * });\n * dmk.executeDeviceAction({ sessionId: \"mySessionId\", deviceAction });\n * ```\n */\nexport class CallTaskInAppDeviceAction<\n TaskResponse,\n TaskErrorCodes,\n UserInteraction extends UserInteractionRequired,\n> extends XStateDeviceAction<\n CallTaskInAppDAOutput<TaskResponse>,\n CallTaskInAppDAInput<TaskResponse, TaskErrorCodes, UserInteraction>,\n CallTaskInAppDAError<TaskErrorCodes>,\n CallTaskInAppDAIntermediateValue<UserInteraction>,\n CallTaskInAppDAInternalState<TaskResponse, TaskErrorCodes>\n> {\n makeStateMachine(\n internalAPI: InternalApi,\n ): DeviceActionStateMachine<\n CallTaskInAppDAOutput<TaskResponse>,\n CallTaskInAppDAInput<TaskResponse, TaskErrorCodes, UserInteraction>,\n CallTaskInAppDAError<TaskErrorCodes>,\n CallTaskInAppDAIntermediateValue<UserInteraction>,\n CallTaskInAppDAInternalState<TaskResponse, TaskErrorCodes>\n > {\n type types = StateMachineTypes<\n CallTaskInAppDAOutput<TaskResponse>,\n CallTaskInAppDAInput<TaskResponse, TaskErrorCodes, UserInteraction>,\n CallTaskInAppDAError<TaskErrorCodes>,\n CallTaskInAppDAIntermediateValue<UserInteraction>,\n CallTaskInAppDAInternalState<TaskResponse, TaskErrorCodes>\n >;\n\n const { callTask } = this.extractDependencies(internalAPI);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n actors: {\n callTask: fromPromise(callTask),\n openAppStateMachine: new OpenAppDeviceAction({\n input: {\n appName: this.input.appName,\n },\n }).makeStateMachine(internalAPI),\n },\n guards: {\n skipOpenApp: () => this.input.skipOpenApp,\n noInternalError: ({ context }) => context._internalState.error === null,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n id: \"CallTaskInAppDeviceAction\",\n initial: \"InitialState\",\n context: ({ input }) => {\n return {\n input: input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n taskResponse: null,\n error: null,\n },\n };\n },\n states: {\n InitialState: {\n always: [\n {\n target: \"CallTask\",\n guard: \"skipOpenApp\",\n },\n \"OpenAppDeviceAction\",\n ],\n },\n OpenAppDeviceAction: {\n invoke: {\n id: \"openAppStateMachine\",\n input: {\n appName: this.input.appName,\n },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<\n CallTaskInAppDAInternalState<TaskResponse, TaskErrorCodes>\n >({\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n });\n },\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"CallTask\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n CallTask: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: this.input.requiredUserInteraction,\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"callTask\",\n src: \"callTask\",\n input: (_: { context: types[\"context\"] }) => _.context.input.task,\n onDone: {\n target: \"CallTaskResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n taskResponse: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n CallTaskResultCheck: {\n always: [\n {\n target: \"Success\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({ context }) =>\n context._internalState.taskResponse\n ? Right(context._internalState.taskResponse)\n : Left(\n context._internalState.error ||\n new UnknownDAError(\"No error in final state\"),\n ),\n });\n }\n\n extractDependencies(internalApi: InternalApi) {\n return {\n callTask: (_: {\n input: (\n internalApi: InternalApi,\n ) => Promise<CommandResult<TaskResponse, TaskErrorCodes>>;\n }): Promise<CommandResult<TaskResponse, TaskErrorCodes>> =>\n _.input(internalApi),\n };\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["CallTaskInAppDeviceAction_exports", "__export", "CallTaskInAppDeviceAction", "__toCommonJS", "import_purify_ts", "import_xstate", "import_CommandResult", "import_UserInteractionRequired", "import_Errors", "import_OpenAppDeviceAction", "import_XStateDeviceAction", "internalAPI", "callTask", "context", "_", "input", "error", "event", "internalApi"]
4
+ "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type CommandResult,\n isSuccessCommandResult,\n} from \"@api/command/model/CommandResult\";\nimport { type InternalApi } from \"@api/device-action/DeviceAction\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport { UnknownDAError } from \"@api/device-action/os/Errors\";\nimport { OpenAppDeviceAction } from \"@api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction\";\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 CallTaskInAppDAError,\n type CallTaskInAppDAInput,\n type CallTaskInAppDAIntermediateValue,\n type CallTaskInAppDAInternalState,\n type CallTaskInAppDAOutput,\n callTaskInAppDAStateStep,\n} from \"./CallTaskInAppDeviceActionTypes\";\n\n/**\n * Tries to open an app on the device, and if it is successful, calls a task\n * in the app.\n * The output will be the result of the task.\n *\n * ```ts\n * input: {\n * appName: string;\n * task: (internalApi: InternalApi) => Promise<CommandResult<TaskResponse, TaskErrorCodes>>;\n * requiredUserInteraction: UserInteraction;\n * }\n * ```\n *\n * Example of usage:\n *\n * ```ts\n * const deviceAction = new CallTaskInAppDeviceAction({\n * input: {\n * appName: \"MyApp\",\n * task: async (internalApi: InternalApi) => internalApi.sendCommand(new MyAppSpecificCommand()),\n * requiredUserInteraction: UserInteractionRequired.None,\n * },\n * });\n * dmk.executeDeviceAction({ sessionId: \"mySessionId\", deviceAction });\n * ```\n */\nexport class CallTaskInAppDeviceAction<\n TaskResponse,\n TaskErrorCodes,\n UserInteraction extends UserInteractionRequired,\n> extends XStateDeviceAction<\n CallTaskInAppDAOutput<TaskResponse>,\n CallTaskInAppDAInput<TaskResponse, TaskErrorCodes, UserInteraction>,\n CallTaskInAppDAError<TaskErrorCodes>,\n CallTaskInAppDAIntermediateValue<UserInteraction>,\n CallTaskInAppDAInternalState<TaskResponse, TaskErrorCodes>\n> {\n makeStateMachine(\n internalAPI: InternalApi,\n ): DeviceActionStateMachine<\n CallTaskInAppDAOutput<TaskResponse>,\n CallTaskInAppDAInput<TaskResponse, TaskErrorCodes, UserInteraction>,\n CallTaskInAppDAError<TaskErrorCodes>,\n CallTaskInAppDAIntermediateValue<UserInteraction>,\n CallTaskInAppDAInternalState<TaskResponse, TaskErrorCodes>\n > {\n type types = StateMachineTypes<\n CallTaskInAppDAOutput<TaskResponse>,\n CallTaskInAppDAInput<TaskResponse, TaskErrorCodes, UserInteraction>,\n CallTaskInAppDAError<TaskErrorCodes>,\n CallTaskInAppDAIntermediateValue<UserInteraction>,\n CallTaskInAppDAInternalState<TaskResponse, TaskErrorCodes>\n >;\n\n const { callTask } = this.extractDependencies(internalAPI);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n actors: {\n callTask: fromPromise(callTask),\n openAppStateMachine: new OpenAppDeviceAction({\n input: {\n appName: this.input.appName,\n },\n }).makeStateMachine(internalAPI),\n },\n guards: {\n skipOpenApp: () => this.input.skipOpenApp,\n noInternalError: ({ context }) => context._internalState.error === null,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n id: \"CallTaskInAppDeviceAction\",\n initial: \"InitialState\",\n context: ({ input }) => {\n return {\n input: input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: callTaskInAppDAStateStep.OPEN_APP,\n },\n _internalState: {\n taskResponse: null,\n error: null,\n },\n };\n },\n states: {\n InitialState: {\n always: [\n {\n target: \"CallTask\",\n guard: \"skipOpenApp\",\n },\n \"OpenAppDeviceAction\",\n ],\n },\n OpenAppDeviceAction: {\n invoke: {\n id: \"openAppStateMachine\",\n input: {\n appName: this.input.appName,\n },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<\n CallTaskInAppDAInternalState<TaskResponse, TaskErrorCodes>\n >({\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n });\n },\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"CallTask\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n CallTask: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: this.input.requiredUserInteraction,\n step: callTaskInAppDAStateStep.CALL_TASK,\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: callTaskInAppDAStateStep.CALL_TASK,\n },\n }),\n invoke: {\n id: \"callTask\",\n src: \"callTask\",\n input: (_: { context: types[\"context\"] }) => _.context.input.task,\n onDone: {\n target: \"CallTaskResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n taskResponse: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n CallTaskResultCheck: {\n always: [\n {\n target: \"Success\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({ context }) =>\n context._internalState.taskResponse\n ? Right(context._internalState.taskResponse)\n : Left(\n context._internalState.error ||\n new UnknownDAError(\"No error in final state\"),\n ),\n });\n }\n\n extractDependencies(internalApi: InternalApi) {\n return {\n callTask: (_: {\n input: (\n internalApi: InternalApi,\n ) => Promise<CommandResult<TaskResponse, TaskErrorCodes>>;\n }): Promise<CommandResult<TaskResponse, TaskErrorCodes>> =>\n _.input(internalApi),\n };\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["CallTaskInAppDeviceAction_exports", "__export", "CallTaskInAppDeviceAction", "__toCommonJS", "import_purify_ts", "import_xstate", "import_CommandResult", "import_UserInteractionRequired", "import_Errors", "import_OpenAppDeviceAction", "import_XStateDeviceAction", "import_CallTaskInAppDeviceActionTypes", "internalAPI", "callTask", "context", "_", "input", "error", "event", "internalApi"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var f=require("purify-ts"),C=require("xstate"),I=require("../../../apdu/utils/ApduBuilder"),u=require("../../../command/model/CommandResult"),p=require("../../../device-action/__test-utils__/makeInternalApi"),k=require("../../../device-action/__test-utils__/testDeviceActionStates"),n=require("../../../device-action/model/DeviceActionState"),e=require("../../../device-action/model/UserInteractionRequired"),v=require("../../../device-action/os/Errors"),M=require("../../../device-action/os/OpenAppDeviceAction/OpenAppDeviceAction"),D=require("../../../../../src"),c=require("./CallTaskInAppDeviceAction");vi.mock("@api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction",async r=>{const o=await r();return{...o,OpenAppDeviceAction:vi.fn(()=>({...o.OpenAppDeviceAction,makeStateMachine:vi.fn()}))}});const A=r=>{M.OpenAppDeviceAction.mockImplementation(()=>({makeStateMachine:vi.fn().mockImplementation(()=>(0,C.createMachine)({initial:"pending",states:{pending:{entry:(0,C.assign)({intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}}),after:{0:"done"}},done:{type:"final"}},output:()=>r?(0,f.Left)(r):(0,f.Right)(void 0)}))}))};describe("CallTaskInAppDeviceAction",()=>{const r=vi.fn(),o=()=>({callTask:r}),{sendCommand:w}=(0,p.makeDeviceActionInternalApiMock)(),m={paramString:"aParameter",paramNumber:1234},y={aNumber:5678,aString:"mockedResponseString"};beforeEach(()=>{vi.resetAllMocks()}),describe("without mocking extractDependencies",()=>{it("should call sendCommand on internalApi with the correct parameters",async()=>{A(),w.mockResolvedValue((0,u.CommandResultFactory)({data:void 0}));const i=new c.CallTaskInAppDeviceAction({input:{task:async a=>await a.sendCommand(new d(m)),appName:"MyApp",requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,skipOpenApp:!1}});await new Promise((a,t)=>{i._execute((0,p.makeDeviceActionInternalApiMock)()).observable.subscribe({error:()=>t(),complete:()=>a(),next:()=>{}})}),expect(w).toHaveBeenCalledWith(new d(m))})}),describe("error cases",()=>{it("should error and output the error if the open app fails",()=>new Promise((i,a)=>{A(new v.UnknownDAError("Mocked error"));const t=[{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:n.DeviceActionStatus.Error,error:new v.UnknownDAError("Mocked error")}];(0,k.testDeviceActionStates)(new c.CallTaskInAppDeviceAction({input:{task:async s=>await s.sendCommand(new d(m)),appName:"MyApp",requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,skipOpenApp:!1}}),t,(0,p.makeDeviceActionInternalApiMock)(),{onDone:i,onError:a})})),it("should error and output an error if the call task fails",()=>new Promise((i,a)=>{A(),r.mockResolvedValue((0,u.CommandResultFactory)({error:new D.UnknownDeviceExchangeError("Mocked error")}));const t=new c.CallTaskInAppDeviceAction({input:{task:async l=>await l.sendCommand(new d(m)),appName:"MyApp",requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,skipOpenApp:!1}});vi.spyOn(t,"extractDependencies").mockImplementation(o);const s=[{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.VerifyAddress}},{status:n.DeviceActionStatus.Error,error:new D.UnknownDeviceExchangeError("Mocked error")}];(0,k.testDeviceActionStates)(t,s,(0,p.makeDeviceActionInternalApiMock)(),{onDone:i,onError:a})}))}),describe("success cases",()=>{it("should succeed and output the command result if the send command succeeds",()=>new Promise((i,a)=>{A(),r.mockResolvedValue((0,u.CommandResultFactory)({data:y}));const t=new c.CallTaskInAppDeviceAction({input:{task:async l=>await l.sendCommand(new d(m)),appName:"MyApp",requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,skipOpenApp:!1}});vi.spyOn(t,"extractDependencies").mockImplementation(o);const s=[{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None}},{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp}},{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.VerifyAddress}},{status:n.DeviceActionStatus.Completed,output:y}];(0,k.testDeviceActionStates)(t,s,(0,p.makeDeviceActionInternalApiMock)(),{onDone:i,onError:a})})),it("should succeed while skipping OpenApp",()=>new Promise((i,a)=>{A(),r.mockResolvedValue((0,u.CommandResultFactory)({data:y}));const t=new c.CallTaskInAppDeviceAction({input:{task:async l=>await l.sendCommand(new d(m)),appName:"MyApp",requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,skipOpenApp:!0}});vi.spyOn(t,"extractDependencies").mockImplementation(o);const s=[{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.VerifyAddress}},{status:n.DeviceActionStatus.Completed,output:y}];(0,k.testDeviceActionStates)(t,s,(0,p.makeDeviceActionInternalApiMock)(),{onDone:i,onError:a})}))})});class d{name="testCommand";params;constructor(o){this.params=o}getApdu(){return new I.ApduBuilder({cla:0,ins:1,p1:2,p2:3}).add32BitUIntToData(this.params.paramNumber).addAsciiStringToData(this.params.paramString).build()}parseResponse(){return(0,u.CommandResultFactory)({data:{aNumber:1,aString:"aString"}})}}
1
+ "use strict";var D=require("purify-ts"),v=require("xstate"),T=require("../../../apdu/utils/ApduBuilder"),A=require("../../../command/model/CommandResult"),p=require("../../../device-action/__test-utils__/makeInternalApi"),C=require("../../../device-action/__test-utils__/testDeviceActionStates"),t=require("../../../device-action/model/DeviceActionState"),e=require("../../../device-action/model/UserInteractionRequired"),I=require("../../../device-action/os/Errors"),M=require("../../../device-action/os/OpenAppDeviceAction/OpenAppDeviceAction"),y=require("../../../device-action/os/OpenAppDeviceAction/types"),S=require("../../../../../src"),u=require("./CallTaskInAppDeviceAction"),m=require("./CallTaskInAppDeviceActionTypes");vi.mock("@api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction",async r=>{const o=await r();return{...o,OpenAppDeviceAction:vi.fn(()=>({...o.OpenAppDeviceAction,makeStateMachine:vi.fn()}))}});const k=r=>{M.OpenAppDeviceAction.mockImplementation(()=>({makeStateMachine:vi.fn().mockImplementation(()=>(0,v.createMachine)({initial:"pending",states:{pending:{entry:(0,v.assign)({intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:y.openAppDAStateStep.GET_DEVICE_STATUS}}),after:{0:"done"}},done:{type:"final"}},output:()=>r?(0,D.Left)(r):(0,D.Right)(void 0)}))}))};describe("CallTaskInAppDeviceAction",()=>{const r=vi.fn(),o=()=>({callTask:r}),{sendCommand:w}=(0,p.makeDeviceActionInternalApiMock)(),d={paramString:"aParameter",paramNumber:1234},f={aNumber:5678,aString:"mockedResponseString"};beforeEach(()=>{vi.resetAllMocks()}),describe("without mocking extractDependencies",()=>{it("should call sendCommand on internalApi with the correct parameters",async()=>{k(),w.mockResolvedValue((0,A.CommandResultFactory)({data:void 0}));const i=new u.CallTaskInAppDeviceAction({input:{task:async a=>await a.sendCommand(new c(d)),appName:"MyApp",requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,skipOpenApp:!1}});await new Promise((a,n)=>{i._execute((0,p.makeDeviceActionInternalApiMock)()).observable.subscribe({error:()=>n(),complete:()=>a(),next:()=>{}})}),expect(w).toHaveBeenCalledWith(new c(d))})}),describe("error cases",()=>{it("should error and output the error if the open app fails",()=>new Promise((i,a)=>{k(new I.UnknownDAError("Mocked error"));const n=[{status:t.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:m.callTaskInAppDAStateStep.OPEN_APP}},{status:t.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:y.openAppDAStateStep.GET_DEVICE_STATUS}},{status:t.DeviceActionStatus.Error,error:new I.UnknownDAError("Mocked error")}];(0,C.testDeviceActionStates)(new u.CallTaskInAppDeviceAction({input:{task:async s=>await s.sendCommand(new c(d)),appName:"MyApp",requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,skipOpenApp:!1}}),n,(0,p.makeDeviceActionInternalApiMock)(),{onDone:i,onError:a})})),it("should error and output an error if the call task fails",()=>new Promise((i,a)=>{k(),r.mockResolvedValue((0,A.CommandResultFactory)({error:new S.UnknownDeviceExchangeError("Mocked error")}));const n=new u.CallTaskInAppDeviceAction({input:{task:async l=>await l.sendCommand(new c(d)),appName:"MyApp",requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,skipOpenApp:!1}});vi.spyOn(n,"extractDependencies").mockImplementation(o);const s=[{status:t.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:m.callTaskInAppDAStateStep.OPEN_APP}},{status:t.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:y.openAppDAStateStep.GET_DEVICE_STATUS}},{status:t.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,step:m.callTaskInAppDAStateStep.CALL_TASK}},{status:t.DeviceActionStatus.Error,error:new S.UnknownDeviceExchangeError("Mocked error")}];(0,C.testDeviceActionStates)(n,s,(0,p.makeDeviceActionInternalApiMock)(),{onDone:i,onError:a})}))}),describe("success cases",()=>{it("should succeed and output the command result if the send command succeeds",()=>new Promise((i,a)=>{k(),r.mockResolvedValue((0,A.CommandResultFactory)({data:f}));const n=new u.CallTaskInAppDeviceAction({input:{task:async l=>await l.sendCommand(new c(d)),appName:"MyApp",requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,skipOpenApp:!1}});vi.spyOn(n,"extractDependencies").mockImplementation(o);const s=[{status:t.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:m.callTaskInAppDAStateStep.OPEN_APP}},{status:t.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:y.openAppDAStateStep.GET_DEVICE_STATUS}},{status:t.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,step:m.callTaskInAppDAStateStep.CALL_TASK}},{status:t.DeviceActionStatus.Completed,output:f}];(0,C.testDeviceActionStates)(n,s,(0,p.makeDeviceActionInternalApiMock)(),{onDone:i,onError:a})})),it("should succeed while skipping OpenApp",()=>new Promise((i,a)=>{k(),r.mockResolvedValue((0,A.CommandResultFactory)({data:f}));const n=new u.CallTaskInAppDeviceAction({input:{task:async l=>await l.sendCommand(new c(d)),appName:"MyApp",requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,skipOpenApp:!0}});vi.spyOn(n,"extractDependencies").mockImplementation(o);const s=[{status:t.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,step:m.callTaskInAppDAStateStep.CALL_TASK}},{status:t.DeviceActionStatus.Completed,output:f}];(0,C.testDeviceActionStates)(n,s,(0,p.makeDeviceActionInternalApiMock)(),{onDone:i,onError:a})}))})});class c{name="testCommand";params;constructor(o){this.params=o}getApdu(){return new T.ApduBuilder({cla:0,ins:1,p1:2,p2:3}).add32BitUIntToData(this.params.paramNumber).addAsciiStringToData(this.params.paramString).build()}parseResponse(){return(0,A.CommandResultFactory)({data:{aNumber:1,aString:"aString"}})}}
2
2
  //# sourceMappingURL=CallTaskInAppDeviceAction.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.ts"],
4
- "sourcesContent": ["/* eslint @typescript-eslint/consistent-type-imports:0 */\nimport { Left, Right } from \"purify-ts\";\nimport { type Mock } from \"vitest\";\nimport { assign, createMachine } from \"xstate\";\n\nimport { type Apdu } from \"@api/apdu/model/Apdu\";\nimport { ApduBuilder } from \"@api/apdu/utils/ApduBuilder\";\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { testDeviceActionStates } from \"@api/device-action/__test-utils__/testDeviceActionStates\";\nimport {\n type DeviceActionState,\n DeviceActionStatus,\n} from \"@api/device-action/model/DeviceActionState\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport { UnknownDAError } from \"@api/device-action/os/Errors\";\nimport { OpenAppDeviceAction } from \"@api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction\";\nimport { type Command } from \"@api/types\";\nimport { UnknownDeviceExchangeError } from \"@root/src\";\n\nimport { CallTaskInAppDeviceAction } from \"./CallTaskInAppDeviceAction\";\nimport {\n type CallTaskInAppDAError,\n type CallTaskInAppDAIntermediateValue,\n type CallTaskInAppDAOutput,\n} from \"./CallTaskInAppDeviceActionTypes\";\n\nvi.mock(\n \"@api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction\",\n async (importOriginal) => {\n const original =\n await importOriginal<\n typeof import(\"@api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction\")\n >();\n return {\n ...original,\n OpenAppDeviceAction: vi.fn(() => ({\n ...original.OpenAppDeviceAction,\n makeStateMachine: vi.fn(),\n })),\n };\n },\n);\n\nconst setupOpenAppDAMock = (error?: unknown) => {\n (OpenAppDeviceAction as Mock).mockImplementation(() => ({\n makeStateMachine: vi.fn().mockImplementation(() =>\n createMachine({\n initial: \"pending\",\n states: {\n pending: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n }),\n after: {\n 0: \"done\",\n },\n },\n done: {\n type: \"final\",\n },\n },\n output: () => (error ? Left(error) : Right(undefined)),\n }),\n ),\n }));\n};\n\ndescribe(\"CallTaskInAppDeviceAction\", () => {\n const callMyTask = vi.fn();\n\n const extractDependenciesMock = () => ({\n callTask: callMyTask,\n });\n\n const { sendCommand: apiSendCommandMock } = makeDeviceActionInternalApiMock();\n\n const commandParams = {\n paramString: \"aParameter\",\n paramNumber: 1234,\n };\n const mockedCommandResponse = {\n aNumber: 5678,\n aString: \"mockedResponseString\",\n };\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"without mocking extractDependencies\", () => {\n it(\"should call sendCommand on internalApi with the correct parameters\", async () => {\n setupOpenAppDAMock();\n apiSendCommandMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n\n const deviceAction = new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n await internalApi.sendCommand(new TestCommand(commandParams)),\n appName: \"MyApp\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: false,\n },\n });\n await new Promise<void>((resolve, reject) => {\n deviceAction\n ._execute(makeDeviceActionInternalApiMock())\n .observable.subscribe({\n error: () => reject(),\n complete: () => resolve(),\n next: () => {},\n });\n });\n\n expect(apiSendCommandMock).toHaveBeenCalledWith(\n new TestCommand(commandParams),\n );\n });\n });\n\n describe(\"error cases\", () => {\n it(\"should error and output the error if the open app fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock(new UnknownDAError(\"Mocked error\"));\n\n const expectedStates: MyCommandCallTaskDAState[] = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n await internalApi.sendCommand(new TestCommand(commandParams)),\n appName: \"MyApp\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: false,\n },\n }),\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should error and output an error if the call task fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n callMyTask.mockResolvedValue(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const deviceAction = new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n await internalApi.sendCommand(new TestCommand(commandParams)),\n appName: \"MyApp\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: false,\n },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockImplementation(\n extractDependenciesMock,\n );\n\n const expectedStates: MyCommandCallTaskDAState[] = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"success cases\", () => {\n it(\"should succeed and output the command result if the send command succeeds\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n callMyTask.mockResolvedValue(\n CommandResultFactory({ data: mockedCommandResponse }),\n );\n\n const deviceAction = new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n await internalApi.sendCommand(new TestCommand(commandParams)),\n appName: \"MyApp\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: false,\n },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockImplementation(\n extractDependenciesMock,\n );\n\n const expectedStates: MyCommandCallTaskDAState[] = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n },\n },\n {\n status: DeviceActionStatus.Completed,\n output: mockedCommandResponse,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should succeed while skipping OpenApp\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n callMyTask.mockResolvedValue(\n CommandResultFactory({ data: mockedCommandResponse }),\n );\n\n const deviceAction = new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n await internalApi.sendCommand(new TestCommand(commandParams)),\n appName: \"MyApp\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: true,\n },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockImplementation(\n extractDependenciesMock,\n );\n\n const expectedStates: MyCommandCallTaskDAState[] = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n },\n },\n {\n status: DeviceActionStatus.Completed,\n output: mockedCommandResponse,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n});\n\ntype MyCommandResponse = {\n aNumber: number;\n aString: string;\n};\n\ntype MyCommandParams = {\n paramString: string;\n paramNumber: number;\n};\n\nclass TestCommand implements Command<MyCommandResponse, MyCommandParams> {\n readonly name = \"testCommand\";\n\n params: MyCommandParams;\n constructor(params: MyCommandParams) {\n this.params = params;\n }\n getApdu(): Apdu {\n return new ApduBuilder({ cla: 0x00, ins: 0x01, p1: 0x02, p2: 0x03 })\n .add32BitUIntToData(this.params.paramNumber)\n .addAsciiStringToData(this.params.paramString)\n .build();\n }\n parseResponse() {\n return CommandResultFactory({ data: { aNumber: 1, aString: \"aString\" } });\n }\n}\n\ntype MyCommandCallTaskDAState = DeviceActionState<\n CallTaskInAppDAOutput<MyCommandResponse>,\n CallTaskInAppDAError<UnknownDAError>,\n CallTaskInAppDAIntermediateValue<\n UserInteractionRequired.None | UserInteractionRequired.VerifyAddress\n >\n>;\n"],
5
- "mappings": "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",
6
- "names": ["import_purify_ts", "import_xstate", "import_ApduBuilder", "import_CommandResult", "import_makeInternalApi", "import_testDeviceActionStates", "import_DeviceActionState", "import_UserInteractionRequired", "import_Errors", "import_OpenAppDeviceAction", "import_src", "import_CallTaskInAppDeviceAction", "importOriginal", "original", "setupOpenAppDAMock", "error", "callMyTask", "extractDependenciesMock", "apiSendCommandMock", "commandParams", "mockedCommandResponse", "deviceAction", "internalApi", "TestCommand", "resolve", "reject", "expectedStates", "params"]
4
+ "sourcesContent": ["/* eslint @typescript-eslint/consistent-type-imports:0 */\nimport { Left, Right } from \"purify-ts\";\nimport { type Mock } from \"vitest\";\nimport { assign, createMachine } from \"xstate\";\n\nimport { type Apdu } from \"@api/apdu/model/Apdu\";\nimport { ApduBuilder } from \"@api/apdu/utils/ApduBuilder\";\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { testDeviceActionStates } from \"@api/device-action/__test-utils__/testDeviceActionStates\";\nimport {\n type DeviceActionState,\n DeviceActionStatus,\n} from \"@api/device-action/model/DeviceActionState\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport { UnknownDAError } from \"@api/device-action/os/Errors\";\nimport { OpenAppDeviceAction } from \"@api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction\";\nimport { openAppDAStateStep } from \"@api/device-action/os/OpenAppDeviceAction/types\";\nimport { type Command } from \"@api/types\";\nimport { UnknownDeviceExchangeError } from \"@root/src\";\n\nimport { CallTaskInAppDeviceAction } from \"./CallTaskInAppDeviceAction\";\nimport {\n type CallTaskInAppDAError,\n type CallTaskInAppDAIntermediateValue,\n type CallTaskInAppDAOutput,\n callTaskInAppDAStateStep,\n} from \"./CallTaskInAppDeviceActionTypes\";\n\nvi.mock(\n \"@api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction\",\n async (importOriginal) => {\n const original =\n await importOriginal<\n typeof import(\"@api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction\")\n >();\n return {\n ...original,\n OpenAppDeviceAction: vi.fn(() => ({\n ...original.OpenAppDeviceAction,\n makeStateMachine: vi.fn(),\n })),\n };\n },\n);\n\nconst setupOpenAppDAMock = (error?: unknown) => {\n (OpenAppDeviceAction as Mock).mockImplementation(() => ({\n makeStateMachine: vi.fn().mockImplementation(() =>\n createMachine({\n initial: \"pending\",\n states: {\n pending: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n }),\n after: {\n 0: \"done\",\n },\n },\n done: {\n type: \"final\",\n },\n },\n output: () => (error ? Left(error) : Right(undefined)),\n }),\n ),\n }));\n};\n\ndescribe(\"CallTaskInAppDeviceAction\", () => {\n const callMyTask = vi.fn();\n\n const extractDependenciesMock = () => ({\n callTask: callMyTask,\n });\n\n const { sendCommand: apiSendCommandMock } = makeDeviceActionInternalApiMock();\n\n const commandParams = {\n paramString: \"aParameter\",\n paramNumber: 1234,\n };\n const mockedCommandResponse = {\n aNumber: 5678,\n aString: \"mockedResponseString\",\n };\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"without mocking extractDependencies\", () => {\n it(\"should call sendCommand on internalApi with the correct parameters\", async () => {\n setupOpenAppDAMock();\n apiSendCommandMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n\n const deviceAction = new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n await internalApi.sendCommand(new TestCommand(commandParams)),\n appName: \"MyApp\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: false,\n },\n });\n await new Promise<void>((resolve, reject) => {\n deviceAction\n ._execute(makeDeviceActionInternalApiMock())\n .observable.subscribe({\n error: () => reject(),\n complete: () => resolve(),\n next: () => {},\n });\n });\n\n expect(apiSendCommandMock).toHaveBeenCalledWith(\n new TestCommand(commandParams),\n );\n });\n });\n\n describe(\"error cases\", () => {\n it(\"should error and output the error if the open app fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock(new UnknownDAError(\"Mocked error\"));\n\n const expectedStates: MyCommandCallTaskDAState[] = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: callTaskInAppDAStateStep.OPEN_APP,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n await internalApi.sendCommand(new TestCommand(commandParams)),\n appName: \"MyApp\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: false,\n },\n }),\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should error and output an error if the call task fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n callMyTask.mockResolvedValue(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const deviceAction = new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n await internalApi.sendCommand(new TestCommand(commandParams)),\n appName: \"MyApp\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: false,\n },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockImplementation(\n extractDependenciesMock,\n );\n\n const expectedStates: MyCommandCallTaskDAState[] = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: callTaskInAppDAStateStep.OPEN_APP,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n step: callTaskInAppDAStateStep.CALL_TASK,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"success cases\", () => {\n it(\"should succeed and output the command result if the send command succeeds\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n callMyTask.mockResolvedValue(\n CommandResultFactory({ data: mockedCommandResponse }),\n );\n\n const deviceAction = new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n await internalApi.sendCommand(new TestCommand(commandParams)),\n appName: \"MyApp\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: false,\n },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockImplementation(\n extractDependenciesMock,\n );\n\n const expectedStates: MyCommandCallTaskDAState[] = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: callTaskInAppDAStateStep.OPEN_APP,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n step: callTaskInAppDAStateStep.CALL_TASK,\n },\n },\n {\n status: DeviceActionStatus.Completed,\n output: mockedCommandResponse,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should succeed while skipping OpenApp\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n callMyTask.mockResolvedValue(\n CommandResultFactory({ data: mockedCommandResponse }),\n );\n\n const deviceAction = new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n await internalApi.sendCommand(new TestCommand(commandParams)),\n appName: \"MyApp\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: true,\n },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockImplementation(\n extractDependenciesMock,\n );\n\n const expectedStates: MyCommandCallTaskDAState[] = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n step: callTaskInAppDAStateStep.CALL_TASK,\n },\n },\n {\n status: DeviceActionStatus.Completed,\n output: mockedCommandResponse,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n});\n\ntype MyCommandResponse = {\n aNumber: number;\n aString: string;\n};\n\ntype MyCommandParams = {\n paramString: string;\n paramNumber: number;\n};\n\nclass TestCommand implements Command<MyCommandResponse, MyCommandParams> {\n readonly name = \"testCommand\";\n\n params: MyCommandParams;\n constructor(params: MyCommandParams) {\n this.params = params;\n }\n getApdu(): Apdu {\n return new ApduBuilder({ cla: 0x00, ins: 0x01, p1: 0x02, p2: 0x03 })\n .add32BitUIntToData(this.params.paramNumber)\n .addAsciiStringToData(this.params.paramString)\n .build();\n }\n parseResponse() {\n return CommandResultFactory({ data: { aNumber: 1, aString: \"aString\" } });\n }\n}\n\ntype MyCommandCallTaskDAState = DeviceActionState<\n CallTaskInAppDAOutput<MyCommandResponse>,\n CallTaskInAppDAError<UnknownDAError>,\n CallTaskInAppDAIntermediateValue<\n UserInteractionRequired.None | UserInteractionRequired.VerifyAddress\n >\n>;\n"],
5
+ "mappings": "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",
6
+ "names": ["import_purify_ts", "import_xstate", "import_ApduBuilder", "import_CommandResult", "import_makeInternalApi", "import_testDeviceActionStates", "import_DeviceActionState", "import_UserInteractionRequired", "import_Errors", "import_OpenAppDeviceAction", "import_types", "import_src", "import_CallTaskInAppDeviceAction", "import_CallTaskInAppDeviceActionTypes", "importOriginal", "original", "setupOpenAppDAMock", "error", "callMyTask", "extractDependenciesMock", "apiSendCommandMock", "commandParams", "mockedCommandResponse", "deviceAction", "internalApi", "TestCommand", "resolve", "reject", "expectedStates", "params"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var A=(r,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let p of t(e))!l.call(r,p)&&p!==n&&a(r,p,{get:()=>e[p],enumerable:!(o=s(e,p))||o.enumerable});return r};var d=r=>A(a({},"__esModule",{value:!0}),r);var i={};module.exports=d(i);
1
+ "use strict";var a=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var A=(r,e)=>{for(var t in e)a(r,t,{get:e[t],enumerable:!0})},k=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let p of s(e))!l.call(r,p)&&p!==t&&a(r,p,{get:()=>e[p],enumerable:!(n=o(e,p))||n.enumerable});return r};var I=r=>k(a({},"__esModule",{value:!0}),r);var T={};A(T,{callTaskInAppDAStateStep:()=>i});module.exports=I(T);const i=Object.freeze({OPEN_APP:"os.callTaskInApp.steps.openApp",CALL_TASK:"os.callTaskInApp.steps.callTask"});0&&(module.exports={callTaskInAppDAStateStep});
2
2
  //# sourceMappingURL=CallTaskInAppDeviceActionTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.ts"],
4
- "sourcesContent": ["import {\n type CommandErrorResult,\n type CommandResult,\n} from \"@api/command/model/CommandResult\";\nimport { type InternalApi } from \"@api/device-action/DeviceAction\";\nimport {\n type OpenAppDAError,\n type OpenAppDAIntermediateValue,\n} from \"@api/device-action/os/OpenAppDeviceAction/types\";\n\nexport type CallTaskInAppDAOutput<TaskResponse> = TaskResponse;\n\nexport type CallTaskInAppDAInput<\n TaskResponse,\n TaskErrorCodes,\n UserInteraction,\n> = {\n readonly task: (\n internalApi: InternalApi,\n ) => Promise<CommandResult<TaskResponse, TaskErrorCodes>>;\n readonly appName: string;\n readonly skipOpenApp: boolean;\n readonly requiredUserInteraction: UserInteraction;\n};\n\nexport type CallTaskInAppDAError<TaskErrorCodes = void> =\n | OpenAppDAError\n | CommandErrorResult<TaskErrorCodes>[\"error\"];\n\nexport type CallTaskInAppDAIntermediateValue<UserInteraction> =\n | { readonly requiredUserInteraction: UserInteraction }\n | OpenAppDAIntermediateValue;\n\nexport type CallTaskInAppDAInternalState<TaskResponse, TaskErrorCodes> = {\n readonly taskResponse: TaskResponse | null;\n readonly error: CallTaskInAppDAError<TaskErrorCodes> | null;\n};\n"],
5
- "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
- "names": ["CallTaskInAppDeviceActionTypes_exports", "__toCommonJS"]
4
+ "sourcesContent": ["import {\n type CommandErrorResult,\n type CommandResult,\n} from \"@api/command/model/CommandResult\";\nimport { type InternalApi } from \"@api/device-action/DeviceAction\";\nimport { type UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport {\n type OpenAppDAError,\n type OpenAppDAIntermediateValue,\n} from \"@api/device-action/os/OpenAppDeviceAction/types\";\n\nexport const callTaskInAppDAStateStep = Object.freeze({\n OPEN_APP: \"os.callTaskInApp.steps.openApp\",\n CALL_TASK: \"os.callTaskInApp.steps.callTask\",\n} as const);\n\nexport type CallTaskInAppDAStateStep =\n (typeof callTaskInAppDAStateStep)[keyof typeof callTaskInAppDAStateStep];\n\nexport type CallTaskInAppDAOutput<TaskResponse> = TaskResponse;\n\nexport type CallTaskInAppDAInput<\n TaskResponse,\n TaskErrorCodes,\n UserInteraction,\n> = {\n readonly task: (\n internalApi: InternalApi,\n ) => Promise<CommandResult<TaskResponse, TaskErrorCodes>>;\n readonly appName: string;\n readonly skipOpenApp: boolean;\n readonly requiredUserInteraction: UserInteraction;\n};\n\nexport type CallTaskInAppDAError<TaskErrorCodes = void> =\n | OpenAppDAError\n | CommandErrorResult<TaskErrorCodes>[\"error\"];\n\nexport type CallTaskInAppDARequiredInteraction = UserInteractionRequired.None;\n\nexport type CallTaskInAppDAIntermediateValue<UserInteraction> =\n | {\n readonly requiredUserInteraction:\n | UserInteraction\n | CallTaskInAppDARequiredInteraction;\n readonly step: CallTaskInAppDAStateStep;\n }\n | OpenAppDAIntermediateValue;\n\nexport type CallTaskInAppDAInternalState<TaskResponse, TaskErrorCodes> = {\n readonly taskResponse: TaskResponse | null;\n readonly error: CallTaskInAppDAError<TaskErrorCodes> | null;\n};\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,IAAA,eAAAC,EAAAH,GAWO,MAAME,EAA2B,OAAO,OAAO,CACpD,SAAU,iCACV,UAAW,iCACb,CAAU",
6
+ "names": ["CallTaskInAppDeviceActionTypes_exports", "__export", "callTaskInAppDAStateStep", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var v=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var O=(i,a)=>{for(var s in a)v(i,s,{get:a[s],enumerable:!0})},P=(i,a,s,c)=>{if(a&&typeof a=="object"||typeof a=="function")for(let o of R(a))!b.call(i,o)&&o!==s&&v(i,o,{get:()=>a[o],enumerable:!(c=L(a,o))||c.enumerable});return i};var q=i=>P(v({},"__esModule",{value:!0}),i);var B={};O(B,{GetDeviceMetadataDeviceAction:()=>N});module.exports=q(B);var d=require("purify-ts"),n=require("xstate"),f=require("../../../command/model/CommandResult"),l=require("../../../device-action/model/UserInteractionRequired"),h=require("../../../device-action/os/Const"),D=require("../../../device-action/os/GoToDashboard/GoToDashboardDeviceAction"),M=require("../../../device-action/os/ListApps/ListAppsDeviceAction"),y=require("../../../device-action/task/GetApplicationsMetadataTask"),A=require("../../../device-action/task/GetFirmwareMetadataTask"),C=require("../../../device-action/xstate-utils/XStateDeviceAction"),u=require("../../../device-session/DeviceSessionState"),x=require("../../../secure-channel/device-action/ListInstalledApps/types"),V=require("../../../secure-channel/task/ConnectToSecureChannelTask"),p=require("../../../secure-channel/task/types");class N extends C.XStateDeviceAction{makeStateMachine(a){const{getDeviceMetadata:s,getFirmwareMetadata:c,getApplicationsMetadata:o,listAppsSecureChannel:S}=this.extractDependencies(a),t=this.input.unlockTimeout??h.DEFAULT_UNLOCK_TIMEOUT_MS,m=new D.GoToDashboardDeviceAction({input:{unlockTimeout:t}}).makeStateMachine(a),g=new M.ListAppsDeviceAction({input:{unlockTimeout:t}}).makeStateMachine(a);return(0,n.setup)({types:{input:{unlockTimeout:t},context:{},output:{}},actors:{goToDashboard:m,getDeviceMetadata:(0,n.fromPromise)(s),getFirmwareMetadata:(0,n.fromPromise)(c),getApplicationsMetadata:(0,n.fromPromise)(o),listApps:g,listAppsSecureChannel:(0,n.fromObservable)(S)},guards:{hasError:({context:e})=>e._internalState.error!==null,hasMetadata:({context:e})=>e._internalState.firmwareVersion!==null&&e._internalState.firmwareUpdateContext!==null&&e._internalState.customImage!==null&&e._internalState.applications!==null&&e._internalState.applicationsUpdates!==null&&e._internalState.installedLanguages!==null&&e._internalState.catalog!==null,forceUpdate:({context:e})=>!!e.input.forceUpdate,useSecureChannel:({context:e})=>!!e.input.useSecureChannel},actions:{assignErrorFromEvent:(0,n.assign)({_internalState:e=>({...e.context._internalState,error:e.event.error})})}}).createMachine({id:"GetDeviceMetadataDeviceAction",initial:"DeviceReady",context:e=>({input:{useSecureChannel:e.input.useSecureChannel,forceUpdate:e.input.forceUpdate,unlockTimeout:e.input.unlockTimeout},intermediateValue:{requiredUserInteraction:l.UserInteractionRequired.None},_internalState:{error:null,deviceVersion:null,firmware:null,firmwareVersion:null,firmwareUpdateContext:null,customImage:null,installedApps:null,applications:null,applicationsUpdates:null,installedLanguages:null,catalog:null}}),states:{DeviceReady:{always:[{target:"GoToDashboard",guard:"forceUpdate"},{target:"GetDeviceMetadataFromContext"}]},GetDeviceMetadataFromContext:{invoke:{src:"getDeviceMetadata",onDone:{target:"GetDeviceMetadataFromContextResultCheck",actions:(0,n.assign)({_internalState:e=>e.event.output===null?e.context._internalState:{...e.context._internalState,firmwareVersion:e.event.output.firmwareVersion,firmwareUpdateContext:e.event.output.firmwareUpdateContext,customImage:e.event.output.customImage,applications:e.event.output.applications,applicationsUpdates:e.event.output.applicationsUpdates,installedLanguages:e.event.output.installedLanguages,catalog:e.event.output.catalog}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetDeviceMetadataFromContextResultCheck:{always:[{target:"Success",guard:"hasMetadata"},{target:"GoToDashboard"}]},GoToDashboard:{exit:(0,n.assign)({intermediateValue:{requiredUserInteraction:l.UserInteractionRequired.None}}),invoke:{id:"dashboard",src:"goToDashboard",input:e=>({unlockTimeout:e.context.input.unlockTimeout}),onSnapshot:{actions:(0,n.assign)({intermediateValue:e=>e.event.snapshot.context.intermediateValue})},onDone:{target:"GoToDashboardCheck",actions:(0,n.assign)({_internalState:e=>e.event.output.caseOf({Right:()=>e.context._internalState,Left:r=>({...e.context._internalState,error:r})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GoToDashboardCheck:{always:[{target:"Error",guard:"hasError"},{target:"GetFirmwareMetadata"}]},GetFirmwareMetadata:{invoke:{src:"getFirmwareMetadata",onDone:{target:"GetFirmwareMetadataResultCheck",actions:(0,n.assign)({_internalState:e=>{if((0,f.isSuccessCommandResult)(e.event.output)){const r=a.getDeviceSessionState();return r.sessionStateType!==u.DeviceSessionStateType.Connected&&a.setDeviceSessionState({...r,firmwareVersion:e.event.output.data.firmwareVersion,firmwareUpdateContext:e.event.output.data.firmwareUpdateContext,customImage:e.event.output.data.customImage}),{...e.context._internalState,deviceVersion:e.event.output.data.deviceVersion,firmware:e.event.output.data.firmware,firmwareVersion:e.event.output.data.firmwareVersion,firmwareUpdateContext:e.event.output.data.firmwareUpdateContext,customImage:e.event.output.data.customImage}}return{...e.context._internalState,error:e.event.output.error}}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetFirmwareMetadataResultCheck:{always:[{guard:"hasError",target:"Error"},{guard:"useSecureChannel",target:"ListAppsSecureChannel"},{target:"ListApps"}]},ListAppsSecureChannel:{exit:(0,n.assign)({intermediateValue:{requiredUserInteraction:l.UserInteractionRequired.None}}),invoke:{id:"listAppsSecureChannel",src:"listAppsSecureChannel",input:e=>({firmware:e.context._internalState.firmware,firmwareVersion:e.context._internalState.firmwareVersion}),onSnapshot:{actions:(0,n.assign)({intermediateValue:e=>{switch(e.event.snapshot.context?.type){case p.SecureChannelEventType.DeviceId:return{...e.context.intermediateValue,deviceId:e.event.snapshot.context.payload.deviceId};case p.SecureChannelEventType.PermissionRequested:return{...e.context.intermediateValue,requiredUserInteraction:l.UserInteractionRequired.AllowSecureConnection};case p.SecureChannelEventType.PermissionGranted:{const r=a.getDeviceSessionState();return r.sessionStateType!==u.DeviceSessionStateType.Connected&&a.setDeviceSessionState({...r,isSecureConnectionAllowed:!0}),{...e.context.intermediateValue,requiredUserInteraction:l.UserInteractionRequired.None}}default:return{...e.context.intermediateValue}}},_internalState:e=>{if(e.event.snapshot.context?.type===p.SecureChannelEventType.Error)return{...e.context._internalState,error:e.event.snapshot.context.error.mapDAErrors()};if(e.event.snapshot.context?.type===p.SecureChannelEventType.Result){if((0,x.installedAppResultGuard)(e.event.snapshot.context.payload))return{...e.context._internalState,installedApps:e.event.snapshot.context.payload.map(r=>({name:r.name,hash:r.hash,hashCode:r.hash_code_data}))};throw new Error(`Invalid result ${JSON.stringify(e.event.snapshot.context.payload)}`)}return{...e.context._internalState}}})},onDone:{target:"ListAppsCheck"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ListApps:{exit:(0,n.assign)({intermediateValue:{requiredUserInteraction:l.UserInteractionRequired.None}}),invoke:{id:"listApps",src:"listApps",input:e=>({unlockTimeout:e.context.input.unlockTimeout}),onSnapshot:{actions:(0,n.assign)({intermediateValue:e=>e.event.snapshot.context.intermediateValue})},onDone:{target:"ListAppsCheck",actions:(0,n.assign)({_internalState:e=>e.event.output.isLeft()?{...e.context._internalState,error:e.event.output.extract()}:{...e.context._internalState,installedApps:e.event.output.unsafeCoerce().map(r=>({name:r.appName,hash:r.appFullHash,hashCode:r.appCodeHash}))}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ListAppsCheck:{always:[{target:"Error",guard:"hasError"},{target:"GetApplicationsMetadata"}]},GetApplicationsMetadata:{invoke:{src:"getApplicationsMetadata",input:e=>({deviceVersion:e.context._internalState.deviceVersion,firmware:e.context._internalState.firmware,firmwareVersion:e.context._internalState.firmwareVersion,installedApps:e.context._internalState.installedApps}),onDone:{target:"GetApplicationsMetadataResultCheck",actions:(0,n.assign)({_internalState:e=>{if((0,f.isSuccessCommandResult)(e.event.output)){const r=a.getDeviceSessionState();return r.sessionStateType!==u.DeviceSessionStateType.Connected&&a.setDeviceSessionState({...r,installedApps:e.event.output.data.applications,appsUpdates:e.event.output.data.applicationsUpdates,installedLanguages:e.event.output.data.installedLanguages,catalog:e.event.output.data.catalog}),{...e.context._internalState,applications:e.event.output.data.applications,applicationsUpdates:e.event.output.data.applicationsUpdates,installedLanguages:e.event.output.data.installedLanguages,catalog:e.event.output.data.catalog}}return{...e.context._internalState,error:e.event.output.error}}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetApplicationsMetadataResultCheck:{always:[{guard:"hasError",target:"Error"},{target:"Success"}]},Success:{type:"final"},Error:{type:"final"}},output:e=>{const{context:r}=e,{error:w,firmwareVersion:I,firmwareUpdateContext:G,customImage:E,applications:F,applicationsUpdates:U,installedLanguages:k,catalog:T}=r._internalState;return w?(0,d.Left)(w):(0,d.Right)({firmwareVersion:I,firmwareUpdateContext:G,customImage:E,applications:F,applicationsUpdates:U,installedLanguages:k,catalog:T})}})}extractDependencies(a){return{getDeviceMetadata:()=>{const t=a.getDeviceSessionState();return t.sessionStateType===u.DeviceSessionStateType.Connected||t.firmwareVersion?.metadata===void 0||t.firmwareUpdateContext===void 0||t.customImage===void 0||t.installedApps.length===0||t.appsUpdates===void 0||t.installedLanguages===void 0||t.catalog===void 0?Promise.resolve(null):Promise.resolve({firmwareVersion:t.firmwareVersion,firmwareUpdateContext:t.firmwareUpdateContext,customImage:t.customImage,applications:t.installedApps,applicationsUpdates:t.appsUpdates,installedLanguages:t.installedLanguages,catalog:t.catalog})},getFirmwareMetadata:async()=>new A.GetFirmwareMetadataTask(a).run(),getApplicationsMetadata:async t=>new y.GetApplicationsMetadataTask(a,{deviceVersion:t.input.deviceVersion,firmware:t.input.firmware,firmwareVersion:t.input.firmwareVersion,installedApps:t.input.installedApps}).run(),listAppsSecureChannel:t=>{const{firmware:m,firmwareVersion:g}=t.input,e=a.getSecureChannelService().listInstalledApps(g.metadata,m);return new V.ConnectToSecureChannelTask(a,{connection:e}).run()}}}}0&&(module.exports={GetDeviceMetadataDeviceAction});
1
+ "use strict";var f=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var P=Object.prototype.hasOwnProperty;var O=(i,a)=>{for(var s in a)f(i,s,{get:a[s],enumerable:!0})},N=(i,a,s,c)=>{if(a&&typeof a=="object"||typeof a=="function")for(let o of b(a))!P.call(i,o)&&o!==s&&f(i,o,{get:()=>a[o],enumerable:!(c=R(a,o))||c.enumerable});return i};var q=i=>N(f({},"__esModule",{value:!0}),i);var B={};O(B,{GetDeviceMetadataDeviceAction:()=>H});module.exports=q(B);var m=require("purify-ts"),n=require("xstate"),S=require("../../../command/model/CommandResult"),l=require("../../../device-action/model/UserInteractionRequired"),h=require("../../../device-action/os/Const"),A=require("../../../device-action/os/GoToDashboard/GoToDashboardDeviceAction"),M=require("../../../device-action/os/ListApps/ListAppsDeviceAction"),y=require("../../../device-action/task/GetApplicationsMetadataTask"),C=require("../../../device-action/task/GetFirmwareMetadataTask"),x=require("../../../device-action/xstate-utils/XStateDeviceAction"),u=require("../../../device-session/DeviceSessionState"),V=require("../../../secure-channel/device-action/ListInstalledApps/types"),E=require("../../../secure-channel/task/ConnectToSecureChannelTask"),p=require("../../../secure-channel/task/types"),d=require("./types");class H extends x.XStateDeviceAction{makeStateMachine(a){const{getDeviceMetadata:s,getFirmwareMetadata:c,getApplicationsMetadata:o,listAppsSecureChannel:D}=this.extractDependencies(a),t=this.input.unlockTimeout??h.DEFAULT_UNLOCK_TIMEOUT_MS,g=new A.GoToDashboardDeviceAction({input:{unlockTimeout:t}}).makeStateMachine(a),v=new M.ListAppsDeviceAction({input:{unlockTimeout:t}}).makeStateMachine(a);return(0,n.setup)({types:{input:{unlockTimeout:t},context:{},output:{}},actors:{goToDashboard:g,getDeviceMetadata:(0,n.fromPromise)(s),getFirmwareMetadata:(0,n.fromPromise)(c),getApplicationsMetadata:(0,n.fromPromise)(o),listApps:v,listAppsSecureChannel:(0,n.fromObservable)(D)},guards:{hasError:({context:e})=>e._internalState.error!==null,hasMetadata:({context:e})=>e._internalState.firmwareVersion!==null&&e._internalState.firmwareUpdateContext!==null&&e._internalState.customImage!==null&&e._internalState.applications!==null&&e._internalState.applicationsUpdates!==null&&e._internalState.installedLanguages!==null&&e._internalState.catalog!==null,forceUpdate:({context:e})=>!!e.input.forceUpdate,useSecureChannel:({context:e})=>!!e.input.useSecureChannel},actions:{assignErrorFromEvent:(0,n.assign)({_internalState:e=>({...e.context._internalState,error:e.event.error})})}}).createMachine({id:"GetDeviceMetadataDeviceAction",initial:"DeviceReady",context:e=>({input:{useSecureChannel:e.input.useSecureChannel,forceUpdate:e.input.forceUpdate,unlockTimeout:e.input.unlockTimeout},intermediateValue:{requiredUserInteraction:l.UserInteractionRequired.None,step:d.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},_internalState:{error:null,deviceVersion:null,firmware:null,firmwareVersion:null,firmwareUpdateContext:null,customImage:null,installedApps:null,applications:null,applicationsUpdates:null,installedLanguages:null,catalog:null}}),states:{DeviceReady:{always:[{target:"GoToDashboard",guard:"forceUpdate"},{target:"GetDeviceMetadataFromContext"}]},GetDeviceMetadataFromContext:{invoke:{src:"getDeviceMetadata",onDone:{target:"GetDeviceMetadataFromContextResultCheck",actions:(0,n.assign)({_internalState:e=>e.event.output===null?e.context._internalState:{...e.context._internalState,firmwareVersion:e.event.output.firmwareVersion,firmwareUpdateContext:e.event.output.firmwareUpdateContext,customImage:e.event.output.customImage,applications:e.event.output.applications,applicationsUpdates:e.event.output.applicationsUpdates,installedLanguages:e.event.output.installedLanguages,catalog:e.event.output.catalog}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetDeviceMetadataFromContextResultCheck:{always:[{target:"Success",guard:"hasMetadata"},{target:"GoToDashboard"}]},GoToDashboard:{exit:(0,n.assign)({intermediateValue:{requiredUserInteraction:l.UserInteractionRequired.None,step:d.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD}}),invoke:{id:"dashboard",src:"goToDashboard",input:e=>({unlockTimeout:e.context.input.unlockTimeout}),onSnapshot:{actions:(0,n.assign)({intermediateValue:e=>e.event.snapshot.context.intermediateValue})},onDone:{target:"GoToDashboardCheck",actions:(0,n.assign)({_internalState:e=>e.event.output.caseOf({Right:()=>e.context._internalState,Left:r=>({...e.context._internalState,error:r})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GoToDashboardCheck:{always:[{target:"Error",guard:"hasError"},{target:"GetFirmwareMetadata"}]},GetFirmwareMetadata:{invoke:{src:"getFirmwareMetadata",onDone:{target:"GetFirmwareMetadataResultCheck",actions:(0,n.assign)({_internalState:e=>{if((0,S.isSuccessCommandResult)(e.event.output)){const r=a.getDeviceSessionState();return r.sessionStateType!==u.DeviceSessionStateType.Connected&&a.setDeviceSessionState({...r,firmwareVersion:e.event.output.data.firmwareVersion,firmwareUpdateContext:e.event.output.data.firmwareUpdateContext,customImage:e.event.output.data.customImage}),{...e.context._internalState,deviceVersion:e.event.output.data.deviceVersion,firmware:e.event.output.data.firmware,firmwareVersion:e.event.output.data.firmwareVersion,firmwareUpdateContext:e.event.output.data.firmwareUpdateContext,customImage:e.event.output.data.customImage}}return{...e.context._internalState,error:e.event.output.error}}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetFirmwareMetadataResultCheck:{always:[{guard:"hasError",target:"Error"},{guard:"useSecureChannel",target:"ListAppsSecureChannel"},{target:"ListApps"}]},ListAppsSecureChannel:{exit:(0,n.assign)({intermediateValue:{requiredUserInteraction:l.UserInteractionRequired.None,step:d.getDeviceMetadataDAStateStep.LIST_APPS_SECURE_CHANNEL}}),invoke:{id:"listAppsSecureChannel",src:"listAppsSecureChannel",input:e=>({firmware:e.context._internalState.firmware,firmwareVersion:e.context._internalState.firmwareVersion}),onSnapshot:{actions:(0,n.assign)({intermediateValue:e=>{switch(e.event.snapshot.context?.type){case p.SecureChannelEventType.DeviceId:return{...e.context.intermediateValue,deviceId:e.event.snapshot.context.payload.deviceId};case p.SecureChannelEventType.PermissionRequested:return{...e.context.intermediateValue,requiredUserInteraction:l.UserInteractionRequired.AllowSecureConnection};case p.SecureChannelEventType.PermissionGranted:{const r=a.getDeviceSessionState();return r.sessionStateType!==u.DeviceSessionStateType.Connected&&a.setDeviceSessionState({...r,isSecureConnectionAllowed:!0}),{...e.context.intermediateValue,requiredUserInteraction:l.UserInteractionRequired.None}}default:return{...e.context.intermediateValue}}},_internalState:e=>{if(e.event.snapshot.context?.type===p.SecureChannelEventType.Error)return{...e.context._internalState,error:e.event.snapshot.context.error.mapDAErrors()};if(e.event.snapshot.context?.type===p.SecureChannelEventType.Result){if((0,V.installedAppResultGuard)(e.event.snapshot.context.payload))return{...e.context._internalState,installedApps:e.event.snapshot.context.payload.map(r=>({name:r.name,hash:r.hash,hashCode:r.hash_code_data}))};throw new Error(`Invalid result ${JSON.stringify(e.event.snapshot.context.payload)}`)}return{...e.context._internalState}}})},onDone:{target:"ListAppsCheck"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ListApps:{exit:(0,n.assign)({intermediateValue:{requiredUserInteraction:l.UserInteractionRequired.None,step:d.getDeviceMetadataDAStateStep.LIST_APPS}}),invoke:{id:"listApps",src:"listApps",input:e=>({unlockTimeout:e.context.input.unlockTimeout}),onSnapshot:{actions:(0,n.assign)({intermediateValue:e=>e.event.snapshot.context.intermediateValue})},onDone:{target:"ListAppsCheck",actions:(0,n.assign)({_internalState:e=>e.event.output.isLeft()?{...e.context._internalState,error:e.event.output.extract()}:{...e.context._internalState,installedApps:e.event.output.unsafeCoerce().map(r=>({name:r.appName,hash:r.appFullHash,hashCode:r.appCodeHash}))}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ListAppsCheck:{always:[{target:"Error",guard:"hasError"},{target:"GetApplicationsMetadata"}]},GetApplicationsMetadata:{invoke:{src:"getApplicationsMetadata",input:e=>({deviceVersion:e.context._internalState.deviceVersion,firmware:e.context._internalState.firmware,firmwareVersion:e.context._internalState.firmwareVersion,installedApps:e.context._internalState.installedApps}),onDone:{target:"GetApplicationsMetadataResultCheck",actions:(0,n.assign)({_internalState:e=>{if((0,S.isSuccessCommandResult)(e.event.output)){const r=a.getDeviceSessionState();return r.sessionStateType!==u.DeviceSessionStateType.Connected&&a.setDeviceSessionState({...r,installedApps:e.event.output.data.applications,appsUpdates:e.event.output.data.applicationsUpdates,installedLanguages:e.event.output.data.installedLanguages,catalog:e.event.output.data.catalog}),{...e.context._internalState,applications:e.event.output.data.applications,applicationsUpdates:e.event.output.data.applicationsUpdates,installedLanguages:e.event.output.data.installedLanguages,catalog:e.event.output.data.catalog}}return{...e.context._internalState,error:e.event.output.error}}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetApplicationsMetadataResultCheck:{always:[{guard:"hasError",target:"Error"},{target:"Success"}]},Success:{type:"final"},Error:{type:"final"}},output:e=>{const{context:r}=e,{error:w,firmwareVersion:I,firmwareUpdateContext:G,customImage:F,applications:U,applicationsUpdates:T,installedLanguages:k,catalog:L}=r._internalState;return w?(0,m.Left)(w):(0,m.Right)({firmwareVersion:I,firmwareUpdateContext:G,customImage:F,applications:U,applicationsUpdates:T,installedLanguages:k,catalog:L})}})}extractDependencies(a){return{getDeviceMetadata:()=>{const t=a.getDeviceSessionState();return t.sessionStateType===u.DeviceSessionStateType.Connected||t.firmwareVersion?.metadata===void 0||t.firmwareUpdateContext===void 0||t.customImage===void 0||t.installedApps.length===0||t.appsUpdates===void 0||t.installedLanguages===void 0||t.catalog===void 0?Promise.resolve(null):Promise.resolve({firmwareVersion:t.firmwareVersion,firmwareUpdateContext:t.firmwareUpdateContext,customImage:t.customImage,applications:t.installedApps,applicationsUpdates:t.appsUpdates,installedLanguages:t.installedLanguages,catalog:t.catalog})},getFirmwareMetadata:async()=>new C.GetFirmwareMetadataTask(a).run(),getApplicationsMetadata:async t=>new y.GetApplicationsMetadataTask(a,{deviceVersion:t.input.deviceVersion,firmware:t.input.firmware,firmwareVersion:t.input.firmwareVersion,installedApps:t.input.installedApps}).run(),listAppsSecureChannel:t=>{const{firmware:g,firmwareVersion:v}=t.input,e=a.getSecureChannelService().listInstalledApps(v.metadata,g);return new E.ConnectToSecureChannelTask(a,{connection:e}).run()}}}}0&&(module.exports={GetDeviceMetadataDeviceAction});
2
2
  //# sourceMappingURL=GetDeviceMetadataDeviceAction.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.ts"],
4
- "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { type Observable } from \"rxjs\";\nimport { assign, fromObservable, fromPromise, setup } from \"xstate\";\n\nimport { isSuccessCommandResult } from \"@api/command/model/CommandResult\";\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 { ListAppsDeviceAction } from \"@api/device-action/os/ListApps/ListAppsDeviceAction\";\nimport {\n GetApplicationsMetadataTask,\n type GetApplicationsMetadataTaskResult,\n type InstalledApp,\n} from \"@api/device-action/task/GetApplicationsMetadataTask\";\nimport {\n GetFirmwareMetadataTask,\n type GetFirmwareMetadataTaskResult,\n} from \"@api/device-action/task/GetFirmwareMetadataTask\";\nimport { type StateMachineTypes } from \"@api/device-action/xstate-utils/StateMachineTypes\";\nimport {\n type DeviceActionStateMachine,\n XStateDeviceAction,\n} from \"@api/device-action/xstate-utils/XStateDeviceAction\";\nimport {\n type Catalog,\n type CustomImage,\n DeviceSessionStateType,\n type FirmwareUpdateContext,\n type FirmwareVersion,\n type InstalledLanguagePackage,\n} from \"@api/device-session/DeviceSessionState\";\nimport { installedAppResultGuard } from \"@api/secure-channel/device-action/ListInstalledApps/types\";\nimport { ConnectToSecureChannelTask } from \"@api/secure-channel/task/ConnectToSecureChannelTask\";\nimport { SecureChannelEventType } from \"@api/secure-channel/task/types\";\nimport { type SecureChannelEvent } from \"@api/secure-channel/task/types\";\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport { type FinalFirmware } from \"@internal/manager-api/model/Firmware\";\n\nimport {\n type GetDeviceMetadataDAError,\n type GetDeviceMetadataDAInput,\n type GetDeviceMetadataDAIntermediateValue,\n type GetDeviceMetadataDAOutput,\n} from \"./types\";\n\ntype GetDeviceMetadataMachineInternalState = {\n readonly error: GetDeviceMetadataDAError | null;\n readonly deviceVersion: DeviceVersion | null;\n readonly firmware: FinalFirmware | null;\n readonly firmwareVersion: FirmwareVersion | null;\n readonly firmwareUpdateContext: FirmwareUpdateContext | null;\n readonly customImage: CustomImage | null;\n readonly installedApps: InstalledApp[] | null;\n readonly applications: Application[] | null;\n readonly applicationsUpdates: Application[] | null;\n readonly installedLanguages: InstalledLanguagePackage[] | null;\n readonly catalog: Catalog | null;\n};\n\nexport type GetDeviceMetadataFromContextTaskResult = {\n readonly firmwareVersion: FirmwareVersion;\n readonly firmwareUpdateContext: FirmwareUpdateContext;\n readonly customImage: CustomImage;\n readonly applications: Application[];\n readonly applicationsUpdates: Application[];\n readonly installedLanguages: InstalledLanguagePackage[];\n readonly catalog: Catalog;\n} | null;\n\nexport type MachineDependencies = {\n readonly getDeviceMetadata: () => Promise<GetDeviceMetadataFromContextTaskResult>;\n readonly getFirmwareMetadata: () => Promise<GetFirmwareMetadataTaskResult>;\n readonly getApplicationsMetadata: (arg0: {\n input: {\n deviceVersion: DeviceVersion;\n firmware: FinalFirmware;\n firmwareVersion: FirmwareVersion;\n installedApps: InstalledApp[];\n };\n }) => Promise<GetApplicationsMetadataTaskResult>;\n readonly listAppsSecureChannel: (arg0: {\n input: {\n firmware: FinalFirmware;\n firmwareVersion: FirmwareVersion;\n };\n }) => Observable<SecureChannelEvent>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class GetDeviceMetadataDeviceAction extends XStateDeviceAction<\n GetDeviceMetadataDAOutput,\n GetDeviceMetadataDAInput,\n GetDeviceMetadataDAError,\n GetDeviceMetadataDAIntermediateValue,\n GetDeviceMetadataMachineInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n GetDeviceMetadataDAOutput,\n GetDeviceMetadataDAInput,\n GetDeviceMetadataDAError,\n GetDeviceMetadataDAIntermediateValue,\n GetDeviceMetadataMachineInternalState\n > {\n type types = StateMachineTypes<\n GetDeviceMetadataDAOutput,\n GetDeviceMetadataDAInput,\n GetDeviceMetadataDAError,\n GetDeviceMetadataDAIntermediateValue,\n GetDeviceMetadataMachineInternalState\n >;\n\n const {\n getDeviceMetadata,\n getFirmwareMetadata,\n getApplicationsMetadata,\n listAppsSecureChannel,\n } = 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 const listAppsMachine = new ListAppsDeviceAction({\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 goToDashboard: goToDashboardMachine,\n getDeviceMetadata: fromPromise(getDeviceMetadata),\n getFirmwareMetadata: fromPromise(getFirmwareMetadata),\n getApplicationsMetadata: fromPromise(getApplicationsMetadata),\n listApps: listAppsMachine,\n listAppsSecureChannel: fromObservable(listAppsSecureChannel),\n },\n guards: {\n hasError: ({ context }) => context._internalState.error !== null,\n hasMetadata: ({ context }) =>\n context._internalState.firmwareVersion !== null &&\n context._internalState.firmwareUpdateContext !== null &&\n context._internalState.customImage !== null &&\n context._internalState.applications !== null &&\n context._internalState.applicationsUpdates !== null &&\n context._internalState.installedLanguages !== null &&\n context._internalState.catalog !== null,\n forceUpdate: ({ context }) => Boolean(context.input.forceUpdate),\n useSecureChannel: ({ context }) =>\n Boolean(context.input.useSecureChannel),\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n id: \"GetDeviceMetadataDeviceAction\",\n initial: \"DeviceReady\",\n context: (_) => {\n return {\n input: {\n useSecureChannel: _.input.useSecureChannel,\n forceUpdate: _.input.forceUpdate,\n unlockTimeout: _.input.unlockTimeout,\n },\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n error: null,\n deviceVersion: null,\n firmware: null,\n firmwareVersion: null,\n firmwareUpdateContext: null,\n customImage: null,\n installedApps: null,\n applications: null,\n applicationsUpdates: null,\n installedLanguages: null,\n catalog: null,\n },\n };\n },\n states: {\n DeviceReady: {\n always: [\n {\n target: \"GoToDashboard\",\n guard: \"forceUpdate\",\n },\n {\n target: \"GetDeviceMetadataFromContext\",\n },\n ],\n },\n GetDeviceMetadataFromContext: {\n invoke: {\n src: \"getDeviceMetadata\",\n onDone: {\n target: \"GetDeviceMetadataFromContextResultCheck\",\n actions: assign({\n _internalState: (_) => {\n if (_.event.output === null) {\n return _.context._internalState;\n } else {\n return {\n ..._.context._internalState,\n firmwareVersion: _.event.output.firmwareVersion,\n firmwareUpdateContext:\n _.event.output.firmwareUpdateContext,\n customImage: _.event.output.customImage,\n applications: _.event.output.applications,\n applicationsUpdates: _.event.output.applicationsUpdates,\n installedLanguages: _.event.output.installedLanguages,\n catalog: _.event.output.catalog,\n };\n }\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GetDeviceMetadataFromContextResultCheck: {\n always: [\n {\n target: \"Success\",\n guard: \"hasMetadata\",\n },\n {\n target: \"GoToDashboard\",\n },\n ],\n },\n GoToDashboard: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\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({\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: \"GetFirmwareMetadata\",\n },\n ],\n },\n GetFirmwareMetadata: {\n invoke: {\n src: \"getFirmwareMetadata\",\n onDone: {\n target: \"GetFirmwareMetadataResultCheck\",\n actions: assign({\n _internalState: (_) => {\n if (isSuccessCommandResult(_.event.output)) {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n internalApi.setDeviceSessionState({\n ...deviceState,\n firmwareVersion: _.event.output.data.firmwareVersion,\n firmwareUpdateContext:\n _.event.output.data.firmwareUpdateContext,\n customImage: _.event.output.data.customImage,\n });\n }\n return {\n ..._.context._internalState,\n deviceVersion: _.event.output.data.deviceVersion,\n firmware: _.event.output.data.firmware,\n firmwareVersion: _.event.output.data.firmwareVersion,\n firmwareUpdateContext:\n _.event.output.data.firmwareUpdateContext,\n customImage: _.event.output.data.customImage,\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 GetFirmwareMetadataResultCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n guard: \"useSecureChannel\",\n target: \"ListAppsSecureChannel\",\n },\n {\n target: \"ListApps\",\n },\n ],\n },\n ListAppsSecureChannel: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"listAppsSecureChannel\",\n src: \"listAppsSecureChannel\",\n input: (_) => ({\n firmware: _.context._internalState.firmware!,\n firmwareVersion: _.context._internalState.firmwareVersion!,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => {\n switch (_.event.snapshot.context?.type) {\n case SecureChannelEventType.DeviceId: {\n return {\n ..._.context.intermediateValue,\n deviceId: _.event.snapshot.context.payload.deviceId,\n };\n }\n case SecureChannelEventType.PermissionRequested: {\n return {\n ..._.context.intermediateValue,\n requiredUserInteraction:\n UserInteractionRequired.AllowSecureConnection,\n };\n }\n case SecureChannelEventType.PermissionGranted: {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n internalApi.setDeviceSessionState({\n ...deviceState,\n isSecureConnectionAllowed: true,\n });\n }\n return {\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n };\n }\n default:\n return {\n ..._.context.intermediateValue,\n };\n }\n },\n _internalState: (_) => {\n if (\n _.event.snapshot.context?.type ===\n SecureChannelEventType.Error\n ) {\n return {\n ..._.context._internalState,\n error: _.event.snapshot.context.error.mapDAErrors(),\n };\n } else if (\n _.event.snapshot.context?.type ===\n SecureChannelEventType.Result\n ) {\n if (\n installedAppResultGuard(_.event.snapshot.context.payload)\n ) {\n return {\n ..._.context._internalState,\n installedApps: _.event.snapshot.context.payload.map(\n (app) => ({\n name: app.name,\n hash: app.hash,\n hashCode: app.hash_code_data,\n }),\n ),\n };\n }\n throw new Error(\n `Invalid result ${JSON.stringify(_.event.snapshot.context.payload)}`,\n );\n }\n return { ..._.context._internalState };\n },\n }),\n },\n onDone: {\n target: \"ListAppsCheck\",\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n ListApps: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"listApps\",\n src: \"listApps\",\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: \"ListAppsCheck\",\n actions: assign({\n _internalState: (_) => {\n if (_.event.output.isLeft()) {\n return {\n ..._.context._internalState,\n error: _.event.output.extract(),\n };\n } else {\n return {\n ..._.context._internalState,\n installedApps: _.event.output\n .unsafeCoerce()\n .map((app) => ({\n name: app.appName,\n hash: app.appFullHash,\n hashCode: app.appCodeHash,\n })),\n };\n }\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 {\n target: \"GetApplicationsMetadata\",\n },\n ],\n },\n GetApplicationsMetadata: {\n invoke: {\n src: \"getApplicationsMetadata\",\n input: (_) => ({\n deviceVersion: _.context._internalState.deviceVersion!,\n firmware: _.context._internalState.firmware!,\n firmwareVersion: _.context._internalState.firmwareVersion!,\n installedApps: _.context._internalState.installedApps!,\n }),\n onDone: {\n target: \"GetApplicationsMetadataResultCheck\",\n actions: assign({\n _internalState: (_) => {\n if (isSuccessCommandResult(_.event.output)) {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n internalApi.setDeviceSessionState({\n ...deviceState,\n installedApps: _.event.output.data.applications,\n appsUpdates: _.event.output.data.applicationsUpdates,\n installedLanguages:\n _.event.output.data.installedLanguages,\n catalog: _.event.output.data.catalog,\n });\n }\n return {\n ..._.context._internalState,\n applications: _.event.output.data.applications,\n applicationsUpdates:\n _.event.output.data.applicationsUpdates,\n installedLanguages:\n _.event.output.data.installedLanguages,\n catalog: _.event.output.data.catalog,\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 GetApplicationsMetadataResultCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"Success\",\n },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: (args) => {\n const { context } = args;\n const {\n error,\n firmwareVersion,\n firmwareUpdateContext,\n customImage,\n applications,\n applicationsUpdates,\n installedLanguages,\n catalog,\n } = context._internalState;\n if (error) {\n return Left(error);\n }\n return Right({\n firmwareVersion: firmwareVersion!,\n firmwareUpdateContext: firmwareUpdateContext!,\n customImage: customImage!,\n applications: applications!,\n applicationsUpdates: applicationsUpdates!,\n installedLanguages: installedLanguages!,\n catalog: catalog!,\n });\n },\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const getDeviceMetadata = () => {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType === DeviceSessionStateType.Connected ||\n deviceState.firmwareVersion?.metadata === undefined ||\n deviceState.firmwareUpdateContext === undefined ||\n deviceState.customImage === undefined ||\n deviceState.installedApps.length === 0 ||\n deviceState.appsUpdates === undefined ||\n deviceState.installedLanguages === undefined ||\n deviceState.catalog === undefined\n ) {\n return Promise.resolve(null);\n }\n return Promise.resolve({\n firmwareVersion: deviceState.firmwareVersion,\n firmwareUpdateContext: deviceState.firmwareUpdateContext,\n customImage: deviceState.customImage,\n applications: deviceState.installedApps,\n applicationsUpdates: deviceState.appsUpdates,\n installedLanguages: deviceState.installedLanguages,\n catalog: deviceState.catalog,\n });\n };\n\n const getFirmwareMetadata = async () =>\n new GetFirmwareMetadataTask(internalApi).run();\n\n const getApplicationsMetadata = async (arg0: {\n input: {\n deviceVersion: DeviceVersion;\n firmware: FinalFirmware;\n firmwareVersion: FirmwareVersion;\n installedApps: InstalledApp[];\n };\n }) =>\n new GetApplicationsMetadataTask(internalApi, {\n deviceVersion: arg0.input.deviceVersion,\n firmware: arg0.input.firmware,\n firmwareVersion: arg0.input.firmwareVersion,\n installedApps: arg0.input.installedApps,\n }).run();\n\n const listAppsSecureChannel = (arg0: {\n input: {\n firmware: FinalFirmware;\n firmwareVersion: FirmwareVersion;\n };\n }) => {\n const { firmware, firmwareVersion } = arg0.input;\n const connection = internalApi\n .getSecureChannelService()\n .listInstalledApps(firmwareVersion.metadata!, firmware);\n return new ConnectToSecureChannelTask(internalApi, {\n connection,\n }).run();\n };\n\n return {\n getDeviceMetadata,\n getFirmwareMetadata,\n getApplicationsMetadata,\n listAppsSecureChannel,\n };\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA4B,qBAE5BC,EAA2D,kBAE3DC,EAAuC,4CAEvCC,EAAwC,4DACxCC,EAA0C,uCAC1CC,EAA0C,yEAC1CC,EAAqC,+DACrCC,EAIO,+DACPC,EAGO,2DAEPC,EAGO,8DACPC,EAOO,kDACPC,EAAwC,qEACxCC,EAA2C,+DAC3CD,EAAuC,0CA4DhC,MAAMb,UAAsC,oBAMjD,CACA,iBACEe,EAOA,CASA,KAAM,CACJ,kBAAAC,EACA,oBAAAC,EACA,wBAAAC,EACA,sBAAAC,CACF,EAAI,KAAK,oBAAoBJ,CAAW,EAElCK,EAAgB,KAAK,MAAM,eAAiB,4BAE5CC,EAAuB,IAAI,4BAA0B,CACzD,MAAO,CACL,cAAAD,CACF,CACF,CAAC,EAAE,iBAAiBL,CAAW,EACzBO,EAAkB,IAAI,uBAAqB,CAC/C,MAAO,CACL,cAAAF,CACF,CACF,CAAC,EAAE,iBAAiBL,CAAW,EAE/B,SAAO,SAAM,CACX,MAAO,CACL,MAAO,CACL,cAAAK,CACF,EACA,QAAS,CAAC,EACV,OAAQ,CAAC,CACX,EACA,OAAQ,CACN,cAAeC,EACf,qBAAmB,eAAYL,CAAiB,EAChD,uBAAqB,eAAYC,CAAmB,EACpD,2BAAyB,eAAYC,CAAuB,EAC5D,SAAUI,EACV,yBAAuB,kBAAeH,CAAqB,CAC7D,EACA,OAAQ,CACN,SAAU,CAAC,CAAE,QAAAI,CAAQ,IAAMA,EAAQ,eAAe,QAAU,KAC5D,YAAa,CAAC,CAAE,QAAAA,CAAQ,IACtBA,EAAQ,eAAe,kBAAoB,MAC3CA,EAAQ,eAAe,wBAA0B,MACjDA,EAAQ,eAAe,cAAgB,MACvCA,EAAQ,eAAe,eAAiB,MACxCA,EAAQ,eAAe,sBAAwB,MAC/CA,EAAQ,eAAe,qBAAuB,MAC9CA,EAAQ,eAAe,UAAY,KACrC,YAAa,CAAC,CAAE,QAAAA,CAAQ,IAAM,EAAQA,EAAQ,MAAM,YACpD,iBAAkB,CAAC,CAAE,QAAAA,CAAQ,IAC3B,EAAQA,EAAQ,MAAM,gBAC1B,EACA,QAAS,CACP,wBAAsB,UAAO,CAC3B,eAAiBC,IAAO,CACtB,GAAGA,EAAE,QAAQ,eACb,MAAOA,EAAE,MAAM,KACjB,EACF,CAAC,CACH,CACF,CAAC,EAAE,cAAc,CACf,GAAI,gCACJ,QAAS,cACT,QAAUA,IACD,CACL,MAAO,CACL,iBAAkBA,EAAE,MAAM,iBAC1B,YAAaA,EAAE,MAAM,YACrB,cAAeA,EAAE,MAAM,aACzB,EACA,kBAAmB,CACjB,wBAAyB,0BAAwB,IACnD,EACA,eAAgB,CACd,MAAO,KACP,cAAe,KACf,SAAU,KACV,gBAAiB,KACjB,sBAAuB,KACvB,YAAa,KACb,cAAe,KACf,aAAc,KACd,oBAAqB,KACrB,mBAAoB,KACpB,QAAS,IACX,CACF,GAEF,OAAQ,CACN,YAAa,CACX,OAAQ,CACN,CACE,OAAQ,gBACR,MAAO,aACT,EACA,CACE,OAAQ,8BACV,CACF,CACF,EACA,6BAA8B,CAC5B,OAAQ,CACN,IAAK,oBACL,OAAQ,CACN,OAAQ,0CACR,WAAS,UAAO,CACd,eAAiBA,GACXA,EAAE,MAAM,SAAW,KACdA,EAAE,QAAQ,eAEV,CACL,GAAGA,EAAE,QAAQ,eACb,gBAAiBA,EAAE,MAAM,OAAO,gBAChC,sBACEA,EAAE,MAAM,OAAO,sBACjB,YAAaA,EAAE,MAAM,OAAO,YAC5B,aAAcA,EAAE,MAAM,OAAO,aAC7B,oBAAqBA,EAAE,MAAM,OAAO,oBACpC,mBAAoBA,EAAE,MAAM,OAAO,mBACnC,QAASA,EAAE,MAAM,OAAO,OAC1B,CAGN,CAAC,CACH,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,wCAAyC,CACvC,OAAQ,CACN,CACE,OAAQ,UACR,MAAO,aACT,EACA,CACE,OAAQ,eACV,CACF,CACF,EACA,cAAe,CACb,QAAM,UAAO,CACX,kBAAmB,CACjB,wBAAyB,0BAAwB,IACnD,CACF,CAAC,EACD,OAAQ,CACN,GAAI,YACJ,IAAK,gBACL,MAAQA,IAAO,CACb,cAAeA,EAAE,QAAQ,MAAM,aACjC,GACA,WAAY,CACV,WAAS,UAAO,CACd,kBAAoBA,GAClBA,EAAE,MAAM,SAAS,QAAQ,iBAC7B,CAAC,CACH,EACA,OAAQ,CACN,OAAQ,qBACR,WAAS,UAAO,CACd,eAAiBA,GACRA,EAAE,MAAM,OAAO,OAAO,CAC3B,MAAO,IAAMA,EAAE,QAAQ,eACvB,KAAOC,IAAW,CAChB,GAAGD,EAAE,QAAQ,eACb,MAAAC,CACF,EACF,CAAC,CAEL,CAAC,CACH,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,mBAAoB,CAClB,OAAQ,CACN,CACE,OAAQ,QACR,MAAO,UACT,EACA,CACE,OAAQ,qBACV,CACF,CACF,EACA,oBAAqB,CACnB,OAAQ,CACN,IAAK,sBACL,OAAQ,CACN,OAAQ,iCACR,WAAS,UAAO,CACd,eAAiBD,GAAM,CACrB,MAAI,0BAAuBA,EAAE,MAAM,MAAM,EAAG,CAC1C,MAAME,EAAcX,EAAY,sBAAsB,EACtD,OACEW,EAAY,mBACZ,yBAAuB,WAEvBX,EAAY,sBAAsB,CAChC,GAAGW,EACH,gBAAiBF,EAAE,MAAM,OAAO,KAAK,gBACrC,sBACEA,EAAE,MAAM,OAAO,KAAK,sBACtB,YAAaA,EAAE,MAAM,OAAO,KAAK,WACnC,CAAC,EAEI,CACL,GAAGA,EAAE,QAAQ,eACb,cAAeA,EAAE,MAAM,OAAO,KAAK,cACnC,SAAUA,EAAE,MAAM,OAAO,KAAK,SAC9B,gBAAiBA,EAAE,MAAM,OAAO,KAAK,gBACrC,sBACEA,EAAE,MAAM,OAAO,KAAK,sBACtB,YAAaA,EAAE,MAAM,OAAO,KAAK,WACnC,CACF,CACA,MAAO,CACL,GAAGA,EAAE,QAAQ,eACb,MAAOA,EAAE,MAAM,OAAO,KACxB,CACF,CACF,CAAC,CACH,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,+BAAgC,CAC9B,OAAQ,CACN,CACE,MAAO,WACP,OAAQ,OACV,EACA,CACE,MAAO,mBACP,OAAQ,uBACV,EACA,CACE,OAAQ,UACV,CACF,CACF,EACA,sBAAuB,CACrB,QAAM,UAAO,CACX,kBAAmB,CACjB,wBAAyB,0BAAwB,IACnD,CACF,CAAC,EACD,OAAQ,CACN,GAAI,wBACJ,IAAK,wBACL,MAAQA,IAAO,CACb,SAAUA,EAAE,QAAQ,eAAe,SACnC,gBAAiBA,EAAE,QAAQ,eAAe,eAC5C,GACA,WAAY,CACV,WAAS,UAAO,CACd,kBAAoBA,GAAM,CACxB,OAAQA,EAAE,MAAM,SAAS,SAAS,KAAM,CACtC,KAAK,yBAAuB,SAC1B,MAAO,CACL,GAAGA,EAAE,QAAQ,kBACb,SAAUA,EAAE,MAAM,SAAS,QAAQ,QAAQ,QAC7C,EAEF,KAAK,yBAAuB,oBAC1B,MAAO,CACL,GAAGA,EAAE,QAAQ,kBACb,wBACE,0BAAwB,qBAC5B,EAEF,KAAK,yBAAuB,kBAAmB,CAC7C,MAAME,EAAcX,EAAY,sBAAsB,EACtD,OACEW,EAAY,mBACZ,yBAAuB,WAEvBX,EAAY,sBAAsB,CAChC,GAAGW,EACH,0BAA2B,EAC7B,CAAC,EAEI,CACL,GAAGF,EAAE,QAAQ,kBACb,wBAAyB,0BAAwB,IACnD,CACF,CACA,QACE,MAAO,CACL,GAAGA,EAAE,QAAQ,iBACf,CACJ,CACF,EACA,eAAiBA,GAAM,CACrB,GACEA,EAAE,MAAM,SAAS,SAAS,OAC1B,yBAAuB,MAEvB,MAAO,CACL,GAAGA,EAAE,QAAQ,eACb,MAAOA,EAAE,MAAM,SAAS,QAAQ,MAAM,YAAY,CACpD,EACK,GACLA,EAAE,MAAM,SAAS,SAAS,OAC1B,yBAAuB,OACvB,CACA,MACE,2BAAwBA,EAAE,MAAM,SAAS,QAAQ,OAAO,EAExD,MAAO,CACL,GAAGA,EAAE,QAAQ,eACb,cAAeA,EAAE,MAAM,SAAS,QAAQ,QAAQ,IAC7CG,IAAS,CACR,KAAMA,EAAI,KACV,KAAMA,EAAI,KACV,SAAUA,EAAI,cAChB,EACF,CACF,EAEF,MAAM,IAAI,MACR,kBAAkB,KAAK,UAAUH,EAAE,MAAM,SAAS,QAAQ,OAAO,CAAC,EACpE,CACF,CACA,MAAO,CAAE,GAAGA,EAAE,QAAQ,cAAe,CACvC,CACF,CAAC,CACH,EACA,OAAQ,CACN,OAAQ,eACV,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,SAAU,CACR,QAAM,UAAO,CACX,kBAAmB,CACjB,wBAAyB,0BAAwB,IACnD,CACF,CAAC,EACD,OAAQ,CACN,GAAI,WACJ,IAAK,WACL,MAAQA,IAAO,CACb,cAAeA,EAAE,QAAQ,MAAM,aACjC,GACA,WAAY,CACV,WAAS,UAAO,CACd,kBAAoBA,GAClBA,EAAE,MAAM,SAAS,QAAQ,iBAC7B,CAAC,CACH,EACA,OAAQ,CACN,OAAQ,gBACR,WAAS,UAAO,CACd,eAAiBA,GACXA,EAAE,MAAM,OAAO,OAAO,EACjB,CACL,GAAGA,EAAE,QAAQ,eACb,MAAOA,EAAE,MAAM,OAAO,QAAQ,CAChC,EAEO,CACL,GAAGA,EAAE,QAAQ,eACb,cAAeA,EAAE,MAAM,OACpB,aAAa,EACb,IAAKG,IAAS,CACb,KAAMA,EAAI,QACV,KAAMA,EAAI,YACV,SAAUA,EAAI,WAChB,EAAE,CACN,CAGN,CAAC,CACH,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,cAAe,CACb,OAAQ,CACN,CACE,OAAQ,QACR,MAAO,UACT,EACA,CACE,OAAQ,yBACV,CACF,CACF,EACA,wBAAyB,CACvB,OAAQ,CACN,IAAK,0BACL,MAAQH,IAAO,CACb,cAAeA,EAAE,QAAQ,eAAe,cACxC,SAAUA,EAAE,QAAQ,eAAe,SACnC,gBAAiBA,EAAE,QAAQ,eAAe,gBAC1C,cAAeA,EAAE,QAAQ,eAAe,aAC1C,GACA,OAAQ,CACN,OAAQ,qCACR,WAAS,UAAO,CACd,eAAiBA,GAAM,CACrB,MAAI,0BAAuBA,EAAE,MAAM,MAAM,EAAG,CAC1C,MAAME,EAAcX,EAAY,sBAAsB,EACtD,OACEW,EAAY,mBACZ,yBAAuB,WAEvBX,EAAY,sBAAsB,CAChC,GAAGW,EACH,cAAeF,EAAE,MAAM,OAAO,KAAK,aACnC,YAAaA,EAAE,MAAM,OAAO,KAAK,oBACjC,mBACEA,EAAE,MAAM,OAAO,KAAK,mBACtB,QAASA,EAAE,MAAM,OAAO,KAAK,OAC/B,CAAC,EAEI,CACL,GAAGA,EAAE,QAAQ,eACb,aAAcA,EAAE,MAAM,OAAO,KAAK,aAClC,oBACEA,EAAE,MAAM,OAAO,KAAK,oBACtB,mBACEA,EAAE,MAAM,OAAO,KAAK,mBACtB,QAASA,EAAE,MAAM,OAAO,KAAK,OAC/B,CACF,CACA,MAAO,CACL,GAAGA,EAAE,QAAQ,eACb,MAAOA,EAAE,MAAM,OAAO,KACxB,CACF,CACF,CAAC,CACH,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,mCAAoC,CAClC,OAAQ,CACN,CACE,MAAO,WACP,OAAQ,OACV,EACA,CACE,OAAQ,SACV,CACF,CACF,EACA,QAAS,CACP,KAAM,OACR,EACA,MAAO,CACL,KAAM,OACR,CACF,EACA,OAASI,GAAS,CAChB,KAAM,CAAE,QAAAL,CAAQ,EAAIK,EACd,CACJ,MAAAH,EACA,gBAAAI,EACA,sBAAAC,EACA,YAAAC,EACA,aAAAC,EACA,oBAAAC,EACA,mBAAAC,EACA,QAAAC,CACF,EAAIZ,EAAQ,eACZ,OAAIE,KACK,QAAKA,CAAK,KAEZ,SAAM,CACX,gBAAiBI,EACjB,sBAAuBC,EACvB,YAAaC,EACb,aAAcC,EACd,oBAAqBC,EACrB,mBAAoBC,EACpB,QAASC,CACX,CAAC,CACH,CACF,CAAC,CACH,CAEA,oBAAoBpB,EAA+C,CA2DjE,MAAO,CACL,kBA3DwB,IAAM,CAC9B,MAAMW,EAAcX,EAAY,sBAAsB,EACtD,OACEW,EAAY,mBAAqB,yBAAuB,WACxDA,EAAY,iBAAiB,WAAa,QAC1CA,EAAY,wBAA0B,QACtCA,EAAY,cAAgB,QAC5BA,EAAY,cAAc,SAAW,GACrCA,EAAY,cAAgB,QAC5BA,EAAY,qBAAuB,QACnCA,EAAY,UAAY,OAEjB,QAAQ,QAAQ,IAAI,EAEtB,QAAQ,QAAQ,CACrB,gBAAiBA,EAAY,gBAC7B,sBAAuBA,EAAY,sBACnC,YAAaA,EAAY,YACzB,aAAcA,EAAY,cAC1B,oBAAqBA,EAAY,YACjC,mBAAoBA,EAAY,mBAChC,QAASA,EAAY,OACvB,CAAC,CACH,EAqCE,oBAnC0B,SAC1B,IAAI,0BAAwBX,CAAW,EAAE,IAAI,EAmC7C,wBAjC8B,MAAOqB,GAQrC,IAAI,8BAA4BrB,EAAa,CAC3C,cAAeqB,EAAK,MAAM,cAC1B,SAAUA,EAAK,MAAM,SACrB,gBAAiBA,EAAK,MAAM,gBAC5B,cAAeA,EAAK,MAAM,aAC5B,CAAC,EAAE,IAAI,EAqBP,sBAnB6BA,GAKzB,CACJ,KAAM,CAAE,SAAAC,EAAU,gBAAAR,CAAgB,EAAIO,EAAK,MACrCE,EAAavB,EAChB,wBAAwB,EACxB,kBAAkBc,EAAgB,SAAWQ,CAAQ,EACxD,OAAO,IAAI,6BAA2BtB,EAAa,CACjD,WAAAuB,CACF,CAAC,EAAE,IAAI,CACT,CAOA,CACF,CACF",
4
+ "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { type Observable } from \"rxjs\";\nimport { assign, fromObservable, fromPromise, setup } from \"xstate\";\n\nimport { isSuccessCommandResult } from \"@api/command/model/CommandResult\";\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 { ListAppsDeviceAction } from \"@api/device-action/os/ListApps/ListAppsDeviceAction\";\nimport {\n GetApplicationsMetadataTask,\n type GetApplicationsMetadataTaskResult,\n type InstalledApp,\n} from \"@api/device-action/task/GetApplicationsMetadataTask\";\nimport {\n GetFirmwareMetadataTask,\n type GetFirmwareMetadataTaskResult,\n} from \"@api/device-action/task/GetFirmwareMetadataTask\";\nimport { type StateMachineTypes } from \"@api/device-action/xstate-utils/StateMachineTypes\";\nimport {\n type DeviceActionStateMachine,\n XStateDeviceAction,\n} from \"@api/device-action/xstate-utils/XStateDeviceAction\";\nimport {\n type Catalog,\n type CustomImage,\n DeviceSessionStateType,\n type FirmwareUpdateContext,\n type FirmwareVersion,\n type InstalledLanguagePackage,\n} from \"@api/device-session/DeviceSessionState\";\nimport { installedAppResultGuard } from \"@api/secure-channel/device-action/ListInstalledApps/types\";\nimport { ConnectToSecureChannelTask } from \"@api/secure-channel/task/ConnectToSecureChannelTask\";\nimport { SecureChannelEventType } from \"@api/secure-channel/task/types\";\nimport { type SecureChannelEvent } from \"@api/secure-channel/task/types\";\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport { type FinalFirmware } from \"@internal/manager-api/model/Firmware\";\n\nimport {\n type GetDeviceMetadataDAError,\n type GetDeviceMetadataDAInput,\n type GetDeviceMetadataDAIntermediateValue,\n type GetDeviceMetadataDAOutput,\n getDeviceMetadataDAStateStep,\n} from \"./types\";\n\ntype GetDeviceMetadataMachineInternalState = {\n readonly error: GetDeviceMetadataDAError | null;\n readonly deviceVersion: DeviceVersion | null;\n readonly firmware: FinalFirmware | null;\n readonly firmwareVersion: FirmwareVersion | null;\n readonly firmwareUpdateContext: FirmwareUpdateContext | null;\n readonly customImage: CustomImage | null;\n readonly installedApps: InstalledApp[] | null;\n readonly applications: Application[] | null;\n readonly applicationsUpdates: Application[] | null;\n readonly installedLanguages: InstalledLanguagePackage[] | null;\n readonly catalog: Catalog | null;\n};\n\nexport type GetDeviceMetadataFromContextTaskResult = {\n readonly firmwareVersion: FirmwareVersion;\n readonly firmwareUpdateContext: FirmwareUpdateContext;\n readonly customImage: CustomImage;\n readonly applications: Application[];\n readonly applicationsUpdates: Application[];\n readonly installedLanguages: InstalledLanguagePackage[];\n readonly catalog: Catalog;\n} | null;\n\nexport type MachineDependencies = {\n readonly getDeviceMetadata: () => Promise<GetDeviceMetadataFromContextTaskResult>;\n readonly getFirmwareMetadata: () => Promise<GetFirmwareMetadataTaskResult>;\n readonly getApplicationsMetadata: (arg0: {\n input: {\n deviceVersion: DeviceVersion;\n firmware: FinalFirmware;\n firmwareVersion: FirmwareVersion;\n installedApps: InstalledApp[];\n };\n }) => Promise<GetApplicationsMetadataTaskResult>;\n readonly listAppsSecureChannel: (arg0: {\n input: {\n firmware: FinalFirmware;\n firmwareVersion: FirmwareVersion;\n };\n }) => Observable<SecureChannelEvent>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class GetDeviceMetadataDeviceAction extends XStateDeviceAction<\n GetDeviceMetadataDAOutput,\n GetDeviceMetadataDAInput,\n GetDeviceMetadataDAError,\n GetDeviceMetadataDAIntermediateValue,\n GetDeviceMetadataMachineInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n GetDeviceMetadataDAOutput,\n GetDeviceMetadataDAInput,\n GetDeviceMetadataDAError,\n GetDeviceMetadataDAIntermediateValue,\n GetDeviceMetadataMachineInternalState\n > {\n type types = StateMachineTypes<\n GetDeviceMetadataDAOutput,\n GetDeviceMetadataDAInput,\n GetDeviceMetadataDAError,\n GetDeviceMetadataDAIntermediateValue,\n GetDeviceMetadataMachineInternalState\n >;\n\n const {\n getDeviceMetadata,\n getFirmwareMetadata,\n getApplicationsMetadata,\n listAppsSecureChannel,\n } = 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 const listAppsMachine = new ListAppsDeviceAction({\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 goToDashboard: goToDashboardMachine,\n getDeviceMetadata: fromPromise(getDeviceMetadata),\n getFirmwareMetadata: fromPromise(getFirmwareMetadata),\n getApplicationsMetadata: fromPromise(getApplicationsMetadata),\n listApps: listAppsMachine,\n listAppsSecureChannel: fromObservable(listAppsSecureChannel),\n },\n guards: {\n hasError: ({ context }) => context._internalState.error !== null,\n hasMetadata: ({ context }) =>\n context._internalState.firmwareVersion !== null &&\n context._internalState.firmwareUpdateContext !== null &&\n context._internalState.customImage !== null &&\n context._internalState.applications !== null &&\n context._internalState.applicationsUpdates !== null &&\n context._internalState.installedLanguages !== null &&\n context._internalState.catalog !== null,\n forceUpdate: ({ context }) => Boolean(context.input.forceUpdate),\n useSecureChannel: ({ context }) =>\n Boolean(context.input.useSecureChannel),\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n id: \"GetDeviceMetadataDeviceAction\",\n initial: \"DeviceReady\",\n context: (_) => {\n return {\n input: {\n useSecureChannel: _.input.useSecureChannel,\n forceUpdate: _.input.forceUpdate,\n unlockTimeout: _.input.unlockTimeout,\n },\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceMetadataDAStateStep.GET_DEVICE_METADATA,\n },\n _internalState: {\n error: null,\n deviceVersion: null,\n firmware: null,\n firmwareVersion: null,\n firmwareUpdateContext: null,\n customImage: null,\n installedApps: null,\n applications: null,\n applicationsUpdates: null,\n installedLanguages: null,\n catalog: null,\n },\n };\n },\n states: {\n DeviceReady: {\n always: [\n {\n target: \"GoToDashboard\",\n guard: \"forceUpdate\",\n },\n {\n target: \"GetDeviceMetadataFromContext\",\n },\n ],\n },\n GetDeviceMetadataFromContext: {\n invoke: {\n src: \"getDeviceMetadata\",\n onDone: {\n target: \"GetDeviceMetadataFromContextResultCheck\",\n actions: assign({\n _internalState: (_) => {\n if (_.event.output === null) {\n return _.context._internalState;\n } else {\n return {\n ..._.context._internalState,\n firmwareVersion: _.event.output.firmwareVersion,\n firmwareUpdateContext:\n _.event.output.firmwareUpdateContext,\n customImage: _.event.output.customImage,\n applications: _.event.output.applications,\n applicationsUpdates: _.event.output.applicationsUpdates,\n installedLanguages: _.event.output.installedLanguages,\n catalog: _.event.output.catalog,\n };\n }\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GetDeviceMetadataFromContextResultCheck: {\n always: [\n {\n target: \"Success\",\n guard: \"hasMetadata\",\n },\n {\n target: \"GoToDashboard\",\n },\n ],\n },\n GoToDashboard: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceMetadataDAStateStep.GO_TO_DASHBOARD,\n },\n }),\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({\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: \"GetFirmwareMetadata\",\n },\n ],\n },\n GetFirmwareMetadata: {\n invoke: {\n src: \"getFirmwareMetadata\",\n onDone: {\n target: \"GetFirmwareMetadataResultCheck\",\n actions: assign({\n _internalState: (_) => {\n if (isSuccessCommandResult(_.event.output)) {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n internalApi.setDeviceSessionState({\n ...deviceState,\n firmwareVersion: _.event.output.data.firmwareVersion,\n firmwareUpdateContext:\n _.event.output.data.firmwareUpdateContext,\n customImage: _.event.output.data.customImage,\n });\n }\n return {\n ..._.context._internalState,\n deviceVersion: _.event.output.data.deviceVersion,\n firmware: _.event.output.data.firmware,\n firmwareVersion: _.event.output.data.firmwareVersion,\n firmwareUpdateContext:\n _.event.output.data.firmwareUpdateContext,\n customImage: _.event.output.data.customImage,\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 GetFirmwareMetadataResultCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n guard: \"useSecureChannel\",\n target: \"ListAppsSecureChannel\",\n },\n {\n target: \"ListApps\",\n },\n ],\n },\n ListAppsSecureChannel: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceMetadataDAStateStep.LIST_APPS_SECURE_CHANNEL,\n },\n }),\n invoke: {\n id: \"listAppsSecureChannel\",\n src: \"listAppsSecureChannel\",\n input: (_) => ({\n firmware: _.context._internalState.firmware!,\n firmwareVersion: _.context._internalState.firmwareVersion!,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => {\n switch (_.event.snapshot.context?.type) {\n case SecureChannelEventType.DeviceId: {\n return {\n ..._.context.intermediateValue,\n deviceId: _.event.snapshot.context.payload.deviceId,\n };\n }\n case SecureChannelEventType.PermissionRequested: {\n return {\n ..._.context.intermediateValue,\n requiredUserInteraction:\n UserInteractionRequired.AllowSecureConnection,\n };\n }\n case SecureChannelEventType.PermissionGranted: {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n internalApi.setDeviceSessionState({\n ...deviceState,\n isSecureConnectionAllowed: true,\n });\n }\n return {\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n };\n }\n default:\n return {\n ..._.context.intermediateValue,\n };\n }\n },\n _internalState: (_) => {\n if (\n _.event.snapshot.context?.type ===\n SecureChannelEventType.Error\n ) {\n return {\n ..._.context._internalState,\n error: _.event.snapshot.context.error.mapDAErrors(),\n };\n } else if (\n _.event.snapshot.context?.type ===\n SecureChannelEventType.Result\n ) {\n if (\n installedAppResultGuard(_.event.snapshot.context.payload)\n ) {\n return {\n ..._.context._internalState,\n installedApps: _.event.snapshot.context.payload.map(\n (app) => ({\n name: app.name,\n hash: app.hash,\n hashCode: app.hash_code_data,\n }),\n ),\n };\n }\n throw new Error(\n `Invalid result ${JSON.stringify(_.event.snapshot.context.payload)}`,\n );\n }\n return { ..._.context._internalState };\n },\n }),\n },\n onDone: {\n target: \"ListAppsCheck\",\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n ListApps: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceMetadataDAStateStep.LIST_APPS,\n },\n }),\n invoke: {\n id: \"listApps\",\n src: \"listApps\",\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: \"ListAppsCheck\",\n actions: assign({\n _internalState: (_) => {\n if (_.event.output.isLeft()) {\n return {\n ..._.context._internalState,\n error: _.event.output.extract(),\n };\n } else {\n return {\n ..._.context._internalState,\n installedApps: _.event.output\n .unsafeCoerce()\n .map((app) => ({\n name: app.appName,\n hash: app.appFullHash,\n hashCode: app.appCodeHash,\n })),\n };\n }\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 {\n target: \"GetApplicationsMetadata\",\n },\n ],\n },\n GetApplicationsMetadata: {\n invoke: {\n src: \"getApplicationsMetadata\",\n input: (_) => ({\n deviceVersion: _.context._internalState.deviceVersion!,\n firmware: _.context._internalState.firmware!,\n firmwareVersion: _.context._internalState.firmwareVersion!,\n installedApps: _.context._internalState.installedApps!,\n }),\n onDone: {\n target: \"GetApplicationsMetadataResultCheck\",\n actions: assign({\n _internalState: (_) => {\n if (isSuccessCommandResult(_.event.output)) {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n internalApi.setDeviceSessionState({\n ...deviceState,\n installedApps: _.event.output.data.applications,\n appsUpdates: _.event.output.data.applicationsUpdates,\n installedLanguages:\n _.event.output.data.installedLanguages,\n catalog: _.event.output.data.catalog,\n });\n }\n return {\n ..._.context._internalState,\n applications: _.event.output.data.applications,\n applicationsUpdates:\n _.event.output.data.applicationsUpdates,\n installedLanguages:\n _.event.output.data.installedLanguages,\n catalog: _.event.output.data.catalog,\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 GetApplicationsMetadataResultCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"Success\",\n },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: (args) => {\n const { context } = args;\n const {\n error,\n firmwareVersion,\n firmwareUpdateContext,\n customImage,\n applications,\n applicationsUpdates,\n installedLanguages,\n catalog,\n } = context._internalState;\n if (error) {\n return Left(error);\n }\n return Right({\n firmwareVersion: firmwareVersion!,\n firmwareUpdateContext: firmwareUpdateContext!,\n customImage: customImage!,\n applications: applications!,\n applicationsUpdates: applicationsUpdates!,\n installedLanguages: installedLanguages!,\n catalog: catalog!,\n });\n },\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const getDeviceMetadata = () => {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType === DeviceSessionStateType.Connected ||\n deviceState.firmwareVersion?.metadata === undefined ||\n deviceState.firmwareUpdateContext === undefined ||\n deviceState.customImage === undefined ||\n deviceState.installedApps.length === 0 ||\n deviceState.appsUpdates === undefined ||\n deviceState.installedLanguages === undefined ||\n deviceState.catalog === undefined\n ) {\n return Promise.resolve(null);\n }\n return Promise.resolve({\n firmwareVersion: deviceState.firmwareVersion,\n firmwareUpdateContext: deviceState.firmwareUpdateContext,\n customImage: deviceState.customImage,\n applications: deviceState.installedApps,\n applicationsUpdates: deviceState.appsUpdates,\n installedLanguages: deviceState.installedLanguages,\n catalog: deviceState.catalog,\n });\n };\n\n const getFirmwareMetadata = async () =>\n new GetFirmwareMetadataTask(internalApi).run();\n\n const getApplicationsMetadata = async (arg0: {\n input: {\n deviceVersion: DeviceVersion;\n firmware: FinalFirmware;\n firmwareVersion: FirmwareVersion;\n installedApps: InstalledApp[];\n };\n }) =>\n new GetApplicationsMetadataTask(internalApi, {\n deviceVersion: arg0.input.deviceVersion,\n firmware: arg0.input.firmware,\n firmwareVersion: arg0.input.firmwareVersion,\n installedApps: arg0.input.installedApps,\n }).run();\n\n const listAppsSecureChannel = (arg0: {\n input: {\n firmware: FinalFirmware;\n firmwareVersion: FirmwareVersion;\n };\n }) => {\n const { firmware, firmwareVersion } = arg0.input;\n const connection = internalApi\n .getSecureChannelService()\n .listInstalledApps(firmwareVersion.metadata!, firmware);\n return new ConnectToSecureChannelTask(internalApi, {\n connection,\n }).run();\n };\n\n return {\n getDeviceMetadata,\n getFirmwareMetadata,\n getApplicationsMetadata,\n listAppsSecureChannel,\n };\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["GetDeviceMetadataDeviceAction_exports", "__export", "GetDeviceMetadataDeviceAction", "__toCommonJS", "import_purify_ts", "import_xstate", "import_CommandResult", "import_UserInteractionRequired", "import_Const", "import_GoToDashboardDeviceAction", "import_ListAppsDeviceAction", "import_GetApplicationsMetadataTask", "import_GetFirmwareMetadataTask", "import_XStateDeviceAction", "import_DeviceSessionState", "import_types", "import_ConnectToSecureChannelTask", "internalApi", "getDeviceMetadata", "getFirmwareMetadata", "getApplicationsMetadata", "listAppsSecureChannel", "unlockTimeout", "goToDashboardMachine", "listAppsMachine", "context", "_", "error", "deviceState", "app", "args", "firmwareVersion", "firmwareUpdateContext", "customImage", "applications", "applicationsUpdates", "installedLanguages", "catalog", "arg0", "firmware", "connection"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var P=require("rxjs"),u=require("../../../command/model/CommandResult"),C=require("../../../device/DeviceStatus"),R=require("../../../device-action/__test-utils__/data"),h=require("../../../device-action/__test-utils__/makeInternalApi"),A=require("../../../device-action/__test-utils__/setupTestMachine"),q=require("../../../device-action/__test-utils__/setupTestMachine"),l=require("../../../device-action/__test-utils__/testDeviceActionStates"),e=require("../../../device-action/model/DeviceActionState"),t=require("../../../device-action/model/UserInteractionRequired"),N=require("../../../device-action/os/Errors"),E=require("../../../device-session/DeviceSessionState"),y=require("../../../Error"),k=require("../../../secure-channel/task/types"),m=require("./GetDeviceMetadataDeviceAction");vi.mock("@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction");vi.mock("@api/device-action/os/ListApps/ListAppsDeviceAction");describe("GetDeviceMetadataDeviceAction",()=>{const c=(0,h.makeDeviceActionInternalApiMock)(),w=vi.fn(),I=vi.fn(),S=vi.fn(),x=vi.fn(),f="device_version",D="firmware",o="firmware_version",s="fm_update",d="image",p="apps",g="apps_update",V="lang",v="catalog";function U(){return{getDeviceMetadata:w,getFirmwareMetadata:I,getApplicationsMetadata:S,listAppsSecureChannel:x}}beforeEach(()=>{vi.clearAllMocks(),c.getDeviceSessionState.mockReturnValue({sessionStateType:E.DeviceSessionStateType.Connected,deviceStatus:C.DeviceStatus.CONNECTED})}),describe("success cases",()=>{it("get metadata from device state",()=>new Promise((n,r)=>{const a=new m.GetDeviceMetadataDeviceAction({input:{}});w.mockResolvedValueOnce({firmwareVersion:o,firmwareUpdateContext:s,customImage:d,applications:p,applicationsUpdates:g,installedLanguages:V,catalog:v}),vi.spyOn(a,"extractDependencies").mockReturnValue(U());const i=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{output:{firmwareVersion:o,firmwareUpdateContext:s,customImage:d,applications:p,applicationsUpdates:g,installedLanguages:V,catalog:v},status:e.DeviceActionStatus.Completed}];(0,l.testDeviceActionStates)(a,i,c,{onDone:n,onError:r})})),it("fetch metadata without secure channel",()=>new Promise((n,r)=>{(0,A.setupGoToDashboardMock)(),(0,q.setupListAppsMock)([R.BTC_APP]);const a=new m.GetDeviceMetadataDeviceAction({input:{}});w.mockResolvedValueOnce(null),I.mockResolvedValueOnce((0,u.CommandResultFactory)({data:{deviceVersion:f,firmware:D,firmwareVersion:o,firmwareUpdateContext:s,customImage:d}})),S.mockResolvedValueOnce((0,u.CommandResultFactory)({data:{applications:p,applicationsUpdates:g,installedLanguages:V,catalog:v}})),vi.spyOn(a,"extractDependencies").mockReturnValue(U());const i=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.AllowListApps},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{output:{firmwareVersion:o,firmwareUpdateContext:s,customImage:d,applications:p,applicationsUpdates:g,installedLanguages:V,catalog:v},status:e.DeviceActionStatus.Completed}];(0,l.testDeviceActionStates)(a,i,c,{onDone:n,onError:r})})),it("fetch metadata with forced update",()=>new Promise((n,r)=>{(0,A.setupGoToDashboardMock)(),(0,q.setupListAppsMock)([R.BTC_APP]);const a=new m.GetDeviceMetadataDeviceAction({input:{forceUpdate:!0}});I.mockResolvedValueOnce((0,u.CommandResultFactory)({data:{deviceVersion:f,firmware:D,firmwareVersion:o,firmwareUpdateContext:s,customImage:d}})),S.mockResolvedValueOnce((0,u.CommandResultFactory)({data:{applications:p,applicationsUpdates:g,installedLanguages:V,catalog:v}})),vi.spyOn(a,"extractDependencies").mockReturnValue(U());const i=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.AllowListApps},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{output:{firmwareVersion:o,firmwareUpdateContext:s,customImage:d,applications:p,applicationsUpdates:g,installedLanguages:V,catalog:v},status:e.DeviceActionStatus.Completed}];(0,l.testDeviceActionStates)(a,i,c,{onDone:n,onError:r})})),it("fetch metadata with secure channel",()=>new Promise((n,r)=>{(0,A.setupGoToDashboardMock)();const a=new m.GetDeviceMetadataDeviceAction({input:{useSecureChannel:!0}});w.mockResolvedValueOnce(null),I.mockResolvedValueOnce((0,u.CommandResultFactory)({data:{deviceVersion:f,firmware:D,firmwareVersion:o,firmwareUpdateContext:s,customImage:d}})),x.mockReturnValue((0,P.of)({type:k.SecureChannelEventType.Exchange},{type:k.SecureChannelEventType.PermissionRequested},{type:k.SecureChannelEventType.PermissionGranted},{type:k.SecureChannelEventType.Result,payload:[{flags:123456,hash:"hash_test",hash_code_data:"hash_code_data_test",name:"Bitcoin"}]})),S.mockResolvedValueOnce((0,u.CommandResultFactory)({data:{applications:p,applicationsUpdates:g,installedLanguages:V,catalog:v}})),vi.spyOn(a,"extractDependencies").mockReturnValue(U());const i=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.AllowSecureConnection},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{output:{firmwareVersion:o,firmwareUpdateContext:s,customImage:d,applications:p,applicationsUpdates:g,installedLanguages:V,catalog:v},status:e.DeviceActionStatus.Completed}];(0,l.testDeviceActionStates)(a,i,c,{onDone:n,onError:r})})),it("get metadata from device state with external dependencies",()=>new Promise((n,r)=>{const a=new m.GetDeviceMetadataDeviceAction({input:{}});c.getDeviceSessionState.mockReturnValue({sessionStateType:E.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:C.DeviceStatus.CONNECTED,firmwareVersion:{metadata:o},firmwareUpdateContext:s,customImage:d,installedApps:[p],appsUpdates:g,installedLanguages:V,catalog:v});const i=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{output:{firmwareVersion:{metadata:o},firmwareUpdateContext:s,customImage:d,applications:[p],applicationsUpdates:g,installedLanguages:V,catalog:v},status:e.DeviceActionStatus.Completed}];(0,l.testDeviceActionStates)(a,i,c,{onDone:n,onError:r})}))}),describe("Error cases",()=>{it("error during GoToDashboard",()=>new Promise((n,r)=>{(0,A.setupGoToDashboardMock)(!0);const a=new m.GetDeviceMetadataDeviceAction({input:{}});w.mockResolvedValueOnce(null),vi.spyOn(a,"extractDependencies").mockReturnValue(U());const i=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{error:new N.UnknownDAError("GoToDashboard failed"),status:e.DeviceActionStatus.Error}];(0,l.testDeviceActionStates)(a,i,c,{onDone:n,onError:r})})),it("error during GetFirmwareMetadata",()=>new Promise((n,r)=>{(0,A.setupGoToDashboardMock)();const a=new m.GetDeviceMetadataDeviceAction({input:{}});w.mockResolvedValueOnce(null),I.mockResolvedValueOnce((0,u.CommandResultFactory)({error:new y.UnknownDeviceExchangeError("GetFirmwareMetadata failed")})),vi.spyOn(a,"extractDependencies").mockReturnValue(U());const i=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{error:new y.UnknownDeviceExchangeError("GetFirmwareMetadata failed"),status:e.DeviceActionStatus.Error}];(0,l.testDeviceActionStates)(a,i,c,{onDone:n,onError:r})})),it("error during ListApps",()=>new Promise((n,r)=>{(0,A.setupGoToDashboardMock)(),(0,q.setupListAppsMock)([],!0);const a=new m.GetDeviceMetadataDeviceAction({input:{}});w.mockResolvedValueOnce(null),I.mockResolvedValueOnce((0,u.CommandResultFactory)({data:{deviceVersion:f,firmware:D,firmwareVersion:o,firmwareUpdateContext:s,customImage:d}})),vi.spyOn(a,"extractDependencies").mockReturnValue(U());const i=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.AllowListApps},status:e.DeviceActionStatus.Pending},{error:new N.UnknownDAError("ListApps failed"),status:e.DeviceActionStatus.Error}];(0,l.testDeviceActionStates)(a,i,c,{onDone:n,onError:r})})),it("error during GetApplicationsMetadata",()=>new Promise((n,r)=>{(0,A.setupGoToDashboardMock)(),(0,q.setupListAppsMock)([R.BTC_APP]);const a=new m.GetDeviceMetadataDeviceAction({input:{}});w.mockResolvedValueOnce(null),I.mockResolvedValueOnce((0,u.CommandResultFactory)({data:{deviceVersion:f,firmware:D,firmwareVersion:o,firmwareUpdateContext:s,customImage:d}})),S.mockResolvedValueOnce((0,u.CommandResultFactory)({error:new y.UnknownDeviceExchangeError("GetApplicationsMetadata failed")})),vi.spyOn(a,"extractDependencies").mockReturnValue(U());const i=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.AllowListApps},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{error:new y.UnknownDeviceExchangeError("GetApplicationsMetadata failed"),status:e.DeviceActionStatus.Error}];(0,l.testDeviceActionStates)(a,i,c,{onDone:n,onError:r})})),it("error during ListAppsSecureChannel",()=>new Promise((n,r)=>{(0,A.setupGoToDashboardMock)();const a=new m.GetDeviceMetadataDeviceAction({input:{useSecureChannel:!0}});w.mockResolvedValueOnce(null),I.mockResolvedValueOnce((0,u.CommandResultFactory)({data:{deviceVersion:f,firmware:D,firmwareVersion:o,firmwareUpdateContext:s,customImage:d}})),x.mockReturnValue((0,P.concat)((0,P.of)({type:k.SecureChannelEventType.Exchange,payload:{data:new Uint8Array([0,1,2,3])}}),(0,P.throwError)(()=>new N.UnknownDAError("Secure channel error")))),vi.spyOn(a,"extractDependencies").mockReturnValue(U());const i=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None},status:e.DeviceActionStatus.Pending},{error:new N.UnknownDAError("Secure channel error"),status:e.DeviceActionStatus.Error}];(0,l.testDeviceActionStates)(a,i,c,{onDone:n,onError:r})}))})});
1
+ "use strict";var v=require("rxjs"),p=require("../../../command/model/CommandResult"),N=require("../../../device/DeviceStatus"),k=require("../../../device-action/__test-utils__/data"),y=require("../../../device-action/__test-utils__/makeInternalApi"),S=require("../../../device-action/__test-utils__/setupTestMachine"),f=require("../../../device-action/__test-utils__/setupTestMachine"),m=require("../../../device-action/__test-utils__/testDeviceActionStates"),e=require("../../../device-action/model/DeviceActionState"),t=require("../../../device-action/model/UserInteractionRequired"),G=require("../../../device-action/os/Errors"),_=require("../../../device-action/os/GoToDashboard/types"),C=require("../../../device-action/os/ListApps/types"),q=require("../../../device-session/DeviceSessionState"),R=require("../../../Error"),O=require("../../../secure-channel/task/types"),l=require("./GetDeviceMetadataDeviceAction"),a=require("./types");vi.mock("@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction");vi.mock("@api/device-action/os/ListApps/ListAppsDeviceAction");describe("GetDeviceMetadataDeviceAction",()=>{const u=(0,y.makeDeviceActionInternalApiMock)(),g=vi.fn(),I=vi.fn(),P=vi.fn(),M=vi.fn(),w="device_version",U="firmware",o="firmware_version",d="fm_update",c="image",A="apps",D="apps_update",V="lang",E="catalog";function T(){return{getDeviceMetadata:g,getFirmwareMetadata:I,getApplicationsMetadata:P,listAppsSecureChannel:M}}beforeEach(()=>{vi.clearAllMocks(),u.getDeviceSessionState.mockReturnValue({sessionStateType:q.DeviceSessionStateType.Connected,deviceStatus:N.DeviceStatus.CONNECTED})}),describe("success cases",()=>{it("get metadata from device state",()=>new Promise((r,i)=>{const n=new l.GetDeviceMetadataDeviceAction({input:{}});g.mockResolvedValueOnce({firmwareVersion:o,firmwareUpdateContext:d,customImage:c,applications:A,applicationsUpdates:D,installedLanguages:V,catalog:E}),vi.spyOn(n,"extractDependencies").mockReturnValue(T());const s=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{output:{firmwareVersion:o,firmwareUpdateContext:d,customImage:c,applications:A,applicationsUpdates:D,installedLanguages:V,catalog:E},status:e.DeviceActionStatus.Completed}];(0,m.testDeviceActionStates)(n,s,u,{onDone:r,onError:i})})),it("fetch metadata without secure channel",()=>new Promise((r,i)=>{(0,S.setupGoToDashboardMock)(),(0,f.setupListAppsMock)([k.BTC_APP]);const n=new l.GetDeviceMetadataDeviceAction({input:{}});g.mockResolvedValueOnce(null),I.mockResolvedValueOnce((0,p.CommandResultFactory)({data:{deviceVersion:w,firmware:U,firmwareVersion:o,firmwareUpdateContext:d,customImage:c}})),P.mockResolvedValueOnce((0,p.CommandResultFactory)({data:{applications:A,applicationsUpdates:D,installedLanguages:V,catalog:E}})),vi.spyOn(n,"extractDependencies").mockReturnValue(T());const s=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:_.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.AllowListApps,step:C.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{output:{firmwareVersion:o,firmwareUpdateContext:d,customImage:c,applications:A,applicationsUpdates:D,installedLanguages:V,catalog:E},status:e.DeviceActionStatus.Completed}];(0,m.testDeviceActionStates)(n,s,u,{onDone:r,onError:i})})),it("fetch metadata with forced update",()=>new Promise((r,i)=>{(0,S.setupGoToDashboardMock)(),(0,f.setupListAppsMock)([k.BTC_APP]);const n=new l.GetDeviceMetadataDeviceAction({input:{forceUpdate:!0}});I.mockResolvedValueOnce((0,p.CommandResultFactory)({data:{deviceVersion:w,firmware:U,firmwareVersion:o,firmwareUpdateContext:d,customImage:c}})),P.mockResolvedValueOnce((0,p.CommandResultFactory)({data:{applications:A,applicationsUpdates:D,installedLanguages:V,catalog:E}})),vi.spyOn(n,"extractDependencies").mockReturnValue(T());const s=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:_.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.AllowListApps,step:C.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{output:{firmwareVersion:o,firmwareUpdateContext:d,customImage:c,applications:A,applicationsUpdates:D,installedLanguages:V,catalog:E},status:e.DeviceActionStatus.Completed}];(0,m.testDeviceActionStates)(n,s,u,{onDone:r,onError:i})})),it("fetch metadata with secure channel",()=>new Promise((r,i)=>{(0,S.setupGoToDashboardMock)();const n=new l.GetDeviceMetadataDeviceAction({input:{useSecureChannel:!0}});g.mockResolvedValueOnce(null),I.mockResolvedValueOnce((0,p.CommandResultFactory)({data:{deviceVersion:w,firmware:U,firmwareVersion:o,firmwareUpdateContext:d,customImage:c}})),M.mockReturnValue((0,v.of)({type:O.SecureChannelEventType.Exchange},{type:O.SecureChannelEventType.PermissionRequested},{type:O.SecureChannelEventType.PermissionGranted},{type:O.SecureChannelEventType.Result,payload:[{flags:123456,hash:"hash_test",hash_code_data:"hash_code_data_test",name:"Bitcoin"}]})),P.mockResolvedValueOnce((0,p.CommandResultFactory)({data:{applications:A,applicationsUpdates:D,installedLanguages:V,catalog:E}})),vi.spyOn(n,"extractDependencies").mockReturnValue(T());const s=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:_.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.AllowSecureConnection,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.LIST_APPS_SECURE_CHANNEL},status:e.DeviceActionStatus.Pending},{output:{firmwareVersion:o,firmwareUpdateContext:d,customImage:c,applications:A,applicationsUpdates:D,installedLanguages:V,catalog:E},status:e.DeviceActionStatus.Completed}];(0,m.testDeviceActionStates)(n,s,u,{onDone:r,onError:i})})),it("get metadata from device state with external dependencies",()=>new Promise((r,i)=>{const n=new l.GetDeviceMetadataDeviceAction({input:{}});u.getDeviceSessionState.mockReturnValue({sessionStateType:q.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:N.DeviceStatus.CONNECTED,firmwareVersion:{metadata:o},firmwareUpdateContext:d,customImage:c,installedApps:[A],appsUpdates:D,installedLanguages:V,catalog:E});const s=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{output:{firmwareVersion:{metadata:o},firmwareUpdateContext:d,customImage:c,applications:[A],applicationsUpdates:D,installedLanguages:V,catalog:E},status:e.DeviceActionStatus.Completed}];(0,m.testDeviceActionStates)(n,s,u,{onDone:r,onError:i})}))}),describe("Error cases",()=>{it("error during GoToDashboard",()=>new Promise((r,i)=>{(0,S.setupGoToDashboardMock)(!0);const n=new l.GetDeviceMetadataDeviceAction({input:{}});g.mockResolvedValueOnce(null),vi.spyOn(n,"extractDependencies").mockReturnValue(T());const s=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:_.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{error:new G.UnknownDAError("GoToDashboard failed"),status:e.DeviceActionStatus.Error}];(0,m.testDeviceActionStates)(n,s,u,{onDone:r,onError:i})})),it("error during GetFirmwareMetadata",()=>new Promise((r,i)=>{(0,S.setupGoToDashboardMock)();const n=new l.GetDeviceMetadataDeviceAction({input:{}});g.mockResolvedValueOnce(null),I.mockResolvedValueOnce((0,p.CommandResultFactory)({error:new R.UnknownDeviceExchangeError("GetFirmwareMetadata failed")})),vi.spyOn(n,"extractDependencies").mockReturnValue(T());const s=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:_.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{error:new R.UnknownDeviceExchangeError("GetFirmwareMetadata failed"),status:e.DeviceActionStatus.Error}];(0,m.testDeviceActionStates)(n,s,u,{onDone:r,onError:i})})),it("error during ListApps",()=>new Promise((r,i)=>{(0,S.setupGoToDashboardMock)(),(0,f.setupListAppsMock)([],!0);const n=new l.GetDeviceMetadataDeviceAction({input:{}});g.mockResolvedValueOnce(null),I.mockResolvedValueOnce((0,p.CommandResultFactory)({data:{deviceVersion:w,firmware:U,firmwareVersion:o,firmwareUpdateContext:d,customImage:c}})),vi.spyOn(n,"extractDependencies").mockReturnValue(T());const s=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:_.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.AllowListApps,step:C.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{error:new G.UnknownDAError("ListApps failed"),status:e.DeviceActionStatus.Error}];(0,m.testDeviceActionStates)(n,s,u,{onDone:r,onError:i})})),it("error during GetApplicationsMetadata",()=>new Promise((r,i)=>{(0,S.setupGoToDashboardMock)(),(0,f.setupListAppsMock)([k.BTC_APP]);const n=new l.GetDeviceMetadataDeviceAction({input:{}});g.mockResolvedValueOnce(null),I.mockResolvedValueOnce((0,p.CommandResultFactory)({data:{deviceVersion:w,firmware:U,firmwareVersion:o,firmwareUpdateContext:d,customImage:c}})),P.mockResolvedValueOnce((0,p.CommandResultFactory)({error:new R.UnknownDeviceExchangeError("GetApplicationsMetadata failed")})),vi.spyOn(n,"extractDependencies").mockReturnValue(T());const s=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:_.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.AllowListApps,step:C.listAppsDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.LIST_APPS},status:e.DeviceActionStatus.Pending},{error:new R.UnknownDeviceExchangeError("GetApplicationsMetadata failed"),status:e.DeviceActionStatus.Error}];(0,m.testDeviceActionStates)(n,s,u,{onDone:r,onError:i})})),it("error during ListAppsSecureChannel",()=>new Promise((r,i)=>{(0,S.setupGoToDashboardMock)();const n=new l.GetDeviceMetadataDeviceAction({input:{useSecureChannel:!0}});g.mockResolvedValueOnce(null),I.mockResolvedValueOnce((0,p.CommandResultFactory)({data:{deviceVersion:w,firmware:U,firmwareVersion:o,firmwareUpdateContext:d,customImage:c}})),M.mockReturnValue((0,v.concat)((0,v.of)({type:O.SecureChannelEventType.Exchange,payload:{data:new Uint8Array([0,1,2,3])}}),(0,v.throwError)(()=>new G.UnknownDAError("Secure channel error")))),vi.spyOn(n,"extractDependencies").mockReturnValue(T());const s=[{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:_.goToDashboardDAStateStep.GET_DEVICE_STATUS},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,step:a.getDeviceMetadataDAStateStep.GO_TO_DASHBOARD},status:e.DeviceActionStatus.Pending},{error:new G.UnknownDAError("Secure channel error"),status:e.DeviceActionStatus.Error}];(0,m.testDeviceActionStates)(n,s,u,{onDone:r,onError:i})}))})});
2
2
  //# sourceMappingURL=GetDeviceMetadataDeviceAction.test.js.map