@ledgerhq/device-management-kit 0.0.0-rn-hid-20250221115747 → 0.0.0-rn-hid-sync-onboarding-behavior-20250516114041

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 (904) hide show
  1. package/README.md +61 -8
  2. package/lib/cjs/package.json +22 -23
  3. package/lib/cjs/src/api/DeviceManagementKit.js +1 -1
  4. package/lib/cjs/src/api/DeviceManagementKit.js.map +3 -3
  5. package/lib/cjs/src/api/DeviceManagementKit.test.js +1 -1
  6. package/lib/cjs/src/api/DeviceManagementKit.test.js.map +3 -3
  7. package/lib/cjs/src/api/DeviceManagementKitBuilder.js +1 -1
  8. package/lib/cjs/src/api/DeviceManagementKitBuilder.js.map +2 -2
  9. package/lib/cjs/src/api/DmkConfig.js +1 -1
  10. package/lib/cjs/src/api/DmkConfig.js.map +1 -1
  11. package/lib/cjs/src/api/command/di/commandModule.js +1 -1
  12. package/lib/cjs/src/api/command/di/commandModule.js.map +3 -3
  13. package/lib/cjs/src/api/command/di/commandModule.test.js +1 -1
  14. package/lib/cjs/src/api/command/di/commandModule.test.js.map +2 -2
  15. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.js +2 -0
  16. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.js.map +7 -0
  17. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.test.js +2 -0
  18. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.test.js.map +7 -0
  19. package/lib/cjs/src/api/command/os/GetOsVersionCommand.js +1 -1
  20. package/lib/cjs/src/api/command/os/GetOsVersionCommand.js.map +3 -3
  21. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js +1 -1
  22. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js.map +3 -3
  23. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.js +2 -0
  24. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.js.map +7 -0
  25. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.test.js +2 -0
  26. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.test.js.map +7 -0
  27. package/lib/cjs/src/api/command/os/SecureElementFlagsParser.js +2 -0
  28. package/lib/cjs/src/api/command/os/SecureElementFlagsParser.js.map +7 -0
  29. package/lib/cjs/src/api/command/os/SecureElementFlagsParser.test.js +2 -0
  30. package/lib/cjs/src/api/command/os/SecureElementFlagsParser.test.js.map +7 -0
  31. package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js +1 -1
  32. package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +2 -2
  33. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.js +1 -1
  34. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.js.map +3 -3
  35. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
  36. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js.map +3 -3
  37. package/lib/cjs/src/api/device/SecureElementFlags.js +2 -0
  38. package/lib/cjs/src/api/device/SecureElementFlags.js.map +7 -0
  39. package/lib/cjs/src/api/device-action/DeviceAction.js +1 -1
  40. package/lib/cjs/src/api/device-action/DeviceAction.js.map +1 -1
  41. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  42. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  43. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  44. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
  45. package/lib/cjs/src/api/device-action/di/deviceActionModule.js +1 -1
  46. package/lib/cjs/src/api/device-action/di/deviceActionModule.js.map +3 -3
  47. package/lib/cjs/src/api/device-action/di/deviceActionModule.test.js +1 -1
  48. package/lib/cjs/src/api/device-action/di/deviceActionModule.test.js.map +2 -2
  49. package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js +1 -1
  50. package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
  51. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js +1 -1
  52. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js.map +2 -2
  53. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +1 -1
  54. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +2 -2
  55. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js +1 -1
  56. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js.map +1 -1
  57. package/lib/cjs/src/api/device-action/os/Errors.js +1 -1
  58. package/lib/cjs/src/api/device-action/os/Errors.js.map +3 -3
  59. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +2 -0
  60. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +7 -0
  61. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js +2 -0
  62. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js.map +7 -0
  63. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js +2 -0
  64. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js.map +7 -0
  65. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  66. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +2 -2
  67. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  68. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +2 -2
  69. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +1 -1
  70. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +2 -2
  71. package/lib/cjs/src/api/device-action/os/GoToDashboard/types.js +1 -1
  72. package/lib/cjs/src/api/device-action/os/GoToDashboard/types.js.map +1 -1
  73. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +2 -0
  74. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +7 -0
  75. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js +2 -0
  76. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js.map +7 -0
  77. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js +2 -0
  78. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js.map +7 -0
  79. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.js +1 -1
  80. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.js.map +2 -2
  81. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js +1 -1
  82. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js.map +3 -3
  83. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +1 -1
  84. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +3 -3
  85. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  86. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +2 -2
  87. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +2 -0
  88. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +7 -0
  89. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js +2 -0
  90. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js.map +7 -0
  91. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js +2 -0
  92. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js.map +7 -0
  93. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
  94. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +2 -2
  95. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  96. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +2 -2
  97. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js.map +1 -1
  98. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.js +2 -0
  99. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.js.map +7 -0
  100. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +2 -0
  101. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +7 -0
  102. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.js +2 -0
  103. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.js.map +7 -0
  104. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.test.js +2 -0
  105. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.test.js.map +7 -0
  106. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.js +2 -0
  107. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.js.map +7 -0
  108. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js +2 -0
  109. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +7 -0
  110. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.js +2 -0
  111. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.js.map +7 -0
  112. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.test.js +2 -0
  113. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.test.js.map +7 -0
  114. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.js +1 -1
  115. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.js.map +2 -2
  116. package/lib/cjs/src/api/device-model/model/DeviceModel.js +1 -1
  117. package/lib/cjs/src/api/device-model/model/DeviceModel.js.map +2 -2
  118. package/lib/cjs/src/api/device-model/model/DeviceModel.stub.js +1 -1
  119. package/lib/cjs/src/api/device-model/model/DeviceModel.stub.js.map +2 -2
  120. package/lib/cjs/src/api/device-session/DeviceSessionState.js +1 -1
  121. package/lib/cjs/src/api/device-session/DeviceSessionState.js.map +2 -2
  122. package/lib/cjs/src/api/device-session/use-case/DisableDeviceSessionRefresher.js +2 -0
  123. package/lib/cjs/src/api/device-session/use-case/DisableDeviceSessionRefresher.js.map +7 -0
  124. package/lib/cjs/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js +2 -0
  125. package/lib/cjs/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js.map +7 -0
  126. package/lib/cjs/src/api/index.js +1 -1
  127. package/lib/cjs/src/api/index.js.map +3 -3
  128. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +1 -1
  129. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +3 -3
  130. package/lib/cjs/src/api/secure-channel/constants.js +2 -0
  131. package/lib/cjs/src/api/secure-channel/constants.js.map +7 -0
  132. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js +2 -0
  133. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +7 -0
  134. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js +2 -0
  135. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js.map +7 -0
  136. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/types.js +2 -0
  137. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/types.js.map +7 -0
  138. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +2 -0
  139. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +7 -0
  140. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js +2 -0
  141. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js.map +7 -0
  142. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/types.js +2 -0
  143. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/types.js.map +7 -0
  144. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js +2 -0
  145. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +7 -0
  146. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js +2 -0
  147. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js.map +7 -0
  148. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js +2 -0
  149. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +7 -0
  150. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +2 -0
  151. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +7 -0
  152. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js +2 -0
  153. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js.map +7 -0
  154. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/types.js +2 -0
  155. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/types.js.map +7 -0
  156. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js +2 -0
  157. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +7 -0
  158. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +2 -0
  159. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +7 -0
  160. package/lib/cjs/src/api/secure-channel/task/types.js +2 -0
  161. package/lib/cjs/src/api/secure-channel/task/types.js.map +7 -0
  162. package/lib/cjs/src/api/secure-channel/types.js +2 -0
  163. package/lib/cjs/src/api/secure-channel/types.js.map +7 -0
  164. package/lib/cjs/src/api/secure-channel/utils.js +2 -0
  165. package/lib/cjs/src/api/secure-channel/utils.js.map +7 -0
  166. package/lib/cjs/src/api/secure-channel/utils.test.js +2 -0
  167. package/lib/cjs/src/api/secure-channel/utils.test.js.map +7 -0
  168. package/lib/cjs/src/api/transport/model/DeviceConnection.js +1 -1
  169. package/lib/cjs/src/api/transport/model/DeviceConnection.js.map +1 -1
  170. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js +1 -1
  171. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js.map +3 -3
  172. package/lib/cjs/src/api/transport/model/Errors.js +1 -1
  173. package/lib/cjs/src/api/transport/model/Errors.js.map +3 -3
  174. package/lib/cjs/src/api/transport/model/Transport.js.map +1 -1
  175. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.test.js +1 -1
  176. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.test.js.map +3 -3
  177. package/lib/cjs/src/api/types.js +1 -1
  178. package/lib/cjs/src/api/types.js.map +1 -1
  179. package/lib/cjs/src/di.js +1 -1
  180. package/lib/cjs/src/di.js.map +2 -2
  181. package/lib/cjs/src/internal/config/di/configModule.js +1 -1
  182. package/lib/cjs/src/internal/config/di/configModule.js.map +3 -3
  183. package/lib/cjs/src/internal/config/di/configModule.test.js +1 -1
  184. package/lib/cjs/src/internal/config/di/configModule.test.js.map +2 -2
  185. package/lib/cjs/src/internal/device-model/di/deviceModelModule.js +1 -1
  186. package/lib/cjs/src/internal/device-model/di/deviceModelModule.js.map +3 -3
  187. package/lib/cjs/src/internal/device-model/di/deviceModelModule.test.js +1 -1
  188. package/lib/cjs/src/internal/device-model/di/deviceModelModule.test.js.map +2 -2
  189. package/lib/cjs/src/internal/device-session/data/ApduResponseConst.js +1 -1
  190. package/lib/cjs/src/internal/device-session/data/ApduResponseConst.js.map +3 -3
  191. package/lib/cjs/src/internal/device-session/data/DeviceSessionRefresherConst.js +1 -1
  192. package/lib/cjs/src/internal/device-session/data/DeviceSessionRefresherConst.js.map +3 -3
  193. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.js +1 -1
  194. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.js.map +3 -3
  195. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.test.js +1 -1
  196. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.test.js.map +2 -2
  197. package/lib/cjs/src/internal/device-session/di/deviceSessionTypes.js +1 -1
  198. package/lib/cjs/src/internal/device-session/di/deviceSessionTypes.js.map +2 -2
  199. package/lib/cjs/src/internal/device-session/model/DevicePinger.js +2 -0
  200. package/lib/cjs/src/internal/device-session/model/DevicePinger.js.map +7 -0
  201. package/lib/cjs/src/internal/device-session/model/DevicePinger.test.js +2 -0
  202. package/lib/cjs/src/internal/device-session/model/DevicePinger.test.js.map +7 -0
  203. package/lib/cjs/src/internal/device-session/model/DeviceSession.js +1 -1
  204. package/lib/cjs/src/internal/device-session/model/DeviceSession.js.map +3 -3
  205. package/lib/cjs/src/internal/device-session/model/DeviceSession.stub.js +1 -1
  206. package/lib/cjs/src/internal/device-session/model/DeviceSession.stub.js.map +3 -3
  207. package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.js +2 -0
  208. package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.js.map +7 -0
  209. package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js +2 -0
  210. package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js.map +7 -0
  211. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.js +1 -1
  212. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.js.map +3 -3
  213. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
  214. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +3 -3
  215. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.js +2 -0
  216. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.js.map +7 -0
  217. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js +2 -0
  218. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +7 -0
  219. package/lib/cjs/src/internal/device-session/model/Frame.js +1 -1
  220. package/lib/cjs/src/internal/device-session/model/Frame.js.map +3 -3
  221. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.js +1 -1
  222. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.js.map +2 -2
  223. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
  224. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +3 -3
  225. package/lib/cjs/src/internal/device-session/service/MutexService.js +2 -0
  226. package/lib/cjs/src/internal/device-session/service/MutexService.js.map +7 -0
  227. package/lib/cjs/src/internal/device-session/service/MutexService.test.js +2 -0
  228. package/lib/cjs/src/internal/device-session/service/MutexService.test.js.map +7 -0
  229. package/lib/cjs/src/internal/device-session/service/RefresherService.js +2 -0
  230. package/lib/cjs/src/internal/device-session/service/RefresherService.js.map +7 -0
  231. package/lib/cjs/src/internal/device-session/service/RefresherService.test.js +2 -0
  232. package/lib/cjs/src/internal/device-session/service/RefresherService.test.js.map +7 -0
  233. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +1 -1
  234. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +3 -3
  235. package/lib/cjs/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js +1 -1
  236. package/lib/cjs/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js.map +3 -3
  237. package/lib/cjs/src/internal/device-session/utils/deviceSessionUtils.js +2 -0
  238. package/lib/cjs/src/internal/device-session/utils/deviceSessionUtils.js.map +7 -0
  239. package/lib/cjs/src/internal/discovery/di/discoveryModule.js +1 -1
  240. package/lib/cjs/src/internal/discovery/di/discoveryModule.js.map +3 -3
  241. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js +1 -1
  242. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js.map +2 -2
  243. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js +1 -1
  244. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js.map +3 -3
  245. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  246. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js.map +3 -3
  247. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
  248. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +3 -3
  249. package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js +1 -1
  250. package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js.map +3 -3
  251. package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js +1 -1
  252. package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js.map +3 -3
  253. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js +1 -1
  254. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js.map +3 -3
  255. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js +1 -1
  256. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js.map +3 -3
  257. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.js +1 -1
  258. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.js.map +3 -3
  259. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js +1 -1
  260. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js.map +3 -3
  261. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.js +1 -1
  262. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.js.map +2 -2
  263. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.js +1 -1
  264. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.js.map +3 -3
  265. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +1 -1
  266. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +3 -3
  267. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.js +1 -1
  268. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.js.map +3 -3
  269. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.test.js +1 -1
  270. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.test.js.map +2 -2
  271. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
  272. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.js.map +3 -3
  273. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
  274. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +3 -3
  275. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js +1 -1
  276. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js.map +1 -1
  277. package/lib/cjs/src/internal/manager-api/data/ManagerApiDto.js +1 -1
  278. package/lib/cjs/src/internal/manager-api/data/ManagerApiDto.js.map +1 -1
  279. package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
  280. package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
  281. package/lib/cjs/src/internal/manager-api/di/managerApiModule.js +1 -1
  282. package/lib/cjs/src/internal/manager-api/di/managerApiModule.js.map +3 -3
  283. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js +1 -1
  284. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
  285. package/lib/cjs/src/internal/manager-api/di/managerApiTypes.js +1 -1
  286. package/lib/cjs/src/internal/manager-api/di/managerApiTypes.js.map +2 -2
  287. package/lib/cjs/src/internal/manager-api/model/Application.js +1 -1
  288. package/lib/cjs/src/internal/manager-api/model/Application.js.map +1 -1
  289. package/lib/cjs/src/internal/manager-api/model/Const.js +1 -1
  290. package/lib/cjs/src/internal/manager-api/model/Const.js.map +3 -3
  291. package/lib/cjs/src/internal/manager-api/model/Firmware.js +1 -1
  292. package/lib/cjs/src/internal/manager-api/model/Firmware.js.map +1 -1
  293. package/lib/cjs/src/internal/manager-api/model/Language.js +2 -0
  294. package/lib/cjs/src/internal/manager-api/model/Language.js.map +7 -0
  295. package/lib/cjs/src/internal/manager-api/model/Params.js +2 -0
  296. package/lib/cjs/src/internal/manager-api/model/Params.js.map +7 -0
  297. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  298. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js.map +3 -3
  299. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  300. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  301. package/lib/cjs/src/internal/manager-api/service/ManagerApiService.js +1 -1
  302. package/lib/cjs/src/internal/manager-api/service/ManagerApiService.js.map +1 -1
  303. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.js +2 -0
  304. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.js.map +7 -0
  305. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.test.js +2 -0
  306. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.test.js.map +7 -0
  307. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js +1 -1
  308. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js.map +2 -2
  309. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +1 -1
  310. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +2 -2
  311. package/lib/cjs/src/internal/secure-channel/data/SecureChannelDataSource.js.map +1 -1
  312. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.js +1 -1
  313. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.js.map +3 -3
  314. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js +1 -1
  315. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js.map +2 -2
  316. package/lib/cjs/src/internal/secure-channel/model/Errors.js +1 -1
  317. package/lib/cjs/src/internal/secure-channel/model/Errors.js.map +3 -3
  318. package/lib/cjs/src/internal/secure-channel/model/Params.js +1 -1
  319. package/lib/cjs/src/internal/secure-channel/model/Params.js.map +1 -1
  320. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js +1 -1
  321. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +3 -3
  322. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +1 -1
  323. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +3 -3
  324. package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js +1 -1
  325. package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js.map +1 -1
  326. package/lib/cjs/src/internal/send/di/sendModule.js +1 -1
  327. package/lib/cjs/src/internal/send/di/sendModule.js.map +3 -3
  328. package/lib/cjs/src/internal/send/di/sendModule.test.js +1 -1
  329. package/lib/cjs/src/internal/send/di/sendModule.test.js.map +2 -2
  330. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.js +1 -1
  331. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.js.map +3 -3
  332. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js +1 -1
  333. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js.map +3 -3
  334. package/lib/cjs/src/internal/transport/di/transportModule.js +1 -1
  335. package/lib/cjs/src/internal/transport/di/transportModule.js.map +3 -3
  336. package/lib/cjs/src/internal/transport/di/transportModule.test.js +1 -1
  337. package/lib/cjs/src/internal/transport/di/transportModule.test.js.map +2 -2
  338. package/lib/esm/package.json +22 -23
  339. package/lib/esm/src/api/DeviceManagementKit.js +1 -1
  340. package/lib/esm/src/api/DeviceManagementKit.js.map +3 -3
  341. package/lib/esm/src/api/DeviceManagementKit.test.js +1 -1
  342. package/lib/esm/src/api/DeviceManagementKit.test.js.map +3 -3
  343. package/lib/esm/src/api/DeviceManagementKitBuilder.js +1 -1
  344. package/lib/esm/src/api/DeviceManagementKitBuilder.js.map +3 -3
  345. package/lib/esm/src/api/command/di/commandModule.js +1 -1
  346. package/lib/esm/src/api/command/di/commandModule.js.map +3 -3
  347. package/lib/esm/src/api/command/di/commandModule.test.js +1 -1
  348. package/lib/esm/src/api/command/di/commandModule.test.js.map +2 -2
  349. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.js +2 -0
  350. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.js.map +7 -0
  351. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.test.js +2 -0
  352. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.test.js.map +7 -0
  353. package/lib/esm/src/api/command/os/GetOsVersionCommand.js +1 -1
  354. package/lib/esm/src/api/command/os/GetOsVersionCommand.js.map +3 -3
  355. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js +1 -1
  356. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js.map +3 -3
  357. package/lib/esm/src/api/command/os/ListLanguagePackCommand.js +2 -0
  358. package/lib/esm/src/api/command/os/ListLanguagePackCommand.js.map +7 -0
  359. package/lib/esm/src/api/command/os/ListLanguagePackCommand.test.js +2 -0
  360. package/lib/esm/src/api/command/os/ListLanguagePackCommand.test.js.map +7 -0
  361. package/lib/esm/src/api/command/os/SecureElementFlagsParser.js +2 -0
  362. package/lib/esm/src/api/command/os/SecureElementFlagsParser.js.map +7 -0
  363. package/lib/esm/src/api/command/os/SecureElementFlagsParser.test.js +2 -0
  364. package/lib/esm/src/api/command/os/SecureElementFlagsParser.test.js.map +7 -0
  365. package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js +1 -1
  366. package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +2 -2
  367. package/lib/esm/src/api/command/use-case/SendCommandUseCase.js +1 -1
  368. package/lib/esm/src/api/command/use-case/SendCommandUseCase.js.map +3 -3
  369. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
  370. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js.map +3 -3
  371. package/lib/esm/src/api/device/SecureElementFlags.js +1 -0
  372. package/lib/esm/src/api/device/SecureElementFlags.js.map +7 -0
  373. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  374. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  375. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  376. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
  377. package/lib/esm/src/api/device-action/di/deviceActionModule.js +1 -1
  378. package/lib/esm/src/api/device-action/di/deviceActionModule.js.map +3 -3
  379. package/lib/esm/src/api/device-action/di/deviceActionModule.test.js +1 -1
  380. package/lib/esm/src/api/device-action/di/deviceActionModule.test.js.map +2 -2
  381. package/lib/esm/src/api/device-action/model/UserInteractionRequired.js +1 -1
  382. package/lib/esm/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
  383. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js +1 -1
  384. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js.map +2 -2
  385. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +1 -1
  386. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +2 -2
  387. package/lib/esm/src/api/device-action/os/Errors.js +1 -1
  388. package/lib/esm/src/api/device-action/os/Errors.js.map +3 -3
  389. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +2 -0
  390. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +7 -0
  391. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js +2 -0
  392. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js.map +7 -0
  393. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/types.js +1 -0
  394. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/types.js.map +7 -0
  395. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  396. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +2 -2
  397. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  398. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +2 -2
  399. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +1 -1
  400. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +2 -2
  401. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +2 -0
  402. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +7 -0
  403. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js +2 -0
  404. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js.map +7 -0
  405. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/types.js +1 -0
  406. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/types.js.map +7 -0
  407. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.js +1 -1
  408. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.js.map +2 -2
  409. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js +1 -1
  410. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js.map +3 -3
  411. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +1 -1
  412. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +3 -3
  413. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  414. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +2 -2
  415. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +2 -0
  416. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +7 -0
  417. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js +2 -0
  418. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js.map +7 -0
  419. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/types.js +1 -0
  420. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/types.js.map +7 -0
  421. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
  422. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +2 -2
  423. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  424. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +2 -2
  425. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.js +2 -0
  426. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.js.map +7 -0
  427. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +2 -0
  428. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +7 -0
  429. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.js +2 -0
  430. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.js.map +7 -0
  431. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.test.js +2 -0
  432. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.test.js.map +7 -0
  433. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.js +2 -0
  434. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.js.map +7 -0
  435. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js +2 -0
  436. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +7 -0
  437. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.js +2 -0
  438. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.js.map +7 -0
  439. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.test.js +2 -0
  440. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.test.js.map +7 -0
  441. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.js +1 -1
  442. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.js.map +2 -2
  443. package/lib/esm/src/api/device-model/model/DeviceModel.js +1 -1
  444. package/lib/esm/src/api/device-model/model/DeviceModel.js.map +2 -2
  445. package/lib/esm/src/api/device-model/model/DeviceModel.stub.js +1 -1
  446. package/lib/esm/src/api/device-model/model/DeviceModel.stub.js.map +2 -2
  447. package/lib/esm/src/api/device-session/DeviceSessionState.js +1 -1
  448. package/lib/esm/src/api/device-session/DeviceSessionState.js.map +2 -2
  449. package/lib/esm/src/api/device-session/use-case/DisableDeviceSessionRefresher.js +2 -0
  450. package/lib/esm/src/api/device-session/use-case/DisableDeviceSessionRefresher.js.map +7 -0
  451. package/lib/esm/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js +2 -0
  452. package/lib/esm/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js.map +7 -0
  453. package/lib/esm/src/api/index.js +1 -1
  454. package/lib/esm/src/api/index.js.map +3 -3
  455. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +1 -1
  456. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +3 -3
  457. package/lib/esm/src/api/secure-channel/constants.js +2 -0
  458. package/lib/esm/src/api/secure-channel/constants.js.map +7 -0
  459. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js +2 -0
  460. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +7 -0
  461. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js +2 -0
  462. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js.map +7 -0
  463. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/types.js +1 -0
  464. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/types.js.map +7 -0
  465. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +2 -0
  466. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +7 -0
  467. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js +2 -0
  468. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js.map +7 -0
  469. package/lib/esm/src/api/secure-channel/device-action/InstallApp/types.js +1 -0
  470. package/lib/esm/src/api/secure-channel/device-action/InstallApp/types.js.map +7 -0
  471. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js +2 -0
  472. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +7 -0
  473. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js +2 -0
  474. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js.map +7 -0
  475. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/types.js +2 -0
  476. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +7 -0
  477. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +2 -0
  478. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +7 -0
  479. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js +2 -0
  480. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js.map +7 -0
  481. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/types.js +1 -0
  482. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/types.js.map +7 -0
  483. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js +2 -0
  484. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +7 -0
  485. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +2 -0
  486. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +7 -0
  487. package/lib/esm/src/api/secure-channel/task/types.js +2 -0
  488. package/lib/esm/src/api/secure-channel/task/types.js.map +7 -0
  489. package/lib/esm/src/api/secure-channel/types.js +1 -0
  490. package/lib/esm/src/api/secure-channel/types.js.map +7 -0
  491. package/lib/esm/src/api/secure-channel/utils.js +2 -0
  492. package/lib/esm/src/api/secure-channel/utils.js.map +7 -0
  493. package/lib/esm/src/api/secure-channel/utils.test.js +2 -0
  494. package/lib/esm/src/api/secure-channel/utils.test.js.map +7 -0
  495. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js +1 -1
  496. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js.map +3 -3
  497. package/lib/esm/src/api/transport/model/Errors.js +1 -1
  498. package/lib/esm/src/api/transport/model/Errors.js.map +3 -3
  499. package/lib/esm/src/api/transport/model/TransportConnectedDevice.test.js +1 -1
  500. package/lib/esm/src/api/transport/model/TransportConnectedDevice.test.js.map +3 -3
  501. package/lib/esm/src/di.js +1 -1
  502. package/lib/esm/src/di.js.map +3 -3
  503. package/lib/esm/src/internal/config/di/configModule.js +1 -1
  504. package/lib/esm/src/internal/config/di/configModule.js.map +3 -3
  505. package/lib/esm/src/internal/config/di/configModule.test.js +1 -1
  506. package/lib/esm/src/internal/config/di/configModule.test.js.map +2 -2
  507. package/lib/esm/src/internal/device-model/di/deviceModelModule.js +1 -1
  508. package/lib/esm/src/internal/device-model/di/deviceModelModule.js.map +3 -3
  509. package/lib/esm/src/internal/device-model/di/deviceModelModule.test.js +1 -1
  510. package/lib/esm/src/internal/device-model/di/deviceModelModule.test.js.map +2 -2
  511. package/lib/esm/src/internal/device-session/data/ApduResponseConst.js +1 -1
  512. package/lib/esm/src/internal/device-session/data/ApduResponseConst.js.map +3 -3
  513. package/lib/esm/src/internal/device-session/data/DeviceSessionRefresherConst.js +1 -1
  514. package/lib/esm/src/internal/device-session/data/DeviceSessionRefresherConst.js.map +3 -3
  515. package/lib/esm/src/internal/device-session/di/deviceSessionModule.js +1 -1
  516. package/lib/esm/src/internal/device-session/di/deviceSessionModule.js.map +3 -3
  517. package/lib/esm/src/internal/device-session/di/deviceSessionModule.test.js +1 -1
  518. package/lib/esm/src/internal/device-session/di/deviceSessionModule.test.js.map +2 -2
  519. package/lib/esm/src/internal/device-session/di/deviceSessionTypes.js +1 -1
  520. package/lib/esm/src/internal/device-session/di/deviceSessionTypes.js.map +2 -2
  521. package/lib/esm/src/internal/device-session/model/DevicePinger.js +2 -0
  522. package/lib/esm/src/internal/device-session/model/DevicePinger.js.map +7 -0
  523. package/lib/esm/src/internal/device-session/model/DevicePinger.test.js +2 -0
  524. package/lib/esm/src/internal/device-session/model/DevicePinger.test.js.map +7 -0
  525. package/lib/esm/src/internal/device-session/model/DeviceSession.js +1 -1
  526. package/lib/esm/src/internal/device-session/model/DeviceSession.js.map +3 -3
  527. package/lib/esm/src/internal/device-session/model/DeviceSession.stub.js +1 -1
  528. package/lib/esm/src/internal/device-session/model/DeviceSession.stub.js.map +3 -3
  529. package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.js +2 -0
  530. package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.js.map +7 -0
  531. package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js +2 -0
  532. package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js.map +7 -0
  533. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.js +1 -1
  534. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.js.map +3 -3
  535. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
  536. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +3 -3
  537. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.js +2 -0
  538. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.js.map +7 -0
  539. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js +2 -0
  540. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +7 -0
  541. package/lib/esm/src/internal/device-session/model/Frame.js +1 -1
  542. package/lib/esm/src/internal/device-session/model/Frame.js.map +3 -3
  543. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.js +1 -1
  544. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.js.map +2 -2
  545. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
  546. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +3 -3
  547. package/lib/esm/src/internal/device-session/service/MutexService.js +2 -0
  548. package/lib/esm/src/internal/device-session/service/MutexService.js.map +7 -0
  549. package/lib/esm/src/internal/device-session/service/MutexService.test.js +2 -0
  550. package/lib/esm/src/internal/device-session/service/MutexService.test.js.map +7 -0
  551. package/lib/esm/src/internal/device-session/service/RefresherService.js +2 -0
  552. package/lib/esm/src/internal/device-session/service/RefresherService.js.map +7 -0
  553. package/lib/esm/src/internal/device-session/service/RefresherService.test.js +2 -0
  554. package/lib/esm/src/internal/device-session/service/RefresherService.test.js.map +7 -0
  555. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +1 -1
  556. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +3 -3
  557. package/lib/esm/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js +1 -1
  558. package/lib/esm/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js.map +3 -3
  559. package/lib/esm/src/internal/device-session/utils/deviceSessionUtils.js +2 -0
  560. package/lib/esm/src/internal/device-session/utils/deviceSessionUtils.js.map +7 -0
  561. package/lib/esm/src/internal/discovery/di/discoveryModule.js +1 -1
  562. package/lib/esm/src/internal/discovery/di/discoveryModule.js.map +3 -3
  563. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js +1 -1
  564. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js.map +2 -2
  565. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.js +1 -1
  566. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.js.map +3 -3
  567. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  568. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js.map +3 -3
  569. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
  570. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +3 -3
  571. package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js +1 -1
  572. package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js.map +3 -3
  573. package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js +1 -1
  574. package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js.map +3 -3
  575. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js +1 -1
  576. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js.map +3 -3
  577. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js +1 -1
  578. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js.map +3 -3
  579. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.js +1 -1
  580. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.js.map +3 -3
  581. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js +1 -1
  582. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js.map +3 -3
  583. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.js +1 -1
  584. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.js.map +2 -2
  585. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.js +1 -1
  586. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.js.map +3 -3
  587. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +1 -1
  588. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +3 -3
  589. package/lib/esm/src/internal/logger-publisher/di/loggerModule.js +1 -1
  590. package/lib/esm/src/internal/logger-publisher/di/loggerModule.js.map +3 -3
  591. package/lib/esm/src/internal/logger-publisher/di/loggerModule.test.js +1 -1
  592. package/lib/esm/src/internal/logger-publisher/di/loggerModule.test.js.map +2 -2
  593. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
  594. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.js.map +3 -3
  595. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
  596. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +3 -3
  597. package/lib/esm/src/internal/manager-api/data/ManagerApiDto.js +1 -1
  598. package/lib/esm/src/internal/manager-api/data/ManagerApiDto.js.map +1 -1
  599. package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
  600. package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
  601. package/lib/esm/src/internal/manager-api/di/managerApiModule.js +1 -1
  602. package/lib/esm/src/internal/manager-api/di/managerApiModule.js.map +3 -3
  603. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js +1 -1
  604. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
  605. package/lib/esm/src/internal/manager-api/di/managerApiTypes.js +1 -1
  606. package/lib/esm/src/internal/manager-api/di/managerApiTypes.js.map +2 -2
  607. package/lib/esm/src/internal/manager-api/model/Application.js +1 -1
  608. package/lib/esm/src/internal/manager-api/model/Application.js.map +1 -1
  609. package/lib/esm/src/internal/manager-api/model/Const.js +1 -1
  610. package/lib/esm/src/internal/manager-api/model/Const.js.map +3 -3
  611. package/lib/esm/src/internal/manager-api/model/Language.js +1 -0
  612. package/lib/esm/src/internal/manager-api/model/Language.js.map +7 -0
  613. package/lib/esm/src/internal/manager-api/model/Params.js +1 -0
  614. package/lib/esm/src/internal/manager-api/model/Params.js.map +7 -0
  615. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  616. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js.map +3 -3
  617. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  618. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  619. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.js +2 -0
  620. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.js.map +7 -0
  621. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.test.js +2 -0
  622. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.test.js.map +7 -0
  623. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js +1 -1
  624. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js.map +2 -2
  625. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +1 -1
  626. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +2 -2
  627. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.js +1 -1
  628. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.js.map +3 -3
  629. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js +1 -1
  630. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js.map +2 -2
  631. package/lib/esm/src/internal/secure-channel/model/Errors.js +1 -1
  632. package/lib/esm/src/internal/secure-channel/model/Errors.js.map +3 -3
  633. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.js +1 -1
  634. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +3 -3
  635. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +1 -1
  636. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +3 -3
  637. package/lib/esm/src/internal/send/di/sendModule.js +1 -1
  638. package/lib/esm/src/internal/send/di/sendModule.js.map +3 -3
  639. package/lib/esm/src/internal/send/di/sendModule.test.js +1 -1
  640. package/lib/esm/src/internal/send/di/sendModule.test.js.map +2 -2
  641. package/lib/esm/src/internal/send/use-case/SendApduUseCase.js +1 -1
  642. package/lib/esm/src/internal/send/use-case/SendApduUseCase.js.map +3 -3
  643. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js +1 -1
  644. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js.map +3 -3
  645. package/lib/esm/src/internal/transport/di/transportModule.js +1 -1
  646. package/lib/esm/src/internal/transport/di/transportModule.js.map +3 -3
  647. package/lib/esm/src/internal/transport/di/transportModule.test.js +1 -1
  648. package/lib/esm/src/internal/transport/di/transportModule.test.js.map +2 -2
  649. package/lib/types/src/api/DeviceManagementKit.d.ts +26 -10
  650. package/lib/types/src/api/DeviceManagementKit.d.ts.map +1 -1
  651. package/lib/types/src/api/DeviceManagementKitBuilder.d.ts.map +1 -1
  652. package/lib/types/src/api/DmkConfig.d.ts +2 -0
  653. package/lib/types/src/api/DmkConfig.d.ts.map +1 -1
  654. package/lib/types/src/api/apdu/utils/ApduBuilder.d.ts.map +1 -1
  655. package/lib/types/src/api/apdu/utils/ApduParser.d.ts.map +1 -1
  656. package/lib/types/src/api/apdu/utils/ByteArrayBuilder.d.ts.map +1 -1
  657. package/lib/types/src/api/command/di/commandModule.d.ts.map +1 -1
  658. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.d.ts +16 -0
  659. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.d.ts.map +1 -0
  660. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.test.d.ts +2 -0
  661. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.test.d.ts.map +1 -0
  662. package/lib/types/src/api/command/os/GetOsVersionCommand.d.ts +38 -4
  663. package/lib/types/src/api/command/os/GetOsVersionCommand.d.ts.map +1 -1
  664. package/lib/types/src/api/command/os/ListLanguagePackCommand.d.ts +24 -0
  665. package/lib/types/src/api/command/os/ListLanguagePackCommand.d.ts.map +1 -0
  666. package/lib/types/src/api/command/os/ListLanguagePackCommand.test.d.ts +2 -0
  667. package/lib/types/src/api/command/os/ListLanguagePackCommand.test.d.ts.map +1 -0
  668. package/lib/types/src/api/command/os/SecureElementFlagsParser.d.ts +43 -0
  669. package/lib/types/src/api/command/os/SecureElementFlagsParser.d.ts.map +1 -0
  670. package/lib/types/src/api/command/os/SecureElementFlagsParser.test.d.ts +2 -0
  671. package/lib/types/src/api/command/os/SecureElementFlagsParser.test.d.ts.map +1 -0
  672. package/lib/types/src/api/command/os/__mocks__/GetOsVersionCommand.d.ts.map +1 -1
  673. package/lib/types/src/api/command/use-case/SendCommandUseCase.d.ts +5 -1
  674. package/lib/types/src/api/command/use-case/SendCommandUseCase.d.ts.map +1 -1
  675. package/lib/types/src/api/command/utils/CommandErrors.d.ts.map +1 -1
  676. package/lib/types/src/api/device/SecureElementFlags.d.ts +41 -0
  677. package/lib/types/src/api/device/SecureElementFlags.d.ts.map +1 -0
  678. package/lib/types/src/api/device-action/DeviceAction.d.ts +4 -1
  679. package/lib/types/src/api/device-action/DeviceAction.d.ts.map +1 -1
  680. package/lib/types/src/api/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  681. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts +9 -0
  682. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts.map +1 -1
  683. package/lib/types/src/api/device-action/di/deviceActionModule.d.ts.map +1 -1
  684. package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts +3 -2
  685. package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts.map +1 -1
  686. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.d.ts.map +1 -1
  687. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.d.ts +1 -0
  688. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.d.ts.map +1 -1
  689. package/lib/types/src/api/device-action/os/Errors.d.ts +10 -0
  690. package/lib/types/src/api/device-action/os/Errors.d.ts.map +1 -1
  691. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.d.ts +58 -0
  692. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.d.ts.map +1 -0
  693. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.d.ts +2 -0
  694. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.d.ts.map +1 -0
  695. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts +27 -0
  696. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts.map +1 -0
  697. package/lib/types/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.d.ts.map +1 -1
  698. package/lib/types/src/api/device-action/os/GoToDashboard/types.d.ts +3 -4
  699. package/lib/types/src/api/device-action/os/GoToDashboard/types.d.ts.map +1 -1
  700. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.d.ts +40 -0
  701. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.d.ts.map +1 -0
  702. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.d.ts +2 -0
  703. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.d.ts.map +1 -0
  704. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts +64 -0
  705. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts.map +1 -0
  706. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.d.ts +1 -1
  707. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.d.ts.map +1 -1
  708. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.d.ts +15 -0
  709. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.d.ts.map +1 -0
  710. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.d.ts +2 -0
  711. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.d.ts.map +1 -0
  712. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts +25 -0
  713. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts.map +1 -0
  714. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.d.ts.map +1 -1
  715. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts +1 -0
  716. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts.map +1 -1
  717. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.d.ts +30 -0
  718. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.d.ts.map +1 -0
  719. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.test.d.ts +2 -0
  720. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.test.d.ts.map +1 -0
  721. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.d.ts +31 -0
  722. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.d.ts.map +1 -0
  723. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.test.d.ts +2 -0
  724. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.test.d.ts.map +1 -0
  725. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.d.ts +18 -0
  726. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.d.ts.map +1 -0
  727. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.test.d.ts +2 -0
  728. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.test.d.ts.map +1 -0
  729. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.d.ts +21 -0
  730. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.d.ts.map +1 -0
  731. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.test.d.ts +2 -0
  732. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.test.d.ts.map +1 -0
  733. package/lib/types/src/api/device-model/data/StaticDeviceModelDataSource.d.ts.map +1 -1
  734. package/lib/types/src/api/device-model/model/DeviceModel.d.ts +2 -0
  735. package/lib/types/src/api/device-model/model/DeviceModel.d.ts.map +1 -1
  736. package/lib/types/src/api/device-model/model/DeviceModel.stub.d.ts.map +1 -1
  737. package/lib/types/src/api/device-session/DeviceSessionState.d.ts +97 -0
  738. package/lib/types/src/api/device-session/DeviceSessionState.d.ts.map +1 -1
  739. package/lib/types/src/api/device-session/service/DefaultApduReceiverService.stub.d.ts.map +1 -1
  740. package/lib/types/src/api/device-session/service/DefaultApduSenderService.stub.d.ts.map +1 -1
  741. package/lib/types/src/api/device-session/use-case/{ToggleDeviceSessionRefresher.d.ts → DisableDeviceSessionRefresher.d.ts} +6 -6
  742. package/lib/types/src/api/device-session/use-case/DisableDeviceSessionRefresher.d.ts.map +1 -0
  743. package/lib/types/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.d.ts +2 -0
  744. package/lib/types/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.d.ts.map +1 -0
  745. package/lib/types/src/api/index.d.ts +10 -2
  746. package/lib/types/src/api/index.d.ts.map +1 -1
  747. package/lib/types/src/api/secure-channel/constants.d.ts +2 -0
  748. package/lib/types/src/api/secure-channel/constants.d.ts.map +1 -0
  749. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.d.ts +8 -0
  750. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.d.ts.map +1 -0
  751. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.d.ts +2 -0
  752. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.d.ts.map +1 -0
  753. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/types.d.ts +48 -0
  754. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/types.d.ts.map +1 -0
  755. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.d.ts +8 -0
  756. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.d.ts.map +1 -0
  757. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.d.ts +2 -0
  758. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.d.ts.map +1 -0
  759. package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts +44 -0
  760. package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts.map +1 -0
  761. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.d.ts +8 -0
  762. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.d.ts.map +1 -0
  763. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.d.ts +2 -0
  764. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.d.ts.map +1 -0
  765. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts +57 -0
  766. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts.map +1 -0
  767. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.d.ts +8 -0
  768. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.d.ts.map +1 -0
  769. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.d.ts +2 -0
  770. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.d.ts.map +1 -0
  771. package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts +41 -0
  772. package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts.map +1 -0
  773. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.d.ts +23 -0
  774. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.d.ts.map +1 -0
  775. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.test.d.ts +2 -0
  776. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.test.d.ts.map +1 -0
  777. package/lib/types/src/api/secure-channel/task/types.d.ts +105 -0
  778. package/lib/types/src/api/secure-channel/task/types.d.ts.map +1 -0
  779. package/lib/types/src/api/secure-channel/types.d.ts +4 -0
  780. package/lib/types/src/api/secure-channel/types.d.ts.map +1 -0
  781. package/lib/types/src/api/secure-channel/utils.d.ts +30 -0
  782. package/lib/types/src/api/secure-channel/utils.d.ts.map +1 -0
  783. package/lib/types/src/api/secure-channel/utils.test.d.ts +2 -0
  784. package/lib/types/src/api/secure-channel/utils.test.d.ts.map +1 -0
  785. package/lib/types/src/api/transport/model/DeviceConnection.d.ts +1 -1
  786. package/lib/types/src/api/transport/model/DeviceConnection.d.ts.map +1 -1
  787. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts +9 -7
  788. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts.map +1 -1
  789. package/lib/types/src/api/transport/model/Errors.d.ts +12 -3
  790. package/lib/types/src/api/transport/model/Errors.d.ts.map +1 -1
  791. package/lib/types/src/api/transport/model/Transport.d.ts +1 -1
  792. package/lib/types/src/api/transport/model/Transport.d.ts.map +1 -1
  793. package/lib/types/src/api/types.d.ts +8 -1
  794. package/lib/types/src/api/types.d.ts.map +1 -1
  795. package/lib/types/src/api/utils/HexaString.d.ts.map +1 -1
  796. package/lib/types/src/di.d.ts.map +1 -1
  797. package/lib/types/src/internal/config/di/configModule.d.ts.map +1 -1
  798. package/lib/types/src/internal/device-model/di/deviceModelModule.d.ts.map +1 -1
  799. package/lib/types/src/internal/device-session/data/ApduResponseConst.d.ts +1 -0
  800. package/lib/types/src/internal/device-session/data/ApduResponseConst.d.ts.map +1 -1
  801. package/lib/types/src/internal/device-session/data/DeviceSessionRefresherConst.d.ts +6 -1
  802. package/lib/types/src/internal/device-session/data/DeviceSessionRefresherConst.d.ts.map +1 -1
  803. package/lib/types/src/internal/device-session/di/deviceSessionModule.d.ts.map +1 -1
  804. package/lib/types/src/internal/device-session/di/deviceSessionTypes.d.ts +1 -1
  805. package/lib/types/src/internal/device-session/model/DevicePinger.d.ts +18 -0
  806. package/lib/types/src/internal/device-session/model/DevicePinger.d.ts.map +1 -0
  807. package/lib/types/src/internal/device-session/model/DevicePinger.test.d.ts +2 -0
  808. package/lib/types/src/internal/device-session/model/DevicePinger.test.d.ts.map +1 -0
  809. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts +22 -9
  810. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts.map +1 -1
  811. package/lib/types/src/internal/device-session/model/DeviceSession.stub.d.ts +2 -2
  812. package/lib/types/src/internal/device-session/model/DeviceSession.stub.d.ts.map +1 -1
  813. package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.d.ts +35 -0
  814. package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.d.ts.map +1 -0
  815. package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.test.d.ts +2 -0
  816. package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.test.d.ts.map +1 -0
  817. package/lib/types/src/internal/device-session/model/DeviceSessionRefresher.d.ts +17 -79
  818. package/lib/types/src/internal/device-session/model/DeviceSessionRefresher.d.ts.map +1 -1
  819. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.d.ts +20 -0
  820. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.d.ts.map +1 -0
  821. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.test.d.ts +2 -0
  822. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.test.d.ts.map +1 -0
  823. package/lib/types/src/internal/device-session/model/Frame.d.ts.map +1 -1
  824. package/lib/types/src/internal/device-session/service/MutexService.d.ts +6 -0
  825. package/lib/types/src/internal/device-session/service/MutexService.d.ts.map +1 -0
  826. package/lib/types/src/internal/device-session/service/MutexService.test.d.ts +2 -0
  827. package/lib/types/src/internal/device-session/service/MutexService.test.d.ts.map +1 -0
  828. package/lib/types/src/internal/device-session/service/RefresherService.d.ts +15 -0
  829. package/lib/types/src/internal/device-session/service/RefresherService.d.ts.map +1 -0
  830. package/lib/types/src/internal/device-session/service/RefresherService.test.d.ts +2 -0
  831. package/lib/types/src/internal/device-session/service/RefresherService.test.d.ts.map +1 -0
  832. package/lib/types/src/internal/device-session/utils/deviceSessionUtils.d.ts +3 -0
  833. package/lib/types/src/internal/device-session/utils/deviceSessionUtils.d.ts.map +1 -0
  834. package/lib/types/src/internal/discovery/di/discoveryModule.d.ts.map +1 -1
  835. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts +8 -1
  836. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts.map +1 -1
  837. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.d.ts +14 -3
  838. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.d.ts.map +1 -1
  839. package/lib/types/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.d.ts +1 -1
  840. package/lib/types/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.d.ts.map +1 -1
  841. package/lib/types/src/internal/discovery/use-case/StartDiscoveringUseCase.d.ts +1 -1
  842. package/lib/types/src/internal/discovery/use-case/StartDiscoveringUseCase.d.ts.map +1 -1
  843. package/lib/types/src/internal/discovery/use-case/StopDiscoveringUseCase.d.ts +4 -2
  844. package/lib/types/src/internal/discovery/use-case/StopDiscoveringUseCase.d.ts.map +1 -1
  845. package/lib/types/src/internal/logger-publisher/di/loggerModule.d.ts.map +1 -1
  846. package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts +27 -7
  847. package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts.map +1 -1
  848. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts +62 -12
  849. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts.map +1 -1
  850. package/lib/types/src/internal/manager-api/data/ManagerApiDto.d.ts +106 -17
  851. package/lib/types/src/internal/manager-api/data/ManagerApiDto.d.ts.map +1 -1
  852. package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts +8 -0
  853. package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts.map +1 -1
  854. package/lib/types/src/internal/manager-api/di/managerApiModule.d.ts.map +1 -1
  855. package/lib/types/src/internal/manager-api/di/managerApiTypes.d.ts +1 -0
  856. package/lib/types/src/internal/manager-api/di/managerApiTypes.d.ts.map +1 -1
  857. package/lib/types/src/internal/manager-api/model/Application.d.ts +14 -11
  858. package/lib/types/src/internal/manager-api/model/Application.d.ts.map +1 -1
  859. package/lib/types/src/internal/manager-api/model/Const.d.ts +2 -0
  860. package/lib/types/src/internal/manager-api/model/Const.d.ts.map +1 -1
  861. package/lib/types/src/internal/manager-api/model/Firmware.d.ts +17 -3
  862. package/lib/types/src/internal/manager-api/model/Firmware.d.ts.map +1 -1
  863. package/lib/types/src/internal/manager-api/model/Language.d.ts +12 -0
  864. package/lib/types/src/internal/manager-api/model/Language.d.ts.map +1 -0
  865. package/lib/types/src/internal/manager-api/model/Params.d.ts +57 -0
  866. package/lib/types/src/internal/manager-api/model/Params.d.ts.map +1 -0
  867. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.d.ts +13 -7
  868. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.d.ts.map +1 -1
  869. package/lib/types/src/internal/manager-api/service/ManagerApiService.d.ts +71 -5
  870. package/lib/types/src/internal/manager-api/service/ManagerApiService.d.ts.map +1 -1
  871. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.d.ts +13 -0
  872. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.d.ts.map +1 -0
  873. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.test.d.ts +2 -0
  874. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.test.d.ts.map +1 -0
  875. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.d.ts +3 -3
  876. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.d.ts.map +1 -1
  877. package/lib/types/src/internal/secure-channel/data/SecureChannelDataSource.d.ts +13 -13
  878. package/lib/types/src/internal/secure-channel/data/SecureChannelDataSource.d.ts.map +1 -1
  879. package/lib/types/src/internal/secure-channel/di/secureChannelModule.d.ts.map +1 -1
  880. package/lib/types/src/internal/secure-channel/model/Errors.d.ts +6 -0
  881. package/lib/types/src/internal/secure-channel/model/Errors.d.ts.map +1 -1
  882. package/lib/types/src/internal/secure-channel/model/Params.d.ts +3 -5
  883. package/lib/types/src/internal/secure-channel/model/Params.d.ts.map +1 -1
  884. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts +7 -7
  885. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts.map +1 -1
  886. package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts +41 -6
  887. package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts.map +1 -1
  888. package/lib/types/src/internal/send/di/sendModule.d.ts.map +1 -1
  889. package/lib/types/src/internal/send/use-case/SendApduUseCase.d.ts +5 -1
  890. package/lib/types/src/internal/send/use-case/SendApduUseCase.d.ts.map +1 -1
  891. package/lib/types/src/internal/transport/di/transportModule.d.ts.map +1 -1
  892. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  893. package/package.json +16 -17
  894. package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.js +0 -2
  895. package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.js.map +0 -7
  896. package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js +0 -2
  897. package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js.map +0 -7
  898. package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.js +0 -2
  899. package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.js.map +0 -7
  900. package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js +0 -2
  901. package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js.map +0 -7
  902. package/lib/types/src/api/device-session/use-case/ToggleDeviceSessionRefresher.d.ts.map +0 -1
  903. package/lib/types/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.d.ts +0 -2
  904. package/lib/types/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.d.ts.map +0 -1
