@ledgerhq/device-management-kit 0.0.0-try-to-fix-20250429171448 → 0.0.0-web-ble-29-08---20250829104351

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 (669) hide show
  1. package/lib/cjs/package.json +22 -23
  2. package/lib/cjs/src/api/DeviceManagementKit.test.js +1 -1
  3. package/lib/cjs/src/api/DeviceManagementKit.test.js.map +2 -2
  4. package/lib/cjs/src/api/DeviceManagementKitBuilder.js +1 -1
  5. package/lib/cjs/src/api/DeviceManagementKitBuilder.js.map +2 -2
  6. package/lib/cjs/src/api/DmkConfig.js +1 -1
  7. package/lib/cjs/src/api/DmkConfig.js.map +1 -1
  8. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.js +1 -1
  9. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.js.map +3 -3
  10. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.test.js +1 -1
  11. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.test.js.map +2 -2
  12. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.js +1 -1
  13. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.js.map +3 -3
  14. package/lib/cjs/src/api/command/di/commandModule.js +1 -1
  15. package/lib/cjs/src/api/command/di/commandModule.js.map +3 -3
  16. package/lib/cjs/src/api/command/di/commandModule.test.js +1 -1
  17. package/lib/cjs/src/api/command/di/commandModule.test.js.map +2 -2
  18. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.js +2 -0
  19. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.js.map +7 -0
  20. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.test.js +2 -0
  21. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.test.js.map +7 -0
  22. package/lib/cjs/src/api/command/os/GetOsVersionCommand.js +1 -1
  23. package/lib/cjs/src/api/command/os/GetOsVersionCommand.js.map +3 -3
  24. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js +1 -1
  25. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js.map +3 -3
  26. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.js +2 -0
  27. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.js.map +7 -0
  28. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.test.js +2 -0
  29. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.test.js.map +7 -0
  30. package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js +1 -1
  31. package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +2 -2
  32. package/lib/cjs/src/api/command/utils/CommandUtils.js +1 -1
  33. package/lib/cjs/src/api/command/utils/CommandUtils.js.map +2 -2
  34. package/lib/cjs/src/api/command/utils/CommandUtils.test.js +1 -1
  35. package/lib/cjs/src/api/command/utils/CommandUtils.test.js.map +2 -2
  36. package/lib/cjs/src/api/command/utils/GlobalCommandError.js +1 -1
  37. package/lib/cjs/src/api/command/utils/GlobalCommandError.js.map +2 -2
  38. package/lib/cjs/src/api/device/DeviceModel.js +1 -1
  39. package/lib/cjs/src/api/device/DeviceModel.js.map +2 -2
  40. package/lib/cjs/src/api/device-action/DeviceAction.js +1 -1
  41. package/lib/cjs/src/api/device-action/DeviceAction.js.map +1 -1
  42. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  43. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  44. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  45. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
  46. package/lib/cjs/src/api/device-action/di/deviceActionModule.js +1 -1
  47. package/lib/cjs/src/api/device-action/di/deviceActionModule.js.map +3 -3
  48. package/lib/cjs/src/api/device-action/di/deviceActionModule.test.js +1 -1
  49. package/lib/cjs/src/api/device-action/di/deviceActionModule.test.js.map +2 -2
  50. package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js +1 -1
  51. package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
  52. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js +1 -1
  53. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js.map +2 -2
  54. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +1 -1
  55. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +2 -2
  56. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js +1 -1
  57. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js.map +1 -1
  58. package/lib/cjs/src/api/device-action/os/Errors.js +1 -1
  59. package/lib/cjs/src/api/device-action/os/Errors.js.map +3 -3
  60. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +2 -0
  61. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +7 -0
  62. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js +2 -0
  63. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js.map +7 -0
  64. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js +2 -0
  65. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js.map +7 -0
  66. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  67. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +2 -2
  68. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  69. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +2 -2
  70. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js +1 -1
  71. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js.map +3 -3
  72. package/lib/cjs/src/api/device-action/os/GoToDashboard/types.js +1 -1
  73. package/lib/cjs/src/api/device-action/os/GoToDashboard/types.js.map +1 -1
  74. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +2 -0
  75. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +7 -0
  76. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js +2 -0
  77. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js.map +7 -0
  78. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js +2 -0
  79. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js.map +7 -0
  80. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.js +1 -1
  81. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.js.map +2 -2
  82. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js +1 -1
  83. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js.map +3 -3
  84. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  85. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +2 -2
  86. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/types.js +1 -1
  87. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/types.js.map +1 -1
  88. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +2 -0
  89. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +7 -0
  90. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js +2 -0
  91. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js.map +7 -0
  92. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js +2 -0
  93. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js.map +7 -0
  94. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
  95. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +2 -2
  96. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  97. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +2 -2
  98. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js +1 -1
  99. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js.map +1 -1
  100. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.js +2 -0
  101. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.js.map +7 -0
  102. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +2 -0
  103. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +7 -0
  104. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.js +2 -0
  105. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.js.map +7 -0
  106. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.test.js +2 -0
  107. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.test.js.map +7 -0
  108. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.js +2 -0
  109. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.js.map +7 -0
  110. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js +2 -0
  111. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +7 -0
  112. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.js +2 -0
  113. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.js.map +7 -0
  114. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.test.js +2 -0
  115. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.test.js.map +7 -0
  116. package/lib/cjs/src/api/device-action/xstate-utils/XStateDeviceAction.js +1 -1
  117. package/lib/cjs/src/api/device-action/xstate-utils/XStateDeviceAction.js.map +2 -2
  118. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.js +1 -1
  119. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.js.map +2 -2
  120. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.test.js +1 -1
  121. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.test.js.map +2 -2
  122. package/lib/cjs/src/api/device-model/model/DeviceModel.js +1 -1
  123. package/lib/cjs/src/api/device-model/model/DeviceModel.js.map +2 -2
  124. package/lib/cjs/src/api/device-model/model/DeviceModel.stub.js +1 -1
  125. package/lib/cjs/src/api/device-model/model/DeviceModel.stub.js.map +2 -2
  126. package/lib/cjs/src/api/device-session/DeviceSessionState.js +1 -1
  127. package/lib/cjs/src/api/device-session/DeviceSessionState.js.map +2 -2
  128. package/lib/cjs/src/api/index.js +1 -1
  129. package/lib/cjs/src/api/index.js.map +3 -3
  130. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js +1 -1
  131. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +2 -2
  132. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/types.js.map +1 -1
  133. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +1 -1
  134. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +3 -3
  135. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/types.js +1 -1
  136. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/types.js.map +1 -1
  137. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js +1 -1
  138. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +2 -2
  139. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js +1 -1
  140. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +2 -2
  141. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +1 -1
  142. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +3 -3
  143. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/types.js +1 -1
  144. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/types.js.map +1 -1
  145. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js +1 -1
  146. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +3 -3
  147. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +1 -1
  148. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +3 -3
  149. package/lib/cjs/src/api/secure-channel/task/types.js +1 -1
  150. package/lib/cjs/src/api/secure-channel/task/types.js.map +2 -2
  151. package/lib/cjs/src/api/secure-channel/utils.js +1 -1
  152. package/lib/cjs/src/api/secure-channel/utils.js.map +3 -3
  153. package/lib/cjs/src/api/secure-channel/utils.test.js +1 -1
  154. package/lib/cjs/src/api/secure-channel/utils.test.js.map +3 -3
  155. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js +1 -1
  156. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js.map +3 -3
  157. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.test.js +2 -0
  158. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.test.js.map +7 -0
  159. package/lib/cjs/src/api/transport/model/Errors.js +1 -1
  160. package/lib/cjs/src/api/transport/model/Errors.js.map +3 -3
  161. package/lib/cjs/src/api/types.js +1 -1
  162. package/lib/cjs/src/api/types.js.map +1 -1
  163. package/lib/cjs/src/api/utils/AppName.js +2 -0
  164. package/lib/cjs/src/api/utils/AppName.js.map +7 -0
  165. package/lib/cjs/src/api/utils/AppName.test.js +2 -0
  166. package/lib/cjs/src/api/utils/AppName.test.js.map +7 -0
  167. package/lib/cjs/src/di.js +1 -1
  168. package/lib/cjs/src/di.js.map +2 -2
  169. package/lib/cjs/src/internal/config/di/configModule.js +1 -1
  170. package/lib/cjs/src/internal/config/di/configModule.js.map +3 -3
  171. package/lib/cjs/src/internal/config/di/configModule.test.js +1 -1
  172. package/lib/cjs/src/internal/config/di/configModule.test.js.map +2 -2
  173. package/lib/cjs/src/internal/device-model/di/deviceModelModule.js +1 -1
  174. package/lib/cjs/src/internal/device-model/di/deviceModelModule.js.map +3 -3
  175. package/lib/cjs/src/internal/device-model/di/deviceModelModule.test.js +1 -1
  176. package/lib/cjs/src/internal/device-model/di/deviceModelModule.test.js.map +2 -2
  177. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.js +1 -1
  178. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.js.map +3 -3
  179. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.test.js +1 -1
  180. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.test.js.map +2 -2
  181. package/lib/cjs/src/internal/device-session/model/DeviceSession.js +1 -1
  182. package/lib/cjs/src/internal/device-session/model/DeviceSession.js.map +2 -2
  183. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.js +1 -1
  184. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.js.map +3 -3
  185. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js +1 -1
  186. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +2 -2
  187. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.js +1 -1
  188. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.js.map +2 -2
  189. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.test.js +1 -1
  190. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.test.js.map +2 -2
  191. package/lib/cjs/src/internal/discovery/di/discoveryModule.js +1 -1
  192. package/lib/cjs/src/internal/discovery/di/discoveryModule.js.map +3 -3
  193. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js +1 -1
  194. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js.map +2 -2
  195. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
  196. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +2 -2
  197. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.js +1 -1
  198. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.js.map +3 -3
  199. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +1 -1
  200. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +3 -3
  201. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.js +1 -1
  202. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.js.map +3 -3
  203. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.test.js +1 -1
  204. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.test.js.map +2 -2
  205. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
  206. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.js.map +3 -3
  207. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
  208. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +3 -3
  209. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js +1 -1
  210. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js.map +1 -1
  211. package/lib/cjs/src/internal/manager-api/data/ManagerApiDto.js +1 -1
  212. package/lib/cjs/src/internal/manager-api/data/ManagerApiDto.js.map +1 -1
  213. package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
  214. package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
  215. package/lib/cjs/src/internal/manager-api/di/managerApiModule.js +1 -1
  216. package/lib/cjs/src/internal/manager-api/di/managerApiModule.js.map +3 -3
  217. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js +1 -1
  218. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
  219. package/lib/cjs/src/internal/manager-api/model/Application.js +1 -1
  220. package/lib/cjs/src/internal/manager-api/model/Application.js.map +1 -1
  221. package/lib/cjs/src/internal/manager-api/model/Const.js +1 -1
  222. package/lib/cjs/src/internal/manager-api/model/Const.js.map +3 -3
  223. package/lib/cjs/src/internal/manager-api/model/Firmware.js +1 -1
  224. package/lib/cjs/src/internal/manager-api/model/Firmware.js.map +1 -1
  225. package/lib/cjs/src/internal/manager-api/model/Language.js +2 -0
  226. package/lib/cjs/src/internal/manager-api/model/Language.js.map +7 -0
  227. package/lib/cjs/src/internal/manager-api/model/Params.js +1 -1
  228. package/lib/cjs/src/internal/manager-api/model/Params.js.map +1 -1
  229. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  230. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js.map +3 -3
  231. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  232. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  233. package/lib/cjs/src/internal/manager-api/service/ManagerApiService.js +1 -1
  234. package/lib/cjs/src/internal/manager-api/service/ManagerApiService.js.map +1 -1
  235. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.js +1 -1
  236. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.js.map +3 -3
  237. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.test.js +1 -1
  238. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.test.js.map +3 -3
  239. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.js +1 -1
  240. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.js.map +3 -3
  241. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js +1 -1
  242. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js.map +2 -2
  243. package/lib/cjs/src/internal/secure-channel/model/Errors.js +1 -1
  244. package/lib/cjs/src/internal/secure-channel/model/Errors.js.map +3 -3
  245. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js +1 -1
  246. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +3 -3
  247. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +1 -1
  248. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +3 -3
  249. package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js +1 -1
  250. package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js.map +1 -1
  251. package/lib/cjs/src/internal/send/di/sendModule.js +1 -1
  252. package/lib/cjs/src/internal/send/di/sendModule.js.map +3 -3
  253. package/lib/cjs/src/internal/send/di/sendModule.test.js +1 -1
  254. package/lib/cjs/src/internal/send/di/sendModule.test.js.map +2 -2
  255. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.js +1 -1
  256. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.js.map +3 -3
  257. package/lib/cjs/src/internal/transport/di/transportModule.js +1 -1
  258. package/lib/cjs/src/internal/transport/di/transportModule.js.map +3 -3
  259. package/lib/cjs/src/internal/transport/di/transportModule.test.js +1 -1
  260. package/lib/cjs/src/internal/transport/di/transportModule.test.js.map +2 -2
  261. package/lib/esm/package.json +22 -23
  262. package/lib/esm/src/api/DeviceManagementKit.test.js +1 -1
  263. package/lib/esm/src/api/DeviceManagementKit.test.js.map +2 -2
  264. package/lib/esm/src/api/DeviceManagementKitBuilder.js +1 -1
  265. package/lib/esm/src/api/DeviceManagementKitBuilder.js.map +3 -3
  266. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.js +1 -1
  267. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.js.map +3 -3
  268. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.test.js +1 -1
  269. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.test.js.map +2 -2
  270. package/lib/esm/src/api/apdu/utils/ByteArrayParser.js +1 -1
  271. package/lib/esm/src/api/apdu/utils/ByteArrayParser.js.map +3 -3
  272. package/lib/esm/src/api/command/di/commandModule.js +1 -1
  273. package/lib/esm/src/api/command/di/commandModule.js.map +3 -3
  274. package/lib/esm/src/api/command/di/commandModule.test.js +1 -1
  275. package/lib/esm/src/api/command/di/commandModule.test.js.map +2 -2
  276. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.js +2 -0
  277. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.js.map +7 -0
  278. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.test.js +2 -0
  279. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.test.js.map +7 -0
  280. package/lib/esm/src/api/command/os/GetOsVersionCommand.js +1 -1
  281. package/lib/esm/src/api/command/os/GetOsVersionCommand.js.map +3 -3
  282. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js +1 -1
  283. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js.map +3 -3
  284. package/lib/esm/src/api/command/os/ListLanguagePackCommand.js +2 -0
  285. package/lib/esm/src/api/command/os/ListLanguagePackCommand.js.map +7 -0
  286. package/lib/esm/src/api/command/os/ListLanguagePackCommand.test.js +2 -0
  287. package/lib/esm/src/api/command/os/ListLanguagePackCommand.test.js.map +7 -0
  288. package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js +1 -1
  289. package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +2 -2
  290. package/lib/esm/src/api/command/utils/CommandUtils.js +1 -1
  291. package/lib/esm/src/api/command/utils/CommandUtils.js.map +3 -3
  292. package/lib/esm/src/api/command/utils/CommandUtils.test.js +1 -1
  293. package/lib/esm/src/api/command/utils/CommandUtils.test.js.map +2 -2
  294. package/lib/esm/src/api/command/utils/GlobalCommandError.js +1 -1
  295. package/lib/esm/src/api/command/utils/GlobalCommandError.js.map +2 -2
  296. package/lib/esm/src/api/device/DeviceModel.js +1 -1
  297. package/lib/esm/src/api/device/DeviceModel.js.map +2 -2
  298. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  299. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  300. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  301. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
  302. package/lib/esm/src/api/device-action/di/deviceActionModule.js +1 -1
  303. package/lib/esm/src/api/device-action/di/deviceActionModule.js.map +3 -3
  304. package/lib/esm/src/api/device-action/di/deviceActionModule.test.js +1 -1
  305. package/lib/esm/src/api/device-action/di/deviceActionModule.test.js.map +2 -2
  306. package/lib/esm/src/api/device-action/model/UserInteractionRequired.js +1 -1
  307. package/lib/esm/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
  308. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js +1 -1
  309. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js.map +2 -2
  310. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +1 -1
  311. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +2 -2
  312. package/lib/esm/src/api/device-action/os/Errors.js +1 -1
  313. package/lib/esm/src/api/device-action/os/Errors.js.map +3 -3
  314. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +2 -0
  315. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +7 -0
  316. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js +2 -0
  317. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js.map +7 -0
  318. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/types.js +1 -0
  319. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/types.js.map +7 -0
  320. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  321. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +2 -2
  322. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  323. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +2 -2
  324. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js +1 -1
  325. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js.map +3 -3
  326. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +2 -0
  327. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +7 -0
  328. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js +2 -0
  329. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js.map +7 -0
  330. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/types.js +1 -0
  331. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/types.js.map +7 -0
  332. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.js +1 -1
  333. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.js.map +2 -2
  334. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js +1 -1
  335. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js.map +3 -3
  336. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  337. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +3 -3
  338. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +2 -0
  339. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +7 -0
  340. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js +2 -0
  341. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js.map +7 -0
  342. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/types.js +1 -0
  343. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/types.js.map +7 -0
  344. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
  345. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +2 -2
  346. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  347. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +2 -2
  348. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.js +2 -0
  349. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.js.map +7 -0
  350. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +2 -0
  351. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +7 -0
  352. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.js +2 -0
  353. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.js.map +7 -0
  354. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.test.js +2 -0
  355. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.test.js.map +7 -0
  356. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.js +2 -0
  357. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.js.map +7 -0
  358. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js +2 -0
  359. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +7 -0
  360. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.js +2 -0
  361. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.js.map +7 -0
  362. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.test.js +2 -0
  363. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.test.js.map +7 -0
  364. package/lib/esm/src/api/device-action/xstate-utils/XStateDeviceAction.js +1 -1
  365. package/lib/esm/src/api/device-action/xstate-utils/XStateDeviceAction.js.map +2 -2
  366. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.js +1 -1
  367. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.js.map +2 -2
  368. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.test.js +1 -1
  369. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.test.js.map +2 -2
  370. package/lib/esm/src/api/device-model/model/DeviceModel.js +1 -1
  371. package/lib/esm/src/api/device-model/model/DeviceModel.js.map +2 -2
  372. package/lib/esm/src/api/device-model/model/DeviceModel.stub.js +1 -1
  373. package/lib/esm/src/api/device-model/model/DeviceModel.stub.js.map +2 -2
  374. package/lib/esm/src/api/device-session/DeviceSessionState.js +1 -1
  375. package/lib/esm/src/api/device-session/DeviceSessionState.js.map +2 -2
  376. package/lib/esm/src/api/index.js +1 -1
  377. package/lib/esm/src/api/index.js.map +3 -3
  378. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js +1 -1
  379. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +2 -2
  380. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +1 -1
  381. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +3 -3
  382. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js +1 -1
  383. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +2 -2
  384. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/types.js +1 -1
  385. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +2 -2
  386. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +1 -1
  387. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +3 -3
  388. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js +1 -1
  389. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +3 -3
  390. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +1 -1
  391. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +3 -3
  392. package/lib/esm/src/api/secure-channel/task/types.js +1 -1
  393. package/lib/esm/src/api/secure-channel/task/types.js.map +2 -2
  394. package/lib/esm/src/api/secure-channel/utils.js +1 -1
  395. package/lib/esm/src/api/secure-channel/utils.js.map +3 -3
  396. package/lib/esm/src/api/secure-channel/utils.test.js +1 -1
  397. package/lib/esm/src/api/secure-channel/utils.test.js.map +3 -3
  398. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js +1 -1
  399. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js.map +3 -3
  400. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.test.js +2 -0
  401. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.test.js.map +7 -0
  402. package/lib/esm/src/api/transport/model/Errors.js +1 -1
  403. package/lib/esm/src/api/transport/model/Errors.js.map +3 -3
  404. package/lib/esm/src/api/utils/AppName.js +2 -0
  405. package/lib/esm/src/api/utils/AppName.js.map +7 -0
  406. package/lib/esm/src/api/utils/AppName.test.js +2 -0
  407. package/lib/esm/src/api/utils/AppName.test.js.map +7 -0
  408. package/lib/esm/src/di.js +1 -1
  409. package/lib/esm/src/di.js.map +3 -3
  410. package/lib/esm/src/internal/config/di/configModule.js +1 -1
  411. package/lib/esm/src/internal/config/di/configModule.js.map +3 -3
  412. package/lib/esm/src/internal/config/di/configModule.test.js +1 -1
  413. package/lib/esm/src/internal/config/di/configModule.test.js.map +2 -2
  414. package/lib/esm/src/internal/device-model/di/deviceModelModule.js +1 -1
  415. package/lib/esm/src/internal/device-model/di/deviceModelModule.js.map +3 -3
  416. package/lib/esm/src/internal/device-model/di/deviceModelModule.test.js +1 -1
  417. package/lib/esm/src/internal/device-model/di/deviceModelModule.test.js.map +2 -2
  418. package/lib/esm/src/internal/device-session/di/deviceSessionModule.js +1 -1
  419. package/lib/esm/src/internal/device-session/di/deviceSessionModule.js.map +3 -3
  420. package/lib/esm/src/internal/device-session/di/deviceSessionModule.test.js +1 -1
  421. package/lib/esm/src/internal/device-session/di/deviceSessionModule.test.js.map +2 -2
  422. package/lib/esm/src/internal/device-session/model/DeviceSession.js +1 -1
  423. package/lib/esm/src/internal/device-session/model/DeviceSession.js.map +2 -2
  424. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.js +1 -1
  425. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.js.map +3 -3
  426. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js +1 -1
  427. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +2 -2
  428. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.js +1 -1
  429. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.js.map +2 -2
  430. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.test.js +1 -1
  431. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.test.js.map +2 -2
  432. package/lib/esm/src/internal/discovery/di/discoveryModule.js +1 -1
  433. package/lib/esm/src/internal/discovery/di/discoveryModule.js.map +3 -3
  434. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js +1 -1
  435. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js.map +2 -2
  436. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
  437. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +2 -2
  438. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.js +1 -1
  439. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.js.map +3 -3
  440. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +1 -1
  441. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +3 -3
  442. package/lib/esm/src/internal/logger-publisher/di/loggerModule.js +1 -1
  443. package/lib/esm/src/internal/logger-publisher/di/loggerModule.js.map +3 -3
  444. package/lib/esm/src/internal/logger-publisher/di/loggerModule.test.js +1 -1
  445. package/lib/esm/src/internal/logger-publisher/di/loggerModule.test.js.map +2 -2
  446. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
  447. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.js.map +3 -3
  448. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
  449. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +3 -3
  450. package/lib/esm/src/internal/manager-api/data/ManagerApiDto.js +1 -1
  451. package/lib/esm/src/internal/manager-api/data/ManagerApiDto.js.map +1 -1
  452. package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
  453. package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
  454. package/lib/esm/src/internal/manager-api/di/managerApiModule.js +1 -1
  455. package/lib/esm/src/internal/manager-api/di/managerApiModule.js.map +3 -3
  456. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js +1 -1
  457. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
  458. package/lib/esm/src/internal/manager-api/model/Application.js +1 -1
  459. package/lib/esm/src/internal/manager-api/model/Application.js.map +1 -1
  460. package/lib/esm/src/internal/manager-api/model/Const.js +1 -1
  461. package/lib/esm/src/internal/manager-api/model/Const.js.map +3 -3
  462. package/lib/esm/src/internal/manager-api/model/Language.js +1 -0
  463. package/lib/esm/src/internal/manager-api/model/Language.js.map +7 -0
  464. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  465. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js.map +3 -3
  466. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  467. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  468. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.js +1 -1
  469. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.js.map +3 -3
  470. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.test.js +1 -1
  471. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.test.js.map +3 -3
  472. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.js +1 -1
  473. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.js.map +3 -3
  474. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js +1 -1
  475. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js.map +2 -2
  476. package/lib/esm/src/internal/secure-channel/model/Errors.js +1 -1
  477. package/lib/esm/src/internal/secure-channel/model/Errors.js.map +3 -3
  478. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +3 -3
  479. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +1 -1
  480. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +3 -3
  481. package/lib/esm/src/internal/send/di/sendModule.js +1 -1
  482. package/lib/esm/src/internal/send/di/sendModule.js.map +3 -3
  483. package/lib/esm/src/internal/send/di/sendModule.test.js +1 -1
  484. package/lib/esm/src/internal/send/di/sendModule.test.js.map +2 -2
  485. package/lib/esm/src/internal/send/use-case/SendApduUseCase.js +1 -1
  486. package/lib/esm/src/internal/send/use-case/SendApduUseCase.js.map +3 -3
  487. package/lib/esm/src/internal/transport/di/transportModule.js +1 -1
  488. package/lib/esm/src/internal/transport/di/transportModule.js.map +3 -3
  489. package/lib/esm/src/internal/transport/di/transportModule.test.js +1 -1
  490. package/lib/esm/src/internal/transport/di/transportModule.test.js.map +2 -2
  491. package/lib/types/src/api/DeviceManagementKitBuilder.d.ts.map +1 -1
  492. package/lib/types/src/api/DmkConfig.d.ts +1 -0
  493. package/lib/types/src/api/DmkConfig.d.ts.map +1 -1
  494. package/lib/types/src/api/apdu/utils/ApduBuilder.d.ts.map +1 -1
  495. package/lib/types/src/api/apdu/utils/ApduParser.d.ts.map +1 -1
  496. package/lib/types/src/api/apdu/utils/ByteArrayBuilder.d.ts +28 -0
  497. package/lib/types/src/api/apdu/utils/ByteArrayBuilder.d.ts.map +1 -1
  498. package/lib/types/src/api/apdu/utils/ByteArrayParser.d.ts +1 -0
  499. package/lib/types/src/api/apdu/utils/ByteArrayParser.d.ts.map +1 -1
  500. package/lib/types/src/api/command/di/commandModule.d.ts.map +1 -1
  501. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.d.ts +16 -0
  502. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.d.ts.map +1 -0
  503. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.test.d.ts +2 -0
  504. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.test.d.ts.map +1 -0
  505. package/lib/types/src/api/command/os/GetOsVersionCommand.d.ts +30 -2
  506. package/lib/types/src/api/command/os/GetOsVersionCommand.d.ts.map +1 -1
  507. package/lib/types/src/api/command/os/ListLanguagePackCommand.d.ts +24 -0
  508. package/lib/types/src/api/command/os/ListLanguagePackCommand.d.ts.map +1 -0
  509. package/lib/types/src/api/command/os/ListLanguagePackCommand.test.d.ts +2 -0
  510. package/lib/types/src/api/command/os/ListLanguagePackCommand.test.d.ts.map +1 -0
  511. package/lib/types/src/api/command/os/__mocks__/GetOsVersionCommand.d.ts.map +1 -1
  512. package/lib/types/src/api/command/utils/CommandErrors.d.ts.map +1 -1
  513. package/lib/types/src/api/command/utils/CommandUtils.d.ts +3 -0
  514. package/lib/types/src/api/command/utils/CommandUtils.d.ts.map +1 -1
  515. package/lib/types/src/api/command/utils/GlobalCommandError.d.ts +1 -1
  516. package/lib/types/src/api/command/utils/GlobalCommandError.d.ts.map +1 -1
  517. package/lib/types/src/api/device/DeviceModel.d.ts +2 -1
  518. package/lib/types/src/api/device/DeviceModel.d.ts.map +1 -1
  519. package/lib/types/src/api/device-action/DeviceAction.d.ts +2 -0
  520. package/lib/types/src/api/device-action/DeviceAction.d.ts.map +1 -1
  521. package/lib/types/src/api/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  522. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts +5 -0
  523. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts.map +1 -1
  524. package/lib/types/src/api/device-action/di/deviceActionModule.d.ts.map +1 -1
  525. package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts +1 -0
  526. package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts.map +1 -1
  527. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.d.ts.map +1 -1
  528. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.d.ts +1 -1
  529. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.d.ts.map +1 -1
  530. package/lib/types/src/api/device-action/os/Errors.d.ts +20 -0
  531. package/lib/types/src/api/device-action/os/Errors.d.ts.map +1 -1
  532. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.d.ts +58 -0
  533. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.d.ts.map +1 -0
  534. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.d.ts +2 -0
  535. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.d.ts.map +1 -0
  536. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts +28 -0
  537. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts.map +1 -0
  538. package/lib/types/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.d.ts.map +1 -1
  539. package/lib/types/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.d.ts.map +1 -1
  540. package/lib/types/src/api/device-action/os/GoToDashboard/types.d.ts +3 -4
  541. package/lib/types/src/api/device-action/os/GoToDashboard/types.d.ts.map +1 -1
  542. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.d.ts +40 -0
  543. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.d.ts.map +1 -0
  544. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.d.ts +2 -0
  545. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.d.ts.map +1 -0
  546. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts +65 -0
  547. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts.map +1 -0
  548. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.d.ts.map +1 -1
  549. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts +0 -1
  550. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts.map +1 -1
  551. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.d.ts +15 -0
  552. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.d.ts.map +1 -0
  553. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.d.ts +2 -0
  554. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.d.ts.map +1 -0
  555. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts +24 -0
  556. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts.map +1 -0
  557. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.d.ts.map +1 -1
  558. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts +1 -1
  559. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts.map +1 -1
  560. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.d.ts +30 -0
  561. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.d.ts.map +1 -0
  562. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.test.d.ts +2 -0
  563. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.test.d.ts.map +1 -0
  564. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.d.ts +31 -0
  565. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.d.ts.map +1 -0
  566. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.test.d.ts +2 -0
  567. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.test.d.ts.map +1 -0
  568. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.d.ts +18 -0
  569. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.d.ts.map +1 -0
  570. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.test.d.ts +2 -0
  571. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.test.d.ts.map +1 -0
  572. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.d.ts +21 -0
  573. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.d.ts.map +1 -0
  574. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.test.d.ts +2 -0
  575. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.test.d.ts.map +1 -0
  576. package/lib/types/src/api/device-action/xstate-utils/XStateDeviceAction.d.ts +1 -0
  577. package/lib/types/src/api/device-action/xstate-utils/XStateDeviceAction.d.ts.map +1 -1
  578. package/lib/types/src/api/device-model/data/StaticDeviceModelDataSource.d.ts.map +1 -1
  579. package/lib/types/src/api/device-model/model/DeviceModel.d.ts +2 -0
  580. package/lib/types/src/api/device-model/model/DeviceModel.d.ts.map +1 -1
  581. package/lib/types/src/api/device-model/model/DeviceModel.stub.d.ts.map +1 -1
  582. package/lib/types/src/api/device-session/DeviceSessionState.d.ts +93 -0
  583. package/lib/types/src/api/device-session/DeviceSessionState.d.ts.map +1 -1
  584. package/lib/types/src/api/device-session/service/DefaultApduReceiverService.stub.d.ts.map +1 -1
  585. package/lib/types/src/api/device-session/service/DefaultApduSenderService.stub.d.ts.map +1 -1
  586. package/lib/types/src/api/index.d.ts +5 -1
  587. package/lib/types/src/api/index.d.ts.map +1 -1
  588. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.d.ts.map +1 -1
  589. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/types.d.ts +2 -1
  590. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/types.d.ts.map +1 -1
  591. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.d.ts.map +1 -1
  592. package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts +2 -1
  593. package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts.map +1 -1
  594. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.d.ts.map +1 -1
  595. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts +2 -1
  596. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts.map +1 -1
  597. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.d.ts.map +1 -1
  598. package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts +2 -1
  599. package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts.map +1 -1
  600. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.d.ts +5 -2
  601. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.d.ts.map +1 -1
  602. package/lib/types/src/api/secure-channel/task/types.d.ts +6 -1
  603. package/lib/types/src/api/secure-channel/task/types.d.ts.map +1 -1
  604. package/lib/types/src/api/secure-channel/utils.d.ts +0 -11
  605. package/lib/types/src/api/secure-channel/utils.d.ts.map +1 -1
  606. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts +8 -7
  607. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts.map +1 -1
  608. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.test.d.ts +2 -0
  609. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.test.d.ts.map +1 -0
  610. package/lib/types/src/api/transport/model/Errors.d.ts +7 -3
  611. package/lib/types/src/api/transport/model/Errors.d.ts.map +1 -1
  612. package/lib/types/src/api/types.d.ts +4 -1
  613. package/lib/types/src/api/types.d.ts.map +1 -1
  614. package/lib/types/src/api/utils/AppName.d.ts +2 -0
  615. package/lib/types/src/api/utils/AppName.d.ts.map +1 -0
  616. package/lib/types/src/api/utils/AppName.test.d.ts +2 -0
  617. package/lib/types/src/api/utils/AppName.test.d.ts.map +1 -0
  618. package/lib/types/src/api/utils/HexaString.d.ts.map +1 -1
  619. package/lib/types/src/di.d.ts.map +1 -1
  620. package/lib/types/src/internal/config/di/configModule.d.ts.map +1 -1
  621. package/lib/types/src/internal/device-model/di/deviceModelModule.d.ts.map +1 -1
  622. package/lib/types/src/internal/device-session/di/deviceSessionModule.d.ts.map +1 -1
  623. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts +1 -0
  624. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts.map +1 -1
  625. package/lib/types/src/internal/device-session/model/DeviceSession.stub.d.ts.map +1 -1
  626. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.d.ts.map +1 -1
  627. package/lib/types/src/internal/device-session/utils/deviceSessionUtils.d.ts.map +1 -1
  628. package/lib/types/src/internal/discovery/di/discoveryModule.d.ts.map +1 -1
  629. package/lib/types/src/internal/discovery/use-case/StopDiscoveringUseCase.d.ts +3 -1
  630. package/lib/types/src/internal/discovery/use-case/StopDiscoveringUseCase.d.ts.map +1 -1
  631. package/lib/types/src/internal/logger-publisher/di/loggerModule.d.ts.map +1 -1
  632. package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts +20 -4
  633. package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts.map +1 -1
  634. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts +41 -6
  635. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts.map +1 -1
  636. package/lib/types/src/internal/manager-api/data/ManagerApiDto.d.ts +104 -18
  637. package/lib/types/src/internal/manager-api/data/ManagerApiDto.d.ts.map +1 -1
  638. package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts +5 -0
  639. package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts.map +1 -1
  640. package/lib/types/src/internal/manager-api/di/managerApiModule.d.ts.map +1 -1
  641. package/lib/types/src/internal/manager-api/model/Application.d.ts +12 -12
  642. package/lib/types/src/internal/manager-api/model/Application.d.ts.map +1 -1
  643. package/lib/types/src/internal/manager-api/model/Const.d.ts +1 -0
  644. package/lib/types/src/internal/manager-api/model/Const.d.ts.map +1 -1
  645. package/lib/types/src/internal/manager-api/model/Firmware.d.ts +17 -3
  646. package/lib/types/src/internal/manager-api/model/Firmware.d.ts.map +1 -1
  647. package/lib/types/src/internal/manager-api/model/Language.d.ts +12 -0
  648. package/lib/types/src/internal/manager-api/model/Language.d.ts.map +1 -0
  649. package/lib/types/src/internal/manager-api/model/Params.d.ts +20 -0
  650. package/lib/types/src/internal/manager-api/model/Params.d.ts.map +1 -1
  651. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.d.ts +7 -1
  652. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.d.ts.map +1 -1
  653. package/lib/types/src/internal/manager-api/service/ManagerApiService.d.ts +39 -1
  654. package/lib/types/src/internal/manager-api/service/ManagerApiService.d.ts.map +1 -1
  655. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.d.ts +3 -1
  656. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.d.ts.map +1 -1
  657. package/lib/types/src/internal/secure-channel/di/secureChannelModule.d.ts.map +1 -1
  658. package/lib/types/src/internal/secure-channel/model/Errors.d.ts +22 -2
  659. package/lib/types/src/internal/secure-channel/model/Errors.d.ts.map +1 -1
  660. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts +2 -2
  661. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts.map +1 -1
  662. package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts +3 -3
  663. package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts.map +1 -1
  664. package/lib/types/src/internal/send/di/sendModule.d.ts.map +1 -1
  665. package/lib/types/src/internal/send/use-case/SendApduUseCase.d.ts +5 -1
  666. package/lib/types/src/internal/send/use-case/SendApduUseCase.d.ts.map +1 -1
  667. package/lib/types/src/internal/transport/di/transportModule.d.ts.map +1 -1
  668. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  669. package/package.json +17 -18
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.ts"],
4
- "sourcesContent": ["import { interval, Observable } from \"rxjs\";\n\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport {\n GLOBAL_ERRORS,\n GlobalCommandError,\n} from \"@api/command/utils/GlobalCommandError\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { testDeviceActionStates } from \"@api/device-action/__test-utils__/testDeviceActionStates\";\nimport { DeviceActionStatus } from \"@api/device-action/model/DeviceActionState\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport {\n DeviceLockedError,\n DeviceNotOnboardedError,\n UnknownDAError,\n} from \"@api/device-action/os/Errors\";\nimport { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\n\nimport { GetDeviceStatusDeviceAction } from \"./GetDeviceStatusDeviceAction\";\nimport { type GetDeviceStatusDAState } from \"./types\";\n\ndescribe(\"GetDeviceStatusDeviceAction\", () => {\n const getAppAndVersionMock = vi.fn();\n const getDeviceSessionStateMock = vi.fn();\n const waitForDeviceUnlockMock = vi.fn();\n const setDeviceSessionState = vi.fn();\n const isDeviceOnboardedMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n getAppAndVersion: getAppAndVersionMock,\n getDeviceSessionState: getDeviceSessionStateMock,\n waitForDeviceUnlock: waitForDeviceUnlockMock,\n setDeviceSessionState: setDeviceSessionState,\n isDeviceOnboarded: isDeviceOnboardedMock,\n };\n }\n\n const {\n sendCommand: sendCommandMock,\n getDeviceSessionState: apiGetDeviceSessionStateMock,\n getDeviceSessionStateObservable: apiGetDeviceSessionStateObservableMock,\n } = makeDeviceActionInternalApiMock();\n beforeEach(() => {\n vi.resetAllMocks();\n isDeviceOnboardedMock.mockReturnValue(true);\n });\n\n describe(\"without overriding `extractDependencies`\", () => {\n it(\"should run the device action with an unlocked device\", () =>\n new Promise<void>((resolve, reject) => {\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: DeviceModelId.NANO_X,\n });\n\n sendCommandMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.0.0\",\n },\n }),\n );\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: {\n currentApp: \"BOLOS\",\n currentAppVersion: \"1.0.0\",\n },\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action with a locked device\", () =>\n new Promise<void>((resolve, reject) => {\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n\n apiGetDeviceSessionStateObservableMock.mockImplementation(\n () =>\n new Observable((o) => {\n const inner = interval(50).subscribe({\n next: (i) => {\n if (i > 2) {\n o.next({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: {\n name: \"mockedCurrentApp\",\n version: \"1.0.0\",\n },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n o.complete();\n } else {\n o.next({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: {\n name: \"mockedCurrentApp\",\n version: \"1.0.0\",\n },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n }\n },\n });\n\n return () => {\n inner.unsubscribe();\n };\n }),\n );\n\n sendCommandMock\n .mockResolvedValueOnce(\n CommandResultFactory({\n error: new GlobalCommandError({\n ...GLOBAL_ERRORS[\"5515\"],\n errorCode: \"5515\",\n }),\n }),\n )\n .mockResolvedValueOnce(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.0.0\",\n },\n }),\n );\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.UnlockDevice,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: {\n currentApp: \"BOLOS\",\n currentAppVersion: \"1.0.0\",\n },\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"success cases\", () => {\n it(\"should return the device status if the device is unlocked\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n });\n\n getAppAndVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.0.0\",\n },\n }),\n );\n\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: undefined },\n });\n\n vi.spyOn(\n getDeviceStateDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Completed,\n output: {\n currentApp: \"BOLOS\",\n currentAppVersion: \"1.0.0\",\n },\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: () => {\n // Session should be updated with current app\n expect(setDeviceSessionState).toHaveBeenCalledWith({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: {\n name: \"BOLOS\",\n version: \"1.0.0\",\n },\n });\n resolve();\n },\n onError: reject,\n },\n );\n }));\n\n it(\"should return the device status and update session if the device is not ready\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n });\n\n getAppAndVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.0.0\",\n },\n }),\n );\n\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: undefined },\n });\n\n vi.spyOn(\n getDeviceStateDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Completed,\n output: {\n currentApp: \"BOLOS\",\n currentAppVersion: \"1.0.0\",\n },\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: () => {\n // Session should be set as ready if GetAppAndVersionCommand was successful\n expect(setDeviceSessionState).toHaveBeenCalledWith({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: {\n name: \"BOLOS\",\n version: \"1.0.0\",\n },\n installedApps: [],\n isSecureConnectionAllowed: false,\n });\n resolve();\n },\n onError: reject,\n },\n );\n }));\n\n it(\"should return the device status if the device is locked and the user unlocks the device\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n });\n\n getAppAndVersionMock\n .mockResolvedValueOnce(\n CommandResultFactory({\n error: new GlobalCommandError({\n ...GLOBAL_ERRORS[\"5515\"],\n errorCode: \"5515\",\n }),\n }),\n )\n .mockResolvedValueOnce(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.0.0\",\n },\n }),\n );\n\n waitForDeviceUnlockMock.mockImplementation(\n () =>\n new Observable((o) => {\n const inner = interval(50).subscribe({\n next: (i) => {\n if (i > 2) {\n o.next({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: {\n name: \"mockedCurrentApp\",\n version: \"1.0.0\",\n },\n });\n o.complete();\n } else {\n o.next({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: {\n name: \"mockedCurrentApp\",\n version: \"1.0.0\",\n },\n });\n }\n },\n });\n\n return () => {\n inner.unsubscribe();\n };\n }),\n );\n\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n getDeviceStateDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.UnlockDevice,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Completed,\n output: {\n currentApp: \"BOLOS\",\n currentAppVersion: \"1.0.0\",\n },\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"errors cases\", () => {\n it(\"should end in an error if the device is not onboarded\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n });\n isDeviceOnboardedMock.mockReturnValue(false);\n\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n getDeviceStateDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n error: new DeviceNotOnboardedError(),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in an error if the device is locked and the user does not unlock\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n });\n\n getAppAndVersionMock.mockResolvedValue(\n CommandResultFactory({\n error: new GlobalCommandError({\n ...GLOBAL_ERRORS[\"5515\"],\n errorCode: \"5515\",\n }),\n }),\n );\n\n apiGetDeviceSessionStateObservableMock.mockImplementation(\n () =>\n new Observable((o) => {\n const inner = interval(200).subscribe({\n next: () => {\n o.next({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n },\n });\n\n return () => {\n inner.unsubscribe();\n };\n }),\n );\n\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n getDeviceStateDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.UnlockDevice,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n error: new DeviceLockedError(\"Device locked.\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in an error if the GetAppAndVersion command fails\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n });\n\n const error = new GlobalCommandError({\n ...GLOBAL_ERRORS[\"5501\"],\n errorCode: \"5501\",\n });\n\n getAppAndVersionMock.mockResolvedValue(CommandResultFactory({ error }));\n\n waitForDeviceUnlockMock.mockImplementation(\n () =>\n new Observable((o) => {\n const inner = interval(50).subscribe({\n next: (i) => {\n if (i > 2) {\n o.next({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: {\n name: \"mockedCurrentApp\",\n version: \"1.0.0\",\n },\n });\n o.complete();\n } else {\n o.next({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: {\n name: \"mockedCurrentApp\",\n version: \"1.0.0\",\n },\n });\n }\n },\n });\n\n return () => {\n inner.unsubscribe();\n };\n }),\n );\n\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n getDeviceStateDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n error,\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in an error if getAppAndVersion actor throws an error\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n });\n\n getAppAndVersionMock.mockImplementation(() => {\n throw new UnknownDAError(\"error\");\n });\n\n waitForDeviceUnlockMock.mockImplementation(\n () =>\n new Observable((o) => {\n o.complete();\n }),\n );\n\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n getDeviceStateDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n error: new UnknownDAError(\"error\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n it(\"should emit a stopped state if the action is cancelled\", () =>\n new Promise<void>((resolve, reject) => {\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n\n sendCommandMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.0.0\",\n },\n }),\n );\n\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n status: DeviceActionStatus.Pending, // get app and version\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Stopped,\n },\n ];\n\n const { cancel } = testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n cancel();\n }));\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { interval, Observable } from \"rxjs\";\n\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport {\n GLOBAL_ERRORS,\n GlobalCommandError,\n} from \"@api/command/utils/GlobalCommandError\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { testDeviceActionStates } from \"@api/device-action/__test-utils__/testDeviceActionStates\";\nimport { DeviceActionStatus } from \"@api/device-action/model/DeviceActionState\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport {\n DeviceLockedError,\n DeviceNotOnboardedError,\n UnknownDAError,\n} from \"@api/device-action/os/Errors\";\nimport { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\n\nimport { GetDeviceStatusDeviceAction } from \"./GetDeviceStatusDeviceAction\";\nimport { type GetDeviceStatusDAState } from \"./types\";\n\ndescribe(\"GetDeviceStatusDeviceAction\", () => {\n const getAppAndVersionMock = vi.fn();\n const getDeviceSessionStateMock = vi.fn();\n const waitForDeviceUnlockMock = vi.fn();\n const setDeviceSessionState = vi.fn();\n const isDeviceOnboardedMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n getAppAndVersion: getAppAndVersionMock,\n getDeviceSessionState: getDeviceSessionStateMock,\n waitForDeviceUnlock: waitForDeviceUnlockMock,\n setDeviceSessionState: setDeviceSessionState,\n isDeviceOnboarded: isDeviceOnboardedMock,\n };\n }\n\n const {\n sendCommand: sendCommandMock,\n getDeviceSessionState: apiGetDeviceSessionStateMock,\n getDeviceSessionStateObservable: apiGetDeviceSessionStateObservableMock,\n } = makeDeviceActionInternalApiMock();\n beforeEach(() => {\n vi.resetAllMocks();\n isDeviceOnboardedMock.mockReturnValue(true);\n });\n\n describe(\"without overriding `extractDependencies`\", () => {\n it(\"should run the device action with an unlocked device\", () =>\n new Promise<void>((resolve, reject) => {\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: DeviceModelId.NANO_X,\n });\n\n sendCommandMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.0.0\",\n },\n }),\n );\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: {\n currentApp: \"BOLOS\",\n currentAppVersion: \"1.0.0\",\n },\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action with a locked device\", () =>\n new Promise<void>((resolve, reject) => {\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n\n apiGetDeviceSessionStateObservableMock.mockImplementation(\n () =>\n new Observable((o) => {\n const inner = interval(50).subscribe({\n next: (i) => {\n if (i > 2) {\n o.next({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: {\n name: \"mockedCurrentApp\",\n version: \"1.0.0\",\n },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n o.complete();\n } else {\n o.next({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: {\n name: \"mockedCurrentApp\",\n version: \"1.0.0\",\n },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n }\n },\n });\n\n return () => {\n inner.unsubscribe();\n };\n }),\n );\n\n sendCommandMock\n .mockResolvedValueOnce(\n CommandResultFactory({\n error: new GlobalCommandError({\n ...GLOBAL_ERRORS[\"5515\"],\n errorCode: \"5515\",\n }),\n }),\n )\n .mockResolvedValueOnce(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.0.0\",\n },\n }),\n );\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.UnlockDevice,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: {\n currentApp: \"BOLOS\",\n currentAppVersion: \"1.0.0\",\n },\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action with an old firmware not supporting GetAppAndVersion\", () =>\n new Promise<void>((resolve, reject) => {\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: DeviceModelId.NANO_X,\n });\n\n sendCommandMock.mockResolvedValue(\n CommandResultFactory({\n error: new GlobalCommandError({\n ...GLOBAL_ERRORS[\"6e00\"],\n errorCode: \"6e00\",\n }),\n }),\n );\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: {\n currentApp: \"BOLOS\",\n currentAppVersion: \"0.0.0\",\n },\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"success cases\", () => {\n it(\"should return the device status if the device is unlocked\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n });\n\n getAppAndVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.0.0\",\n },\n }),\n );\n\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: undefined },\n });\n\n vi.spyOn(\n getDeviceStateDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Completed,\n output: {\n currentApp: \"BOLOS\",\n currentAppVersion: \"1.0.0\",\n },\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: () => {\n // Session should be updated with current app\n expect(setDeviceSessionState).toHaveBeenCalledWith({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: {\n name: \"BOLOS\",\n version: \"1.0.0\",\n },\n });\n resolve();\n },\n onError: reject,\n },\n );\n }));\n\n it(\"should return the device status and update session if the device is not ready\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n });\n\n getAppAndVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.0.0\",\n },\n }),\n );\n\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: undefined },\n });\n\n vi.spyOn(\n getDeviceStateDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Completed,\n output: {\n currentApp: \"BOLOS\",\n currentAppVersion: \"1.0.0\",\n },\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: () => {\n // Session should be set as ready if GetAppAndVersionCommand was successful\n expect(setDeviceSessionState).toHaveBeenCalledWith({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: {\n name: \"BOLOS\",\n version: \"1.0.0\",\n },\n installedApps: [],\n isSecureConnectionAllowed: false,\n });\n resolve();\n },\n onError: reject,\n },\n );\n }));\n\n it(\"should return the device status if the device is locked and the user unlocks the device\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n });\n\n getAppAndVersionMock\n .mockResolvedValueOnce(\n CommandResultFactory({\n error: new GlobalCommandError({\n ...GLOBAL_ERRORS[\"5515\"],\n errorCode: \"5515\",\n }),\n }),\n )\n .mockResolvedValueOnce(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.0.0\",\n },\n }),\n );\n\n waitForDeviceUnlockMock.mockImplementation(\n () =>\n new Observable((o) => {\n const inner = interval(50).subscribe({\n next: (i) => {\n if (i > 2) {\n o.next({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: {\n name: \"mockedCurrentApp\",\n version: \"1.0.0\",\n },\n });\n o.complete();\n } else {\n o.next({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: {\n name: \"mockedCurrentApp\",\n version: \"1.0.0\",\n },\n });\n }\n },\n });\n\n return () => {\n inner.unsubscribe();\n };\n }),\n );\n\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n getDeviceStateDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.UnlockDevice,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Completed,\n output: {\n currentApp: \"BOLOS\",\n currentAppVersion: \"1.0.0\",\n },\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"errors cases\", () => {\n it(\"should end in an error if the device is not onboarded\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n });\n isDeviceOnboardedMock.mockReturnValue(false);\n\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n getDeviceStateDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n error: new DeviceNotOnboardedError(),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in an error if the device is locked and the user does not unlock\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n });\n\n getAppAndVersionMock.mockResolvedValue(\n CommandResultFactory({\n error: new GlobalCommandError({\n ...GLOBAL_ERRORS[\"5515\"],\n errorCode: \"5515\",\n }),\n }),\n );\n\n apiGetDeviceSessionStateObservableMock.mockImplementation(\n () =>\n new Observable((o) => {\n const inner = interval(200).subscribe({\n next: () => {\n o.next({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n },\n });\n\n return () => {\n inner.unsubscribe();\n };\n }),\n );\n\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n getDeviceStateDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.UnlockDevice,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n error: new DeviceLockedError(\"Device locked.\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in an error if the GetAppAndVersion command fails\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n });\n\n const error = new GlobalCommandError({\n ...GLOBAL_ERRORS[\"5501\"],\n errorCode: \"5501\",\n });\n\n getAppAndVersionMock.mockResolvedValue(CommandResultFactory({ error }));\n\n waitForDeviceUnlockMock.mockImplementation(\n () =>\n new Observable((o) => {\n const inner = interval(50).subscribe({\n next: (i) => {\n if (i > 2) {\n o.next({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: {\n name: \"mockedCurrentApp\",\n version: \"1.0.0\",\n },\n });\n o.complete();\n } else {\n o.next({\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: {\n name: \"mockedCurrentApp\",\n version: \"1.0.0\",\n },\n });\n }\n },\n });\n\n return () => {\n inner.unsubscribe();\n };\n }),\n );\n\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n getDeviceStateDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n error,\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in an error if getAppAndVersion actor throws an error\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n });\n\n getAppAndVersionMock.mockImplementation(() => {\n throw new UnknownDAError(\"error\");\n });\n\n waitForDeviceUnlockMock.mockImplementation(\n () =>\n new Observable((o) => {\n o.complete();\n }),\n );\n\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n getDeviceStateDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n error: new UnknownDAError(\"error\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n it(\"should emit a stopped state if the action is cancelled\", () =>\n new Promise<void>((resolve, reject) => {\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n\n sendCommandMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.0.0\",\n },\n }),\n );\n\n const getDeviceStateDeviceAction = new GetDeviceStatusDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n const expectedStates: Array<GetDeviceStatusDAState> = [\n {\n status: DeviceActionStatus.Pending, // get app and version\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Stopped,\n },\n ];\n\n const { cancel } = testDeviceActionStates(\n getDeviceStateDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n cancel();\n }));\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["interval", "Observable", "CommandResultFactory", "GLOBAL_ERRORS", "GlobalCommandError", "DeviceModelId", "DeviceStatus", "makeDeviceActionInternalApiMock", "testDeviceActionStates", "DeviceActionStatus", "UserInteractionRequired", "DeviceLockedError", "DeviceNotOnboardedError", "UnknownDAError", "DeviceSessionStateType", "GetDeviceStatusDeviceAction", "getAppAndVersionMock", "getDeviceSessionStateMock", "waitForDeviceUnlockMock", "setDeviceSessionState", "isDeviceOnboardedMock", "extractDependenciesMock", "sendCommandMock", "apiGetDeviceSessionStateMock", "apiGetDeviceSessionStateObservableMock", "resolve", "reject", "getDeviceStateDeviceAction", "expectedStates", "o", "inner", "i", "error", "cancel"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Left as D,Right as l}from"purify-ts";import{assign as n,fromPromise as p,setup as S}from"xstate";import{isSuccessCommandResult as c}from"../../../command/model/CommandResult";import{CloseAppCommand as A}from"../../../command/os/CloseAppCommand";import{GetAppAndVersionCommand as m}from"../../../command/os/GetAppAndVersionCommand";import{UserInteractionRequired as h}from"../../../device-action/model/UserInteractionRequired";import{DEFAULT_UNLOCK_TIMEOUT_MS as v}from"../../../device-action/os/Const";import{UnknownDAError as y}from"../../../device-action/os/Errors";import{GetDeviceStatusDeviceAction as g}from"../../../device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction";import{XStateDeviceAction as T}from"../../../device-action/xstate-utils/XStateDeviceAction";import{DeviceSessionStateType as G}from"../../../device-session/DeviceSessionState";class w extends T{makeStateMachine(r){const{getDeviceSessionState:o,setDeviceSessionState:s,closeApp:a,getAppAndVersion:u}=this.extractDependencies(r),i=this.input.unlockTimeout??v,d=new g({input:{unlockTimeout:i}}).makeStateMachine(r);return S({types:{input:{unlockTimeout:i},context:{},output:{}},actors:{getAppAndVersion:p(u),closeApp:p(a),getDeviceStatus:d},guards:{hasError:({context:e})=>e._internalState.error!==null,isDashboardOpen:({context:e})=>e._internalState.currentApp==="BOLOS"},actions:{assignErrorFromEvent:n({_internalState:e=>({...e.context._internalState,error:e.event.error})})}}).createMachine({id:"GoToDashboardDeviceAction",initial:"DeviceReady",context:e=>{const t=o();return{input:{unlockTimeout:e.input.unlockTimeout},intermediateValue:{requiredUserInteraction:h.None},_internalState:{currentApp:"currentApp"in t?t.currentApp.name:null,error:null}}},states:{DeviceReady:{always:{target:"GetDeviceStatus"}},GetDeviceStatus:{invoke:{id:"deviceStatus",src:"getDeviceStatus",input:e=>({unlockTimeout:e.context.input.unlockTimeout}),onSnapshot:{actions:n({intermediateValue:e=>e.event.snapshot.context.intermediateValue})},onDone:{target:"CheckDeviceStatus",actions:n({_internalState:e=>e.event.output.caseOf({Right:t=>({...e.context._internalState,currentApp:t.currentApp}),Left:t=>({...e.context._internalState,error:t})})})}}},CheckDeviceStatus:{always:[{target:"Error",guard:"hasError"},{target:"DashboardCheck"}]},DashboardCheck:{always:[{target:"Success",guard:"isDashboardOpen"},{target:"Error",guard:"hasError"},{target:"Error",guard:e=>e.context._internalState.currentApp===null,actions:n({_internalState:e=>({...e.context._internalState,error:new y("currentApp === null")})})},{target:"CloseApp"}]},CloseApp:{invoke:{src:"closeApp",onDone:{target:"CloseAppCheck",actions:n({_internalState:e=>c(e.event.output)?e.context._internalState:{...e.context._internalState,error:e.event.output.error}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},CloseAppCheck:{always:[{target:"Error",guard:"hasError"},{target:"GetAppAndVersion",reenter:!0}]},GetAppAndVersion:{invoke:{src:"getAppAndVersion",onDone:{target:"DashboardCheck",actions:n({_internalState:e=>{if(c(e.event.output)){const t=o();return t.sessionStateType!==G.Connected&&s({...t,currentApp:e.event.output.data}),{...e.context._internalState,currentApp:e.event.output.data.name}}return{...e.context._internalState,error:e.event.output.error}}})}}},Success:{type:"final"},Error:{type:"final"}},output:e=>e.context._internalState.error?D(e.context._internalState.error):l(void 0)})}extractDependencies(r){return{closeApp:async()=>r.sendCommand(new A),getAppAndVersion:async()=>r.sendCommand(new m),getDeviceSessionState:()=>r.getDeviceSessionState(),setDeviceSessionState:a=>r.setDeviceSessionState(a)}}}export{w as GoToDashboardDeviceAction};
1
+ import{Left as D,Right as l}from"purify-ts";import{assign as n,fromPromise as p,setup as S}from"xstate";import{isSuccessCommandResult as c}from"../../../command/model/CommandResult";import{CloseAppCommand as A}from"../../../command/os/CloseAppCommand";import{GetAppAndVersionCommand as m}from"../../../command/os/GetAppAndVersionCommand";import{UserInteractionRequired as h}from"../../../device-action/model/UserInteractionRequired";import{DEFAULT_UNLOCK_TIMEOUT_MS as v}from"../../../device-action/os/Const";import{UnknownDAError as y}from"../../../device-action/os/Errors";import{GetDeviceStatusDeviceAction as g}from"../../../device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction";import{XStateDeviceAction as T}from"../../../device-action/xstate-utils/XStateDeviceAction";import{DeviceSessionStateType as G}from"../../../device-session/DeviceSessionState";import{isDashboardName as b}from"../../../utils/AppName";class L extends T{makeStateMachine(r){const{getDeviceSessionState:o,setDeviceSessionState:s,closeApp:a,getAppAndVersion:u}=this.extractDependencies(r),i=this.input.unlockTimeout??v,d=new g({input:{unlockTimeout:i}}).makeStateMachine(r);return S({types:{input:{unlockTimeout:i},context:{},output:{}},actors:{getAppAndVersion:p(u),closeApp:p(a),getDeviceStatus:d},guards:{hasError:({context:e})=>e._internalState.error!==null,isDashboardOpen:({context:e})=>e._internalState.currentApp!==null&&b(e._internalState.currentApp)},actions:{assignErrorFromEvent:n({_internalState:e=>({...e.context._internalState,error:e.event.error})})}}).createMachine({id:"GoToDashboardDeviceAction",initial:"DeviceReady",context:e=>{const t=o();return{input:{unlockTimeout:e.input.unlockTimeout},intermediateValue:{requiredUserInteraction:h.None},_internalState:{currentApp:"currentApp"in t?t.currentApp.name:null,error:null}}},states:{DeviceReady:{always:{target:"GetDeviceStatus"}},GetDeviceStatus:{invoke:{id:"deviceStatus",src:"getDeviceStatus",input:e=>({unlockTimeout:e.context.input.unlockTimeout}),onSnapshot:{actions:n({intermediateValue:e=>e.event.snapshot.context.intermediateValue})},onDone:{target:"CheckDeviceStatus",actions:n({_internalState:e=>e.event.output.caseOf({Right:t=>({...e.context._internalState,currentApp:t.currentApp}),Left:t=>({...e.context._internalState,error:t})})})}}},CheckDeviceStatus:{always:[{target:"Error",guard:"hasError"},{target:"DashboardCheck"}]},DashboardCheck:{always:[{target:"Success",guard:"isDashboardOpen"},{target:"Error",guard:"hasError"},{target:"Error",guard:e=>e.context._internalState.currentApp===null,actions:n({_internalState:e=>({...e.context._internalState,error:new y("currentApp === null")})})},{target:"CloseApp"}]},CloseApp:{invoke:{src:"closeApp",onDone:{target:"CloseAppCheck",actions:n({_internalState:e=>c(e.event.output)?e.context._internalState:{...e.context._internalState,error:e.event.output.error}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},CloseAppCheck:{always:[{target:"Error",guard:"hasError"},{target:"GetAppAndVersion",reenter:!0}]},GetAppAndVersion:{invoke:{src:"getAppAndVersion",onDone:{target:"DashboardCheck",actions:n({_internalState:e=>{if(c(e.event.output)){const t=o();return t.sessionStateType!==G.Connected&&s({...t,currentApp:e.event.output.data}),{...e.context._internalState,currentApp:e.event.output.data.name}}return{...e.context._internalState,error:e.event.output.error}}})}}},Success:{type:"final"},Error:{type:"final"}},output:e=>e.context._internalState.error?D(e.context._internalState.error):l(void 0)})}extractDependencies(r){return{closeApp:async()=>r.sendCommand(new A),getAppAndVersion:async()=>r.sendCommand(new m),getDeviceSessionState:()=>r.getDeviceSessionState(),setDeviceSessionState:a=>r.setDeviceSessionState(a)}}}export{L as GoToDashboardDeviceAction};
2
2
  //# sourceMappingURL=GoToDashboardDeviceAction.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.ts"],
4
- "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport { isSuccessCommandResult } from \"@api/command/model/CommandResult\";\nimport {\n CloseAppCommand,\n type CloseAppCommandResult,\n} from \"@api/command/os/CloseAppCommand\";\nimport {\n GetAppAndVersionCommand,\n type GetAppAndVersionCommandResult,\n} from \"@api/command/os/GetAppAndVersionCommand\";\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 { UnknownDAError } from \"@api/device-action/os/Errors\";\nimport { GetDeviceStatusDeviceAction } from \"@api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction\";\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 DeviceSessionState,\n DeviceSessionStateType,\n} from \"@api/device-session/DeviceSessionState\";\n\nimport type {\n GoToDashboardDAError,\n GoToDashboardDAInput,\n GoToDashboardDAIntermediateValue,\n GoToDashboardDAOutput,\n} from \"./types\";\n\ntype GoToDashboardMachineInternalState = {\n readonly currentApp: string | null;\n readonly error: GoToDashboardDAError | null;\n};\n\nexport type MachineDependencies = {\n readonly getAppAndVersion: () => Promise<GetAppAndVersionCommandResult>;\n readonly closeApp: () => Promise<CloseAppCommandResult>;\n readonly getDeviceSessionState: () => DeviceSessionState;\n readonly setDeviceSessionState: (\n state: DeviceSessionState,\n ) => DeviceSessionState;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class GoToDashboardDeviceAction extends XStateDeviceAction<\n GoToDashboardDAOutput,\n GoToDashboardDAInput,\n GoToDashboardDAError,\n GoToDashboardDAIntermediateValue,\n GoToDashboardMachineInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n GoToDashboardDAOutput,\n GoToDashboardDAInput,\n GoToDashboardDAError,\n GoToDashboardDAIntermediateValue,\n GoToDashboardMachineInternalState\n > {\n type types = StateMachineTypes<\n GoToDashboardDAOutput,\n GoToDashboardDAInput,\n GoToDashboardDAError,\n GoToDashboardDAIntermediateValue,\n GoToDashboardMachineInternalState\n >;\n\n const {\n getDeviceSessionState,\n setDeviceSessionState,\n closeApp,\n getAppAndVersion,\n } = this.extractDependencies(internalApi);\n\n const unlockTimeout = this.input.unlockTimeout ?? DEFAULT_UNLOCK_TIMEOUT_MS;\n\n const getDeviceStatusMachine = new GetDeviceStatusDeviceAction({\n input: {\n unlockTimeout,\n },\n }).makeStateMachine(internalApi);\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 getAppAndVersion: fromPromise(getAppAndVersion),\n closeApp: fromPromise(closeApp),\n getDeviceStatus: getDeviceStatusMachine,\n },\n guards: {\n hasError: ({ context }: { context: types[\"context\"] }) => {\n return context._internalState.error !== null;\n },\n isDashboardOpen: ({ context }: { context: types[\"context\"] }) =>\n context._internalState.currentApp === \"BOLOS\",\n },\n actions: {\n // assignGetDeviceStatusUnknownError: assign({\n // _internalState: (_) => ({\n // ..._.context._internalState,\n // error: new UnknownDAError(\"GetDeviceUnknownStatusError\"),\n // }),\n // }),\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QHED2AVVARAhrAFgEao4BOEWYAbgJYDGYAgnQC42oB2AdJbQwEpgcEAJ4BiANoAGALqJQAB1SwabTvJAAPRAHYAjFwDMATikA2MwA5DOnQBYArGeOGANCBGI9VrlcvmpRyknQwcAXzD3NExcAmIyCmp6JlZ2bmQwFl5kgGUWHBYAV1gxCE4wLhoOKlQAawqIJIY8guLpOSQQJRU1Dg1tBAAmOy49QYcpHQdBvR0pMcszO3dPBEM7My4HYz1pqWNLPRsdJYiojGw8IhJybIZmXq4AYXwwOlq7sBaikvaNbtUaX6iDsgy2g3Wdksjn8JlBDhWiAchk2OkMgysB2RzlBZxA0UucRuiT4KUeLzeHyaX3yP0keg6imUgPUnQGgxmo3hdkcemMwwcG0RCGxXDRGMsWJRxlxkXxF1i1wSnweaR4V3i5Ap70ksn+zN6wIQfMsYsG0LMg2MZlm60mwucDi4HMli0GgX0zjxBMVmpJyVVnHVRIS2tq9MZXQNQLZII5XEcoQx5kO3mWHkQjud5oOlo93mM3oVGuJKtSQd9xLDkkGkYBhtjCEtxi41h5fJs+ysOgdOjBE2Gw1sUmC5qLMRLyupge4ldDrx1EkMdejrNAA2sTu8jsO0Lsej5wr7prsoTGs2CJz748JStu0-L3CeABtlEwFApSuVKtU6hUfZO96kjOzyvrA74KAgVQ1HQBRpO0fydPWMbrl4kwGFMzizMYcyCsK-gjE4OiWBC-jGDK+g3nOQEBo+oFvowH5iGApCkKgpBcAoz4FAAZuxAC2XAASGNH3HRL4MR+UG-rBvQIXqSGrn0jaHGCNocoYko2BiUzCvymyadsdg6Dh+zTFRgH+mJ5JgRB1aIUyPQoVoaHEWKegjsYDgOGi9hjMKHmGAYdg7KCVhLOagoWSJVlkmqEngYxCj2Qy+pOWuLnGuMUhcNagoHMZgqhMYAVSEFCahRKEWWFFcrCXesUgRkLBJYwHAQAAaixKicF+HAVNBf5CcWMVlo8zWte1XWkD1HDSTBcGcPJK7pcpqEIARCZQsMqZSDM+7Cg4limjaXnbHMlhzIYERyhwqCNPAnT1X6Y3OchGUDAAtDKvj6NYgQohYljCsMRjzIYASTN2NjXXVI0Na9FbUoIwirI5LJrZloJcCOI52GVZihD5goIhmxoHq24OQycl02NFCMPuNmSfN8xRpRjRqfRsv16P9p4WFYIOGIYCYjgex1mD5oLrPTL2M-FC5UqSrOPejDbrbMraniZ+4nGV6J6OmqwbJsl3jPY2wQ2YaKy6W8sVpZYbs+rmUzDl4y84T7rBDyZgOvsWvqd4EI67bU7AeJtlJc7zkbnyYrBORxGaVCDh6PhhtGAcJjjPye3EWHolxUGCV2YrMcfWhFi5TyjgUYb9h+2TFG+GMIUhRyUy7IXjV0RNH5tZ13VvUpRpjOYYpBWZCxzOnZNHQZGweSR7qhDLcMTqN9vcDkhR0AwsCq1Gq1GhyIxWvsSYWMZ-I9mTJGEbXsx7Av4Qb7ecsR48ACirHsRXmMBjIi2JaRwEIDzeWtsDMmgUdCthwjadSaJFiWBumEIAA */\n id: \"GoToDashboardDeviceAction\",\n initial: \"DeviceReady\",\n context: (_) => {\n const sessionState = getDeviceSessionState();\n return {\n input: {\n unlockTimeout: _.input.unlockTimeout,\n },\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n currentApp:\n \"currentApp\" in sessionState\n ? sessionState.currentApp.name\n : null,\n error: null,\n },\n };\n },\n states: {\n DeviceReady: {\n always: {\n target: \"GetDeviceStatus\",\n },\n },\n GetDeviceStatus: {\n // We run the GetDeviceStatus flow to get information about the device state\n invoke: {\n id: \"deviceStatus\",\n src: \"getDeviceStatus\",\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: \"CheckDeviceStatus\",\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<GoToDashboardMachineInternalState>(\n {\n Right: (output) => ({\n ..._.context._internalState,\n currentApp: output.currentApp,\n }),\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n },\n );\n },\n }),\n },\n // NOTE: The way we handle our DeviceActions means that we should never as we return an Either\n // onError: {\n // target: \"Error\",\n // actions: \"assignGetDeviceStatusUnknownError\",\n // },\n },\n },\n CheckDeviceStatus: {\n // We check the device status to see if we can have an error\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"DashboardCheck\",\n },\n ],\n },\n DashboardCheck: {\n // We check if the dashboard is open\n always: [\n {\n target: \"Success\",\n guard: \"isDashboardOpen\",\n },\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"Error\",\n guard: (_) => {\n return _.context._internalState.currentApp === null;\n },\n actions: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: new UnknownDAError(\"currentApp === null\"),\n }),\n }),\n },\n {\n target: \"CloseApp\",\n },\n ],\n },\n CloseApp: {\n invoke: {\n src: \"closeApp\",\n onDone: {\n target: \"CloseAppCheck\",\n actions: assign({\n _internalState: (_) => {\n if (isSuccessCommandResult(_.event.output)) {\n return _.context._internalState;\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 CloseAppCheck: {\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"GetAppAndVersion\",\n reenter: true,\n },\n ],\n },\n GetAppAndVersion: {\n invoke: {\n src: \"getAppAndVersion\",\n onDone: {\n target: \"DashboardCheck\",\n actions: assign({\n _internalState: (_) => {\n if (isSuccessCommandResult(_.event.output)) {\n const state: DeviceSessionState = getDeviceSessionState();\n // Narrow the type to ReadyWithoutSecureChannelState or ReadyWithSecureChannelState\n if (\n state.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n setDeviceSessionState({\n ...state,\n currentApp: _.event.output.data,\n });\n }\n return {\n ..._.context._internalState,\n currentApp: _.event.output.data.name,\n };\n }\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n },\n }),\n },\n },\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: (_) => {\n if (_.context._internalState.error) {\n return Left(_.context._internalState.error);\n }\n\n return Right(undefined);\n },\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const closeApp = async () => internalApi.sendCommand(new CloseAppCommand());\n const getAppAndVersion = async () =>\n internalApi.sendCommand(new GetAppAndVersionCommand());\n\n return {\n closeApp,\n getAppAndVersion,\n getDeviceSessionState: () => internalApi.getDeviceSessionState(),\n setDeviceSessionState: (state: DeviceSessionState) =>\n internalApi.setDeviceSessionState(state),\n };\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["Left", "Right", "assign", "fromPromise", "setup", "isSuccessCommandResult", "CloseAppCommand", "GetAppAndVersionCommand", "UserInteractionRequired", "DEFAULT_UNLOCK_TIMEOUT_MS", "UnknownDAError", "GetDeviceStatusDeviceAction", "XStateDeviceAction", "DeviceSessionStateType", "GoToDashboardDeviceAction", "internalApi", "getDeviceSessionState", "setDeviceSessionState", "closeApp", "getAppAndVersion", "unlockTimeout", "getDeviceStatusMachine", "context", "_", "sessionState", "output", "error", "state"]
4
+ "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport { isSuccessCommandResult } from \"@api/command/model/CommandResult\";\nimport {\n CloseAppCommand,\n type CloseAppCommandResult,\n} from \"@api/command/os/CloseAppCommand\";\nimport {\n GetAppAndVersionCommand,\n type GetAppAndVersionCommandResult,\n} from \"@api/command/os/GetAppAndVersionCommand\";\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 { UnknownDAError } from \"@api/device-action/os/Errors\";\nimport { GetDeviceStatusDeviceAction } from \"@api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction\";\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 DeviceSessionState,\n DeviceSessionStateType,\n} from \"@api/device-session/DeviceSessionState\";\nimport { isDashboardName } from \"@api/utils/AppName\";\n\nimport type {\n GoToDashboardDAError,\n GoToDashboardDAInput,\n GoToDashboardDAIntermediateValue,\n GoToDashboardDAOutput,\n} from \"./types\";\n\ntype GoToDashboardMachineInternalState = {\n readonly currentApp: string | null;\n readonly error: GoToDashboardDAError | null;\n};\n\nexport type MachineDependencies = {\n readonly getAppAndVersion: () => Promise<GetAppAndVersionCommandResult>;\n readonly closeApp: () => Promise<CloseAppCommandResult>;\n readonly getDeviceSessionState: () => DeviceSessionState;\n readonly setDeviceSessionState: (\n state: DeviceSessionState,\n ) => DeviceSessionState;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class GoToDashboardDeviceAction extends XStateDeviceAction<\n GoToDashboardDAOutput,\n GoToDashboardDAInput,\n GoToDashboardDAError,\n GoToDashboardDAIntermediateValue,\n GoToDashboardMachineInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n GoToDashboardDAOutput,\n GoToDashboardDAInput,\n GoToDashboardDAError,\n GoToDashboardDAIntermediateValue,\n GoToDashboardMachineInternalState\n > {\n type types = StateMachineTypes<\n GoToDashboardDAOutput,\n GoToDashboardDAInput,\n GoToDashboardDAError,\n GoToDashboardDAIntermediateValue,\n GoToDashboardMachineInternalState\n >;\n\n const {\n getDeviceSessionState,\n setDeviceSessionState,\n closeApp,\n getAppAndVersion,\n } = this.extractDependencies(internalApi);\n\n const unlockTimeout = this.input.unlockTimeout ?? DEFAULT_UNLOCK_TIMEOUT_MS;\n\n const getDeviceStatusMachine = new GetDeviceStatusDeviceAction({\n input: {\n unlockTimeout,\n },\n }).makeStateMachine(internalApi);\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 getAppAndVersion: fromPromise(getAppAndVersion),\n closeApp: fromPromise(closeApp),\n getDeviceStatus: getDeviceStatusMachine,\n },\n guards: {\n hasError: ({ context }: { context: types[\"context\"] }) => {\n return context._internalState.error !== null;\n },\n isDashboardOpen: ({ context }: { context: types[\"context\"] }) =>\n context._internalState.currentApp !== null &&\n isDashboardName(context._internalState.currentApp),\n },\n actions: {\n // assignGetDeviceStatusUnknownError: assign({\n // _internalState: (_) => ({\n // ..._.context._internalState,\n // error: new UnknownDAError(\"GetDeviceUnknownStatusError\"),\n // }),\n // }),\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QHED2AVVARAhrAFgEao4BOEWYAbgJYDGYAgnQC42oB2AdJbQwEpgcEAJ4BiANoAGALqJQAB1SwabTvJAAPRAHYAjFwDMATikA2MwA5DOnQBYArGeOGANCBGI9VrlcvmpRyknQwcAXzD3NExcAmIyCmp6JlZ2bmQwFl5kgGUWHBYAV1gxCE4wLhoOKlQAawqIJIY8guLpOSQQJRU1Dg1tBAAmOy49QYcpHQdBvR0pMcszO3dPBEM7My4HYz1pqWNLPRsdJYiojGw8IhJybIZmXq4AYXwwOlq7sBaikvaNbtUaX6iDsgy2g3Wdksjn8JlBDhWiAchk2OkMgysB2RzlBZxA0UucRuiT4KUeLzeHyaX3yP0keg6imUgPUnQGgxmo3hdkcemMwwcG0RCGxXDRGMsWJRxlxkXxF1i1wSnweaR4V3i5Ap70ksn+zN6wIQfMsYsG0LMg2MZlm60mwucDi4HMli0GgX0zjxBMVmpJyVVnHVRIS2tq9MZXQNQLZII5XEcoQx5kO3mWHkQjud5oOlo93mM3oVGuJKtSQd9xLDkkGkYBhtjCEtxi41h5fJs+ysOgdOjBE2Gw1sUmC5qLMRLyupge4ldDrx1EkMdejrNAA2sTu8jsO0Lsej5wr7prsoTGs2CJz748JStu0-L3CeABtlEwFApSuVKtU6hUfZO96kjOzyvrA74KAgVQ1HQBRpO0fydPWMbrl4kwGFMzizMYcyCsK-gjE4OiWBC-jGDK+g3nOQEBo+oFvowH5iGApCkKgpBcAoz4FAAZuxAC2XAASGNH3HRL4MR+UG-rBvQIXqSGrn0jaHGCNocoYko2BiUzCvymyadsdg6Dh+zTFRgH+mJ5JgRB1aIUyPQoVoaHEWKegjsYDgOGi9hjMKHmGAYdg7KCVhLOagoWSJVlkmqEngYxCj2Qy+pOWuLnGuMUhcNagoHMZgqhMYAVSEFCahRKEWWFFcrCXesUgRkLBJYwHAQAAaixKicF+HAVNBf5CcWMVlo8zWte1XWkD1HDSTBcGcPJK7pcpqEIARCZQsMqZSDM+7Cg4limjaXnbHMlhzIYERyhwqCNPAnT1X6Y3OchGUDAAtDKvj6NYgQohYljCsMRjzIYASTN2NjXXVI0Na9FbUoIwirI5LJrZloJcCOI52GVZihD5goIhmxoHq24OQycl02NFCMPuNmSfN8xRpRjRqfRsv16P9p4WFYIOGIYCYjgex1mD5oLrPTL2M-FC5UqSrOPejDbrbMraniZ+4nGV6J6OmqwbJsl3jPY2wQ2YaKy6W8sVpZYbs+rmUzDl4y84T7rBDyZgOvsWvqd4EI67bU7AeJtlJc7zkbnyYrBORxGaVCDh6PhhtGAcJjjPye3EWHolxUGCV2YrMcfWhFi5TyjgUYb9h+2TFG+GMIUhRyUy7IXjV0RNH5tZ13VvUpRpjOYYpBWZCxzOnZNHQZGweSR7qhDLcMTqN9vcDkhR0AwsCq1Gq1GhyIxWvsSYWMZ-I9mTJGEbXsx7Av4Qb7ecsR48ACirHsRXmMBjIi2JaRwEIDzeWtsDMmgUdCthwjadSaJFiWBumEIAA */\n id: \"GoToDashboardDeviceAction\",\n initial: \"DeviceReady\",\n context: (_) => {\n const sessionState = getDeviceSessionState();\n return {\n input: {\n unlockTimeout: _.input.unlockTimeout,\n },\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n currentApp:\n \"currentApp\" in sessionState\n ? sessionState.currentApp.name\n : null,\n error: null,\n },\n };\n },\n states: {\n DeviceReady: {\n always: {\n target: \"GetDeviceStatus\",\n },\n },\n GetDeviceStatus: {\n // We run the GetDeviceStatus flow to get information about the device state\n invoke: {\n id: \"deviceStatus\",\n src: \"getDeviceStatus\",\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: \"CheckDeviceStatus\",\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<GoToDashboardMachineInternalState>(\n {\n Right: (output) => ({\n ..._.context._internalState,\n currentApp: output.currentApp,\n }),\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n },\n );\n },\n }),\n },\n // NOTE: The way we handle our DeviceActions means that we should never as we return an Either\n // onError: {\n // target: \"Error\",\n // actions: \"assignGetDeviceStatusUnknownError\",\n // },\n },\n },\n CheckDeviceStatus: {\n // We check the device status to see if we can have an error\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"DashboardCheck\",\n },\n ],\n },\n DashboardCheck: {\n // We check if the dashboard is open\n always: [\n {\n target: \"Success\",\n guard: \"isDashboardOpen\",\n },\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"Error\",\n guard: (_) => {\n return _.context._internalState.currentApp === null;\n },\n actions: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: new UnknownDAError(\"currentApp === null\"),\n }),\n }),\n },\n {\n target: \"CloseApp\",\n },\n ],\n },\n CloseApp: {\n invoke: {\n src: \"closeApp\",\n onDone: {\n target: \"CloseAppCheck\",\n actions: assign({\n _internalState: (_) => {\n if (isSuccessCommandResult(_.event.output)) {\n return _.context._internalState;\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 CloseAppCheck: {\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"GetAppAndVersion\",\n reenter: true,\n },\n ],\n },\n GetAppAndVersion: {\n invoke: {\n src: \"getAppAndVersion\",\n onDone: {\n target: \"DashboardCheck\",\n actions: assign({\n _internalState: (_) => {\n if (isSuccessCommandResult(_.event.output)) {\n const state: DeviceSessionState = getDeviceSessionState();\n // Narrow the type to ReadyWithoutSecureChannelState or ReadyWithSecureChannelState\n if (\n state.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n setDeviceSessionState({\n ...state,\n currentApp: _.event.output.data,\n });\n }\n return {\n ..._.context._internalState,\n currentApp: _.event.output.data.name,\n };\n }\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n },\n }),\n },\n },\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: (_) => {\n if (_.context._internalState.error) {\n return Left(_.context._internalState.error);\n }\n\n return Right(undefined);\n },\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const closeApp = async () => internalApi.sendCommand(new CloseAppCommand());\n const getAppAndVersion = async () =>\n internalApi.sendCommand(new GetAppAndVersionCommand());\n\n return {\n closeApp,\n getAppAndVersion,\n getDeviceSessionState: () => internalApi.getDeviceSessionState(),\n setDeviceSessionState: (state: DeviceSessionState) =>\n internalApi.setDeviceSessionState(state),\n };\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Left", "Right", "assign", "fromPromise", "setup", "isSuccessCommandResult", "CloseAppCommand", "GetAppAndVersionCommand", "UserInteractionRequired", "DEFAULT_UNLOCK_TIMEOUT_MS", "UnknownDAError", "GetDeviceStatusDeviceAction", "XStateDeviceAction", "DeviceSessionStateType", "isDashboardName", "GoToDashboardDeviceAction", "internalApi", "getDeviceSessionState", "setDeviceSessionState", "closeApp", "getAppAndVersion", "unlockTimeout", "getDeviceStatusMachine", "context", "_", "sessionState", "output", "error", "state"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ import{Left as h,Right as y}from"purify-ts";import{assign as a,fromObservable as S,fromPromise as A,setup as g}from"xstate";import{UserInteractionRequired as i}from"../../../device-action/model/UserInteractionRequired";import{DEFAULT_UNLOCK_TIMEOUT_MS as x}from"../../../device-action/os/Const";import{OutOfMemoryDAError as O}from"../../../device-action/os/Errors";import{GetDeviceMetadataDeviceAction as D}from"../../../device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction";import{GoToDashboardDeviceAction as f}from"../../../device-action/os/GoToDashboard/GoToDashboardDeviceAction";import{BuildAppsInstallPlanTask as v}from"../../../device-action/task/BuildAppsInstallPlanTask";import{PredictOutOfMemoryTask as M}from"../../../device-action/task/PredictOutOfMemoryTask";import{XStateDeviceAction as P}from"../../../device-action/xstate-utils/XStateDeviceAction";import{DeviceSessionStateType as I}from"../../../device-session/DeviceSessionState";import{ConnectToSecureChannelTask as E}from"../../../secure-channel/task/ConnectToSecureChannelTask";import{SecureChannelEventType as o}from"../../../secure-channel/task/types";class K extends P{makeStateMachine(e){const{buildInstallPlan:c,predictOutOfMemory:u,installApp:d}=this.extractDependencies(e),r=this.input.unlockTimeout??x,l=new D({input:{unlockTimeout:r,useSecureChannel:!0,forceUpdate:!1}}).makeStateMachine(e),s=new f({input:{unlockTimeout:r}}).makeStateMachine(e);return g({types:{input:{unlockTimeout:r},context:{},output:{}},actors:{updateMetadata:l,buildInstallPlan:A(c),predictOutOfMemory:A(u),goToDashboard:s,installApp:S(d)},guards:{hasError:({context:t})=>t._internalState.error!==null,hasInstallPlan:t=>t.context.intermediateValue.installPlan!==null,hasMoreApps:t=>t.context._internalState.currentIndex<t.context.intermediateValue.installPlan.installPlan.length},actions:{assignErrorFromEvent:a({_internalState:t=>({...t.context._internalState,error:t.event.error})}),nextAppIndex:a({_internalState:t=>({...t.context._internalState,currentIndex:t.context._internalState.currentIndex+1})}),cleanupDeviceState:()=>{const t=e.getDeviceSessionState();t.sessionStateType!==I.Connected&&e.setDeviceSessionState({...t,installedApps:[],appsUpdates:void 0})}}}).createMachine({id:"InstallOrUpdateAppsDeviceAction",initial:"DeviceReady",context:t=>({input:{applications:t.input.applications,allowMissingApplication:t.input.allowMissingApplication,unlockTimeout:t.input.unlockTimeout},intermediateValue:{requiredUserInteraction:i.None,installPlan:null},_internalState:{error:null,osVersion:null,currentIndex:0}}),states:{DeviceReady:{always:[{target:"UpdateDeviceMetadata"}]},UpdateDeviceMetadata:{exit:a({intermediateValue:t=>({...t.context.intermediateValue,requiredUserInteraction:i.None})}),invoke:{id:"updateMetadata",src:"updateMetadata",input:t=>({unlockTimeout:t.context.input.unlockTimeout,useSecureChannel:!0,forceUpdate:!1}),onSnapshot:{actions:a({intermediateValue:t=>({...t.context.intermediateValue,requiredUserInteraction:t.event.snapshot.context.intermediateValue.requiredUserInteraction})})},onDone:{target:"UpdateDeviceMetadataCheck",actions:a({_internalState:t=>t.event.output.caseOf({Right:n=>({...t.context._internalState,osVersion:n.firmwareVersion.metadata}),Left:n=>({...t.context._internalState,error:n})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},UpdateDeviceMetadataCheck:{always:[{target:"Error",guard:"hasError"},{target:"Success",guard:"hasInstallPlan"},{target:"BuildInstallPlan"}]},BuildInstallPlan:{invoke:{src:"buildInstallPlan",input:t=>({applications:t.context.input.applications,allowMissingApplication:t.context.input.allowMissingApplication}),onDone:{target:"BuildInstallPlanCheck",actions:a({_internalState:t=>"error"in t.event.output?{...t.context._internalState,error:t.event.output.error}:t.context._internalState,intermediateValue:t=>"error"in t.event.output?t.context.intermediateValue:{...t.context.intermediateValue,installPlan:{installPlan:t.event.output.installPlan,alreadyInstalled:t.event.output.alreadyInstalled,missingApplications:t.event.output.missingApplications,currentIndex:0,currentProgress:0}}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildInstallPlanCheck:{always:[{guard:"hasError",target:"Error"},{target:"PredictOutOfMemory",guard:"hasMoreApps"},{target:"Success"}]},PredictOutOfMemory:{invoke:{src:"predictOutOfMemory",input:t=>({installPlan:t.context.intermediateValue.installPlan.installPlan}),onDone:{target:"PredictOutOfMemoryCheck",actions:a({_internalState:t=>"error"in t.event.output?{...t.context._internalState,error:t.event.output.error}:t.event.output.outOfMemory?{...t.context._internalState,error:new O("Not enough memory for those applications")}:t.context._internalState})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},PredictOutOfMemoryCheck:{always:[{guard:"hasError",target:"Error"},{target:"GoToDashboard"}]},GoToDashboard:{invoke:{id:"goToDashboard",src:"goToDashboard",input:t=>({unlockTimeout:t.context.input.unlockTimeout}),onSnapshot:{actions:a({intermediateValue:t=>({...t.context.intermediateValue,requiredUserInteraction:t.event.snapshot.context.intermediateValue.requiredUserInteraction})})},onDone:{target:"GoToDashboardCheck",actions:a({_internalState:t=>t.event.output.caseOf({Right:()=>t.context._internalState,Left:n=>({...t.context._internalState,error:n})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GoToDashboardCheck:{always:[{target:"Error",guard:"hasError"},{target:"InstallApp",actions:"cleanupDeviceState"}]},InstallApp:{exit:a({intermediateValue:t=>({...t.context.intermediateValue,requiredUserInteraction:i.None})}),invoke:{id:"installApp",src:"installApp",input:t=>({osVersion:t.context._internalState.osVersion,application:t.context.intermediateValue.installPlan.installPlan[t.context._internalState.currentIndex]}),onSnapshot:{actions:a({intermediateValue:t=>{switch(t.event.snapshot.context?.type){case o.PermissionRequested:return{...t.context.intermediateValue,requiredUserInteraction:i.AllowSecureConnection};case o.PermissionGranted:{const n=e.getDeviceSessionState();return n.sessionStateType!==I.Connected&&e.setDeviceSessionState({...n,isSecureConnectionAllowed:!0}),{...t.context.intermediateValue,requiredUserInteraction:i.None}}case o.Progress:return{...t.context.intermediateValue,installPlan:{...t.context.intermediateValue.installPlan,currentIndex:t.context._internalState.currentIndex,currentProgress:t.event.snapshot.context.payload.progress}};default:return t.context.intermediateValue}},_internalState:t=>t.event.snapshot.context?.type===o.Error?{...t.context._internalState,error:t.event.snapshot.context.error.mapInstallDAErrors()}:t.context._internalState})},onDone:{target:"InstallAppCheck",actions:"nextAppIndex"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},InstallAppCheck:{always:[{target:"Error",guard:"hasError"},{target:"InstallApp",guard:"hasMoreApps"},{target:"UpdateDeviceMetadata"}]},Success:{type:"final"},Error:{type:"final"}},output:t=>{const{context:n}=t,{error:m}=n._internalState,{installPlan:p}=n.intermediateValue;return m?h(m):y({successfullyInstalled:p.installPlan,alreadyInstalled:p.alreadyInstalled,missingApplications:p.missingApplications})}})}extractDependencies(e){return{buildInstallPlan:async r=>new v(e,{applications:r.input.applications,allowMissingApplication:r.input.allowMissingApplication}).run(),predictOutOfMemory:async r=>new M(e,{installPlan:r.input.installPlan}).run(),installApp:r=>{const{osVersion:l,application:s}=r.input,t=e.getSecureChannelService().installApp(l,s);return new E(e,{connection:t}).run()}}}}export{K as InstallOrUpdateAppsDeviceAction};
2
+ //# sourceMappingURL=InstallOrUpdateAppsDeviceAction.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.ts"],
4
+ "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { type Observable } from \"rxjs\";\nimport { assign, fromObservable, fromPromise, setup } from \"xstate\";\n\nimport { type InternalApi } from \"@api/device-action/DeviceAction\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport { DEFAULT_UNLOCK_TIMEOUT_MS } from \"@api/device-action/os/Const\";\nimport { OutOfMemoryDAError } from \"@api/device-action/os/Errors\";\nimport { GetDeviceMetadataDeviceAction } from \"@api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction\";\nimport { GoToDashboardDeviceAction } from \"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\";\nimport {\n BuildAppsInstallPlanTask,\n type BuildAppsInstallPlanTaskResult,\n} from \"@api/device-action/task/BuildAppsInstallPlanTask\";\nimport {\n PredictOutOfMemoryTask,\n type PredictOutOfMemoryTaskResult,\n} from \"@api/device-action/task/PredictOutOfMemoryTask\";\nimport { type StateMachineTypes } from \"@api/device-action/xstate-utils/StateMachineTypes\";\nimport {\n type DeviceActionStateMachine,\n XStateDeviceAction,\n} from \"@api/device-action/xstate-utils/XStateDeviceAction\";\nimport { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\nimport { type GetOsVersionResponse } from \"@api/index\";\nimport { ConnectToSecureChannelTask } from \"@api/secure-channel/task/ConnectToSecureChannelTask\";\nimport { SecureChannelEventType } from \"@api/secure-channel/task/types\";\nimport { type SecureChannelEvent } from \"@api/secure-channel/task/types\";\nimport { type Application } from \"@internal/manager-api/model/Application\";\n\nimport {\n type ApplicationDependency,\n type InstallOrUpdateAppsDAError,\n type InstallOrUpdateAppsDAInput,\n type InstallOrUpdateAppsDAIntermediateValue,\n type InstallOrUpdateAppsDAOutput,\n} from \"./types\";\n\ntype InstallOrUpdateAppsMachineInternalState = {\n readonly error: InstallOrUpdateAppsDAError | null;\n readonly osVersion: GetOsVersionResponse | null;\n readonly currentIndex: number;\n};\n\nexport type MachineDependencies = {\n readonly buildInstallPlan: (arg0: {\n input: {\n applications: ApplicationDependency[];\n allowMissingApplication: boolean;\n };\n }) => Promise<BuildAppsInstallPlanTaskResult>;\n readonly predictOutOfMemory: (arg0: {\n input: {\n installPlan: Application[];\n };\n }) => Promise<PredictOutOfMemoryTaskResult>;\n readonly installApp: (arg0: {\n input: {\n osVersion: GetOsVersionResponse;\n application: Application;\n };\n }) => Observable<SecureChannelEvent>;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class InstallOrUpdateAppsDeviceAction extends XStateDeviceAction<\n InstallOrUpdateAppsDAOutput,\n InstallOrUpdateAppsDAInput,\n InstallOrUpdateAppsDAError,\n InstallOrUpdateAppsDAIntermediateValue,\n InstallOrUpdateAppsMachineInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n InstallOrUpdateAppsDAOutput,\n InstallOrUpdateAppsDAInput,\n InstallOrUpdateAppsDAError,\n InstallOrUpdateAppsDAIntermediateValue,\n InstallOrUpdateAppsMachineInternalState\n > {\n type types = StateMachineTypes<\n InstallOrUpdateAppsDAOutput,\n InstallOrUpdateAppsDAInput,\n InstallOrUpdateAppsDAError,\n InstallOrUpdateAppsDAIntermediateValue,\n InstallOrUpdateAppsMachineInternalState\n >;\n\n const { buildInstallPlan, predictOutOfMemory, installApp } =\n this.extractDependencies(internalApi);\n\n const unlockTimeout = this.input.unlockTimeout ?? DEFAULT_UNLOCK_TIMEOUT_MS;\n\n const updateMetadataMachine = new GetDeviceMetadataDeviceAction({\n input: {\n unlockTimeout,\n useSecureChannel: true,\n forceUpdate: false,\n },\n }).makeStateMachine(internalApi);\n\n const goToDashboardMachine = new GoToDashboardDeviceAction({\n input: {\n unlockTimeout,\n },\n }).makeStateMachine(internalApi);\n\n return setup({\n types: {\n input: {\n unlockTimeout,\n } as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n actors: {\n updateMetadata: updateMetadataMachine,\n buildInstallPlan: fromPromise(buildInstallPlan),\n predictOutOfMemory: fromPromise(predictOutOfMemory),\n goToDashboard: goToDashboardMachine,\n installApp: fromObservable(installApp),\n },\n guards: {\n hasError: ({ context }) => context._internalState.error !== null,\n hasInstallPlan: (_) => _.context.intermediateValue.installPlan !== null,\n hasMoreApps: (_) =>\n _.context._internalState.currentIndex <\n _.context.intermediateValue.installPlan!.installPlan.length,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n nextAppIndex: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n currentIndex: _.context._internalState.currentIndex + 1,\n }),\n }),\n cleanupDeviceState: () => {\n // After app successful installation, cleanup the device session state\n // to force fetching the new device state when required\n const state = internalApi.getDeviceSessionState();\n if (state.sessionStateType !== DeviceSessionStateType.Connected) {\n internalApi.setDeviceSessionState({\n ...state,\n installedApps: [],\n appsUpdates: undefined,\n });\n }\n },\n },\n }).createMachine({\n id: \"InstallOrUpdateAppsDeviceAction\",\n initial: \"DeviceReady\",\n context: (_) => {\n return {\n input: {\n applications: _.input.applications,\n allowMissingApplication: _.input.allowMissingApplication,\n unlockTimeout: _.input.unlockTimeout,\n },\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n _internalState: {\n error: null,\n osVersion: null,\n currentIndex: 0,\n },\n };\n },\n states: {\n DeviceReady: {\n always: [\n {\n target: \"UpdateDeviceMetadata\",\n },\n ],\n },\n UpdateDeviceMetadata: {\n exit: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n }),\n }),\n invoke: {\n id: \"updateMetadata\",\n src: \"updateMetadata\",\n input: (_) => ({\n unlockTimeout: _.context.input.unlockTimeout,\n useSecureChannel: true,\n forceUpdate: false,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n requiredUserInteraction:\n _.event.snapshot.context.intermediateValue\n .requiredUserInteraction,\n }),\n }),\n },\n onDone: {\n target: \"UpdateDeviceMetadataCheck\",\n actions: assign({\n _internalState: (_) =>\n _.event.output.caseOf<InstallOrUpdateAppsMachineInternalState>(\n {\n Right: (data) => ({\n ..._.context._internalState,\n osVersion: data.firmwareVersion.metadata!,\n }),\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n },\n ),\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n UpdateDeviceMetadataCheck: {\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"Success\",\n guard: \"hasInstallPlan\",\n },\n {\n target: \"BuildInstallPlan\",\n },\n ],\n },\n BuildInstallPlan: {\n invoke: {\n src: \"buildInstallPlan\",\n input: (_) => ({\n applications: _.context.input.applications,\n allowMissingApplication: _.context.input.allowMissingApplication,\n }),\n onDone: {\n target: \"BuildInstallPlanCheck\",\n actions: assign({\n _internalState: (_) => {\n if (\"error\" in _.event.output) {\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n } else {\n return _.context._internalState;\n }\n },\n intermediateValue: (_) => {\n if (\"error\" in _.event.output) {\n return _.context.intermediateValue;\n } else {\n return {\n ..._.context.intermediateValue,\n installPlan: {\n installPlan: _.event.output.installPlan,\n alreadyInstalled: _.event.output.alreadyInstalled,\n missingApplications: _.event.output.missingApplications,\n currentIndex: 0,\n currentProgress: 0,\n },\n };\n }\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n BuildInstallPlanCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"PredictOutOfMemory\",\n guard: \"hasMoreApps\",\n },\n {\n target: \"Success\",\n },\n ],\n },\n PredictOutOfMemory: {\n invoke: {\n src: \"predictOutOfMemory\",\n input: (_) => ({\n installPlan: _.context.intermediateValue.installPlan!.installPlan,\n }),\n onDone: {\n target: \"PredictOutOfMemoryCheck\",\n actions: assign({\n _internalState: (_) => {\n if (\"error\" in _.event.output) {\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n } else if (_.event.output.outOfMemory) {\n return {\n ..._.context._internalState,\n error: new OutOfMemoryDAError(\n \"Not enough memory for those applications\",\n ),\n };\n } else {\n return _.context._internalState;\n }\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n PredictOutOfMemoryCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"GoToDashboard\",\n },\n ],\n },\n GoToDashboard: {\n invoke: {\n id: \"goToDashboard\",\n src: \"goToDashboard\",\n input: (_) => ({\n unlockTimeout: _.context.input.unlockTimeout,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n requiredUserInteraction:\n _.event.snapshot.context.intermediateValue\n .requiredUserInteraction,\n }),\n }),\n },\n onDone: {\n target: \"GoToDashboardCheck\",\n actions: assign({\n _internalState: (_) =>\n _.event.output.caseOf<InstallOrUpdateAppsMachineInternalState>(\n {\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n },\n ),\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GoToDashboardCheck: {\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"InstallApp\",\n actions: \"cleanupDeviceState\",\n },\n ],\n },\n InstallApp: {\n exit: assign({\n intermediateValue: (_) => ({\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n }),\n }),\n invoke: {\n id: \"installApp\",\n src: \"installApp\",\n input: (_) => ({\n osVersion: _.context._internalState.osVersion!,\n application:\n _.context.intermediateValue.installPlan!.installPlan[\n _.context._internalState.currentIndex\n ]!,\n }),\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) => {\n switch (_.event.snapshot.context?.type) {\n case SecureChannelEventType.PermissionRequested: {\n return {\n ..._.context.intermediateValue,\n requiredUserInteraction:\n UserInteractionRequired.AllowSecureConnection,\n };\n }\n case SecureChannelEventType.PermissionGranted: {\n const deviceState = internalApi.getDeviceSessionState();\n if (\n deviceState.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n internalApi.setDeviceSessionState({\n ...deviceState,\n isSecureConnectionAllowed: true,\n });\n }\n return {\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n };\n }\n case SecureChannelEventType.Progress: {\n return {\n ..._.context.intermediateValue,\n installPlan: {\n ..._.context.intermediateValue.installPlan!,\n currentIndex: _.context._internalState.currentIndex,\n currentProgress:\n _.event.snapshot.context.payload.progress,\n },\n };\n }\n default:\n return _.context.intermediateValue;\n }\n },\n _internalState: (_) => {\n if (\n _.event.snapshot.context?.type ===\n SecureChannelEventType.Error\n ) {\n return {\n ..._.context._internalState,\n error:\n _.event.snapshot.context.error.mapInstallDAErrors(),\n };\n }\n return _.context._internalState;\n },\n }),\n },\n onDone: {\n target: \"InstallAppCheck\",\n actions: \"nextAppIndex\",\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n InstallAppCheck: {\n always: [\n {\n target: \"Error\",\n guard: \"hasError\",\n },\n {\n target: \"InstallApp\",\n guard: \"hasMoreApps\",\n },\n {\n target: \"UpdateDeviceMetadata\",\n },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: (args) => {\n const { context } = args;\n const { error } = context._internalState;\n const { installPlan } = context.intermediateValue;\n if (error) {\n return Left(error);\n }\n return Right({\n successfullyInstalled: installPlan!.installPlan,\n alreadyInstalled: installPlan!.alreadyInstalled,\n missingApplications: installPlan!.missingApplications,\n });\n },\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const buildInstallPlan = async (arg0: {\n input: {\n applications: ApplicationDependency[];\n allowMissingApplication: boolean;\n };\n }) =>\n new BuildAppsInstallPlanTask(internalApi, {\n applications: arg0.input.applications,\n allowMissingApplication: arg0.input.allowMissingApplication,\n }).run();\n\n const predictOutOfMemory = async (arg0: {\n input: {\n installPlan: Application[];\n };\n }) =>\n new PredictOutOfMemoryTask(internalApi, {\n installPlan: arg0.input.installPlan,\n }).run();\n\n const installApp = (arg0: {\n input: {\n osVersion: GetOsVersionResponse;\n application: Application;\n };\n }) => {\n const { osVersion, application } = arg0.input;\n const connection = internalApi\n .getSecureChannelService()\n .installApp(osVersion, application);\n return new ConnectToSecureChannelTask(internalApi, {\n connection,\n }).run();\n };\n\n return {\n buildInstallPlan,\n predictOutOfMemory,\n installApp,\n };\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Left", "Right", "assign", "fromObservable", "fromPromise", "setup", "UserInteractionRequired", "DEFAULT_UNLOCK_TIMEOUT_MS", "OutOfMemoryDAError", "GetDeviceMetadataDeviceAction", "GoToDashboardDeviceAction", "BuildAppsInstallPlanTask", "PredictOutOfMemoryTask", "XStateDeviceAction", "DeviceSessionStateType", "ConnectToSecureChannelTask", "SecureChannelEventType", "InstallOrUpdateAppsDeviceAction", "internalApi", "buildInstallPlan", "predictOutOfMemory", "installApp", "unlockTimeout", "updateMetadataMachine", "goToDashboardMachine", "context", "_", "state", "data", "error", "deviceState", "args", "installPlan", "arg0", "osVersion", "application", "connection"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{concat as V,of as A,throwError as y}from"rxjs";import{DeviceStatus as D}from"../../../device/DeviceStatus";import{makeDeviceActionInternalApiMock as f}from"../../../device-action/__test-utils__/makeInternalApi";import{setupGoToDashboardMock as I}from"../../../device-action/__test-utils__/setupTestMachine";import{setupGetDeviceMetadataMock as c}from"../../../device-action/__test-utils__/setupTestMachine";import{testDeviceActionStates as d}from"../../../device-action/__test-utils__/testDeviceActionStates";import{DeviceActionStatus as e}from"../../../device-action/model/DeviceActionState";import{UserInteractionRequired as n}from"../../../device-action/model/UserInteractionRequired";import{UnknownDAError as m}from"../../../device-action/os/Errors";import{OutOfMemoryDAError as S}from"../../../device-action/os/Errors";import{DeviceSessionStateType as N}from"../../../device-session/DeviceSessionState";import{SecureChannelEventType as p}from"../../../secure-channel/task/types";import{InstallOrUpdateAppsDeviceAction as P}from"./InstallOrUpdateAppsDeviceAction";vi.mock("@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction");vi.mock("@api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction");describe("InstallOrUpdateAppsDeviceAction",()=>{const o=f(),l=vi.fn(),g=vi.fn(),v=vi.fn();function u(){return{buildInstallPlan:l,predictOutOfMemory:g,installApp:v}}beforeEach(()=>{vi.clearAllMocks(),o.getDeviceSessionState.mockReturnValue({sessionStateType:N.Connected,deviceStatus:D.CONNECTED})}),describe("success cases",()=>{it("Install two applications",()=>new Promise((r,i)=>{I(),c({firmwareVersion:{metadata:{targetId:857735172}}});const a=new P({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),t={installPlan:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]};l.mockResolvedValueOnce(t),g.mockResolvedValueOnce({outOfMemory:!1}),v.mockReturnValueOnce(A({type:p.PermissionRequested},{type:p.PermissionGranted},{type:p.Progress,payload:{progress:.5}},{type:p.Progress,payload:{progress:1}})).mockReturnValueOnce(A({type:p.Progress,payload:{progress:.25}},{type:p.Progress,payload:{progress:.75}},{type:p.Progress,payload:{progress:1}})),vi.spyOn(a,"extractDependencies").mockReturnValue(u());const s=[{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.AllowSecureConnection,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:.5}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:1}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:1}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:1}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:1,currentProgress:.25}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:1,currentProgress:.75}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:1,currentProgress:1}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:1,currentProgress:1}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:1,currentProgress:1}},status:e.Pending},{output:{successfullyInstalled:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]},status:e.Completed}];d(a,s,o,{onDone:r,onError:i})})),it("No install is needed",()=>new Promise((r,i)=>{I(),c({firmwareVersion:{metadata:{targetId:857735172}}});const a=new P({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),t={installPlan:[],alreadyInstalled:["Ethereum","Solana","Bitcoin","XRP"],missingApplications:["MyShitCoin"]};l.mockResolvedValueOnce(t),vi.spyOn(a,"extractDependencies").mockReturnValue(u());const s=[{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{output:{successfullyInstalled:[],alreadyInstalled:["Ethereum","Solana","Bitcoin","XRP"],missingApplications:["MyShitCoin"]},status:e.Completed}];d(a,s,o,{onDone:r,onError:i})}))}),describe("error cases",()=>{it("Update device metadata failure",()=>new Promise((r,i)=>{c({firmwareVersion:{metadata:{targetId:857735172}}},!0);const a=new P({input:{applications:[{name:"Bitcoin"}],allowMissingApplication:!1}});vi.spyOn(a,"extractDependencies").mockReturnValue(u());const t=[{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{error:new m("GetDeviceMetadata failed"),status:e.Error}];d(a,t,o,{onDone:r,onError:i})})),it("Build install plan failure",()=>new Promise((r,i)=>{c({firmwareVersion:{metadata:{targetId:857735172}}});const a=new P({input:{applications:[{name:"Bitcoin"}],allowMissingApplication:!1}});l.mockResolvedValueOnce({error:new m("BuildInstallPlan failed")}),vi.spyOn(a,"extractDependencies").mockReturnValue(u());const t=[{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{error:new m("BuildInstallPlan failed"),status:e.Error}];d(a,t,o,{onDone:r,onError:i})})),it("Predict out of memory failure",()=>new Promise((r,i)=>{c({firmwareVersion:{metadata:{targetId:857735172}}});const a=new P({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),t={installPlan:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]};l.mockResolvedValueOnce(t),g.mockResolvedValueOnce({error:new m("PredictOutOfMemory failed")}),vi.spyOn(a,"extractDependencies").mockReturnValue(u());const s=[{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{error:new m("PredictOutOfMemory failed"),status:e.Error}];d(a,s,o,{onDone:r,onError:i})})),it("Is out of memory",()=>new Promise((r,i)=>{c({firmwareVersion:{metadata:{targetId:857735172}}});const a=new P({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),t={installPlan:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]};l.mockResolvedValueOnce(t),g.mockResolvedValueOnce({outOfMemory:!0}),vi.spyOn(a,"extractDependencies").mockReturnValue(u());const s=[{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{error:new S("Not enough memory for those applications"),status:e.Error}];d(a,s,o,{onDone:r,onError:i})})),it("Go to dashboard failure",()=>new Promise((r,i)=>{I(!0),c({firmwareVersion:{metadata:{targetId:857735172}}});const a=new P({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),t={installPlan:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]};l.mockResolvedValueOnce(t),g.mockResolvedValueOnce({outOfMemory:!1}),vi.spyOn(a,"extractDependencies").mockReturnValue(u());const s=[{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{error:new m("GoToDashboard failed"),status:e.Error}];d(a,s,o,{onDone:r,onError:i})})),it("Install app failure",()=>new Promise((r,i)=>{I(),c({firmwareVersion:{metadata:{targetId:857735172}}});const a=new P({input:{applications:[{name:"Bitcoin"},{name:"Ethereum"},{name:"Solana"},{name:"XRP"},{name:"MyShitCoin"}],allowMissingApplication:!1}}),t={installPlan:[{versionName:"Bitcoin"},{versionName:"XRP"}],alreadyInstalled:["Ethereum","Solana"],missingApplications:["MyShitCoin"]};l.mockResolvedValueOnce(t),g.mockResolvedValueOnce({outOfMemory:!1}),v.mockReturnValue(V(A({type:p.Exchange,payload:{data:new Uint8Array([0,1,2,3])}}),y(()=>new m("Secure channel error")))),vi.spyOn(a,"extractDependencies").mockReturnValue(u());const s=[{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:null},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{intermediateValue:{requiredUserInteraction:n.None,installPlan:{...t,currentIndex:0,currentProgress:0}},status:e.Pending},{error:new m("Secure channel error"),status:e.Error}];d(a,s,o,{onDone:r,onError:i})}))})});
2
+ //# sourceMappingURL=InstallOrUpdateAppsDeviceAction.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.ts"],
4
+ "sourcesContent": ["import { concat, of, throwError } from \"rxjs\";\n\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { setupGoToDashboardMock } from \"@api/device-action/__test-utils__/setupTestMachine\";\nimport { setupGetDeviceMetadataMock } from \"@api/device-action/__test-utils__/setupTestMachine\";\nimport { testDeviceActionStates } from \"@api/device-action/__test-utils__/testDeviceActionStates\";\nimport { DeviceActionStatus } from \"@api/device-action/model/DeviceActionState\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport { UnknownDAError } from \"@api/device-action/os/Errors\";\nimport { OutOfMemoryDAError } from \"@api/device-action/os/Errors\";\nimport type { GetDeviceMetadataDAOutput } from \"@api/device-action/os/GetDeviceMetadata/types\";\nimport type { DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\nimport type { SecureChannelEventPayload } from \"@api/secure-channel/task/types\";\nimport { SecureChannelEventType } from \"@api/secure-channel/task/types\";\nimport type { Application } from \"@internal/manager-api/model/Application\";\n\nimport { InstallOrUpdateAppsDeviceAction } from \"./InstallOrUpdateAppsDeviceAction\";\nimport type { InstallOrUpdateAppsDAState } from \"./types\";\n\nvi.mock(\"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\");\nvi.mock(\n \"@api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction\",\n);\n\ndescribe(\"InstallOrUpdateAppsDeviceAction\", () => {\n const apiMock = makeDeviceActionInternalApiMock();\n const buildInstallPlanMock = vi.fn();\n const predictOutOfMemoryMock = vi.fn();\n const installAppMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n buildInstallPlan: buildInstallPlanMock,\n predictOutOfMemory: predictOutOfMemoryMock,\n installApp: installAppMock,\n };\n }\n\n beforeEach(() => {\n vi.clearAllMocks();\n apiMock.getDeviceSessionState.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n } as DeviceSessionState);\n });\n\n describe(\"success cases\", () => {\n it(\"Install two applications\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n predictOutOfMemoryMock.mockResolvedValueOnce({\n outOfMemory: false,\n });\n installAppMock\n .mockReturnValueOnce(\n of(\n {\n type: SecureChannelEventType.PermissionRequested,\n },\n {\n type: SecureChannelEventType.PermissionGranted,\n },\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 0.5 },\n },\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 1 },\n },\n ),\n )\n .mockReturnValueOnce(\n of(\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 0.25 },\n },\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 0.75 },\n },\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 1 },\n },\n ),\n );\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // PredictOutOfMemory\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // GoToDashboard\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // InstallApp\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // InstallApp install first app\n {\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.AllowSecureConnection,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0.5,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // InstallApp install second app\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 1,\n currentProgress: 0.25,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 1,\n currentProgress: 0.75,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 1,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 1,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 1,\n currentProgress: 1,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n output: {\n successfullyInstalled: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as unknown as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n },\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"No install is needed\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [],\n alreadyInstalled: [\"Ethereum\", \"Solana\", \"Bitcoin\", \"XRP\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n output: {\n successfullyInstalled: [],\n alreadyInstalled: [\"Ethereum\", \"Solana\", \"Bitcoin\", \"XRP\"],\n missingApplications: [\"MyShitCoin\"],\n },\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n });\n\n describe(\"error cases\", () => {\n it(\"Update device metadata failure\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceMetadataMock(\n {\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput,\n true,\n );\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [{ name: \"Bitcoin\" }],\n allowMissingApplication: false,\n },\n });\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new UnknownDAError(\"GetDeviceMetadata failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Build install plan failure\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [{ name: \"Bitcoin\" }],\n allowMissingApplication: false,\n },\n });\n\n buildInstallPlanMock.mockResolvedValueOnce({\n error: new UnknownDAError(\"BuildInstallPlan failed\"),\n });\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new UnknownDAError(\"BuildInstallPlan failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Predict out of memory failure\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n predictOutOfMemoryMock.mockResolvedValueOnce({\n error: new UnknownDAError(\"PredictOutOfMemory failed\"),\n });\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // PredictOutOfMemory\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new UnknownDAError(\"PredictOutOfMemory failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Is out of memory\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n predictOutOfMemoryMock.mockResolvedValueOnce({\n outOfMemory: true,\n });\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // PredictOutOfMemory\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new OutOfMemoryDAError(\n \"Not enough memory for those applications\",\n ),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Go to dashboard failure\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock(true);\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n predictOutOfMemoryMock.mockResolvedValueOnce({\n outOfMemory: false,\n });\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // PredictOutOfMemory\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // GoToDashboard\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new UnknownDAError(\"GoToDashboard failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Install app failure\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n setupGetDeviceMetadataMock({\n firmwareVersion: {\n metadata: {\n targetId: 0x33200004,\n },\n },\n } as unknown as GetDeviceMetadataDAOutput);\n const deviceAction = new InstallOrUpdateAppsDeviceAction({\n input: {\n applications: [\n { name: \"Bitcoin\" },\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"XRP\" },\n { name: \"MyShitCoin\" },\n ],\n allowMissingApplication: false,\n },\n });\n const installPlan = {\n installPlan: [\n { versionName: \"Bitcoin\" },\n { versionName: \"XRP\" },\n ] as Application[],\n alreadyInstalled: [\"Ethereum\", \"Solana\"],\n missingApplications: [\"MyShitCoin\"],\n };\n\n buildInstallPlanMock.mockResolvedValueOnce(installPlan);\n predictOutOfMemoryMock.mockResolvedValueOnce({\n outOfMemory: false,\n });\n installAppMock.mockReturnValue(\n concat(\n of({\n type: SecureChannelEventType.Exchange,\n payload: {\n data: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n } as SecureChannelEventPayload[\"Exchange\"],\n }),\n throwError(() => new UnknownDAError(\"Secure channel error\")),\n ),\n );\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<InstallOrUpdateAppsDAState> = [\n // UpdateDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // BuildInstallPlan\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n },\n status: DeviceActionStatus.Pending,\n },\n // PredictOutOfMemory\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // GoToDashboard\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // InstallApp\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: {\n ...installPlan,\n currentIndex: 0,\n currentProgress: 0,\n },\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n error: new UnknownDAError(\"Secure channel error\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["concat", "of", "throwError", "DeviceStatus", "makeDeviceActionInternalApiMock", "setupGoToDashboardMock", "setupGetDeviceMetadataMock", "testDeviceActionStates", "DeviceActionStatus", "UserInteractionRequired", "UnknownDAError", "OutOfMemoryDAError", "DeviceSessionStateType", "SecureChannelEventType", "InstallOrUpdateAppsDeviceAction", "apiMock", "buildInstallPlanMock", "predictOutOfMemoryMock", "installAppMock", "extractDependenciesMock", "resolve", "reject", "deviceAction", "installPlan", "expectedStates"]
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1,2 +1,2 @@
1
- import{Left as u,Right as c}from"purify-ts";import{assign as e,fromPromise as l,setup as A}from"xstate";import{isSuccessCommandResult as i}from"../../../command/model/CommandResult";import{ListAppsCommand as m}from"../../../command/os/ListAppsCommand";import{UserInteractionRequired as a}from"../../../device-action/model/UserInteractionRequired";import{DEFAULT_UNLOCK_TIMEOUT_MS as d}from"../../../device-action/os/Const";import{GoToDashboardDeviceAction as h}from"../../../device-action/os/GoToDashboard/GoToDashboardDeviceAction";import{XStateDeviceAction as D}from"../../../device-action/xstate-utils/XStateDeviceAction";class I extends D{makeStateMachine(n){const{listApps:s}=this.extractDependencies(n),r=this.input.unlockTimeout??d,o=new h({input:{unlockTimeout:r}}).makeStateMachine(n);return A({types:{input:{unlockTimeout:r},context:{},output:{}},actors:{listApps:l(s),goToDashboard:o},guards:{hasError:({context:t})=>t._internalState.error!==null,hasMoreApps:t=>t.context._internalState.shouldContinue},actions:{assignAllowListApps:e({intermediateValue:t=>({requiredUserInteraction:a.AllowListApps})}),assignErrorFromEvent:e({_internalState:t=>({...t.context._internalState,error:t.event.error})})}}).createMachine({id:"ListAppsDeviceAction",initial:"DeviceReady",context:t=>({input:{unlockTimeout:t.input.unlockTimeout},intermediateValue:{requiredUserInteraction:a.None},_internalState:{error:null,apps:[],shouldContinue:!1}}),states:{DeviceReady:{always:{target:"GoToDashboard"}},GoToDashboard:{invoke:{id:"dashboard",src:"goToDashboard",input:t=>({unlockTimeout:t.context.input.unlockTimeout}),onSnapshot:{actions:e({intermediateValue:t=>t.event.snapshot.context.intermediateValue})},onDone:{target:"GoToDashboardCheck",actions:e({_internalState:t=>t.event.output.caseOf({Right:()=>t.context._internalState,Left:p=>({...t.context._internalState,error:p})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GoToDashboardCheck:{always:[{target:"Error",guard:"hasError"},{target:"ListApps"}]},ListApps:{entry:"assignAllowListApps",invoke:{src:"listApps",input:t=>!1,onDone:{target:"Continue",actions:e({_internalState:t=>i(t.event.output)?{...t.context._internalState,apps:t.context._internalState.apps.concat(t.event.output.data),shouldContinue:t.event.output.data.length===2}:{...t.context._internalState,error:t.event.output.error},intermediateValue:t=>({...t.context.intermediateValue,requiredUserInteraction:a.None})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ListAppsCheck:{always:[{target:"Error",guard:"hasError"},"ListAppsContinue"]},ListAppsContinue:{invoke:{src:"listApps",input:t=>!0,onDone:{target:"Continue",actions:e({_internalState:t=>i(t.event.output)?{...t.context._internalState,apps:t.context._internalState.apps.concat(t.event.output.data),shouldContinue:t.event.output.data.length===2}:{...t.context._internalState,error:t.event.output.error}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},Continue:{always:[{target:"ListAppsContinue",guard:"hasMoreApps"},{target:"Success"}]},Success:{type:"final"},Error:{type:"final"}},output:t=>t.context._internalState.error?u(t.context._internalState.error):c(t.context._internalState.apps)})}extractDependencies(n){return{listApps:async({input:r})=>{const o=new m({isContinue:r});return n.sendCommand(o)}}}}export{I as ListAppsDeviceAction};
1
+ import{Left as u,Right as c}from"purify-ts";import{assign as e,fromPromise as l,setup as A}from"xstate";import{isSuccessCommandResult as i}from"../../../command/model/CommandResult";import{ListAppsCommand as m}from"../../../command/os/ListAppsCommand";import{UserInteractionRequired as a}from"../../../device-action/model/UserInteractionRequired";import{DEFAULT_UNLOCK_TIMEOUT_MS as d}from"../../../device-action/os/Const";import{GoToDashboardDeviceAction as h}from"../../../device-action/os/GoToDashboard/GoToDashboardDeviceAction";import{XStateDeviceAction as D}from"../../../device-action/xstate-utils/XStateDeviceAction";class I extends D{makeStateMachine(n){const{listApps:s}=this.extractDependencies(n),r=this.input.unlockTimeout??d,o=new h({input:{unlockTimeout:r}}).makeStateMachine(n);return A({types:{input:{unlockTimeout:r},context:{},output:{}},actors:{listApps:l(s),goToDashboard:o},guards:{hasError:({context:t})=>t._internalState.error!==null,hasMoreApps:t=>t.context._internalState.shouldContinue},actions:{assignAllowListApps:e({intermediateValue:t=>({requiredUserInteraction:a.AllowListApps})}),assignErrorFromEvent:e({_internalState:t=>({...t.context._internalState,error:t.event.error})})}}).createMachine({id:"ListAppsDeviceAction",initial:"DeviceReady",context:t=>({input:{unlockTimeout:t.input.unlockTimeout},intermediateValue:{requiredUserInteraction:a.None},_internalState:{error:null,apps:[],shouldContinue:!1}}),states:{DeviceReady:{always:{target:"GoToDashboard"}},GoToDashboard:{invoke:{id:"dashboard",src:"goToDashboard",input:t=>({unlockTimeout:t.context.input.unlockTimeout}),onSnapshot:{actions:e({intermediateValue:t=>t.event.snapshot.context.intermediateValue})},onDone:{target:"GoToDashboardCheck",actions:e({_internalState:t=>t.event.output.caseOf({Right:()=>t.context._internalState,Left:p=>({...t.context._internalState,error:p})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GoToDashboardCheck:{always:[{target:"Error",guard:"hasError"},{target:"ListApps"}]},ListApps:{entry:"assignAllowListApps",invoke:{src:"listApps",input:t=>!1,onDone:{target:"Continue",actions:e({_internalState:t=>i(t.event.output)?{...t.context._internalState,apps:t.context._internalState.apps.concat(t.event.output.data),shouldContinue:t.event.output.data.length>=2}:{...t.context._internalState,error:t.event.output.error},intermediateValue:t=>({...t.context.intermediateValue,requiredUserInteraction:a.None})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ListAppsCheck:{always:[{target:"Error",guard:"hasError"},"ListAppsContinue"]},ListAppsContinue:{invoke:{src:"listApps",input:t=>!0,onDone:{target:"Continue",actions:e({_internalState:t=>i(t.event.output)?{...t.context._internalState,apps:t.context._internalState.apps.concat(t.event.output.data),shouldContinue:t.event.output.data.length>=2}:{...t.context._internalState,error:t.event.output.error}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},Continue:{always:[{target:"ListAppsContinue",guard:"hasMoreApps"},{target:"Success"}]},Success:{type:"final"},Error:{type:"final"}},output:t=>t.context._internalState.error?u(t.context._internalState.error):c(t.context._internalState.apps)})}extractDependencies(n){return{listApps:async({input:r})=>{const o=new m({isContinue:r});return n.sendCommand(o)}}}}export{I as ListAppsDeviceAction};
2
2
  //# sourceMappingURL=ListAppsDeviceAction.js.map