@@ -1,2 +1,2 @@
1
- import{Left as A,Right as m}from"purify-ts";import{Observable as y}from"rxjs";import{tap as g,timeout as k}from"rxjs/operators";import{assign as t,fromObservable as b,fromPromise as E,setup as h}from"xstate";import{isSuccessCommandResult as U}from"../../../command/model/CommandResult";import{GetAppAndVersionCommand as f}from"../../../command/os/GetAppAndVersionCommand";import{DeviceStatus as l}from"../../../device/DeviceStatus";import{UserInteractionRequired as u}from"../../../device-action/model/UserInteractionRequired";import{DEFAULT_UNLOCK_TIMEOUT_MS as V}from"../../../device-action/os/Const";import{DeviceLockedError as G,DeviceNotOnboardedError as x}from"../../../device-action/os/Errors";import{XStateDeviceAction as O}from"../../../device-action/xstate-utils/XStateDeviceAction";import{DeviceSessionStateType as D}from"../../../device-session/DeviceSessionState";class W extends O{makeStateMachine(r){const{getAppAndVersion:d,getDeviceSessionState:o,setDeviceSessionState:i,waitForDeviceUnlock:p,isDeviceOnboarded:a}=this.extractDependencies(r),s=this.input.unlockTimeout??V;return h({types:{input:{unlockTimeout:s},context:{},output:{}},actors:{getAppAndVersion:E(d),waitForDeviceUnlock:b(p)},guards:{isDeviceOnboarded:()=>a(),isDeviceUnlocked:()=>o().deviceStatus!==l.LOCKED,hasError:({context:e})=>e._internalState.error!==null},actions:{assignErrorDeviceNotOnboarded:t({_internalState:e=>({...e.context._internalState,error:new x})}),assignErrorDeviceLocked:t({_internalState:e=>({...e.context._internalState,error:new G}),intermediateValue:{requiredUserInteraction:u.UnlockDevice}}),assignErrorFromEvent:t({_internalState:e=>({...e.context._internalState,error:e.event.error})}),assignNoUserActionNeeded:t({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:u.None})}),assignUserActionUnlockNeeded:t({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:u.UnlockDevice})})}}).createMachine({id:"GetDeviceStatusDeviceAction",initial:"DeviceReady",context:e=>{const n=o(),{sessionStateType:c}=n;return{input:{unlockTimeout:e.input.unlockTimeout},intermediateValue:{requiredUserInteraction:u.None},_internalState:{onboarded:!1,locked:n.deviceStatus===l.LOCKED,currentApp:c===D.ReadyWithoutSecureChannel?n.currentApp.name:null,currentAppVersion:null,error:null}}},states:{DeviceReady:{always:{target:"OnboardingCheck"}},OnboardingCheck:{always:[{guard:{type:"isDeviceOnboarded"},target:"LockingCheck",actions:t({_internalState:e=>({...e.context._internalState,onboarded:!0})})},{target:"Error",actions:"assignErrorDeviceNotOnboarded"}]},LockingCheck:{always:[{target:"AppAndVersionCheck",guard:{type:"isDeviceUnlocked"},actions:t({_internalState:e=>({...e.context._internalState,locked:!1})})},{target:"UserActionUnlockDevice"}]},UserActionUnlockDevice:{entry:"assignUserActionUnlockNeeded",exit:"assignNoUserActionNeeded",invoke:{id:"UserActionUnlockDevice",src:"waitForDeviceUnlock",input:e=>({unlockTimeout:s}),onDone:{target:"AppAndVersionCheck",actions:t({_internalState:e=>({...e.context._internalState,locked:!1})})},onError:{target:"Error",actions:"assignErrorDeviceLocked"}}},AppAndVersionCheck:{invoke:{src:"getAppAndVersion",onDone:{target:"ApplicationAvailableResultCheck",actions:t({_internalState:e=>{if(U(e.event.output)){const n=o();return n.sessionStateType!==D.Connected&&i({...n,currentApp:e.event.output.data}),{...e.context._internalState,currentApp:e.event.output.data.name,currentAppVersion:e.event.output.data.version}}return{...e.context._internalState,error:e.event.output.error}}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ApplicationAvailableResultCheck:{always:[{guard:"hasError",target:"Error"},{target:"Success"}]},Success:{type:"final"},Error:{type:"final"}},output:e=>{const{context:n}=e,{error:c,currentApp:S,currentAppVersion:v}=n._internalState;return c?A(c):m({currentApp:S,currentAppVersion:v})}})}extractDependencies(r){return{getAppAndVersion:()=>r.sendCommand(new f),waitForDeviceUnlock:({input:i})=>new y(p=>{const a=r.getDeviceSessionStateObservable().pipe(g(s=>{s.deviceStatus===l.CONNECTED&&(p.complete(),a.unsubscribe())})).subscribe();return()=>{a.unsubscribe()}}).pipe(k(i.unlockTimeout)),getDeviceSessionState:()=>r.getDeviceSessionState(),setDeviceSessionState:i=>r.setDeviceSessionState(i),isDeviceOnboarded:()=>!0}}}export{W as GetDeviceStatusDeviceAction};
1
+ import{Left as A,Right as m}from"purify-ts";import{Observable as y}from"rxjs";import{tap as g,timeout as k}from"rxjs/operators";import{assign as n,fromObservable as b,fromPromise as f,setup as E}from"xstate";import{isSuccessCommandResult as h}from"../../../command/model/CommandResult";import{GetAppAndVersionCommand as V}from"../../../command/os/GetAppAndVersionCommand";import{DeviceStatus as D}from"../../../device/DeviceStatus";import{UserInteractionRequired as c}from"../../../device-action/model/UserInteractionRequired";import{DEFAULT_UNLOCK_TIMEOUT_MS as U}from"../../../device-action/os/Const";import{DeviceLockedError as G,DeviceNotOnboardedError as x}from"../../../device-action/os/Errors";import{XStateDeviceAction as I}from"../../../device-action/xstate-utils/XStateDeviceAction";import{DeviceSessionStateType as l}from"../../../device-session/DeviceSessionState";class K extends I{makeStateMachine(r){const{getAppAndVersion:d,getDeviceSessionState:u,setDeviceSessionState:i,waitForDeviceUnlock:p,isDeviceOnboarded:o}=this.extractDependencies(r),a=this.input.unlockTimeout??U;return E({types:{input:{unlockTimeout:a},context:{},output:{}},actors:{getAppAndVersion:f(d),waitForDeviceUnlock:b(p)},guards:{isDeviceOnboarded:()=>o(),isDeviceLocked:({context:e})=>e._internalState.locked,hasError:({context:e})=>e._internalState.error!==null},actions:{assignErrorDeviceNotOnboarded:n({_internalState:e=>({...e.context._internalState,error:new x})}),assignErrorDeviceLocked:n({_internalState:e=>({...e.context._internalState,error:new G}),intermediateValue:{requiredUserInteraction:c.UnlockDevice}}),assignErrorFromEvent:n({_internalState:e=>({...e.context._internalState,error:e.event.error})}),assignNoUserActionNeeded:n({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:c.None})}),assignUserActionUnlockNeeded:n({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:c.UnlockDevice})})}}).createMachine({id:"GetDeviceStatusDeviceAction",initial:"DeviceReady",context:e=>{const t=u(),{sessionStateType:s}=t;return{input:{unlockTimeout:e.input.unlockTimeout},intermediateValue:{requiredUserInteraction:c.None},_internalState:{onboarded:!1,locked:!1,currentApp:s===l.ReadyWithoutSecureChannel?t.currentApp.name:null,currentAppVersion:null,error:null}}},states:{DeviceReady:{always:{target:"OnboardingCheck"}},OnboardingCheck:{always:[{guard:{type:"isDeviceOnboarded"},target:"AppAndVersionCheck",actions:n({_internalState:e=>({...e.context._internalState,onboarded:!0})})},{target:"Error",actions:"assignErrorDeviceNotOnboarded"}]},UserActionUnlockDevice:{entry:"assignUserActionUnlockNeeded",exit:"assignNoUserActionNeeded",invoke:{id:"UserActionUnlockDevice",src:"waitForDeviceUnlock",input:e=>({unlockTimeout:a}),onDone:{target:"AppAndVersionCheck",actions:n({_internalState:e=>({...e.context._internalState,locked:!1})})},onError:{target:"Error",actions:"assignErrorDeviceLocked"}}},AppAndVersionCheck:{invoke:{src:"getAppAndVersion",onDone:{target:"ApplicationAvailableResultCheck",actions:n({_internalState:e=>{if(h(e.event.output)){const t=u();return t.sessionStateType!==l.Connected?i({...t,currentApp:e.event.output.data}):i({deviceModelId:t.deviceModelId,sessionStateType:l.ReadyWithoutSecureChannel,deviceStatus:D.CONNECTED,currentApp:e.event.output.data,installedApps:[],isSecureConnectionAllowed:!1}),{...e.context._internalState,locked:!1,currentApp:e.event.output.data.name,currentAppVersion:e.event.output.data.version}}return"errorCode"in e.event.output.error&&e.event.output.error.errorCode==="5515"?{...e.context._internalState,locked:!0}:{...e.context._internalState,error:e.event.output.error}}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ApplicationAvailableResultCheck:{always:[{guard:"hasError",target:"Error"},{target:"UserActionUnlockDevice",guard:"isDeviceLocked"},{target:"Success"}]},Success:{type:"final"},Error:{type:"final"}},output:e=>{const{context:t}=e,{error:s,currentApp:v,currentAppVersion:S}=t._internalState;return s?A(s):m({currentApp:v,currentAppVersion:S})}})}extractDependencies(r){return{getAppAndVersion:()=>r.sendCommand(new V),waitForDeviceUnlock:({input:i})=>new y(p=>{const o=r.getDeviceSessionStateObservable().pipe(g(a=>{a.deviceStatus===D.CONNECTED&&(p.complete(),o.unsubscribe())})).subscribe();return()=>{o.unsubscribe()}}).pipe(k(i.unlockTimeout)),getDeviceSessionState:()=>r.getDeviceSessionState(),setDeviceSessionState:i=>r.setDeviceSessionState(i),isDeviceOnboarded:()=>!0}}}export{K as GetDeviceStatusDeviceAction};
2
2
  //# sourceMappingURL=GetDeviceStatusDeviceAction.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.ts"],
4
- "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { Observable } from \"rxjs\";\nimport { tap, timeout } from \"rxjs/operators\";\nimport { assign, fromObservable, fromPromise, setup } from \"xstate\";\n\nimport { isSuccessCommandResult } from \"@api/command/model/CommandResult\";\nimport {\n GetAppAndVersionCommand,\n type GetAppAndVersionCommandResult,\n} from \"@api/command/os/GetAppAndVersionCommand\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\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 {\n DeviceLockedError,\n DeviceNotOnboardedError,\n} from \"@api/device-action/os/Errors\";\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 {\n type GetDeviceStatusDAError,\n type GetDeviceStatusDAInput,\n type GetDeviceStatusDAIntermediateValue,\n type GetDeviceStatusDAOutput,\n} from \"./types\";\n\ntype GetDeviceStatusMachineInternalState = {\n readonly onboarded: boolean;\n readonly locked: boolean;\n readonly currentApp: string | null;\n readonly currentAppVersion: string | null;\n readonly error: GetDeviceStatusDAError | null;\n};\n\nexport type MachineDependencies = {\n readonly getAppAndVersion: () => Promise<GetAppAndVersionCommandResult>;\n readonly getDeviceSessionState: () => DeviceSessionState;\n readonly waitForDeviceUnlock: (args: {\n input: { unlockTimeout: number };\n }) => Observable<void>;\n readonly setDeviceSessionState: (\n state: DeviceSessionState,\n ) => DeviceSessionState;\n readonly isDeviceOnboarded: () => boolean;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class GetDeviceStatusDeviceAction extends XStateDeviceAction<\n GetDeviceStatusDAOutput,\n GetDeviceStatusDAInput,\n GetDeviceStatusDAError,\n GetDeviceStatusDAIntermediateValue,\n GetDeviceStatusMachineInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n GetDeviceStatusDAOutput,\n GetDeviceStatusDAInput,\n GetDeviceStatusDAError,\n GetDeviceStatusDAIntermediateValue,\n GetDeviceStatusMachineInternalState\n > {\n type types = StateMachineTypes<\n GetDeviceStatusDAOutput,\n GetDeviceStatusDAInput,\n GetDeviceStatusDAError,\n GetDeviceStatusDAIntermediateValue,\n GetDeviceStatusMachineInternalState\n >;\n\n const {\n getAppAndVersion,\n getDeviceSessionState,\n setDeviceSessionState,\n waitForDeviceUnlock,\n isDeviceOnboarded,\n } = this.extractDependencies(internalApi);\n\n const unlockTimeout = this.input.unlockTimeout ?? DEFAULT_UNLOCK_TIMEOUT_MS;\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 getAppAndVersion: fromPromise(getAppAndVersion),\n waitForDeviceUnlock: fromObservable(waitForDeviceUnlock),\n },\n guards: {\n isDeviceOnboarded: () => isDeviceOnboarded(), // TODO: we don't have this info for now, this can be derived from the \"flags\" obtained in the getVersion command\n isDeviceUnlocked: () =>\n getDeviceSessionState().deviceStatus !== DeviceStatus.LOCKED,\n hasError: ({ context }) => context._internalState.error !== null,\n },\n actions: {\n assignErrorDeviceNotOnboarded: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: new DeviceNotOnboardedError(),\n }),\n }),\n assignErrorDeviceLocked: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: new DeviceLockedError(),\n }),\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.UnlockDevice,\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 assignNoUserActionNeeded: assign({\n intermediateValue: (_) =>\n ({\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n }) satisfies types[\"context\"][\"intermediateValue\"],\n }),\n assignUserActionUnlockNeeded: assign({\n intermediateValue: (_) =>\n ({\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.UnlockDevice,\n }) satisfies types[\"context\"][\"intermediateValue\"],\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QHEwBcAiYBuBLAxmAMpoCGaArrFnoQIL5q4D2AdgHQ0FgBKYpEAJ4BiANoAGALqJQAB2axcTNjJAAPRAFoArAHZx7AIwAmQ7oCcugMyHzANmMAWYwBoQgxI8vsAHOJM+VuLmVj5e2gC+EW6omDjcJORUXPSMLBwA8qwARsykAE4QuKxQAMIAFmD4ANZiUqryisqsqhoImo4O7OGhPj4h5n6Obh4IunZ2RoZ+ena6nYaGUTHoKcRklNTxqc3sWbkFRSUVVbWihtJIII1K6a1aVtoGTxOOjtbv84YjiObik7ofPM7GFDP9jNofMsQLE1olNmsGLsADLMGrFMqVGp1S5yBS3FRXNqaOzadjiHx2KyORbzcRBczmH4IbTOdjaabaKmdGy6XSRaIw1bbdZJLa0MBI9LsVHo45Ys4XBr45r3dps-n0ubaGxgx6PZlWULkkLBGmDCzGYzQ2Ei+HJEVStjsACqsDA+SdrBdrAANmjqmthBA2GB2MVsMxqmG3R6vT7-TU1hJcdcVXciYgglZycYQiYqRTQoZtMynDmbM4aW8rHYzD4BSs4hL7eLuF7Xe7PWk2AmA0GPflmPl2LJfeQAGbDgC2nbjPe9fv7IpTyqaGdAbXmxnZPkMNNM820VuZ+8M7Dsb3MznpwW31sFtpbGwdEo7dFksjorAgADUPYobAnNiIasGGEZRmGT4JC+bY7NKH5fj+-75IBrDAdUCAQfg5DpCmq5XDcqqZmMjgGDY-yGJeejjFRzJ2P47DZoEJb+Hyx42sKz5ioiC7sIh35-gB6QYcIg7DqO45oFO+SztBhCtrxuwCchwlAQqWGsJGOHNPh9SEemhKbogdLsIMTjmPuNF1nYZaOBW+5OPu9l1oCjZCs2ME8Y6fGIb6BC4WwdDYKQuDjtkvq8HAFC+mgokEXi65GeoiBguYZJOPSJa6Hm1hGsyuglkxxiUjYVjXlq7nyaKCI+cpn7+Tp6TBaF4WRXwsAxXFCpiEqBlJS0JFAo4vg+BCe55e8-QFUVVglVShjlWRtZ2FEgqsMwEBwKo1WKXVG5pgNaokmRZmQg4fyLHR7ieCNpjGPyx7aNo6UNo4nGeQpsFKdKax8AIoyJQSg3Ge0L07q9F3+Istk3Qg1IjUaZ7GNS-LlU4H1wt9+3OvseSFBiGFrsDx01mZ15mHooReFaVj0fZ5Jci5zissYIKY3a2NvnxsrVITCrE8RoMdDucxWgx1jpZCELDHDgKTC9jg6mNXKLDSHPcbV3O7LG3bNH2SYioLB3EmCI1-HuVL6Cj4hU6eNjsIVD3UrWfKXVCj5cV5Wvtr5n6CShaFE-1JMkWzPgXpCjh+Faw3Mjq5jdOlJhGvo-RzRr3uvr79VjgFzQtWFpARVFnWxcHQNCylCBm+eKPjJL4jWMEdNww4O46vSFVsfyD5Nlj3na9KRAUPghCwPAIdV20QIR7e-RzOYbNK98cN7ndgR-BSzgo+YmdfYPOfSgAovkQ75MbyVtItehmSrJgcijz2uHD+pmXyQSQnyVLs2tQA */\n id: \"GetDeviceStatusDeviceAction\",\n initial: \"DeviceReady\",\n context: (_) => {\n const sessionState = getDeviceSessionState();\n const { sessionStateType } = sessionState;\n return {\n input: {\n unlockTimeout: _.input.unlockTimeout,\n },\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n onboarded: false, // we don't know how to check yet\n locked: sessionState.deviceStatus === DeviceStatus.LOCKED,\n currentApp:\n sessionStateType ===\n DeviceSessionStateType.ReadyWithoutSecureChannel\n ? sessionState.currentApp.name\n : null,\n currentAppVersion: null,\n error: null,\n },\n };\n },\n states: {\n DeviceReady: {\n always: {\n target: \"OnboardingCheck\",\n },\n },\n OnboardingCheck: {\n // TODO: we don't have this info for now\n always: [\n {\n guard: {\n type: \"isDeviceOnboarded\",\n },\n target: \"LockingCheck\",\n actions: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n onboarded: true,\n }),\n }),\n },\n {\n target: \"Error\",\n actions: \"assignErrorDeviceNotOnboarded\",\n },\n ],\n },\n LockingCheck: {\n // We check if the device is locked in the session state\n always: [\n {\n target: \"AppAndVersionCheck\",\n guard: {\n type: \"isDeviceUnlocked\",\n },\n actions: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n locked: false,\n }),\n }),\n },\n {\n target: \"UserActionUnlockDevice\",\n },\n ],\n },\n UserActionUnlockDevice: {\n // we wait for the device to be unlocked (default timeout is 15s)\n entry: \"assignUserActionUnlockNeeded\",\n exit: \"assignNoUserActionNeeded\",\n invoke: {\n id: \"UserActionUnlockDevice\",\n src: \"waitForDeviceUnlock\",\n input: (_) => ({\n unlockTimeout,\n }),\n onDone: {\n target: \"AppAndVersionCheck\",\n actions: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n locked: false,\n }),\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorDeviceLocked\",\n },\n },\n },\n AppAndVersionCheck: {\n // We check the current app and version using the getAppAndVersion command\n invoke: {\n src: \"getAppAndVersion\",\n onDone: {\n target: \"ApplicationAvailableResultCheck\",\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 currentAppVersion: _.event.output.data.version,\n };\n }\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n ApplicationAvailableResultCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"Success\",\n },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: (args) => {\n // TODO: instead we should rely on the current state (\"Success\" or \"Error\")\n const { context } = args;\n const { error, currentApp, currentAppVersion } = context._internalState;\n if (error) {\n return Left(error);\n }\n return Right<GetDeviceStatusDAOutput>({\n currentApp: currentApp!,\n currentAppVersion: currentAppVersion!,\n });\n },\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const getAppAndVersion = () => {\n return internalApi.sendCommand(new GetAppAndVersionCommand());\n };\n\n const waitForDeviceUnlock = ({\n input,\n }: {\n input: { unlockTimeout: number };\n }) =>\n new Observable<void>((subscriber) => {\n const inner = internalApi\n .getDeviceSessionStateObservable()\n .pipe(\n tap((state) => {\n if (state.deviceStatus === DeviceStatus.CONNECTED) {\n subscriber.complete();\n inner.unsubscribe();\n }\n }),\n )\n .subscribe();\n\n return () => {\n inner.unsubscribe();\n };\n }).pipe(timeout(input.unlockTimeout));\n\n return {\n getAppAndVersion,\n waitForDeviceUnlock,\n getDeviceSessionState: () => internalApi.getDeviceSessionState(),\n setDeviceSessionState: (state: DeviceSessionState) =>\n internalApi.setDeviceSessionState(state),\n isDeviceOnboarded: () => true, // TODO: we don't have this info for now\n };\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { Observable } from \"rxjs\";\nimport { tap, timeout } from \"rxjs/operators\";\nimport { assign, fromObservable, fromPromise, setup } from \"xstate\";\n\nimport { isSuccessCommandResult } from \"@api/command/model/CommandResult\";\nimport {\n GetAppAndVersionCommand,\n type GetAppAndVersionCommandResult,\n} from \"@api/command/os/GetAppAndVersionCommand\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\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 {\n DeviceLockedError,\n DeviceNotOnboardedError,\n} from \"@api/device-action/os/Errors\";\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 {\n type GetDeviceStatusDAError,\n type GetDeviceStatusDAInput,\n type GetDeviceStatusDAIntermediateValue,\n type GetDeviceStatusDAOutput,\n} from \"./types\";\n\ntype GetDeviceStatusMachineInternalState = {\n readonly onboarded: boolean;\n readonly locked: boolean;\n readonly currentApp: string | null;\n readonly currentAppVersion: string | null;\n readonly error: GetDeviceStatusDAError | null;\n};\n\nexport type MachineDependencies = {\n readonly getAppAndVersion: () => Promise<GetAppAndVersionCommandResult>;\n readonly getDeviceSessionState: () => DeviceSessionState;\n readonly waitForDeviceUnlock: (args: {\n input: { unlockTimeout: number };\n }) => Observable<void>;\n readonly setDeviceSessionState: (\n state: DeviceSessionState,\n ) => DeviceSessionState;\n readonly isDeviceOnboarded: () => boolean;\n};\n\nexport type ExtractMachineDependencies = (\n internalApi: InternalApi,\n) => MachineDependencies;\n\nexport class GetDeviceStatusDeviceAction extends XStateDeviceAction<\n GetDeviceStatusDAOutput,\n GetDeviceStatusDAInput,\n GetDeviceStatusDAError,\n GetDeviceStatusDAIntermediateValue,\n GetDeviceStatusMachineInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n GetDeviceStatusDAOutput,\n GetDeviceStatusDAInput,\n GetDeviceStatusDAError,\n GetDeviceStatusDAIntermediateValue,\n GetDeviceStatusMachineInternalState\n > {\n type types = StateMachineTypes<\n GetDeviceStatusDAOutput,\n GetDeviceStatusDAInput,\n GetDeviceStatusDAError,\n GetDeviceStatusDAIntermediateValue,\n GetDeviceStatusMachineInternalState\n >;\n\n const {\n getAppAndVersion,\n getDeviceSessionState,\n setDeviceSessionState,\n waitForDeviceUnlock,\n isDeviceOnboarded,\n } = this.extractDependencies(internalApi);\n\n const unlockTimeout = this.input.unlockTimeout ?? DEFAULT_UNLOCK_TIMEOUT_MS;\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 getAppAndVersion: fromPromise(getAppAndVersion),\n waitForDeviceUnlock: fromObservable(waitForDeviceUnlock),\n },\n guards: {\n isDeviceOnboarded: () => isDeviceOnboarded(), // TODO: we don't have this info for now, this can be derived from the \"flags\" obtained in the getVersion command\n isDeviceLocked: ({ context }) => context._internalState.locked,\n hasError: ({ context }) => context._internalState.error !== null,\n },\n actions: {\n assignErrorDeviceNotOnboarded: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: new DeviceNotOnboardedError(),\n }),\n }),\n assignErrorDeviceLocked: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: new DeviceLockedError(),\n }),\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.UnlockDevice,\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 assignNoUserActionNeeded: assign({\n intermediateValue: (_) =>\n ({\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.None,\n }) satisfies types[\"context\"][\"intermediateValue\"],\n }),\n assignUserActionUnlockNeeded: assign({\n intermediateValue: (_) =>\n ({\n ..._.context.intermediateValue,\n requiredUserInteraction: UserInteractionRequired.UnlockDevice,\n }) satisfies types[\"context\"][\"intermediateValue\"],\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QHEwBcAiYBuBLAxmAMpoCGaArrFnoQIL5q4D2AdgHQ0FgBKYpEAJ4BiANoAGALqJQAB2axcTNjJAAPRAFoArAHZx7AIwAmQ7oCcugMyHzANmMAWYwBoQgxI8vsAHOJM+VuLmVj5e2gC+EW6omDjcJORUXPSMLBwA8qwARsykAE4QuKxQAMIAFmD4ANZiUqryisqsqhoImo4O7OGhPj4h5n6Obh4IunZ2RoZ+ena6nYaGUTHoKcRklNTxqc3sWbkFRSUVVbWihtJIII1K6a1aVtoGTxOOjtbv84YjiObik7ofPM7GFDP9jNofMsQLE1olNmsGLsADLMGrFMqVGp1S5yBS3FRXNqaOzadjiHx2KyORbzcRBczmH4IbTOdjaabaKmdGy6XSRaIw1bbdZJLa0MBI9LsVHo45Ys4XBr45r3dps-n0ubaGxgx6PZlWULkkLBGmDCzGYzQ2Ei+HJEVStjsACqsDA+SdrBdrAANmjqmthBA2GB2MVsMxqmG3R6vT7-TU1hJcdcVXciYgglZycYQiYqRTQoZtMynDmbM4aW8rHYzD4BSs4hL7eLuF7Xe7PWk2AmA0GPflmPl2LJfeQAGbDgC2nbjPe9fv7IpTyqaGdAbXmxnZPkMNNM820VuZ+8M7Dsb3MznpwW31sFtpbGwdEo7dFksjorAgADUPYobAnNiIasGGEZRmGT4JC+bY7NKH5fj+-75IBrDAdUCAQfg5DpCmq5XDcqqZmMjgGDY-yGJeejjFRzJ2P47DZoEJb+Hyx42sKz5ioiC7sIh35-gB6QYcIg7DqO45oFO+SztBhCtrxuwCchwlAQqWGsJGOHNPh9SEemhKbogdLsIMTjmPuNF1nYZaOBW+5OPu9l1oCjZCs2ME8Y6fGIb6BC4WwdDYKQuDjtkvq8HAFC+mgokEXi65GeoiBguYZJOPSJa6Hm1hGsyuglkxxiUjYVjXlq7nyaKCI+cpn7+Tp6TBaF4WRXwsAxXFCpiEqBlJS0JFAo4vg+BCe55e8-QFUVVglVShjlWRtZ2FEgqsMwEBwKo1WKXVG5pgNaokmRZmQg4fyLHR7ieCNpjGPyx7aNo6UNo4nGeQpsFKdKax8AIoyJQSg3Ge0L07q9F3+Istk3Qg1IjUaZ7GNS-LlU4H1wt9+3OvseSFBiGFrsDx01mZ15mHooReFaVj0fZ5Jci5zissYIKY3a2NvnxsrVITCrE8RoMdDucxWgx1jpZCELDHDgKTC9jg6mNXKLDSHPcbV3O7LG3bNH2SYioLB3EmCI1-HuVL6Cj4hU6eNjsIVD3UrWfKXVCj5cV5Wvtr5n6CShaFE-1JMkWzPgXpCjh+Faw3Mjq5jdOlJhGvo-RzRr3uvr79VjgFzQtWFpARVFnWxcHQNCylCBm+eKPjJL4jWMEdNww4O46vSFVsfyD5Nlj3na9KRAUPghCwPAIdV20QIR7e-RzOYbNK98cN7ndgR-BSzgo+YmdfYPOfSgAovkQ75MbyVtItehmSrJgcijz2uHD+pmXyQSQnyVLs2tQA */\n id: \"GetDeviceStatusDeviceAction\",\n initial: \"DeviceReady\",\n context: (_) => {\n const sessionState = getDeviceSessionState();\n const { sessionStateType } = sessionState;\n return {\n input: {\n unlockTimeout: _.input.unlockTimeout,\n },\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n onboarded: false, // we don't know how to check yet\n locked: false,\n currentApp:\n sessionStateType ===\n DeviceSessionStateType.ReadyWithoutSecureChannel\n ? sessionState.currentApp.name\n : null,\n currentAppVersion: null,\n error: null,\n },\n };\n },\n states: {\n DeviceReady: {\n always: {\n target: \"OnboardingCheck\",\n },\n },\n OnboardingCheck: {\n // TODO: we don't have this info for now\n always: [\n {\n guard: {\n type: \"isDeviceOnboarded\",\n },\n target: \"AppAndVersionCheck\",\n actions: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n onboarded: true,\n }),\n }),\n },\n {\n target: \"Error\",\n actions: \"assignErrorDeviceNotOnboarded\",\n },\n ],\n },\n UserActionUnlockDevice: {\n // we wait for the device to be unlocked (default timeout is 15s)\n entry: \"assignUserActionUnlockNeeded\",\n exit: \"assignNoUserActionNeeded\",\n invoke: {\n id: \"UserActionUnlockDevice\",\n src: \"waitForDeviceUnlock\",\n input: (_) => ({\n unlockTimeout,\n }),\n onDone: {\n target: \"AppAndVersionCheck\",\n actions: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n locked: false,\n }),\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorDeviceLocked\",\n },\n },\n },\n AppAndVersionCheck: {\n // We check the current app and version using the getAppAndVersion command\n invoke: {\n src: \"getAppAndVersion\",\n onDone: {\n target: \"ApplicationAvailableResultCheck\",\n actions: assign({\n _internalState: (_) => {\n if (isSuccessCommandResult(_.event.output)) {\n const state: DeviceSessionState = getDeviceSessionState();\n if (\n state.sessionStateType !==\n DeviceSessionStateType.Connected\n ) {\n // Update the current app\n setDeviceSessionState({\n ...state,\n currentApp: _.event.output.data,\n });\n } else {\n // The device can be set to Ready if GetAppAndVersionCommand was successful\n setDeviceSessionState({\n deviceModelId: state.deviceModelId,\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: _.event.output.data,\n installedApps: [],\n isSecureConnectionAllowed: false,\n });\n }\n return {\n ..._.context._internalState,\n locked: false,\n currentApp: _.event.output.data.name,\n currentAppVersion: _.event.output.data.version,\n };\n }\n if (\n \"errorCode\" in _.event.output.error &&\n _.event.output.error.errorCode === \"5515\"\n ) {\n return {\n ..._.context._internalState,\n locked: true,\n };\n }\n return {\n ..._.context._internalState,\n error: _.event.output.error,\n };\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n ApplicationAvailableResultCheck: {\n always: [\n {\n guard: \"hasError\",\n target: \"Error\",\n },\n {\n target: \"UserActionUnlockDevice\",\n guard: \"isDeviceLocked\",\n },\n {\n target: \"Success\",\n },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: (args) => {\n // TODO: instead we should rely on the current state (\"Success\" or \"Error\")\n const { context } = args;\n const { error, currentApp, currentAppVersion } = context._internalState;\n if (error) {\n return Left(error);\n }\n return Right<GetDeviceStatusDAOutput>({\n currentApp: currentApp!,\n currentAppVersion: currentAppVersion!,\n });\n },\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const getAppAndVersion = () => {\n return internalApi.sendCommand(new GetAppAndVersionCommand());\n };\n\n const waitForDeviceUnlock = ({\n input,\n }: {\n input: { unlockTimeout: number };\n }) =>\n new Observable<void>((subscriber) => {\n const inner = internalApi\n .getDeviceSessionStateObservable()\n .pipe(\n tap((state) => {\n if (state.deviceStatus === DeviceStatus.CONNECTED) {\n subscriber.complete();\n inner.unsubscribe();\n }\n }),\n )\n .subscribe();\n\n return () => {\n inner.unsubscribe();\n };\n }).pipe(timeout(input.unlockTimeout));\n\n return {\n getAppAndVersion,\n waitForDeviceUnlock,\n getDeviceSessionState: () => internalApi.getDeviceSessionState(),\n setDeviceSessionState: (state: DeviceSessionState) =>\n internalApi.setDeviceSessionState(state),\n isDeviceOnboarded: () => true, // TODO: we don't have this info for now\n };\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["Left", "Right", "Observable", "tap", "timeout", "assign", "fromObservable", "fromPromise", "setup", "isSuccessCommandResult", "GetAppAndVersionCommand", "DeviceStatus", "UserInteractionRequired", "DEFAULT_UNLOCK_TIMEOUT_MS", "DeviceLockedError", "DeviceNotOnboardedError", "XStateDeviceAction", "DeviceSessionStateType", "GetDeviceStatusDeviceAction", "internalApi", "getAppAndVersion", "getDeviceSessionState", "setDeviceSessionState", "waitForDeviceUnlock", "isDeviceOnboarded", "unlockTimeout", "context", "_", "sessionState", "sessionStateType", "state", "args", "error", "currentApp", "currentAppVersion", "input", "subscriber", "inner"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{interval as O,Observable as C}from"rxjs";import{CommandResultFactory as S}from"../../../command/model/CommandResult";import{GLOBAL_ERRORS as N,GlobalCommandError as T}from"../../../command/utils/GlobalCommandError";import{DeviceModelId as D}from"../../../device/DeviceModel";import{DeviceStatus as i}from"../../../device/DeviceStatus";import{makeDeviceActionInternalApiMock as u}from"../../../device-action/__test-utils__/makeInternalApi";import{testDeviceActionStates as p}from"../../../device-action/__test-utils__/testDeviceActionStates";import{DeviceActionStatus as t}from"../../../device-action/model/DeviceActionState";import{UserInteractionRequired as a}from"../../../device-action/model/UserInteractionRequired";import{DeviceLockedError as g,DeviceNotOnboardedError as x,UnknownDAError as w}from"../../../device-action/os/Errors";import{DeviceSessionStateType as s}from"../../../device-session/DeviceSessionState";import{GetDeviceStatusDeviceAction as m}from"./GetDeviceStatusDeviceAction";describe("GetDeviceStatusDeviceAction",()=>{const A=vi.fn(),v=vi.fn(),h=vi.fn(),f=vi.fn(),y=vi.fn();function l(){return{getAppAndVersion:A,getDeviceSessionState:v,waitForDeviceUnlock:h,setDeviceSessionState:f,isDeviceOnboarded:y}}const{sendCommand:R,getDeviceSessionState:V,getDeviceSessionStateObservable:E}=u();beforeEach(()=>{vi.resetAllMocks(),y.mockReturnValue(!0)}),describe("without overriding `extractDependencies`",()=>{it("should run the device action with an unlocked device",()=>new Promise((r,o)=>{const e=new m({input:{unlockTimeout:500}});V.mockReturnValue({sessionStateType:s.Connected,deviceStatus:i.CONNECTED,deviceModelId:D.NANO_X}),R.mockResolvedValue(S({data:{name:"BOLOS",version:"1.0.0"}}));const n=[{intermediateValue:{requiredUserInteraction:a.None},status:t.Pending},{output:{currentApp:"BOLOS",currentAppVersion:"1.0.0"},status:t.Completed}];p(e,n,u(),{onDone:r,onError:o})})),it("should run the device action with a locked device",()=>new Promise((r,o)=>{const e=new m({input:{unlockTimeout:500}});V.mockReturnValue({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"},installedApps:[],deviceModelId:D.NANO_X}),E.mockImplementation(()=>new C(c=>{const d=O(50).subscribe({next:k=>{k>2?(c.next({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.CONNECTED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"},installedApps:[],deviceModelId:D.NANO_X}),c.complete()):c.next({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"},installedApps:[],deviceModelId:D.NANO_X})}});return()=>{d.unsubscribe()}})),R.mockResolvedValue(S({data:{name:"BOLOS",version:"1.0.0"}}));const n=[{intermediateValue:{requiredUserInteraction:a.UnlockDevice},status:t.Pending},{intermediateValue:{requiredUserInteraction:a.None},status:t.Pending},{output:{currentApp:"BOLOS",currentAppVersion:"1.0.0"},status:t.Completed}];p(e,n,u(),{onDone:r,onError:o})}))}),describe("success cases",()=>{it("should return the device status if the device is unlocked",()=>new Promise((r,o)=>{v.mockReturnValue({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.CONNECTED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}}),A.mockResolvedValue(S({data:{name:"BOLOS",version:"1.0.0"}}));const e=new m({input:{unlockTimeout:void 0}});vi.spyOn(e,"extractDependencies").mockReturnValue(l());const n=[{intermediateValue:{requiredUserInteraction:a.None},status:t.Pending},{status:t.Completed,output:{currentApp:"BOLOS",currentAppVersion:"1.0.0"}}];p(e,n,u(),{onDone:r,onError:o})})),it("should return the device status if the device is locked and the user unlocks the device",()=>new Promise((r,o)=>{v.mockReturnValue({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}}),A.mockResolvedValue(S({data:{name:"BOLOS",version:"1.0.0"}})),h.mockImplementation(()=>new C(c=>{const d=O(50).subscribe({next:k=>{k>2?(c.next({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.CONNECTED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}}),c.complete()):c.next({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}})}});return()=>{d.unsubscribe()}}));const e=new m({input:{unlockTimeout:500}});vi.spyOn(e,"extractDependencies").mockReturnValue(l());const n=[{intermediateValue:{requiredUserInteraction:a.UnlockDevice},status:t.Pending},{intermediateValue:{requiredUserInteraction:a.None},status:t.Pending},{status:t.Completed,output:{currentApp:"BOLOS",currentAppVersion:"1.0.0"}}];p(e,n,u(),{onDone:r,onError:o})}))}),describe("errors cases",()=>{it("should end in an error if the device is not onboarded",()=>new Promise((r,o)=>{v.mockReturnValue({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}}),y.mockReturnValue(!1);const e=new m({input:{unlockTimeout:500}});vi.spyOn(e,"extractDependencies").mockReturnValue(l());const n=[{error:new x,status:t.Error}];p(e,n,u(),{onDone:r,onError:o})})),it("should end in an error if the device is locked and the user does not unlock",()=>new Promise((r,o)=>{v.mockReturnValue({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}}),E.mockImplementation(()=>new C(c=>{const d=O(200).subscribe({next:()=>{c.next({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"},installedApps:[],deviceModelId:D.NANO_X})}});return()=>{d.unsubscribe()}}));const e=new m({input:{unlockTimeout:500}});vi.spyOn(e,"extractDependencies").mockReturnValue(l());const n=[{intermediateValue:{requiredUserInteraction:a.UnlockDevice},status:t.Pending},{error:new g("Device locked."),status:t.Error}];p(e,n,u(),{onDone:r,onError:o})})),it("should end in an error if the GetAppAndVersion command fails",()=>new Promise((r,o)=>{v.mockReturnValue({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}});const e=new T({...N[5501],errorCode:"5501"});A.mockResolvedValue(S({error:e})),h.mockImplementation(()=>new C(d=>{const k=O(50).subscribe({next:b=>{b>2?(d.next({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.CONNECTED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}}),d.complete()):d.next({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}})}});return()=>{k.unsubscribe()}}));const n=new m({input:{unlockTimeout:500}});vi.spyOn(n,"extractDependencies").mockReturnValue(l());const c=[{intermediateValue:{requiredUserInteraction:a.UnlockDevice},status:t.Pending},{intermediateValue:{requiredUserInteraction:a.None},status:t.Pending},{error:e,status:t.Error}];p(n,c,u(),{onDone:r,onError:o})})),it("should end in an error if getAppAndVersion actor throws an error",()=>new Promise((r,o)=>{v.mockReturnValue({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}}),A.mockImplementation(()=>{throw new w("error")}),h.mockImplementation(()=>new C(c=>{c.complete()}));const e=new m({input:{unlockTimeout:500}});vi.spyOn(e,"extractDependencies").mockReturnValue(l());const n=[{intermediateValue:{requiredUserInteraction:a.UnlockDevice},status:t.Pending},{intermediateValue:{requiredUserInteraction:a.None},status:t.Pending},{error:new w("error"),status:t.Error}];p(e,n,u(),{onDone:r,onError:o})}))}),it("should emit a stopped state if the action is cancelled",()=>new Promise((r,o)=>{V.mockReturnValue({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.CONNECTED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"},installedApps:[],deviceModelId:D.NANO_X}),R.mockResolvedValue(S({data:{name:"BOLOS",version:"1.0.0"}}));const e=new m({input:{unlockTimeout:500}}),n=[{status:t.Pending,intermediateValue:{requiredUserInteraction:a.None}},{status:t.Stopped}],{cancel:c}=p(e,n,u(),{onDone:r,onError:o});c()}))});
1
+ import{interval as h,Observable as C}from"rxjs";import{CommandResultFactory as d}from"../../../command/model/CommandResult";import{GLOBAL_ERRORS as y,GlobalCommandError as V}from"../../../command/utils/GlobalCommandError";import{DeviceModelId as A}from"../../../device/DeviceModel";import{DeviceStatus as i}from"../../../device/DeviceStatus";import{makeDeviceActionInternalApiMock as u}from"../../../device-action/__test-utils__/makeInternalApi";import{testDeviceActionStates as p}from"../../../device-action/__test-utils__/testDeviceActionStates";import{DeviceActionStatus as t}from"../../../device-action/model/DeviceActionState";import{UserInteractionRequired as a}from"../../../device-action/model/UserInteractionRequired";import{DeviceLockedError as g,DeviceNotOnboardedError as x,UnknownDAError as T}from"../../../device-action/os/Errors";import{DeviceSessionStateType as s}from"../../../device-session/DeviceSessionState";import{GetDeviceStatusDeviceAction as l}from"./GetDeviceStatusDeviceAction";describe("GetDeviceStatusDeviceAction",()=>{const S=vi.fn(),v=vi.fn(),O=vi.fn(),R=vi.fn(),E=vi.fn();function D(){return{getAppAndVersion:S,getDeviceSessionState:v,waitForDeviceUnlock:O,setDeviceSessionState:R,isDeviceOnboarded:E}}const{sendCommand:w,getDeviceSessionState:N,getDeviceSessionStateObservable:f}=u();beforeEach(()=>{vi.resetAllMocks(),E.mockReturnValue(!0)}),describe("without overriding `extractDependencies`",()=>{it("should run the device action with an unlocked device",()=>new Promise((r,o)=>{const e=new l({input:{unlockTimeout:500}});N.mockReturnValue({sessionStateType:s.Connected,deviceStatus:i.CONNECTED,deviceModelId:A.NANO_X}),w.mockResolvedValue(d({data:{name:"BOLOS",version:"1.0.0"}}));const n=[{intermediateValue:{requiredUserInteraction:a.None},status:t.Pending},{output:{currentApp:"BOLOS",currentAppVersion:"1.0.0"},status:t.Completed}];p(e,n,u(),{onDone:r,onError:o})})),it("should run the device action with a locked device",()=>new Promise((r,o)=>{const e=new l({input:{unlockTimeout:500}});N.mockReturnValue({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"},installedApps:[],deviceModelId:A.NANO_X,isSecureConnectionAllowed:!1}),f.mockImplementation(()=>new C(c=>{const m=h(50).subscribe({next:k=>{k>2?(c.next({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.CONNECTED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"},installedApps:[],deviceModelId:A.NANO_X,isSecureConnectionAllowed:!1}),c.complete()):c.next({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"},installedApps:[],deviceModelId:A.NANO_X,isSecureConnectionAllowed:!1})}});return()=>{m.unsubscribe()}})),w.mockResolvedValueOnce(d({error:new V({...y[5515],errorCode:"5515"})})).mockResolvedValueOnce(d({data:{name:"BOLOS",version:"1.0.0"}}));const n=[{intermediateValue:{requiredUserInteraction:a.None},status:t.Pending},{intermediateValue:{requiredUserInteraction:a.UnlockDevice},status:t.Pending},{intermediateValue:{requiredUserInteraction:a.None},status:t.Pending},{output:{currentApp:"BOLOS",currentAppVersion:"1.0.0"},status:t.Completed}];p(e,n,u(),{onDone:r,onError:o})}))}),describe("success cases",()=>{it("should return the device status if the device is unlocked",()=>new Promise((r,o)=>{v.mockReturnValue({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.CONNECTED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}}),S.mockResolvedValue(d({data:{name:"BOLOS",version:"1.0.0"}}));const e=new l({input:{unlockTimeout:void 0}});vi.spyOn(e,"extractDependencies").mockReturnValue(D());const n=[{intermediateValue:{requiredUserInteraction:a.None},status:t.Pending},{status:t.Completed,output:{currentApp:"BOLOS",currentAppVersion:"1.0.0"}}];p(e,n,u(),{onDone:()=>{expect(R).toHaveBeenCalledWith({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.CONNECTED,currentApp:{name:"BOLOS",version:"1.0.0"}}),r()},onError:o})})),it("should return the device status and update session if the device is not ready",()=>new Promise((r,o)=>{v.mockReturnValue({sessionStateType:s.Connected,deviceStatus:i.CONNECTED}),S.mockResolvedValue(d({data:{name:"BOLOS",version:"1.0.0"}}));const e=new l({input:{unlockTimeout:void 0}});vi.spyOn(e,"extractDependencies").mockReturnValue(D());const n=[{intermediateValue:{requiredUserInteraction:a.None},status:t.Pending},{status:t.Completed,output:{currentApp:"BOLOS",currentAppVersion:"1.0.0"}}];p(e,n,u(),{onDone:()=>{expect(R).toHaveBeenCalledWith({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.CONNECTED,currentApp:{name:"BOLOS",version:"1.0.0"},installedApps:[],isSecureConnectionAllowed:!1}),r()},onError:o})})),it("should return the device status if the device is locked and the user unlocks the device",()=>new Promise((r,o)=>{v.mockReturnValue({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}}),S.mockResolvedValueOnce(d({error:new V({...y[5515],errorCode:"5515"})})).mockResolvedValueOnce(d({data:{name:"BOLOS",version:"1.0.0"}})),O.mockImplementation(()=>new C(c=>{const m=h(50).subscribe({next:k=>{k>2?(c.next({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.CONNECTED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}}),c.complete()):c.next({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}})}});return()=>{m.unsubscribe()}}));const e=new l({input:{unlockTimeout:500}});vi.spyOn(e,"extractDependencies").mockReturnValue(D());const n=[{intermediateValue:{requiredUserInteraction:a.None},status:t.Pending},{intermediateValue:{requiredUserInteraction:a.UnlockDevice},status:t.Pending},{intermediateValue:{requiredUserInteraction:a.None},status:t.Pending},{status:t.Completed,output:{currentApp:"BOLOS",currentAppVersion:"1.0.0"}}];p(e,n,u(),{onDone:r,onError:o})}))}),describe("errors cases",()=>{it("should end in an error if the device is not onboarded",()=>new Promise((r,o)=>{v.mockReturnValue({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}}),E.mockReturnValue(!1);const e=new l({input:{unlockTimeout:500}});vi.spyOn(e,"extractDependencies").mockReturnValue(D());const n=[{error:new x,status:t.Error}];p(e,n,u(),{onDone:r,onError:o})})),it("should end in an error if the device is locked and the user does not unlock",()=>new Promise((r,o)=>{v.mockReturnValue({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}}),S.mockResolvedValue(d({error:new V({...y[5515],errorCode:"5515"})})),f.mockImplementation(()=>new C(c=>{const m=h(200).subscribe({next:()=>{c.next({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"},installedApps:[],deviceModelId:A.NANO_X,isSecureConnectionAllowed:!1})}});return()=>{m.unsubscribe()}}));const e=new l({input:{unlockTimeout:500}});vi.spyOn(e,"extractDependencies").mockReturnValue(D());const n=[{intermediateValue:{requiredUserInteraction:a.None},status:t.Pending},{intermediateValue:{requiredUserInteraction:a.UnlockDevice},status:t.Pending},{error:new g("Device locked."),status:t.Error}];p(e,n,u(),{onDone:r,onError:o})})),it("should end in an error if the GetAppAndVersion command fails",()=>new Promise((r,o)=>{v.mockReturnValue({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}});const e=new V({...y[5501],errorCode:"5501"});S.mockResolvedValue(d({error:e})),O.mockImplementation(()=>new C(m=>{const k=h(50).subscribe({next:b=>{b>2?(m.next({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.CONNECTED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}}),m.complete()):m.next({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}})}});return()=>{k.unsubscribe()}}));const n=new l({input:{unlockTimeout:500}});vi.spyOn(n,"extractDependencies").mockReturnValue(D());const c=[{intermediateValue:{requiredUserInteraction:a.None},status:t.Pending},{error:e,status:t.Error}];p(n,c,u(),{onDone:r,onError:o})})),it("should end in an error if getAppAndVersion actor throws an error",()=>new Promise((r,o)=>{v.mockReturnValue({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.LOCKED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"}}),S.mockImplementation(()=>{throw new T("error")}),O.mockImplementation(()=>new C(c=>{c.complete()}));const e=new l({input:{unlockTimeout:500}});vi.spyOn(e,"extractDependencies").mockReturnValue(D());const n=[{intermediateValue:{requiredUserInteraction:a.None},status:t.Pending},{error:new T("error"),status:t.Error}];p(e,n,u(),{onDone:r,onError:o})}))}),it("should emit a stopped state if the action is cancelled",()=>new Promise((r,o)=>{N.mockReturnValue({sessionStateType:s.ReadyWithoutSecureChannel,deviceStatus:i.CONNECTED,currentApp:{name:"mockedCurrentApp",version:"1.0.0"},installedApps:[],deviceModelId:A.NANO_X,isSecureConnectionAllowed:!1}),w.mockResolvedValue(d({data:{name:"BOLOS",version:"1.0.0"}}));const e=new l({input:{unlockTimeout:500}}),n=[{status:t.Pending,intermediateValue:{requiredUserInteraction:a.None}},{status:t.Stopped}],{cancel:c}=p(e,n,u(),{onDone:r,onError:o});c()}))});
2
2
  //# sourceMappingURL=GetDeviceStatusDeviceAction.test.js.map
@@ -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 });\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 });\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 });\n }\n },\n });\n\n return () => {\n inner.unsubscribe();\n };\n }),\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.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: resolve,\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.mockResolvedValue(\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.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 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 });\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.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.UnlockDevice,\n },\n status: DeviceActionStatus.Pending,\n },\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.UnlockDevice,\n },\n status: DeviceActionStatus.Pending,\n },\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 });\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\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{CommandResultFactory as a}from"../../../command/model/CommandResult";import{GLOBAL_ERRORS as f,GlobalCommandError as C}from"../../../command/utils/GlobalCommandError";import{DeviceModelId as V}from"../../../device/DeviceModel";import{DeviceStatus as c}from"../../../device/DeviceStatus";import{makeDeviceActionInternalApiMock as s}from"../../../device-action/__test-utils__/makeInternalApi";import{setupGetDeviceStatusMock as d}from"../../../device-action/__test-utils__/setupTestMachine";import{testDeviceActionStates as u}from"../../../device-action/__test-utils__/testDeviceActionStates";import{DeviceActionStatus as e}from"../../../device-action/model/DeviceActionState";import{UserInteractionRequired as t}from"../../../device-action/model/UserInteractionRequired";import{UnknownDAError as h}from"../../../device-action/os/Errors";import{DeviceSessionStateType as p}from"../../../device-session/DeviceSessionState";import{UnknownDeviceExchangeError as k}from"../../../../../src";import{GoToDashboardDeviceAction as m}from"./GoToDashboardDeviceAction";vi.mock("@api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction");describe("GoToDashboardDeviceAction",()=>{const v=vi.fn(),D=vi.fn(),l=vi.fn(),N=vi.fn();function A(){return{closeApp:v,getAppAndVersion:D,getDeviceSessionState:l,setDeviceSessionState:N}}const{sendCommand:T,getDeviceSessionState:S}=s();beforeEach(()=>{vi.resetAllMocks()}),describe("without overriding `extractDependencies`",()=>{it("should run the device action with device already on dashboard",()=>new Promise((r,i)=>{d();const n=new m({input:{unlockTimeout:500}});S.mockReturnValue({sessionStateType:p.ReadyWithoutSecureChannel,deviceStatus:c.CONNECTED,currentApp:{name:"BOLOS",version:"1.5.0"},installedApps:[],deviceModelId:V.NANO_X});const o=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{output:void 0,status:e.Completed}];u(n,o,s(),{onDone:r,onError:i})})),it("should run the device action with device not on dashboard",()=>new Promise((r,i)=>{d([{currentApp:"Bitcoin",currentAppVersion:"1.0.0"}]);const n=new m({input:{unlockTimeout:500}});S.mockReturnValue({sessionStateType:p.ReadyWithoutSecureChannel,deviceStatus:c.CONNECTED,currentApp:{name:"Bitcoin",version:"1.0.0"},installedApps:[],deviceModelId:V.NANO_X}),T.mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:{name:"BOLOS",version:"1.5.0"}}));const o=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{output:void 0,status:e.Completed}];u(n,o,s(),{onDone:r,onError:i})}))}),describe("success cases",()=>{it("should success if the device is already on dashboard",()=>new Promise((r,i)=>{d();const n=new m({input:{unlockTimeout:500}});l.mockReturnValue({sessionStateType:p.Connected,deviceStatus:c.CONNECTED,currentApp:{name:"BOLOS",version:"1.5.0"}}),D.mockReturnValue({app:"BOLOS",version:"1.5.0"}),vi.spyOn(n,"extractDependencies").mockReturnValue(A());const o=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{output:void 0,status:e.Completed}];u(n,o,s(),{onDone:r,onError:i})})),it("should success if the device is not on dashboard",()=>new Promise((r,i)=>{d();const n=new m({input:{unlockTimeout:500}});vi.spyOn(n,"extractDependencies").mockReturnValue(A()),l.mockReturnValue({sessionStateType:p.Connected,deviceStatus:c.CONNECTED}),v.mockResolvedValue(a({data:void 0})),D.mockReturnValue(a({data:{name:"BOLOS",version:"1.5.0"}}));const o=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{output:void 0,status:e.Completed}];u(n,o,s(),{onDone:r,onError:i})}))}),describe("error cases",()=>{it("should return an error if GetDeviceStatus return an error",()=>new Promise((r,i)=>{d([new h("Unknown error")]);const n=new m({input:{unlockTimeout:500}});S.mockReturnValue({sessionStateType:p.ReadyWithoutSecureChannel,deviceStatus:c.CONNECTED,currentApp:{name:"BOLOS",version:"1.5.0"},installedApps:[],deviceModelId:V.NANO_X});const o=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{status:e.Error,error:new h("Unknown error")}];u(n,o,s(),{onDone:r,onError:i})})),describe("not on dashboard",()=>{it("should return an error if closeApp fails",()=>new Promise((r,i)=>{d([{currentApp:"Bitcoin",currentAppVersion:"1.0.0"}]);const n=new m({input:{}});vi.spyOn(n,"extractDependencies").mockReturnValue(A()),l.mockReturnValue({sessionStateType:p.Connected,deviceStatus:c.CONNECTED,currentApp:"Bitcoin"}),v.mockReturnValue(a({error:new k("Close app failed")}));const o=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{status:e.Error,error:new k("Close app failed")}];u(n,o,s(),{onDone:r,onError:i})})),it("should return an error if getAppAndVersion fails",()=>new Promise((r,i)=>{d([{currentApp:"Bitcoin",currentAppVersion:"1.0.0"}]);const n=new m({input:{unlockTimeout:500}}),o=new C({...f[5501],errorCode:"5501"});vi.spyOn(n,"extractDependencies").mockReturnValue(A()),l.mockReturnValue({sessionStateType:p.Connected,deviceStatus:c.CONNECTED,currentApp:"Bitcoin"}),v.mockResolvedValue(a({data:void 0})),D.mockResolvedValue(a({error:o}));const g=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{status:e.Error,error:o}];u(n,g,s(),{onDone:r,onError:i})})),it("should return an error if getAppAndVersion does not return an app name",()=>new Promise((r,i)=>{d([{currentApp:"Bitcoin",currentAppVersion:"1.0.0"}]);const n=new m({input:{unlockTimeout:500}});vi.spyOn(n,"extractDependencies").mockReturnValue(A()),l.mockReturnValue({sessionStateType:p.Connected,deviceStatus:c.CONNECTED,currentApp:"Bitcoin"}),v.mockResolvedValue(a({data:void 0})),D.mockResolvedValue(a({data:{name:null,version:"1.0.0"}}));const o=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{status:e.Error,error:new h("currentApp === null")}];u(n,o,s(),{onDone:r,onError:i})}))})})});
1
+ import{CommandResultFactory as a}from"../../../command/model/CommandResult";import{GLOBAL_ERRORS as g,GlobalCommandError as C}from"../../../command/utils/GlobalCommandError";import{DeviceModelId as V}from"../../../device/DeviceModel";import{DeviceStatus as c}from"../../../device/DeviceStatus";import{makeDeviceActionInternalApiMock as s}from"../../../device-action/__test-utils__/makeInternalApi";import{setupGetDeviceStatusMock as d}from"../../../device-action/__test-utils__/setupTestMachine";import{testDeviceActionStates as u}from"../../../device-action/__test-utils__/testDeviceActionStates";import{DeviceActionStatus as e}from"../../../device-action/model/DeviceActionState";import{UserInteractionRequired as t}from"../../../device-action/model/UserInteractionRequired";import{UnknownDAError as h}from"../../../device-action/os/Errors";import{DeviceSessionStateType as p}from"../../../device-session/DeviceSessionState";import{UnknownDeviceExchangeError as k}from"../../../../../src";import{GoToDashboardDeviceAction as l}from"./GoToDashboardDeviceAction";vi.mock("@api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction");describe("GoToDashboardDeviceAction",()=>{const v=vi.fn(),D=vi.fn(),m=vi.fn(),N=vi.fn();function A(){return{closeApp:v,getAppAndVersion:D,getDeviceSessionState:m,setDeviceSessionState:N}}const{sendCommand:T,getDeviceSessionState:S}=s();beforeEach(()=>{vi.resetAllMocks()}),describe("without overriding `extractDependencies`",()=>{it("should run the device action with device already on dashboard",()=>new Promise((r,i)=>{d();const n=new l({input:{unlockTimeout:500}});S.mockReturnValue({sessionStateType:p.ReadyWithoutSecureChannel,deviceStatus:c.CONNECTED,currentApp:{name:"BOLOS",version:"1.5.0"},installedApps:[],deviceModelId:V.NANO_X,isSecureConnectionAllowed:!1});const o=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{output:void 0,status:e.Completed}];u(n,o,s(),{onDone:r,onError:i})})),it("should run the device action with device not on dashboard",()=>new Promise((r,i)=>{d([{currentApp:"Bitcoin",currentAppVersion:"1.0.0"}]);const n=new l({input:{unlockTimeout:500}});S.mockReturnValue({sessionStateType:p.ReadyWithoutSecureChannel,deviceStatus:c.CONNECTED,currentApp:{name:"Bitcoin",version:"1.0.0"},installedApps:[],deviceModelId:V.NANO_X,isSecureConnectionAllowed:!1}),T.mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:{name:"BOLOS",version:"1.5.0"}}));const o=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{output:void 0,status:e.Completed}];u(n,o,s(),{onDone:r,onError:i})}))}),describe("success cases",()=>{it("should success if the device is already on dashboard",()=>new Promise((r,i)=>{d();const n=new l({input:{unlockTimeout:500}});m.mockReturnValue({sessionStateType:p.Connected,deviceStatus:c.CONNECTED,currentApp:{name:"BOLOS",version:"1.5.0"}}),D.mockReturnValue({app:"BOLOS",version:"1.5.0"}),vi.spyOn(n,"extractDependencies").mockReturnValue(A());const o=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{output:void 0,status:e.Completed}];u(n,o,s(),{onDone:r,onError:i})})),it("should success if the device is not on dashboard",()=>new Promise((r,i)=>{d();const n=new l({input:{unlockTimeout:500}});vi.spyOn(n,"extractDependencies").mockReturnValue(A()),m.mockReturnValue({sessionStateType:p.Connected,deviceStatus:c.CONNECTED}),v.mockResolvedValue(a({data:void 0})),D.mockReturnValue(a({data:{name:"BOLOS",version:"1.5.0"}}));const o=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{output:void 0,status:e.Completed}];u(n,o,s(),{onDone:r,onError:i})}))}),describe("error cases",()=>{it("should return an error if GetDeviceStatus return an error",()=>new Promise((r,i)=>{d([new h("Unknown error")]);const n=new l({input:{unlockTimeout:500}});S.mockReturnValue({sessionStateType:p.ReadyWithoutSecureChannel,deviceStatus:c.CONNECTED,currentApp:{name:"BOLOS",version:"1.5.0"},installedApps:[],deviceModelId:V.NANO_X,isSecureConnectionAllowed:!1});const o=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{status:e.Error,error:new h("Unknown error")}];u(n,o,s(),{onDone:r,onError:i})})),describe("not on dashboard",()=>{it("should return an error if closeApp fails",()=>new Promise((r,i)=>{d([{currentApp:"Bitcoin",currentAppVersion:"1.0.0"}]);const n=new l({input:{}});vi.spyOn(n,"extractDependencies").mockReturnValue(A()),m.mockReturnValue({sessionStateType:p.Connected,deviceStatus:c.CONNECTED,currentApp:"Bitcoin"}),v.mockReturnValue(a({error:new k("Close app failed")}));const o=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{status:e.Error,error:new k("Close app failed")}];u(n,o,s(),{onDone:r,onError:i})})),it("should return an error if getAppAndVersion fails",()=>new Promise((r,i)=>{d([{currentApp:"Bitcoin",currentAppVersion:"1.0.0"}]);const n=new l({input:{unlockTimeout:500}}),o=new C({...g[5501],errorCode:"5501"});vi.spyOn(n,"extractDependencies").mockReturnValue(A()),m.mockReturnValue({sessionStateType:p.Connected,deviceStatus:c.CONNECTED,currentApp:"Bitcoin"}),v.mockResolvedValue(a({data:void 0})),D.mockResolvedValue(a({error:o}));const f=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{status:e.Error,error:o}];u(n,f,s(),{onDone:r,onError:i})})),it("should return an error if getAppAndVersion does not return an app name",()=>new Promise((r,i)=>{d([{currentApp:"Bitcoin",currentAppVersion:"1.0.0"}]);const n=new l({input:{unlockTimeout:500}});vi.spyOn(n,"extractDependencies").mockReturnValue(A()),m.mockReturnValue({sessionStateType:p.Connected,deviceStatus:c.CONNECTED,currentApp:"Bitcoin"}),v.mockResolvedValue(a({data:void 0})),D.mockResolvedValue(a({data:{name:null,version:"1.0.0"}}));const o=[{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{intermediateValue:{requiredUserInteraction:t.None},status:e.Pending},{status:e.Error,error:new h("currentApp === null")}];u(n,o,s(),{onDone:r,onError:i})}))})})});
2
2
  //# sourceMappingURL=GoToDashboardDeviceAction.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.ts"],
4
- "sourcesContent": ["import { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport {\n GLOBAL_ERRORS,\n GlobalCommandError,\n} from \"@api/command/utils/GlobalCommandError\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { setupGetDeviceStatusMock } from \"@api/device-action/__test-utils__/setupTestMachine\";\nimport { testDeviceActionStates } from \"@api/device-action/__test-utils__/testDeviceActionStates\";\nimport { DeviceActionStatus } from \"@api/device-action/model/DeviceActionState\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport { UnknownDAError } from \"@api/device-action/os/Errors\";\nimport { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\nimport { UnknownDeviceExchangeError } from \"@root/src\";\n\nimport { GoToDashboardDeviceAction } from \"./GoToDashboardDeviceAction\";\nimport { type GoToDashboardDAState } from \"./types\";\n\nvi.mock(\"@api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction\");\n\ndescribe(\"GoToDashboardDeviceAction\", () => {\n const closeAppMock = vi.fn();\n const getAppAndVersionMock = vi.fn();\n const getDeviceSessionStateMock = vi.fn();\n const setDeviceSessionStateMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n closeApp: closeAppMock,\n getAppAndVersion: getAppAndVersionMock,\n getDeviceSessionState: getDeviceSessionStateMock,\n setDeviceSessionState: setDeviceSessionStateMock,\n };\n }\n\n const {\n sendCommand: sendCommandMock,\n getDeviceSessionState: apiGetDeviceSessionStateMock,\n } = makeDeviceActionInternalApiMock();\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"without overriding `extractDependencies`\", () => {\n it(\"should run the device action with device already on dashboard\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock();\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"1.5.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n });\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GetDeviceStatus events (mocked for tests)\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action with device not on dashboard\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"Bitcoin\", version: \"1.0.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n });\n\n sendCommandMock\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.5.0\",\n },\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"success cases\", () => {\n it(\"should success if the device is already on dashboard\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock();\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"1.5.0\" },\n });\n\n getAppAndVersionMock.mockReturnValue({\n app: \"BOLOS\",\n version: \"1.5.0\",\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should success if the device is not on dashboard\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock();\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n });\n\n closeAppMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n getAppAndVersionMock.mockReturnValue(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.5.0\",\n },\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"error cases\", () => {\n it(\"should return an error if GetDeviceStatus return an error\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([new UnknownDAError(\"Unknown error\")]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"1.5.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n });\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"Unknown error\"),\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n describe(\"not on dashboard\", () => {\n it(\"should return an error if closeApp fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: {},\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: \"Bitcoin\",\n });\n\n closeAppMock.mockReturnValue(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Close app failed\"),\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Close app failed\"),\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should return an error if getAppAndVersion fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n const error = new GlobalCommandError({\n ...GLOBAL_ERRORS[\"5501\"],\n errorCode: \"5501\",\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: \"Bitcoin\",\n });\n\n closeAppMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n getAppAndVersionMock.mockResolvedValue(\n CommandResultFactory({\n error,\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Error,\n error,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should return an error if getAppAndVersion does not return an app name\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: \"Bitcoin\",\n });\n\n closeAppMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n getAppAndVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n name: null,\n version: \"1.0.0\",\n },\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"currentApp === null\"),\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport {\n GLOBAL_ERRORS,\n GlobalCommandError,\n} from \"@api/command/utils/GlobalCommandError\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { setupGetDeviceStatusMock } from \"@api/device-action/__test-utils__/setupTestMachine\";\nimport { testDeviceActionStates } from \"@api/device-action/__test-utils__/testDeviceActionStates\";\nimport { DeviceActionStatus } from \"@api/device-action/model/DeviceActionState\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport { UnknownDAError } from \"@api/device-action/os/Errors\";\nimport { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\nimport { UnknownDeviceExchangeError } from \"@root/src\";\n\nimport { GoToDashboardDeviceAction } from \"./GoToDashboardDeviceAction\";\nimport { type GoToDashboardDAState } from \"./types\";\n\nvi.mock(\"@api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction\");\n\ndescribe(\"GoToDashboardDeviceAction\", () => {\n const closeAppMock = vi.fn();\n const getAppAndVersionMock = vi.fn();\n const getDeviceSessionStateMock = vi.fn();\n const setDeviceSessionStateMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n closeApp: closeAppMock,\n getAppAndVersion: getAppAndVersionMock,\n getDeviceSessionState: getDeviceSessionStateMock,\n setDeviceSessionState: setDeviceSessionStateMock,\n };\n }\n\n const {\n sendCommand: sendCommandMock,\n getDeviceSessionState: apiGetDeviceSessionStateMock,\n } = makeDeviceActionInternalApiMock();\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"without overriding `extractDependencies`\", () => {\n it(\"should run the device action with device already on dashboard\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock();\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"1.5.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending, // GetDeviceStatus events (mocked for tests)\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should run the device action with device not on dashboard\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"Bitcoin\", version: \"1.0.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n\n sendCommandMock\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.5.0\",\n },\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"success cases\", () => {\n it(\"should success if the device is already on dashboard\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock();\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"1.5.0\" },\n });\n\n getAppAndVersionMock.mockReturnValue({\n app: \"BOLOS\",\n version: \"1.5.0\",\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should success if the device is not on dashboard\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock();\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n });\n\n closeAppMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n getAppAndVersionMock.mockReturnValue(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"1.5.0\",\n },\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: undefined,\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"error cases\", () => {\n it(\"should return an error if GetDeviceStatus return an error\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([new UnknownDAError(\"Unknown error\")]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"1.5.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"Unknown error\"),\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n describe(\"not on dashboard\", () => {\n it(\"should return an error if closeApp fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: {},\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: \"Bitcoin\",\n });\n\n closeAppMock.mockReturnValue(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Close app failed\"),\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Close app failed\"),\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should return an error if getAppAndVersion fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n const error = new GlobalCommandError({\n ...GLOBAL_ERRORS[\"5501\"],\n errorCode: \"5501\",\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: \"Bitcoin\",\n });\n\n closeAppMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n getAppAndVersionMock.mockResolvedValue(\n CommandResultFactory({\n error,\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Error,\n error,\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should return an error if getAppAndVersion does not return an app name\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n\n const goToDashboardDeviceAction = new GoToDashboardDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(\n goToDashboardDeviceAction,\n \"extractDependencies\",\n ).mockReturnValue(extractDependenciesMock());\n\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: \"Bitcoin\",\n });\n\n closeAppMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n getAppAndVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n name: null,\n version: \"1.0.0\",\n },\n }),\n );\n\n const expectedStates: Array<GoToDashboardDAState> = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"currentApp === null\"),\n },\n ];\n\n testDeviceActionStates(\n goToDashboardDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["CommandResultFactory", "GLOBAL_ERRORS", "GlobalCommandError", "DeviceModelId", "DeviceStatus", "makeDeviceActionInternalApiMock", "setupGetDeviceStatusMock", "testDeviceActionStates", "DeviceActionStatus", "UserInteractionRequired", "UnknownDAError", "DeviceSessionStateType", "UnknownDeviceExchangeError", "GoToDashboardDeviceAction", "closeAppMock", "getAppAndVersionMock", "getDeviceSessionStateMock", "setDeviceSessionStateMock", "extractDependenciesMock", "sendCommandMock", "apiGetDeviceSessionStateMock", "resolve", "reject", "goToDashboardDeviceAction", "expectedStates", "error"]
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 O}from"../../../device-action/os/Const";import{OutOfMemoryDAError as x}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 M}from"../../../device-action/task/BuildAppsInstallPlanTask";import{PredictOutOfMemoryTask as v}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 p}from"../../../secure-channel/task/types";class K extends P{makeStateMachine(t){const{buildInstallPlan:c,predictOutOfMemory:u,installApp:d}=this.extractDependencies(t),r=this.input.unlockTimeout??O,o=new D({input:{unlockTimeout:r,useSecureChannel:!0,forceUpdate:!1}}).makeStateMachine(t),l=new f({input:{unlockTimeout:r}}).makeStateMachine(t);return g({types:{input:{unlockTimeout:r},context:{},output:{}},actors:{updateMetadata:o,buildInstallPlan:A(c),predictOutOfMemory:A(u),goToDashboard:l,installApp:S(d)},guards:{hasError:({context:e})=>e._internalState.error!==null,hasInstallPlan:e=>e.context.intermediateValue.installPlan!==null,hasMoreApps:e=>e.context._internalState.currentIndex<e.context.intermediateValue.installPlan.installPlan.length},actions:{assignErrorFromEvent:a({_internalState:e=>({...e.context._internalState,error:e.event.error})}),nextAppIndex:a({_internalState:e=>({...e.context._internalState,currentIndex:e.context._internalState.currentIndex+1})}),cleanupDeviceState:()=>{const e=t.getDeviceSessionState();e.sessionStateType!==I.Connected&&t.setDeviceSessionState({...e,installedApps:[],appsUpdates:void 0})}}}).createMachine({id:"InstallOrUpdateAppsDeviceAction",initial:"DeviceReady",context:e=>({input:{applications:e.input.applications,allowMissingApplication:e.input.allowMissingApplication,unlockTimeout:e.input.unlockTimeout},intermediateValue:{requiredUserInteraction:i.None,installPlan:null},_internalState:{error:null,osVersion:null,currentIndex:0}}),states:{DeviceReady:{always:[{target:"UpdateDeviceMetadata"}]},UpdateDeviceMetadata:{exit:a({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:i.None})}),invoke:{id:"updateMetadata",src:"updateMetadata",input:e=>({unlockTimeout:e.context.input.unlockTimeout,useSecureChannel:!0,forceUpdate:!1}),onSnapshot:{actions:a({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:e.event.snapshot.context.intermediateValue.requiredUserInteraction})})},onDone:{target:"UpdateDeviceMetadataCheck",actions:a({_internalState:e=>e.event.output.caseOf({Right:n=>({...e.context._internalState,osVersion:n.firmwareVersion.metadata}),Left:n=>({...e.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:e=>({applications:e.context.input.applications,allowMissingApplication:e.context.input.allowMissingApplication}),onDone:{target:"BuildInstallPlanCheck",actions:a({_internalState:e=>"error"in e.event.output?{...e.context._internalState,error:e.event.output.error}:e.context._internalState,intermediateValue:e=>"error"in e.event.output?e.context.intermediateValue:{...e.context.intermediateValue,installPlan:{installPlan:e.event.output.installPlan,alreadyInstalled:e.event.output.alreadyInstalled,missingApplications:e.event.output.missingApplications,currentIndex:0,currentProgress:0}}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildInstallPlanCheck:{always:[{guard:"hasError",target:"Error"},{target:"PredictOutOfMemory",guard:"hasMoreApps"},{target:"Success"}]},PredictOutOfMemory:{invoke:{src:"predictOutOfMemory",input:e=>({installPlan:e.context.intermediateValue.installPlan.installPlan}),onDone:{target:"PredictOutOfMemoryCheck",actions:a({_internalState:e=>"error"in e.event.output?{...e.context._internalState,error:e.event.output.error}:e.event.output.outOfMemory?{...e.context._internalState,error:new x("Not enough memory for those applications")}:e.context._internalState})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},PredictOutOfMemoryCheck:{always:[{guard:"hasError",target:"Error"},{target:"GoToDashboard"}]},GoToDashboard:{invoke:{id:"goToDashboard",src:"goToDashboard",input:e=>({unlockTimeout:e.context.input.unlockTimeout}),onSnapshot:{actions:a({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:e.event.snapshot.context.intermediateValue.requiredUserInteraction})})},onDone:{target:"GoToDashboardCheck",actions:a({_internalState:e=>e.event.output.caseOf({Right:()=>e.context._internalState,Left:n=>({...e.context._internalState,error:n})})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GoToDashboardCheck:{always:[{target:"Error",guard:"hasError"},{target:"InstallApp",actions:"cleanupDeviceState"}]},InstallApp:{exit:a({intermediateValue:e=>({...e.context.intermediateValue,requiredUserInteraction:i.None})}),invoke:{id:"installApp",src:"installApp",input:e=>({osVersion:e.context._internalState.osVersion,application:e.context.intermediateValue.installPlan.installPlan[e.context._internalState.currentIndex]}),onSnapshot:{actions:a({intermediateValue:e=>{switch(e.event.snapshot.context?.type){case p.PermissionRequested:return{...e.context.intermediateValue,requiredUserInteraction:i.AllowSecureConnection};case p.PermissionGranted:{const n=t.getDeviceSessionState();return n.sessionStateType!==I.Connected&&t.setDeviceSessionState({...n,isSecureConnectionAllowed:!0}),{...e.context.intermediateValue,requiredUserInteraction:i.None}}case p.Progress:return{...e.context.intermediateValue,installPlan:{...e.context.intermediateValue.installPlan,currentIndex:e.context._internalState.currentIndex,currentProgress:e.event.snapshot.context.payload.progress}};default:return e.context.intermediateValue}}})},onDone:{target:"InstallAppCheck",actions:"nextAppIndex"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},InstallAppCheck:{always:[{target:"Error",guard:"hasError"},{target:"InstallApp",guard:"hasMoreApps"},{target:"UpdateDeviceMetadata"}]},Success:{type:"final"},Error:{type:"final"}},output:e=>{const{context:n}=e,{error:m}=n._internalState,{installPlan:s}=n.intermediateValue;return m?h(m):y({successfullyInstalled:s.installPlan,alreadyInstalled:s.alreadyInstalled,missingApplications:s.missingApplications})}})}extractDependencies(t){return{buildInstallPlan:async r=>new M(t,{applications:r.input.applications,allowMissingApplication:r.input.allowMissingApplication}).run(),predictOutOfMemory:async r=>new v(t,{installPlan:r.input.installPlan}).run(),installApp:r=>{const{osVersion:o,application:l}=r.input,e=t.getSecureChannelService().installApp(o,l);return new E(t,{connection:e}).run()}}}}export{K as InstallOrUpdateAppsDeviceAction};
2
+ //# sourceMappingURL=InstallOrUpdateAppsDeviceAction.js.map