@ledgerhq/device-management-kit 1.10.0 → 1.11.1

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 (778) hide show
  1. package/README.md +36 -4
  2. package/lib/cjs/package.json +1 -2
  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/DmkConfig.js.map +1 -1
  6. package/lib/cjs/src/api/command/utils/CommandUtils.js +1 -1
  7. package/lib/cjs/src/api/command/utils/CommandUtils.js.map +2 -2
  8. package/lib/cjs/src/internal/manager-api/data/HttpManagerApiDataSource.js +1 -1
  9. package/lib/cjs/src/internal/manager-api/data/HttpManagerApiDataSource.js.map +3 -3
  10. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js +1 -1
  11. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js.map +1 -1
  12. package/lib/cjs/src/internal/manager-api/di/managerApiModule.js +1 -1
  13. package/lib/cjs/src/internal/manager-api/di/managerApiModule.js.map +3 -3
  14. package/lib/cjs/src/internal/manager-api/di/managerApiTypes.js +1 -1
  15. package/lib/cjs/src/internal/manager-api/di/managerApiTypes.js.map +2 -2
  16. package/lib/cjs/src/internal/manager-api/use-case/SetFirmwareDistributionSaltUseCase.js +2 -0
  17. package/lib/cjs/src/internal/manager-api/use-case/SetFirmwareDistributionSaltUseCase.js.map +7 -0
  18. package/lib/esm/package.json +1 -2
  19. package/lib/esm/src/api/DeviceManagementKit.js +1 -1
  20. package/lib/esm/src/api/DeviceManagementKit.js.map +3 -3
  21. package/lib/esm/src/api/command/utils/CommandUtils.js +1 -1
  22. package/lib/esm/src/api/command/utils/CommandUtils.js.map +3 -3
  23. package/lib/esm/src/internal/manager-api/data/HttpManagerApiDataSource.js +1 -1
  24. package/lib/esm/src/internal/manager-api/data/HttpManagerApiDataSource.js.map +3 -3
  25. package/lib/esm/src/internal/manager-api/di/managerApiModule.js +1 -1
  26. package/lib/esm/src/internal/manager-api/di/managerApiModule.js.map +3 -3
  27. package/lib/esm/src/internal/manager-api/di/managerApiTypes.js +1 -1
  28. package/lib/esm/src/internal/manager-api/di/managerApiTypes.js.map +2 -2
  29. package/lib/esm/src/internal/manager-api/use-case/SetFirmwareDistributionSaltUseCase.js +2 -0
  30. package/lib/esm/src/internal/manager-api/use-case/SetFirmwareDistributionSaltUseCase.js.map +7 -0
  31. package/lib/types/src/api/DeviceManagementKit.d.ts +16 -0
  32. package/lib/types/src/api/DeviceManagementKit.d.ts.map +1 -1
  33. package/lib/types/src/api/DmkConfig.d.ts +4 -0
  34. package/lib/types/src/api/DmkConfig.d.ts.map +1 -1
  35. package/lib/types/src/api/command/utils/CommandUtils.d.ts.map +1 -1
  36. package/lib/types/src/internal/manager-api/data/HttpManagerApiDataSource.d.ts +5 -1
  37. package/lib/types/src/internal/manager-api/data/HttpManagerApiDataSource.d.ts.map +1 -1
  38. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts +11 -0
  39. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts.map +1 -1
  40. package/lib/types/src/internal/manager-api/di/managerApiModule.d.ts.map +1 -1
  41. package/lib/types/src/internal/manager-api/di/managerApiTypes.d.ts +1 -0
  42. package/lib/types/src/internal/manager-api/di/managerApiTypes.d.ts.map +1 -1
  43. package/lib/types/src/internal/manager-api/use-case/SetFirmwareDistributionSaltUseCase.d.ts +16 -0
  44. package/lib/types/src/internal/manager-api/use-case/SetFirmwareDistributionSaltUseCase.d.ts.map +1 -0
  45. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  46. package/package.json +5 -6
  47. package/lib/cjs/src/api/DeviceManagementKit.test.js +0 -2
  48. package/lib/cjs/src/api/DeviceManagementKit.test.js.map +0 -7
  49. package/lib/cjs/src/api/DeviceManagementKitBuilder.test.js +0 -2
  50. package/lib/cjs/src/api/DeviceManagementKitBuilder.test.js.map +0 -7
  51. package/lib/cjs/src/api/apdu/model/Apdu.test.js +0 -2
  52. package/lib/cjs/src/api/apdu/model/Apdu.test.js.map +0 -7
  53. package/lib/cjs/src/api/apdu/utils/ApduBuilder.test.js +0 -2
  54. package/lib/cjs/src/api/apdu/utils/ApduBuilder.test.js.map +0 -7
  55. package/lib/cjs/src/api/apdu/utils/ApduParser.test.js +0 -2
  56. package/lib/cjs/src/api/apdu/utils/ApduParser.test.js.map +0 -7
  57. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.test.js +0 -2
  58. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.test.js.map +0 -7
  59. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.test.js +0 -2
  60. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.test.js.map +0 -7
  61. package/lib/cjs/src/api/command/di/commandModule.test.js +0 -2
  62. package/lib/cjs/src/api/command/di/commandModule.test.js.map +0 -7
  63. package/lib/cjs/src/api/command/model/CommandResult.test.js +0 -2
  64. package/lib/cjs/src/api/command/model/CommandResult.test.js.map +0 -7
  65. package/lib/cjs/src/api/command/os/CloseAppCommand.test.js +0 -2
  66. package/lib/cjs/src/api/command/os/CloseAppCommand.test.js.map +0 -7
  67. package/lib/cjs/src/api/command/os/DeleteLanguagePackCommand.test.js +0 -2
  68. package/lib/cjs/src/api/command/os/DeleteLanguagePackCommand.test.js.map +0 -7
  69. package/lib/cjs/src/api/command/os/GetAppAndVersionCommand.test.js +0 -2
  70. package/lib/cjs/src/api/command/os/GetAppAndVersionCommand.test.js.map +0 -7
  71. package/lib/cjs/src/api/command/os/GetBackgroundImageSizeCommand.test.js +0 -2
  72. package/lib/cjs/src/api/command/os/GetBackgroundImageSizeCommand.test.js.map +0 -7
  73. package/lib/cjs/src/api/command/os/GetBatteryStatusCommand.test.js +0 -2
  74. package/lib/cjs/src/api/command/os/GetBatteryStatusCommand.test.js.map +0 -7
  75. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js +0 -2
  76. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js.map +0 -7
  77. package/lib/cjs/src/api/command/os/ListAppsCommand.test.js +0 -2
  78. package/lib/cjs/src/api/command/os/ListAppsCommand.test.js.map +0 -7
  79. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.test.js +0 -2
  80. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.test.js.map +0 -7
  81. package/lib/cjs/src/api/command/os/LoadCertificateCommand.test.js +0 -2
  82. package/lib/cjs/src/api/command/os/LoadCertificateCommand.test.js.map +0 -7
  83. package/lib/cjs/src/api/command/os/OpenAppCommand.test.js +0 -2
  84. package/lib/cjs/src/api/command/os/OpenAppCommand.test.js.map +0 -7
  85. package/lib/cjs/src/api/command/os/SecureElementFlagsParser.test.js +0 -2
  86. package/lib/cjs/src/api/command/os/SecureElementFlagsParser.test.js.map +0 -7
  87. package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js +0 -2
  88. package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +0 -7
  89. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js +0 -2
  90. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js.map +0 -7
  91. package/lib/cjs/src/api/command/utils/CommandUtils.test.js +0 -2
  92. package/lib/cjs/src/api/command/utils/CommandUtils.test.js.map +0 -7
  93. package/lib/cjs/src/api/command/utils/GlobalCommandError.test.js +0 -2
  94. package/lib/cjs/src/api/command/utils/GlobalCommandError.test.js.map +0 -7
  95. package/lib/cjs/src/api/device-action/__test-utils__/data.js +0 -2
  96. package/lib/cjs/src/api/device-action/__test-utils__/data.js.map +0 -7
  97. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js +0 -2
  98. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js.map +0 -7
  99. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js +0 -2
  100. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js.map +0 -7
  101. package/lib/cjs/src/api/device-action/__test-utils__/testDeviceActionStates.js +0 -2
  102. package/lib/cjs/src/api/device-action/__test-utils__/testDeviceActionStates.js.map +0 -7
  103. package/lib/cjs/src/api/device-action/di/deviceActionModule.test.js +0 -2
  104. package/lib/cjs/src/api/device-action/di/deviceActionModule.test.js.map +0 -7
  105. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +0 -2
  106. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +0 -7
  107. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js +0 -2
  108. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js.map +0 -7
  109. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +0 -2
  110. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +0 -7
  111. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +0 -2
  112. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +0 -7
  113. package/lib/cjs/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.js +0 -2
  114. package/lib/cjs/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.js.map +0 -7
  115. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js +0 -2
  116. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js.map +0 -7
  117. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js +0 -2
  118. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js.map +0 -7
  119. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +0 -2
  120. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +0 -7
  121. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +0 -2
  122. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +0 -7
  123. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js +0 -2
  124. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js.map +0 -7
  125. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +0 -2
  126. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +0 -7
  127. package/lib/cjs/src/api/device-action/os/WaitForAppAndVersion/WaitForAppAndVersionDeviceAction.test.js +0 -2
  128. package/lib/cjs/src/api/device-action/os/WaitForAppAndVersion/WaitForAppAndVersionDeviceAction.test.js.map +0 -7
  129. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +0 -2
  130. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +0 -7
  131. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.test.js +0 -2
  132. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.test.js.map +0 -7
  133. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js +0 -2
  134. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +0 -7
  135. package/lib/cjs/src/api/device-action/task/InstallLanguagePackageTask.test.js +0 -9
  136. package/lib/cjs/src/api/device-action/task/InstallLanguagePackageTask.test.js.map +0 -7
  137. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.test.js +0 -2
  138. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.test.js.map +0 -7
  139. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.test.js +0 -2
  140. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.test.js.map +0 -7
  141. package/lib/cjs/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js +0 -2
  142. package/lib/cjs/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js.map +0 -7
  143. package/lib/cjs/src/api/device-session/utils/FramerUtils.test.js +0 -2
  144. package/lib/cjs/src/api/device-session/utils/FramerUtils.test.js.map +0 -7
  145. package/lib/cjs/src/api/logger-publisher/utils/noopLoggerFactory.test.js +0 -2
  146. package/lib/cjs/src/api/logger-publisher/utils/noopLoggerFactory.test.js.map +0 -7
  147. package/lib/cjs/src/api/logger-subscriber/service/ConsoleLogger.test.js +0 -2
  148. package/lib/cjs/src/api/logger-subscriber/service/ConsoleLogger.test.js.map +0 -7
  149. package/lib/cjs/src/api/logger-subscriber/service/DefaultLogTagFormatter.test.js +0 -2
  150. package/lib/cjs/src/api/logger-subscriber/service/DefaultLogTagFormatter.test.js.map +0 -7
  151. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +0 -2
  152. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +0 -7
  153. package/lib/cjs/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.js +0 -2
  154. package/lib/cjs/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.js.map +0 -7
  155. package/lib/cjs/src/api/model/DmkResult.test.js +0 -2
  156. package/lib/cjs/src/api/model/DmkResult.test.js.map +0 -7
  157. package/lib/cjs/src/api/network/DmkNetworkClient.test.js +0 -2
  158. package/lib/cjs/src/api/network/DmkNetworkClient.test.js.map +0 -7
  159. package/lib/cjs/src/api/network/DmkNetworkClientHelpers.test.js +0 -2
  160. package/lib/cjs/src/api/network/DmkNetworkClientHelpers.test.js.map +0 -7
  161. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js +0 -2
  162. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js.map +0 -7
  163. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js +0 -2
  164. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js.map +0 -7
  165. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js +0 -2
  166. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js.map +0 -7
  167. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js +0 -2
  168. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js.map +0 -7
  169. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +0 -2
  170. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +0 -7
  171. package/lib/cjs/src/api/secure-channel/utils.test.js +0 -2
  172. package/lib/cjs/src/api/secure-channel/utils.test.js.map +0 -7
  173. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.test.js +0 -2
  174. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.test.js.map +0 -7
  175. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.test.js +0 -2
  176. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.test.js.map +0 -7
  177. package/lib/cjs/src/api/transport/model/__mocks__/TransportMock.js +0 -2
  178. package/lib/cjs/src/api/transport/model/__mocks__/TransportMock.js.map +0 -7
  179. package/lib/cjs/src/api/utils/AppName.test.js +0 -2
  180. package/lib/cjs/src/api/utils/AppName.test.js.map +0 -7
  181. package/lib/cjs/src/api/utils/ApplicationChecker.test.js +0 -2
  182. package/lib/cjs/src/api/utils/ApplicationChecker.test.js.map +0 -7
  183. package/lib/cjs/src/api/utils/Base64String.test.js +0 -4
  184. package/lib/cjs/src/api/utils/Base64String.test.js.map +0 -7
  185. package/lib/cjs/src/api/utils/HexaString.test.js +0 -2
  186. package/lib/cjs/src/api/utils/HexaString.test.js.map +0 -7
  187. package/lib/cjs/src/api/utils/apduLogs.test.js +0 -2
  188. package/lib/cjs/src/api/utils/apduLogs.test.js.map +0 -7
  189. package/lib/cjs/src/di.test.js +0 -2
  190. package/lib/cjs/src/di.test.js.map +0 -7
  191. package/lib/cjs/src/internal/config/data/LocalConfigDataSource.test.js +0 -2
  192. package/lib/cjs/src/internal/config/data/LocalConfigDataSource.test.js.map +0 -7
  193. package/lib/cjs/src/internal/config/data/RemoteConfigDataSource.test.js +0 -2
  194. package/lib/cjs/src/internal/config/data/RemoteConfigDataSource.test.js.map +0 -7
  195. package/lib/cjs/src/internal/config/data/__mocks__/LocalConfigDataSource.js +0 -2
  196. package/lib/cjs/src/internal/config/data/__mocks__/LocalConfigDataSource.js.map +0 -7
  197. package/lib/cjs/src/internal/config/data/__mocks__/RemoteConfigDataSource.js +0 -2
  198. package/lib/cjs/src/internal/config/data/__mocks__/RemoteConfigDataSource.js.map +0 -7
  199. package/lib/cjs/src/internal/config/di/configModule.test.js +0 -2
  200. package/lib/cjs/src/internal/config/di/configModule.test.js.map +0 -7
  201. package/lib/cjs/src/internal/config/service/DefaultConfigService.test.js +0 -2
  202. package/lib/cjs/src/internal/config/service/DefaultConfigService.test.js.map +0 -7
  203. package/lib/cjs/src/internal/config/use-case/GetDmkVersionUseCase.test.js +0 -2
  204. package/lib/cjs/src/internal/config/use-case/GetDmkVersionUseCase.test.js.map +0 -7
  205. package/lib/cjs/src/internal/crypto/NobleCryptoService.test.js +0 -2
  206. package/lib/cjs/src/internal/crypto/NobleCryptoService.test.js.map +0 -7
  207. package/lib/cjs/src/internal/device-model/di/deviceModelModule.test.js +0 -2
  208. package/lib/cjs/src/internal/device-model/di/deviceModelModule.test.js.map +0 -7
  209. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.test.js +0 -2
  210. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.test.js.map +0 -7
  211. package/lib/cjs/src/internal/device-session/model/DevicePinger.test.js +0 -2
  212. package/lib/cjs/src/internal/device-session/model/DevicePinger.test.js.map +0 -7
  213. package/lib/cjs/src/internal/device-session/model/DeviceSession.test.js +0 -2
  214. package/lib/cjs/src/internal/device-session/model/DeviceSession.test.js.map +0 -7
  215. package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js +0 -2
  216. package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js.map +0 -7
  217. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js +0 -2
  218. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +0 -7
  219. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js +0 -2
  220. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +0 -7
  221. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.test.js +0 -2
  222. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.test.js.map +0 -7
  223. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.test.js +0 -2
  224. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.test.js.map +0 -7
  225. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js +0 -2
  226. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +0 -7
  227. package/lib/cjs/src/internal/device-session/service/IntentQueueService.test.js +0 -2
  228. package/lib/cjs/src/internal/device-session/service/IntentQueueService.test.js.map +0 -7
  229. package/lib/cjs/src/internal/device-session/service/RefresherService.test.js +0 -2
  230. package/lib/cjs/src/internal/device-session/service/RefresherService.test.js.map +0 -7
  231. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +0 -2
  232. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +0 -7
  233. package/lib/cjs/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js +0 -2
  234. package/lib/cjs/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js.map +0 -7
  235. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js +0 -2
  236. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js.map +0 -7
  237. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js +0 -2
  238. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js.map +0 -7
  239. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js +0 -2
  240. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +0 -7
  241. package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js +0 -2
  242. package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js.map +0 -7
  243. package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js +0 -2
  244. package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js.map +0 -7
  245. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js +0 -2
  246. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js.map +0 -7
  247. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js +0 -2
  248. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js.map +0 -7
  249. package/lib/cjs/src/internal/discovery/use-case/ReconnectUseCase.test.js +0 -2
  250. package/lib/cjs/src/internal/discovery/use-case/ReconnectUseCase.test.js.map +0 -7
  251. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js +0 -2
  252. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js.map +0 -7
  253. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +0 -2
  254. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +0 -7
  255. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.test.js +0 -2
  256. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.test.js.map +0 -7
  257. package/lib/cjs/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.js +0 -2
  258. package/lib/cjs/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.js.map +0 -7
  259. package/lib/cjs/src/internal/logger-publisher/service/sanitiseData.test.js +0 -2
  260. package/lib/cjs/src/internal/logger-publisher/service/sanitiseData.test.js.map +0 -7
  261. package/lib/cjs/src/internal/manager-api/data/HttpManagerApiDataSource.test.js +0 -2
  262. package/lib/cjs/src/internal/manager-api/data/HttpManagerApiDataSource.test.js.map +0 -7
  263. package/lib/cjs/src/internal/manager-api/data/__mocks__/HttpManagerApiDataSource.js +0 -2
  264. package/lib/cjs/src/internal/manager-api/data/__mocks__/HttpManagerApiDataSource.js.map +0 -7
  265. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js +0 -2
  266. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js.map +0 -7
  267. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js +0 -2
  268. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +0 -7
  269. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.test.js +0 -2
  270. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.test.js.map +0 -7
  271. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +0 -2
  272. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +0 -7
  273. package/lib/cjs/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js +0 -2
  274. package/lib/cjs/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js.map +0 -7
  275. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js +0 -2
  276. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js.map +0 -7
  277. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +0 -2
  278. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +0 -7
  279. package/lib/cjs/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.js +0 -2
  280. package/lib/cjs/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.js.map +0 -7
  281. package/lib/cjs/src/internal/send/di/sendModule.test.js +0 -2
  282. package/lib/cjs/src/internal/send/di/sendModule.test.js.map +0 -7
  283. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js +0 -2
  284. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js.map +0 -7
  285. package/lib/cjs/src/internal/transport/di/transportModule.test.js +0 -2
  286. package/lib/cjs/src/internal/transport/di/transportModule.test.js.map +0 -7
  287. package/lib/cjs/src/internal/transport/service/DefaultTransportService.test.js +0 -2
  288. package/lib/cjs/src/internal/transport/service/DefaultTransportService.test.js.map +0 -7
  289. package/lib/cjs/src/internal/transport/service/__mocks__/DefaultTransportService.js +0 -2
  290. package/lib/cjs/src/internal/transport/service/__mocks__/DefaultTransportService.js.map +0 -7
  291. package/lib/esm/src/api/DeviceManagementKit.test.js +0 -2
  292. package/lib/esm/src/api/DeviceManagementKit.test.js.map +0 -7
  293. package/lib/esm/src/api/DeviceManagementKitBuilder.test.js +0 -2
  294. package/lib/esm/src/api/DeviceManagementKitBuilder.test.js.map +0 -7
  295. package/lib/esm/src/api/apdu/model/Apdu.test.js +0 -2
  296. package/lib/esm/src/api/apdu/model/Apdu.test.js.map +0 -7
  297. package/lib/esm/src/api/apdu/utils/ApduBuilder.test.js +0 -2
  298. package/lib/esm/src/api/apdu/utils/ApduBuilder.test.js.map +0 -7
  299. package/lib/esm/src/api/apdu/utils/ApduParser.test.js +0 -2
  300. package/lib/esm/src/api/apdu/utils/ApduParser.test.js.map +0 -7
  301. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.test.js +0 -2
  302. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.test.js.map +0 -7
  303. package/lib/esm/src/api/apdu/utils/ByteArrayParser.test.js +0 -2
  304. package/lib/esm/src/api/apdu/utils/ByteArrayParser.test.js.map +0 -7
  305. package/lib/esm/src/api/command/di/commandModule.test.js +0 -2
  306. package/lib/esm/src/api/command/di/commandModule.test.js.map +0 -7
  307. package/lib/esm/src/api/command/model/CommandResult.test.js +0 -2
  308. package/lib/esm/src/api/command/model/CommandResult.test.js.map +0 -7
  309. package/lib/esm/src/api/command/os/CloseAppCommand.test.js +0 -2
  310. package/lib/esm/src/api/command/os/CloseAppCommand.test.js.map +0 -7
  311. package/lib/esm/src/api/command/os/DeleteLanguagePackCommand.test.js +0 -2
  312. package/lib/esm/src/api/command/os/DeleteLanguagePackCommand.test.js.map +0 -7
  313. package/lib/esm/src/api/command/os/GetAppAndVersionCommand.test.js +0 -2
  314. package/lib/esm/src/api/command/os/GetAppAndVersionCommand.test.js.map +0 -7
  315. package/lib/esm/src/api/command/os/GetBackgroundImageSizeCommand.test.js +0 -2
  316. package/lib/esm/src/api/command/os/GetBackgroundImageSizeCommand.test.js.map +0 -7
  317. package/lib/esm/src/api/command/os/GetBatteryStatusCommand.test.js +0 -2
  318. package/lib/esm/src/api/command/os/GetBatteryStatusCommand.test.js.map +0 -7
  319. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js +0 -2
  320. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js.map +0 -7
  321. package/lib/esm/src/api/command/os/ListAppsCommand.test.js +0 -2
  322. package/lib/esm/src/api/command/os/ListAppsCommand.test.js.map +0 -7
  323. package/lib/esm/src/api/command/os/ListLanguagePackCommand.test.js +0 -2
  324. package/lib/esm/src/api/command/os/ListLanguagePackCommand.test.js.map +0 -7
  325. package/lib/esm/src/api/command/os/LoadCertificateCommand.test.js +0 -2
  326. package/lib/esm/src/api/command/os/LoadCertificateCommand.test.js.map +0 -7
  327. package/lib/esm/src/api/command/os/OpenAppCommand.test.js +0 -2
  328. package/lib/esm/src/api/command/os/OpenAppCommand.test.js.map +0 -7
  329. package/lib/esm/src/api/command/os/SecureElementFlagsParser.test.js +0 -2
  330. package/lib/esm/src/api/command/os/SecureElementFlagsParser.test.js.map +0 -7
  331. package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js +0 -2
  332. package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +0 -7
  333. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js +0 -2
  334. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js.map +0 -7
  335. package/lib/esm/src/api/command/utils/CommandUtils.test.js +0 -2
  336. package/lib/esm/src/api/command/utils/CommandUtils.test.js.map +0 -7
  337. package/lib/esm/src/api/command/utils/GlobalCommandError.test.js +0 -2
  338. package/lib/esm/src/api/command/utils/GlobalCommandError.test.js.map +0 -7
  339. package/lib/esm/src/api/device-action/__test-utils__/data.js +0 -2
  340. package/lib/esm/src/api/device-action/__test-utils__/data.js.map +0 -7
  341. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js +0 -2
  342. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js.map +0 -7
  343. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js +0 -2
  344. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js.map +0 -7
  345. package/lib/esm/src/api/device-action/__test-utils__/testDeviceActionStates.js +0 -2
  346. package/lib/esm/src/api/device-action/__test-utils__/testDeviceActionStates.js.map +0 -7
  347. package/lib/esm/src/api/device-action/di/deviceActionModule.test.js +0 -2
  348. package/lib/esm/src/api/device-action/di/deviceActionModule.test.js.map +0 -7
  349. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +0 -2
  350. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +0 -7
  351. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js +0 -2
  352. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js.map +0 -7
  353. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +0 -2
  354. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +0 -7
  355. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +0 -2
  356. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +0 -7
  357. package/lib/esm/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.js +0 -2
  358. package/lib/esm/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.js.map +0 -7
  359. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js +0 -2
  360. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js.map +0 -7
  361. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js +0 -2
  362. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js.map +0 -7
  363. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +0 -2
  364. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +0 -7
  365. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +0 -2
  366. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +0 -7
  367. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js +0 -2
  368. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js.map +0 -7
  369. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +0 -2
  370. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +0 -7
  371. package/lib/esm/src/api/device-action/os/WaitForAppAndVersion/WaitForAppAndVersionDeviceAction.test.js +0 -2
  372. package/lib/esm/src/api/device-action/os/WaitForAppAndVersion/WaitForAppAndVersionDeviceAction.test.js.map +0 -7
  373. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +0 -2
  374. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +0 -7
  375. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.test.js +0 -2
  376. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.test.js.map +0 -7
  377. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js +0 -2
  378. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +0 -7
  379. package/lib/esm/src/api/device-action/task/InstallLanguagePackageTask.test.js +0 -9
  380. package/lib/esm/src/api/device-action/task/InstallLanguagePackageTask.test.js.map +0 -7
  381. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.test.js +0 -2
  382. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.test.js.map +0 -7
  383. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.test.js +0 -2
  384. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.test.js.map +0 -7
  385. package/lib/esm/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js +0 -2
  386. package/lib/esm/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js.map +0 -7
  387. package/lib/esm/src/api/device-session/utils/FramerUtils.test.js +0 -2
  388. package/lib/esm/src/api/device-session/utils/FramerUtils.test.js.map +0 -7
  389. package/lib/esm/src/api/logger-publisher/utils/noopLoggerFactory.test.js +0 -2
  390. package/lib/esm/src/api/logger-publisher/utils/noopLoggerFactory.test.js.map +0 -7
  391. package/lib/esm/src/api/logger-subscriber/service/ConsoleLogger.test.js +0 -2
  392. package/lib/esm/src/api/logger-subscriber/service/ConsoleLogger.test.js.map +0 -7
  393. package/lib/esm/src/api/logger-subscriber/service/DefaultLogTagFormatter.test.js +0 -2
  394. package/lib/esm/src/api/logger-subscriber/service/DefaultLogTagFormatter.test.js.map +0 -7
  395. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +0 -2
  396. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +0 -7
  397. package/lib/esm/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.js +0 -2
  398. package/lib/esm/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.js.map +0 -7
  399. package/lib/esm/src/api/model/DmkResult.test.js +0 -2
  400. package/lib/esm/src/api/model/DmkResult.test.js.map +0 -7
  401. package/lib/esm/src/api/network/DmkNetworkClient.test.js +0 -2
  402. package/lib/esm/src/api/network/DmkNetworkClient.test.js.map +0 -7
  403. package/lib/esm/src/api/network/DmkNetworkClientHelpers.test.js +0 -2
  404. package/lib/esm/src/api/network/DmkNetworkClientHelpers.test.js.map +0 -7
  405. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js +0 -2
  406. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js.map +0 -7
  407. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js +0 -2
  408. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js.map +0 -7
  409. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js +0 -2
  410. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js.map +0 -7
  411. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js +0 -2
  412. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js.map +0 -7
  413. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +0 -2
  414. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +0 -7
  415. package/lib/esm/src/api/secure-channel/utils.test.js +0 -2
  416. package/lib/esm/src/api/secure-channel/utils.test.js.map +0 -7
  417. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.test.js +0 -2
  418. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.test.js.map +0 -7
  419. package/lib/esm/src/api/transport/model/TransportConnectedDevice.test.js +0 -2
  420. package/lib/esm/src/api/transport/model/TransportConnectedDevice.test.js.map +0 -7
  421. package/lib/esm/src/api/transport/model/__mocks__/TransportMock.js +0 -2
  422. package/lib/esm/src/api/transport/model/__mocks__/TransportMock.js.map +0 -7
  423. package/lib/esm/src/api/utils/AppName.test.js +0 -2
  424. package/lib/esm/src/api/utils/AppName.test.js.map +0 -7
  425. package/lib/esm/src/api/utils/ApplicationChecker.test.js +0 -2
  426. package/lib/esm/src/api/utils/ApplicationChecker.test.js.map +0 -7
  427. package/lib/esm/src/api/utils/Base64String.test.js +0 -4
  428. package/lib/esm/src/api/utils/Base64String.test.js.map +0 -7
  429. package/lib/esm/src/api/utils/HexaString.test.js +0 -2
  430. package/lib/esm/src/api/utils/HexaString.test.js.map +0 -7
  431. package/lib/esm/src/api/utils/apduLogs.test.js +0 -2
  432. package/lib/esm/src/api/utils/apduLogs.test.js.map +0 -7
  433. package/lib/esm/src/di.test.js +0 -2
  434. package/lib/esm/src/di.test.js.map +0 -7
  435. package/lib/esm/src/internal/config/data/LocalConfigDataSource.test.js +0 -2
  436. package/lib/esm/src/internal/config/data/LocalConfigDataSource.test.js.map +0 -7
  437. package/lib/esm/src/internal/config/data/RemoteConfigDataSource.test.js +0 -2
  438. package/lib/esm/src/internal/config/data/RemoteConfigDataSource.test.js.map +0 -7
  439. package/lib/esm/src/internal/config/data/__mocks__/LocalConfigDataSource.js +0 -2
  440. package/lib/esm/src/internal/config/data/__mocks__/LocalConfigDataSource.js.map +0 -7
  441. package/lib/esm/src/internal/config/data/__mocks__/RemoteConfigDataSource.js +0 -2
  442. package/lib/esm/src/internal/config/data/__mocks__/RemoteConfigDataSource.js.map +0 -7
  443. package/lib/esm/src/internal/config/di/configModule.test.js +0 -2
  444. package/lib/esm/src/internal/config/di/configModule.test.js.map +0 -7
  445. package/lib/esm/src/internal/config/service/DefaultConfigService.test.js +0 -2
  446. package/lib/esm/src/internal/config/service/DefaultConfigService.test.js.map +0 -7
  447. package/lib/esm/src/internal/config/use-case/GetDmkVersionUseCase.test.js +0 -2
  448. package/lib/esm/src/internal/config/use-case/GetDmkVersionUseCase.test.js.map +0 -7
  449. package/lib/esm/src/internal/crypto/NobleCryptoService.test.js +0 -2
  450. package/lib/esm/src/internal/crypto/NobleCryptoService.test.js.map +0 -7
  451. package/lib/esm/src/internal/device-model/di/deviceModelModule.test.js +0 -2
  452. package/lib/esm/src/internal/device-model/di/deviceModelModule.test.js.map +0 -7
  453. package/lib/esm/src/internal/device-session/di/deviceSessionModule.test.js +0 -2
  454. package/lib/esm/src/internal/device-session/di/deviceSessionModule.test.js.map +0 -7
  455. package/lib/esm/src/internal/device-session/model/DevicePinger.test.js +0 -2
  456. package/lib/esm/src/internal/device-session/model/DevicePinger.test.js.map +0 -7
  457. package/lib/esm/src/internal/device-session/model/DeviceSession.test.js +0 -2
  458. package/lib/esm/src/internal/device-session/model/DeviceSession.test.js.map +0 -7
  459. package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js +0 -2
  460. package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js.map +0 -7
  461. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js +0 -2
  462. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +0 -7
  463. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js +0 -2
  464. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +0 -7
  465. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.test.js +0 -2
  466. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.test.js.map +0 -7
  467. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.test.js +0 -2
  468. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.test.js.map +0 -7
  469. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js +0 -2
  470. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +0 -7
  471. package/lib/esm/src/internal/device-session/service/IntentQueueService.test.js +0 -2
  472. package/lib/esm/src/internal/device-session/service/IntentQueueService.test.js.map +0 -7
  473. package/lib/esm/src/internal/device-session/service/RefresherService.test.js +0 -2
  474. package/lib/esm/src/internal/device-session/service/RefresherService.test.js.map +0 -7
  475. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +0 -2
  476. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +0 -7
  477. package/lib/esm/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js +0 -2
  478. package/lib/esm/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js.map +0 -7
  479. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js +0 -2
  480. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js.map +0 -7
  481. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js +0 -2
  482. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js.map +0 -7
  483. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js +0 -2
  484. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +0 -7
  485. package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js +0 -2
  486. package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js.map +0 -7
  487. package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js +0 -2
  488. package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js.map +0 -7
  489. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js +0 -2
  490. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js.map +0 -7
  491. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js +0 -2
  492. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js.map +0 -7
  493. package/lib/esm/src/internal/discovery/use-case/ReconnectUseCase.test.js +0 -2
  494. package/lib/esm/src/internal/discovery/use-case/ReconnectUseCase.test.js.map +0 -7
  495. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js +0 -2
  496. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js.map +0 -7
  497. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +0 -2
  498. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +0 -7
  499. package/lib/esm/src/internal/logger-publisher/di/loggerModule.test.js +0 -2
  500. package/lib/esm/src/internal/logger-publisher/di/loggerModule.test.js.map +0 -7
  501. package/lib/esm/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.js +0 -2
  502. package/lib/esm/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.js.map +0 -7
  503. package/lib/esm/src/internal/logger-publisher/service/sanitiseData.test.js +0 -2
  504. package/lib/esm/src/internal/logger-publisher/service/sanitiseData.test.js.map +0 -7
  505. package/lib/esm/src/internal/manager-api/data/HttpManagerApiDataSource.test.js +0 -2
  506. package/lib/esm/src/internal/manager-api/data/HttpManagerApiDataSource.test.js.map +0 -7
  507. package/lib/esm/src/internal/manager-api/data/__mocks__/HttpManagerApiDataSource.js +0 -2
  508. package/lib/esm/src/internal/manager-api/data/__mocks__/HttpManagerApiDataSource.js.map +0 -7
  509. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js +0 -2
  510. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js.map +0 -7
  511. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js +0 -2
  512. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +0 -7
  513. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.test.js +0 -2
  514. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.test.js.map +0 -7
  515. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +0 -2
  516. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +0 -7
  517. package/lib/esm/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js +0 -2
  518. package/lib/esm/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js.map +0 -7
  519. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js +0 -2
  520. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js.map +0 -7
  521. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +0 -2
  522. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +0 -7
  523. package/lib/esm/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.js +0 -2
  524. package/lib/esm/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.js.map +0 -7
  525. package/lib/esm/src/internal/send/di/sendModule.test.js +0 -2
  526. package/lib/esm/src/internal/send/di/sendModule.test.js.map +0 -7
  527. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js +0 -2
  528. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js.map +0 -7
  529. package/lib/esm/src/internal/transport/di/transportModule.test.js +0 -2
  530. package/lib/esm/src/internal/transport/di/transportModule.test.js.map +0 -7
  531. package/lib/esm/src/internal/transport/service/DefaultTransportService.test.js +0 -2
  532. package/lib/esm/src/internal/transport/service/DefaultTransportService.test.js.map +0 -7
  533. package/lib/esm/src/internal/transport/service/__mocks__/DefaultTransportService.js +0 -2
  534. package/lib/esm/src/internal/transport/service/__mocks__/DefaultTransportService.js.map +0 -7
  535. package/lib/types/src/api/DeviceManagementKit.test.d.ts +0 -2
  536. package/lib/types/src/api/DeviceManagementKit.test.d.ts.map +0 -1
  537. package/lib/types/src/api/DeviceManagementKitBuilder.test.d.ts +0 -2
  538. package/lib/types/src/api/DeviceManagementKitBuilder.test.d.ts.map +0 -1
  539. package/lib/types/src/api/apdu/model/Apdu.test.d.ts +0 -2
  540. package/lib/types/src/api/apdu/model/Apdu.test.d.ts.map +0 -1
  541. package/lib/types/src/api/apdu/utils/ApduBuilder.test.d.ts +0 -2
  542. package/lib/types/src/api/apdu/utils/ApduBuilder.test.d.ts.map +0 -1
  543. package/lib/types/src/api/apdu/utils/ApduParser.test.d.ts +0 -2
  544. package/lib/types/src/api/apdu/utils/ApduParser.test.d.ts.map +0 -1
  545. package/lib/types/src/api/apdu/utils/ByteArrayBuilder.test.d.ts +0 -2
  546. package/lib/types/src/api/apdu/utils/ByteArrayBuilder.test.d.ts.map +0 -1
  547. package/lib/types/src/api/apdu/utils/ByteArrayParser.test.d.ts +0 -2
  548. package/lib/types/src/api/apdu/utils/ByteArrayParser.test.d.ts.map +0 -1
  549. package/lib/types/src/api/command/di/commandModule.test.d.ts +0 -2
  550. package/lib/types/src/api/command/di/commandModule.test.d.ts.map +0 -1
  551. package/lib/types/src/api/command/model/CommandResult.test.d.ts +0 -2
  552. package/lib/types/src/api/command/model/CommandResult.test.d.ts.map +0 -1
  553. package/lib/types/src/api/command/os/CloseAppCommand.test.d.ts +0 -2
  554. package/lib/types/src/api/command/os/CloseAppCommand.test.d.ts.map +0 -1
  555. package/lib/types/src/api/command/os/DeleteLanguagePackCommand.test.d.ts +0 -2
  556. package/lib/types/src/api/command/os/DeleteLanguagePackCommand.test.d.ts.map +0 -1
  557. package/lib/types/src/api/command/os/GetAppAndVersionCommand.test.d.ts +0 -2
  558. package/lib/types/src/api/command/os/GetAppAndVersionCommand.test.d.ts.map +0 -1
  559. package/lib/types/src/api/command/os/GetBackgroundImageSizeCommand.test.d.ts +0 -2
  560. package/lib/types/src/api/command/os/GetBackgroundImageSizeCommand.test.d.ts.map +0 -1
  561. package/lib/types/src/api/command/os/GetBatteryStatusCommand.test.d.ts +0 -2
  562. package/lib/types/src/api/command/os/GetBatteryStatusCommand.test.d.ts.map +0 -1
  563. package/lib/types/src/api/command/os/GetOsVersionCommand.test.d.ts +0 -2
  564. package/lib/types/src/api/command/os/GetOsVersionCommand.test.d.ts.map +0 -1
  565. package/lib/types/src/api/command/os/ListAppsCommand.test.d.ts +0 -2
  566. package/lib/types/src/api/command/os/ListAppsCommand.test.d.ts.map +0 -1
  567. package/lib/types/src/api/command/os/ListLanguagePackCommand.test.d.ts +0 -2
  568. package/lib/types/src/api/command/os/ListLanguagePackCommand.test.d.ts.map +0 -1
  569. package/lib/types/src/api/command/os/LoadCertificateCommand.test.d.ts +0 -2
  570. package/lib/types/src/api/command/os/LoadCertificateCommand.test.d.ts.map +0 -1
  571. package/lib/types/src/api/command/os/OpenAppCommand.test.d.ts +0 -2
  572. package/lib/types/src/api/command/os/OpenAppCommand.test.d.ts.map +0 -1
  573. package/lib/types/src/api/command/os/SecureElementFlagsParser.test.d.ts +0 -2
  574. package/lib/types/src/api/command/os/SecureElementFlagsParser.test.d.ts.map +0 -1
  575. package/lib/types/src/api/command/os/__mocks__/GetOsVersionCommand.d.ts +0 -4
  576. package/lib/types/src/api/command/os/__mocks__/GetOsVersionCommand.d.ts.map +0 -1
  577. package/lib/types/src/api/command/use-case/SendCommandUseCase.test.d.ts +0 -2
  578. package/lib/types/src/api/command/use-case/SendCommandUseCase.test.d.ts.map +0 -1
  579. package/lib/types/src/api/command/utils/CommandUtils.test.d.ts +0 -2
  580. package/lib/types/src/api/command/utils/CommandUtils.test.d.ts.map +0 -1
  581. package/lib/types/src/api/command/utils/GlobalCommandError.test.d.ts +0 -2
  582. package/lib/types/src/api/command/utils/GlobalCommandError.test.d.ts.map +0 -1
  583. package/lib/types/src/api/device-action/__test-utils__/data.d.ts +0 -94
  584. package/lib/types/src/api/device-action/__test-utils__/data.d.ts.map +0 -1
  585. package/lib/types/src/api/device-action/__test-utils__/makeInternalApi.d.ts +0 -4
  586. package/lib/types/src/api/device-action/__test-utils__/makeInternalApi.d.ts.map +0 -1
  587. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts +0 -23
  588. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts.map +0 -1
  589. package/lib/types/src/api/device-action/__test-utils__/testDeviceActionStates.d.ts +0 -18
  590. package/lib/types/src/api/device-action/__test-utils__/testDeviceActionStates.d.ts.map +0 -1
  591. package/lib/types/src/api/device-action/di/deviceActionModule.test.d.ts +0 -2
  592. package/lib/types/src/api/device-action/di/deviceActionModule.test.d.ts.map +0 -1
  593. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.d.ts +0 -2
  594. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.d.ts.map +0 -1
  595. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.d.ts +0 -2
  596. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.d.ts.map +0 -1
  597. package/lib/types/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.d.ts +0 -2
  598. package/lib/types/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.d.ts.map +0 -1
  599. package/lib/types/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.d.ts +0 -2
  600. package/lib/types/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.d.ts.map +0 -1
  601. package/lib/types/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.d.ts +0 -2
  602. package/lib/types/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.d.ts.map +0 -1
  603. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.d.ts +0 -2
  604. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.d.ts.map +0 -1
  605. package/lib/types/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.d.ts +0 -2
  606. package/lib/types/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.d.ts.map +0 -1
  607. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.d.ts +0 -2
  608. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.d.ts.map +0 -1
  609. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.d.ts +0 -2
  610. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.d.ts.map +0 -1
  611. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.d.ts +0 -2
  612. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.d.ts.map +0 -1
  613. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.d.ts +0 -2
  614. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.d.ts.map +0 -1
  615. package/lib/types/src/api/device-action/os/WaitForAppAndVersion/WaitForAppAndVersionDeviceAction.test.d.ts +0 -2
  616. package/lib/types/src/api/device-action/os/WaitForAppAndVersion/WaitForAppAndVersionDeviceAction.test.d.ts.map +0 -1
  617. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.test.d.ts +0 -2
  618. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.test.d.ts.map +0 -1
  619. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.test.d.ts +0 -2
  620. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.test.d.ts.map +0 -1
  621. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.test.d.ts +0 -2
  622. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.test.d.ts.map +0 -1
  623. package/lib/types/src/api/device-action/task/InstallLanguagePackageTask.test.d.ts +0 -2
  624. package/lib/types/src/api/device-action/task/InstallLanguagePackageTask.test.d.ts.map +0 -1
  625. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.test.d.ts +0 -2
  626. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.test.d.ts.map +0 -1
  627. package/lib/types/src/api/device-model/data/StaticDeviceModelDataSource.test.d.ts +0 -2
  628. package/lib/types/src/api/device-model/data/StaticDeviceModelDataSource.test.d.ts.map +0 -1
  629. package/lib/types/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.d.ts +0 -2
  630. package/lib/types/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.d.ts.map +0 -1
  631. package/lib/types/src/api/device-session/utils/FramerUtils.test.d.ts +0 -2
  632. package/lib/types/src/api/device-session/utils/FramerUtils.test.d.ts.map +0 -1
  633. package/lib/types/src/api/logger-publisher/utils/noopLoggerFactory.test.d.ts +0 -2
  634. package/lib/types/src/api/logger-publisher/utils/noopLoggerFactory.test.d.ts.map +0 -1
  635. package/lib/types/src/api/logger-subscriber/service/ConsoleLogger.test.d.ts +0 -2
  636. package/lib/types/src/api/logger-subscriber/service/ConsoleLogger.test.d.ts.map +0 -1
  637. package/lib/types/src/api/logger-subscriber/service/DefaultLogTagFormatter.test.d.ts +0 -2
  638. package/lib/types/src/api/logger-subscriber/service/DefaultLogTagFormatter.test.d.ts.map +0 -1
  639. package/lib/types/src/api/logger-subscriber/service/WebLogsExporterLogger.test.d.ts +0 -2
  640. package/lib/types/src/api/logger-subscriber/service/WebLogsExporterLogger.test.d.ts.map +0 -1
  641. package/lib/types/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.d.ts +0 -4
  642. package/lib/types/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.d.ts.map +0 -1
  643. package/lib/types/src/api/model/DmkResult.test.d.ts +0 -2
  644. package/lib/types/src/api/model/DmkResult.test.d.ts.map +0 -1
  645. package/lib/types/src/api/network/DmkNetworkClient.test.d.ts +0 -2
  646. package/lib/types/src/api/network/DmkNetworkClient.test.d.ts.map +0 -1
  647. package/lib/types/src/api/network/DmkNetworkClientHelpers.test.d.ts +0 -2
  648. package/lib/types/src/api/network/DmkNetworkClientHelpers.test.d.ts.map +0 -1
  649. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.d.ts +0 -2
  650. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.d.ts.map +0 -1
  651. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.d.ts +0 -2
  652. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.d.ts.map +0 -1
  653. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.d.ts +0 -2
  654. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.d.ts.map +0 -1
  655. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.d.ts +0 -2
  656. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.d.ts.map +0 -1
  657. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.test.d.ts +0 -2
  658. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.test.d.ts.map +0 -1
  659. package/lib/types/src/api/secure-channel/utils.test.d.ts +0 -2
  660. package/lib/types/src/api/secure-channel/utils.test.d.ts.map +0 -1
  661. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.test.d.ts +0 -2
  662. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.test.d.ts.map +0 -1
  663. package/lib/types/src/api/transport/model/TransportConnectedDevice.test.d.ts +0 -2
  664. package/lib/types/src/api/transport/model/TransportConnectedDevice.test.d.ts.map +0 -1
  665. package/lib/types/src/api/transport/model/__mocks__/TransportMock.d.ts +0 -12
  666. package/lib/types/src/api/transport/model/__mocks__/TransportMock.d.ts.map +0 -1
  667. package/lib/types/src/api/utils/AppName.test.d.ts +0 -2
  668. package/lib/types/src/api/utils/AppName.test.d.ts.map +0 -1
  669. package/lib/types/src/api/utils/ApplicationChecker.test.d.ts +0 -2
  670. package/lib/types/src/api/utils/ApplicationChecker.test.d.ts.map +0 -1
  671. package/lib/types/src/api/utils/Base64String.test.d.ts +0 -2
  672. package/lib/types/src/api/utils/Base64String.test.d.ts.map +0 -1
  673. package/lib/types/src/api/utils/HexaString.test.d.ts +0 -2
  674. package/lib/types/src/api/utils/HexaString.test.d.ts.map +0 -1
  675. package/lib/types/src/api/utils/apduLogs.test.d.ts +0 -2
  676. package/lib/types/src/api/utils/apduLogs.test.d.ts.map +0 -1
  677. package/lib/types/src/di.test.d.ts +0 -2
  678. package/lib/types/src/di.test.d.ts.map +0 -1
  679. package/lib/types/src/internal/config/data/LocalConfigDataSource.test.d.ts +0 -2
  680. package/lib/types/src/internal/config/data/LocalConfigDataSource.test.d.ts.map +0 -1
  681. package/lib/types/src/internal/config/data/RemoteConfigDataSource.test.d.ts +0 -2
  682. package/lib/types/src/internal/config/data/RemoteConfigDataSource.test.d.ts.map +0 -1
  683. package/lib/types/src/internal/config/data/__mocks__/LocalConfigDataSource.d.ts +0 -5
  684. package/lib/types/src/internal/config/data/__mocks__/LocalConfigDataSource.d.ts.map +0 -1
  685. package/lib/types/src/internal/config/data/__mocks__/RemoteConfigDataSource.d.ts +0 -7
  686. package/lib/types/src/internal/config/data/__mocks__/RemoteConfigDataSource.d.ts.map +0 -1
  687. package/lib/types/src/internal/config/di/configModule.test.d.ts +0 -2
  688. package/lib/types/src/internal/config/di/configModule.test.d.ts.map +0 -1
  689. package/lib/types/src/internal/config/service/DefaultConfigService.test.d.ts +0 -2
  690. package/lib/types/src/internal/config/service/DefaultConfigService.test.d.ts.map +0 -1
  691. package/lib/types/src/internal/config/use-case/GetDmkVersionUseCase.test.d.ts +0 -2
  692. package/lib/types/src/internal/config/use-case/GetDmkVersionUseCase.test.d.ts.map +0 -1
  693. package/lib/types/src/internal/crypto/NobleCryptoService.test.d.ts +0 -2
  694. package/lib/types/src/internal/crypto/NobleCryptoService.test.d.ts.map +0 -1
  695. package/lib/types/src/internal/device-model/di/deviceModelModule.test.d.ts +0 -2
  696. package/lib/types/src/internal/device-model/di/deviceModelModule.test.d.ts.map +0 -1
  697. package/lib/types/src/internal/device-session/di/deviceSessionModule.test.d.ts +0 -2
  698. package/lib/types/src/internal/device-session/di/deviceSessionModule.test.d.ts.map +0 -1
  699. package/lib/types/src/internal/device-session/model/DevicePinger.test.d.ts +0 -2
  700. package/lib/types/src/internal/device-session/model/DevicePinger.test.d.ts.map +0 -1
  701. package/lib/types/src/internal/device-session/model/DeviceSession.test.d.ts +0 -2
  702. package/lib/types/src/internal/device-session/model/DeviceSession.test.d.ts.map +0 -1
  703. package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.test.d.ts +0 -2
  704. package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.test.d.ts.map +0 -1
  705. package/lib/types/src/internal/device-session/model/DeviceSessionRefresher.test.d.ts +0 -2
  706. package/lib/types/src/internal/device-session/model/DeviceSessionRefresher.test.d.ts.map +0 -1
  707. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.test.d.ts +0 -2
  708. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.test.d.ts.map +0 -1
  709. package/lib/types/src/internal/device-session/service/DefaultApduReceiverService.test.d.ts +0 -2
  710. package/lib/types/src/internal/device-session/service/DefaultApduReceiverService.test.d.ts.map +0 -1
  711. package/lib/types/src/internal/device-session/service/DefaultApduSenderService.test.d.ts +0 -2
  712. package/lib/types/src/internal/device-session/service/DefaultApduSenderService.test.d.ts.map +0 -1
  713. package/lib/types/src/internal/device-session/service/DefaultDeviceSessionService.test.d.ts +0 -2
  714. package/lib/types/src/internal/device-session/service/DefaultDeviceSessionService.test.d.ts.map +0 -1
  715. package/lib/types/src/internal/device-session/service/IntentQueueService.test.d.ts +0 -2
  716. package/lib/types/src/internal/device-session/service/IntentQueueService.test.d.ts.map +0 -1
  717. package/lib/types/src/internal/device-session/service/RefresherService.test.d.ts +0 -2
  718. package/lib/types/src/internal/device-session/service/RefresherService.test.d.ts.map +0 -1
  719. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseCase.test.d.ts +0 -2
  720. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseCase.test.d.ts.map +0 -1
  721. package/lib/types/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.d.ts +0 -2
  722. package/lib/types/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.d.ts.map +0 -1
  723. package/lib/types/src/internal/discovery/di/discoveryModule.test.d.ts +0 -2
  724. package/lib/types/src/internal/discovery/di/discoveryModule.test.d.ts.map +0 -1
  725. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.test.d.ts +0 -2
  726. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.test.d.ts.map +0 -1
  727. package/lib/types/src/internal/discovery/use-case/DisconnectUseCase.test.d.ts +0 -2
  728. package/lib/types/src/internal/discovery/use-case/DisconnectUseCase.test.d.ts.map +0 -1
  729. package/lib/types/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.d.ts +0 -2
  730. package/lib/types/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.d.ts.map +0 -1
  731. package/lib/types/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.d.ts +0 -2
  732. package/lib/types/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.d.ts.map +0 -1
  733. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.d.ts +0 -2
  734. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.d.ts.map +0 -1
  735. package/lib/types/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.d.ts +0 -2
  736. package/lib/types/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.d.ts.map +0 -1
  737. package/lib/types/src/internal/discovery/use-case/ReconnectUseCase.test.d.ts +0 -2
  738. package/lib/types/src/internal/discovery/use-case/ReconnectUseCase.test.d.ts.map +0 -1
  739. package/lib/types/src/internal/discovery/use-case/StartDiscoveringUseCase.test.d.ts +0 -2
  740. package/lib/types/src/internal/discovery/use-case/StartDiscoveringUseCase.test.d.ts.map +0 -1
  741. package/lib/types/src/internal/discovery/use-case/StopDiscoveringUseCase.test.d.ts +0 -2
  742. package/lib/types/src/internal/discovery/use-case/StopDiscoveringUseCase.test.d.ts.map +0 -1
  743. package/lib/types/src/internal/logger-publisher/di/loggerModule.test.d.ts +0 -2
  744. package/lib/types/src/internal/logger-publisher/di/loggerModule.test.d.ts.map +0 -1
  745. package/lib/types/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.d.ts +0 -2
  746. package/lib/types/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.d.ts.map +0 -1
  747. package/lib/types/src/internal/logger-publisher/service/sanitiseData.test.d.ts +0 -2
  748. package/lib/types/src/internal/logger-publisher/service/sanitiseData.test.d.ts.map +0 -1
  749. package/lib/types/src/internal/manager-api/data/HttpManagerApiDataSource.test.d.ts +0 -2
  750. package/lib/types/src/internal/manager-api/data/HttpManagerApiDataSource.test.d.ts.map +0 -1
  751. package/lib/types/src/internal/manager-api/data/__mocks__/HttpManagerApiDataSource.d.ts +0 -15
  752. package/lib/types/src/internal/manager-api/data/__mocks__/HttpManagerApiDataSource.d.ts.map +0 -1
  753. package/lib/types/src/internal/manager-api/di/managerApiModule.test.d.ts +0 -2
  754. package/lib/types/src/internal/manager-api/di/managerApiModule.test.d.ts.map +0 -1
  755. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.test.d.ts +0 -2
  756. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.test.d.ts.map +0 -1
  757. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.test.d.ts +0 -2
  758. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.test.d.ts.map +0 -1
  759. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.d.ts +0 -2
  760. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.d.ts.map +0 -1
  761. package/lib/types/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.d.ts +0 -12
  762. package/lib/types/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.d.ts.map +0 -1
  763. package/lib/types/src/internal/secure-channel/di/secureChannelModule.test.d.ts +0 -2
  764. package/lib/types/src/internal/secure-channel/di/secureChannelModule.test.d.ts.map +0 -1
  765. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.test.d.ts +0 -2
  766. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.test.d.ts.map +0 -1
  767. package/lib/types/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.d.ts +0 -2
  768. package/lib/types/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.d.ts.map +0 -1
  769. package/lib/types/src/internal/send/di/sendModule.test.d.ts +0 -2
  770. package/lib/types/src/internal/send/di/sendModule.test.d.ts.map +0 -1
  771. package/lib/types/src/internal/send/use-case/SendApduUseCase.test.d.ts +0 -2
  772. package/lib/types/src/internal/send/use-case/SendApduUseCase.test.d.ts.map +0 -1
  773. package/lib/types/src/internal/transport/di/transportModule.test.d.ts +0 -2
  774. package/lib/types/src/internal/transport/di/transportModule.test.d.ts.map +0 -1
  775. package/lib/types/src/internal/transport/service/DefaultTransportService.test.d.ts +0 -2
  776. package/lib/types/src/internal/transport/service/DefaultTransportService.test.d.ts.map +0 -1
  777. package/lib/types/src/internal/transport/service/__mocks__/DefaultTransportService.d.ts +0 -20
  778. package/lib/types/src/internal/transport/service/__mocks__/DefaultTransportService.d.ts.map +0 -1
@@ -1,2 +0,0 @@
1
- import{Left as C,Right as s}from"purify-ts";import{concat as P,of as v,throwError as I}from"rxjs";import{CommandResultFactory as g}from"../../../command/model/CommandResult";import{DeviceStatus as h}from"../../../device/DeviceStatus";import{makeDeviceActionInternalApiMock as V}from"../../../device-action/__test-utils__/makeInternalApi";import{setupGoToDashboardMock as S}from"../../../device-action/__test-utils__/setupTestMachine";import{testDeviceActionStates as k}from"../../../device-action/__test-utils__/testDeviceActionStates";import{DeviceActionStatus as e}from"../../../device-action/model/DeviceActionState";import{UserInteractionRequired as n}from"../../../device-action/model/UserInteractionRequired";import{DeviceSessionStateType as y}from"../../../device-session/DeviceSessionState";import{SecureChannelEventType as r}from"../../../secure-channel/task/types";import{HttpFetchApiError as f}from"../../../../internal/manager-api/model/Errors";import{SecureChannelError as w}from"../../../../internal/secure-channel/model/Errors";import{GenuineCheckDeviceAction as D}from"./GenuineCheckDeviceAction";vi.mock("@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction");describe("GenuineCheckDeviceAction",()=>{const c=vi.fn(),u=vi.fn(),d=vi.fn(),l=vi.fn(),m=vi.fn(),A=vi.fn(),p=()=>({getOsVersion:c,getDeviceVersion:u,getFirmwareVersion:d,genuineCheck:l,getDeviceSessionState:m,setDeviceSessionState:A});beforeEach(()=>{vi.resetAllMocks()}),it("should return the result of the genuine check",()=>new Promise((i,o)=>{S(),c.mockResolvedValue(g({data:{targetId:"123456",secureElementFlags:{isSecureConnectionAllowed:!1}}})),u.mockResolvedValue(s({id:123456})),d.mockResolvedValue(s({perso:"perso_test"})),m.mockReturnValue({sessionStateType:y.ReadyWithoutSecureChannel,deviceStatus:h.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),l.mockReturnValue(v({type:r.Exchange,payload:{data:new Uint8Array([0,1,2,3])}},{type:r.PermissionRequested},{type:r.PermissionGranted},{type:r.Result,payload:"0000"}));const a=[{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.AllowSecureConnection}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Completed,output:{isGenuine:!0}}],t=new D({input:{}});vi.spyOn(t,"extractDependencies").mockImplementation(p),k(t,a,V(),{onDone:i,onError:o})})),it("should return error when error occurs in fetching device version",()=>new Promise((i,o)=>{S(),c.mockResolvedValue(g({data:{targetId:"123456",secureElementFlags:{isSecureConnectionAllowed:!1}}})),u.mockResolvedValue(C(new f("Device version fetch failed"))),d.mockResolvedValue(s({perso:"perso_test"})),m.mockReturnValue({sessionStateType:y.ReadyWithoutSecureChannel,deviceStatus:h.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),l.mockReturnValue(v({type:r.Exchange,payload:{data:new Uint8Array([0,1,2,3])}},{type:r.Result,payload:"0000"}));const a=[{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Error,error:new f("Device version fetch failed")}],t=new D({input:{}});vi.spyOn(t,"extractDependencies").mockImplementation(p),k(t,a,V(),{onDone:i,onError:o})})),it("should return error when error occurs in fetching firmware version",()=>new Promise((i,o)=>{S(),c.mockResolvedValue(g({data:{targetId:"123456",secureElementFlags:{isSecureConnectionAllowed:!1}}})),u.mockResolvedValue(s({id:123456})),d.mockResolvedValue(C(new f("Firmware version fetch failed"))),m.mockReturnValue({sessionStateType:y.ReadyWithoutSecureChannel,deviceStatus:h.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),l.mockReturnValue(v({type:r.Exchange,payload:{data:new Uint8Array([0,1,2,3])}},{type:r.Result,payload:"0000"}));const a=[{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Error,error:new f("Firmware version fetch failed")}],t=new D({input:{}});vi.spyOn(t,"extractDependencies").mockImplementation(p),k(t,a,V(),{onDone:i,onError:o})})),it("should return error when error occurs in communicating with secure channel",()=>new Promise((i,o)=>{S(),c.mockResolvedValue(g({data:{targetId:"123456",secureElementFlags:{isSecureConnectionAllowed:!1}}})),u.mockResolvedValue(s({id:123456})),d.mockResolvedValue(s({perso:"perso_test"})),m.mockReturnValue({sessionStateType:y.ReadyWithoutSecureChannel,deviceStatus:h.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),l.mockReturnValue(P(v({type:r.Exchange,payload:{data:new Uint8Array([0,1,2,3])}}),I(()=>new w("Secure channel error"))));const a=[{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:n.None}},{status:e.Error,error:new w("Secure channel error")}],t=new D({input:{}});vi.spyOn(t,"extractDependencies").mockImplementation(p),k(t,a,V(),{onDone:i,onError:o})}))});
2
- //# sourceMappingURL=GenuineCheckDeviceAction.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../../src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.ts"],
4
- "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { concat, of, throwError } from \"rxjs\";\n\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { setupGoToDashboardMock } from \"@api/device-action/__test-utils__/setupTestMachine\";\nimport { 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 { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\nimport {\n type SecureChannelEventPayload,\n SecureChannelEventType,\n} from \"@api/secure-channel/task/types\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport { HttpFetchApiError } from \"@internal/manager-api/model/Errors\";\nimport { type FinalFirmware } from \"@internal/manager-api/model/Firmware\";\nimport { SecureChannelError } from \"@internal/secure-channel/model/Errors\";\n\nimport { GenuineCheckDeviceAction } from \"./GenuineCheckDeviceAction\";\nimport { type GenuineCheckDAState } from \"./types\";\n\nvi.mock(\"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\");\n\ndescribe(\"GenuineCheckDeviceAction\", () => {\n const getOsVersionMock = vi.fn();\n const getDeviceVersionMock = vi.fn();\n const getFirmwareVersionMock = vi.fn();\n const genuineCheckMock = vi.fn();\n const getDeviceSessionStateMock = vi.fn();\n const setDeviceSessionStateMock = vi.fn();\n\n const extractDependenciesMock = () => ({\n getOsVersion: getOsVersionMock,\n getDeviceVersion: getDeviceVersionMock,\n getFirmwareVersion: getFirmwareVersionMock,\n genuineCheck: genuineCheckMock,\n getDeviceSessionState: getDeviceSessionStateMock,\n setDeviceSessionState: setDeviceSessionStateMock,\n });\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n it(\"should return the result of the genuine check\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n getOsVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n targetId: \"123456\",\n secureElementFlags: {\n isSecureConnectionAllowed: false,\n },\n },\n }),\n );\n getDeviceVersionMock.mockResolvedValue(\n Right({ id: 123456 } as DeviceVersion),\n );\n getFirmwareVersionMock.mockResolvedValue(\n Right({ perso: \"perso_test\" } as FinalFirmware),\n );\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n isSecureConnectionAllowed: false,\n });\n genuineCheckMock.mockReturnValue(\n of(\n {\n type: SecureChannelEventType.Exchange,\n payload: {\n data: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n } as SecureChannelEventPayload[\"Exchange\"],\n },\n {\n type: SecureChannelEventType.PermissionRequested,\n },\n {\n type: SecureChannelEventType.PermissionGranted,\n },\n {\n type: SecureChannelEventType.Result,\n payload: \"0000\",\n },\n ),\n );\n\n const expectedStates: Array<GenuineCheckDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction:\n UserInteractionRequired.AllowSecureConnection,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Completed,\n output: { isGenuine: true },\n },\n ];\n\n const genuineCheckDeviceAction = new GenuineCheckDeviceAction({\n input: {},\n });\n vi.spyOn(\n genuineCheckDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n genuineCheckDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n it(\"should return error when error occurs in fetching device version\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n getOsVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n targetId: \"123456\",\n secureElementFlags: {\n isSecureConnectionAllowed: false,\n },\n },\n }),\n );\n getDeviceVersionMock.mockResolvedValue(\n Left(new HttpFetchApiError(\"Device version fetch failed\")),\n );\n getFirmwareVersionMock.mockResolvedValue(\n Right({ perso: \"perso_test\" } as FinalFirmware),\n );\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n isSecureConnectionAllowed: false,\n });\n genuineCheckMock.mockReturnValue(\n of(\n {\n type: SecureChannelEventType.Exchange,\n payload: {\n data: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n } as SecureChannelEventPayload[\"Exchange\"],\n },\n {\n type: SecureChannelEventType.Result,\n payload: \"0000\",\n },\n ),\n );\n\n const expectedStates: Array<GenuineCheckDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new HttpFetchApiError(\"Device version fetch failed\"),\n },\n ];\n\n const genuineCheckDeviceAction = new GenuineCheckDeviceAction({\n input: {},\n });\n vi.spyOn(\n genuineCheckDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n genuineCheckDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n it(\"should return error when error occurs in fetching firmware version\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n getOsVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n targetId: \"123456\",\n secureElementFlags: {\n isSecureConnectionAllowed: false,\n },\n },\n }),\n );\n getDeviceVersionMock.mockResolvedValue(\n Right({ id: 123456 } as DeviceVersion),\n );\n getFirmwareVersionMock.mockResolvedValue(\n Left(new HttpFetchApiError(\"Firmware version fetch failed\")),\n );\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n isSecureConnectionAllowed: false,\n });\n genuineCheckMock.mockReturnValue(\n of(\n {\n type: SecureChannelEventType.Exchange,\n payload: {\n data: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n } as SecureChannelEventPayload[\"Exchange\"],\n },\n {\n type: SecureChannelEventType.Result,\n payload: \"0000\",\n },\n ),\n );\n\n const expectedStates: Array<GenuineCheckDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new HttpFetchApiError(\"Firmware version fetch failed\"),\n },\n ];\n\n const genuineCheckDeviceAction = new GenuineCheckDeviceAction({\n input: {},\n });\n vi.spyOn(\n genuineCheckDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n genuineCheckDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n it(\"should return error when error occurs in communicating with secure channel\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n getOsVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n targetId: \"123456\",\n secureElementFlags: {\n isSecureConnectionAllowed: false,\n },\n },\n }),\n );\n getDeviceVersionMock.mockResolvedValue(\n Right({ id: 123456 } as DeviceVersion),\n );\n getFirmwareVersionMock.mockResolvedValue(\n Right({ perso: \"perso_test\" } as FinalFirmware),\n );\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n isSecureConnectionAllowed: false,\n });\n genuineCheckMock.mockReturnValue(\n concat(\n of({\n type: SecureChannelEventType.Exchange,\n payload: {\n data: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n } as SecureChannelEventPayload[\"Exchange\"],\n }),\n throwError(() => new SecureChannelError(\"Secure channel error\")),\n ),\n );\n\n const expectedStates: Array<GenuineCheckDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new SecureChannelError(\"Secure channel error\"),\n },\n ];\n\n const genuineCheckDeviceAction = new GenuineCheckDeviceAction({\n input: {},\n });\n vi.spyOn(\n genuineCheckDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n genuineCheckDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n});\n"],
5
- "mappings": "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",
6
- "names": ["Left", "Right", "concat", "of", "throwError", "CommandResultFactory", "DeviceStatus", "makeDeviceActionInternalApiMock", "setupGoToDashboardMock", "testDeviceActionStates", "DeviceActionStatus", "UserInteractionRequired", "DeviceSessionStateType", "SecureChannelEventType", "HttpFetchApiError", "SecureChannelError", "GenuineCheckDeviceAction", "getOsVersionMock", "getDeviceVersionMock", "getFirmwareVersionMock", "genuineCheckMock", "getDeviceSessionStateMock", "setDeviceSessionStateMock", "extractDependenciesMock", "resolve", "reject", "expectedStates", "genuineCheckDeviceAction"]
7
- }
@@ -1,2 +0,0 @@
1
- import{Right as g}from"purify-ts";import{of as D,throwError as y}from"rxjs";import{CommandResultFactory as A}from"../../../command/model/CommandResult";import{DeviceStatus as P}from"../../../device/DeviceStatus";import{makeDeviceActionInternalApiMock as l}from"../../../device-action/__test-utils__/makeInternalApi";import{setupGoToDashboardMock as I,setupListInstalledAppsMock as u}from"../../../device-action/__test-utils__/setupTestMachine";import{testDeviceActionStates as d}from"../../../device-action/__test-utils__/testDeviceActionStates";import{DeviceActionStatus as e}from"../../../device-action/model/DeviceActionState";import{UserInteractionRequired as t}from"../../../device-action/model/UserInteractionRequired";import{UnknownDAError as S}from"../../../device-action/os/Errors";import{DeviceSessionStateType as f}from"../../../device-session/DeviceSessionState";import{SecureChannelEventType as V}from"../../../secure-channel/task/types";import{SecureChannelError as N}from"../../../../internal/secure-channel/model/Errors";import{InstallAppDeviceAction as m}from"./InstallAppDeviceAction";vi.mock("@api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction");vi.mock("@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction");describe("InstallAppDeviceAction",()=>{const o=vi.fn(),a=vi.fn(),v=vi.fn(),p=vi.fn(),h=vi.fn(),c=()=>({getOsVersion:o,getAppList:a,installApp:v,getDeviceSessionState:p,setDeviceSessionState:h});beforeEach(()=>{vi.resetAllMocks()}),it("should finish successfully when the app is already installed on the device",()=>new Promise((r,s)=>{u([{installedApps:[{name:"Bitcoin"}]}]);const i=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Completed,output:void 0}],n=new m({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(c),d(n,i,l(),{onDone:r,onError:s})})),it("should finish successfully when the app is not installed",()=>new Promise((r,s)=>{u([{installedApps:[]},{installedApps:[{name:"Bitcoin"}]}]),I(),o.mockResolvedValue(A({data:{targetId:12345678,secureElementFlags:{isSecureConnectionAllowed:!0}}})),p.mockReturnValue({sessionStateType:f.ReadyWithoutSecureChannel,deviceStatus:P.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),a.mockResolvedValue(g([{versionName:"Bitcoin",perso:"test_perso",firmware:"test_firmware_for_bitcoin",firmwareKey:"test_firmware_key_for_bitcoin",hash:"test_hash_for_bitcoin"}])),v.mockImplementation(()=>D({type:V.Progress,payload:{progress:0}},{type:V.Progress,payload:{progress:.55}},{type:V.Progress,payload:{progress:1}}));const i=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:.55}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:1}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:1}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:1}},{status:e.Completed,output:void 0}],n=new m({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(c),d(n,i,l(),{onDone:r,onError:s})})),it("should finish unsuccessfully when the dep app is not installed",()=>new Promise((r,s)=>{u([{installedApps:[]}]),I(),o.mockResolvedValue(A({data:{targetId:12345678,secureElementFlags:{isSecureConnectionAllowed:!0}}})),p.mockReturnValue({sessionStateType:f.ReadyWithoutSecureChannel,deviceStatus:P.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),a.mockResolvedValue(g([{versionName:"Bitcoin",parentName:"test_parent"}]));const i=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Error,error:new S("Dep app is not installed on the device")}],n=new m({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(c),d(n,i,l(),{onDone:r,onError:s})})),it("should finish unsuccessfully when the app is not found in manager API",()=>new Promise((r,s)=>{u([{installedApps:[]}]),I(),o.mockResolvedValue(A({data:{targetId:12345678,secureElementFlags:{isSecureConnectionAllowed:!0}}})),p.mockReturnValue({}),a.mockResolvedValueOnce(g([]));const i=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Error,error:new S("App to install not found in manager API")}],n=new m({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(c),d(n,i,l(),{onDone:r,onError:s})})),it("should finish unsuccessfully when there is error in installApp",()=>new Promise((r,s)=>{u([{installedApps:[]}]),I(),o.mockResolvedValue(A({data:{targetId:12345678,secureElementFlags:{isSecureConnectionAllowed:!0}}})),p.mockReturnValue({}),a.mockResolvedValueOnce(g([{versionName:"Bitcoin"}])),v.mockReturnValue(y(()=>new N("Install app error in secure channel")));const i=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None,progress:0}},{status:e.Error,error:new N("Install app error in secure channel")}],n=new m({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(c),d(n,i,l(),{onDone:r,onError:s})}))});
2
- //# sourceMappingURL=InstallAppDeviceAction.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../../src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.ts"],
4
- "sourcesContent": ["import { Right } from \"purify-ts\";\nimport { of, throwError } from \"rxjs\";\n\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport { type GetOsVersionResponse } from \"@api/command/os/GetOsVersionCommand\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport {\n setupGoToDashboardMock,\n setupListInstalledAppsMock,\n} 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 {\n type DeviceSessionState,\n DeviceSessionStateType,\n} from \"@api/device-session/DeviceSessionState\";\nimport { type InstalledApp } from \"@api/secure-channel/device-action/ListInstalledApps/types\";\nimport {\n type SecureChannelEventPayload,\n SecureChannelEventType,\n} from \"@api/secure-channel/task/types\";\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { SecureChannelError } from \"@internal/secure-channel/model/Errors\";\n\nimport { InstallAppDeviceAction } from \"./InstallAppDeviceAction\";\nimport { type InstallAppDAState } from \"./types\";\n\nvi.mock(\n \"@api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction\",\n);\nvi.mock(\"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\");\n\ndescribe(\"InstallAppDeviceAction\", () => {\n const getOsVersionMock = vi.fn();\n const getAppListMock = vi.fn();\n const installAppMock = vi.fn();\n const getDeviceSessionStateMock = vi.fn();\n const setDeviceSessionStateMock = vi.fn();\n const extractDependenciesMock = () => ({\n getOsVersion: getOsVersionMock,\n getAppList: getAppListMock,\n installApp: installAppMock,\n getDeviceSessionState: getDeviceSessionStateMock,\n setDeviceSessionState: setDeviceSessionStateMock,\n });\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n it(\"should finish successfully when the app is already installed on the device\", () =>\n new Promise<void>((resolve, reject) => {\n setupListInstalledAppsMock([\n { installedApps: [{ name: \"Bitcoin\" } as InstalledApp] },\n ]);\n\n const expectedStates: Array<InstallAppDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Completed,\n output: undefined,\n },\n ];\n\n const installAppDeviceAction = new InstallAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(\n installAppDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n installAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n it(\"should finish successfully when the app is not installed\", () =>\n new Promise<void>((resolve, reject) => {\n setupListInstalledAppsMock([\n { installedApps: [] },\n { installedApps: [{ name: \"Bitcoin\" } as InstalledApp] },\n ]);\n setupGoToDashboardMock();\n getOsVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n targetId: 12345678,\n secureElementFlags: {\n isSecureConnectionAllowed: true,\n },\n } as GetOsVersionResponse,\n }),\n );\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n isSecureConnectionAllowed: false,\n });\n getAppListMock.mockResolvedValue(\n Right([\n {\n versionName: \"Bitcoin\",\n perso: \"test_perso\",\n firmware: \"test_firmware_for_bitcoin\",\n firmwareKey: \"test_firmware_key_for_bitcoin\",\n hash: \"test_hash_for_bitcoin\",\n } as Application,\n ]),\n );\n installAppMock.mockImplementation(() =>\n of(\n {\n type: SecureChannelEventType.Progress,\n payload: {\n progress: 0,\n } as SecureChannelEventPayload[\"Progress\"],\n },\n {\n type: SecureChannelEventType.Progress,\n payload: {\n progress: 0.55,\n } as SecureChannelEventPayload[\"Progress\"],\n },\n {\n type: SecureChannelEventType.Progress,\n payload: {\n progress: 1,\n } as SecureChannelEventPayload[\"Progress\"],\n },\n ),\n );\n\n const expectedStates: Array<InstallAppDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0.55,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 1,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 1,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 1,\n },\n },\n {\n status: DeviceActionStatus.Completed,\n output: undefined,\n },\n ];\n\n const installAppDeviceAction = new InstallAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(\n installAppDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n installAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n it(\"should finish unsuccessfully when the dep app is not installed\", () =>\n new Promise<void>((resolve, reject) => {\n setupListInstalledAppsMock([{ installedApps: [] }]);\n setupGoToDashboardMock();\n getOsVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n targetId: 12345678,\n secureElementFlags: {\n isSecureConnectionAllowed: true,\n },\n } as GetOsVersionResponse,\n }),\n );\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n isSecureConnectionAllowed: false,\n });\n getAppListMock.mockResolvedValue(\n Right([\n {\n versionName: \"Bitcoin\",\n parentName: \"test_parent\",\n } as Application,\n ]),\n );\n\n const expectedStates: Array<InstallAppDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"Dep app is not installed on the device\"),\n },\n ];\n\n const installAppDeviceAction = new InstallAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(\n installAppDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n installAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n it(\"should finish unsuccessfully when the app is not found in manager API\", () =>\n new Promise<void>((resolve, reject) => {\n setupListInstalledAppsMock([{ installedApps: [] }]);\n setupGoToDashboardMock();\n getOsVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n targetId: 12345678,\n secureElementFlags: {\n isSecureConnectionAllowed: true,\n },\n } as GetOsVersionResponse,\n }),\n );\n getDeviceSessionStateMock.mockReturnValue({} as DeviceSessionState);\n getAppListMock.mockResolvedValueOnce(Right([]));\n\n const expectedStates: Array<InstallAppDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"App to install not found in manager API\"),\n },\n ];\n\n const installAppDeviceAction = new InstallAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(\n installAppDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n installAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should finish unsuccessfully when there is error in installApp\", () =>\n new Promise<void>((resolve, reject) => {\n setupListInstalledAppsMock([{ installedApps: [] }]);\n setupGoToDashboardMock();\n getOsVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n targetId: 12345678,\n secureElementFlags: {\n isSecureConnectionAllowed: true,\n },\n } as GetOsVersionResponse,\n }),\n );\n getDeviceSessionStateMock.mockReturnValue({} as DeviceSessionState);\n getAppListMock.mockResolvedValueOnce(\n Right([{ versionName: \"Bitcoin\" } as Application]),\n );\n installAppMock.mockReturnValue(\n throwError(\n () => new SecureChannelError(\"Install app error in secure channel\"),\n ),\n );\n\n const expectedStates: Array<InstallAppDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n progress: 0,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new SecureChannelError(\"Install app error in secure channel\"),\n },\n ];\n\n const installAppDeviceAction = new InstallAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(\n installAppDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n installAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n});\n"],
5
- "mappings": "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",
6
- "names": ["Right", "of", "throwError", "CommandResultFactory", "DeviceStatus", "makeDeviceActionInternalApiMock", "setupGoToDashboardMock", "setupListInstalledAppsMock", "testDeviceActionStates", "DeviceActionStatus", "UserInteractionRequired", "UnknownDAError", "DeviceSessionStateType", "SecureChannelEventType", "SecureChannelError", "InstallAppDeviceAction", "getOsVersionMock", "getAppListMock", "installAppMock", "getDeviceSessionStateMock", "setDeviceSessionStateMock", "extractDependenciesMock", "resolve", "reject", "expectedStates", "installAppDeviceAction"]
7
- }
@@ -1,2 +0,0 @@
1
- import{Left as y,Right as s}from"purify-ts";import{concat as E,of as v,throwError as N}from"rxjs";import{CommandResultFactory as h}from"../../../command/model/CommandResult";import{DeviceStatus as V}from"../../../device/DeviceStatus";import{makeDeviceActionInternalApiMock as g}from"../../../device-action/__test-utils__/makeInternalApi";import{setupGoToDashboardMock as S}from"../../../device-action/__test-utils__/setupTestMachine";import{testDeviceActionStates as A}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{DeviceSessionStateType as I}from"../../../device-session/DeviceSessionState";import{SecureChannelEventType as o}from"../../../secure-channel/task/types";import{HttpFetchApiError as f}from"../../../../internal/manager-api/model/Errors";import{SecureChannelError as w}from"../../../../internal/secure-channel/model/Errors";import{ListInstalledAppsDeviceAction as D}from"./ListInstalledAppsDeviceAction";vi.mock("@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction");describe("ListInstalledAppsDeviceAction",()=>{const c=vi.fn(),d=vi.fn(),l=vi.fn(),u=vi.fn(),m=vi.fn(),k=vi.fn(),p=()=>({getOsVersion:c,getDeviceVersion:d,getFirmwareVersion:l,listInstalledApps:u,getDeviceSessionState:m,setDeviceSessionState:k});beforeEach(()=>{vi.resetAllMocks()}),it("should return a list that contains all installed apps on the device",()=>new Promise((r,i)=>{S(),c.mockResolvedValue(h({data:{targetId:"123456",secureElementFlags:{isSecureConnectionAllowed:!0}}})),d.mockResolvedValue(s({id:123456})),l.mockResolvedValue(s({perso:"perso_test"})),m.mockReturnValue({sessionStateType:I.ReadyWithoutSecureChannel,deviceStatus:V.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),u.mockReturnValue(v({type:o.Exchange},{type:o.Result,payload:[{flags:123456,hash:"hash_test",hash_code_data:"hash_code_data_test",name:"Bitcoin"}]}));const a=[{status:e.Pending,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,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,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Completed,output:{installedApps:[{flags:123456,hash:"hash_test",hash_code_data:"hash_code_data_test",name:"Bitcoin"}]}}],n=new D({input:{}});vi.spyOn(n,"extractDependencies").mockImplementation(p),A(n,a,g(),{onDone:r,onError:i})})),it("should return error when error occurs in fetching device version",()=>new Promise((r,i)=>{S(),c.mockResolvedValue(h({data:{targetId:"123456",secureElementFlags:{isSecureConnectionAllowed:!1}}})),d.mockResolvedValue(y(new f("Device version fetch failed"))),l.mockResolvedValue(s({perso:"perso_test"})),m.mockReturnValue({sessionStateType:I.ReadyWithoutSecureChannel,deviceStatus:V.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),u.mockReturnValue(v({type:o.Exchange,payload:{data:new Uint8Array([0,1,2,3])}},{type:o.Result,payload:[]}));const a=[{status:e.Pending,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.Error,error:new f("Device version fetch failed")}],n=new D({input:{}});vi.spyOn(n,"extractDependencies").mockImplementation(p),A(n,a,g(),{onDone:r,onError:i})})),it("should return error when error occurs in fetching firmware version",()=>new Promise((r,i)=>{S(),c.mockResolvedValue(h({data:{targetId:"123456",secureElementFlags:{isSecureConnectionAllowed:!1}}})),d.mockResolvedValue(s({id:123456})),l.mockResolvedValue(y(new f("Firmware version fetch failed"))),m.mockReturnValue({sessionStateType:I.ReadyWithoutSecureChannel,deviceStatus:V.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),u.mockReturnValue(v({type:o.Exchange,payload:{data:new Uint8Array([0,1,2,3])}},{type:o.Result,payload:[]}));const a=[{status:e.Pending,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,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Error,error:new f("Firmware version fetch failed")}],n=new D({input:{}});vi.spyOn(n,"extractDependencies").mockImplementation(p),A(n,a,g(),{onDone:r,onError:i})})),it("should return error when error occurs in communicating with secure channel",()=>new Promise((r,i)=>{S(),c.mockResolvedValue(h({data:{targetId:"123456",secureElementFlags:{isSecureConnectionAllowed:!1}}})),d.mockResolvedValue(s({id:123456})),l.mockResolvedValue(s({perso:"perso_test"})),m.mockReturnValue({sessionStateType:I.ReadyWithoutSecureChannel,deviceStatus:V.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),u.mockReturnValue(E(v({type:o.Exchange,payload:{data:new Uint8Array([0,1,2,3])}}),N(()=>new w("Secure channel error"))));const a=[{status:e.Pending,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,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.Error,error:new w("Secure channel error")}],n=new D({input:{}});vi.spyOn(n,"extractDependencies").mockImplementation(p),A(n,a,g(),{onDone:r,onError:i})}))});
2
- //# sourceMappingURL=ListInstalledAppsDeviceAction.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../../src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.ts"],
4
- "sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { concat, of, throwError } from \"rxjs\";\n\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { setupGoToDashboardMock } from \"@api/device-action/__test-utils__/setupTestMachine\";\nimport { 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 { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\nimport {\n type SecureChannelEventPayload,\n SecureChannelEventType,\n} from \"@api/secure-channel/task/types\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport { HttpFetchApiError } from \"@internal/manager-api/model/Errors\";\nimport { type FinalFirmware } from \"@internal/manager-api/model/Firmware\";\nimport { SecureChannelError } from \"@internal/secure-channel/model/Errors\";\n\nimport { ListInstalledAppsDeviceAction } from \"./ListInstalledAppsDeviceAction\";\nimport { type ListInstalledAppsDAState } from \"./types\";\n\nvi.mock(\"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\");\n\ndescribe(\"ListInstalledAppsDeviceAction\", () => {\n const getOsVersionMock = vi.fn();\n const getDeviceVersionMock = vi.fn();\n const getFirmwareVersionMock = vi.fn();\n const listInstalledAppsMock = vi.fn();\n const getDeviceSessionStateMock = vi.fn();\n const setDeviceSessionStateMock = vi.fn();\n\n const extractDependenciesMock = () => ({\n getOsVersion: getOsVersionMock,\n getDeviceVersion: getDeviceVersionMock,\n getFirmwareVersion: getFirmwareVersionMock,\n listInstalledApps: listInstalledAppsMock,\n getDeviceSessionState: getDeviceSessionStateMock,\n setDeviceSessionState: setDeviceSessionStateMock,\n });\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n it(\"should return a list that contains all installed apps on the device\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n getOsVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n targetId: \"123456\",\n secureElementFlags: {\n isSecureConnectionAllowed: true,\n },\n },\n }),\n );\n getDeviceVersionMock.mockResolvedValue(\n Right({ id: 123456 } as DeviceVersion),\n );\n getFirmwareVersionMock.mockResolvedValue(\n Right({ perso: \"perso_test\" } as FinalFirmware),\n );\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n isSecureConnectionAllowed: false,\n });\n listInstalledAppsMock.mockReturnValue(\n of(\n {\n type: SecureChannelEventType.Exchange,\n },\n {\n type: SecureChannelEventType.Result,\n payload: [\n {\n flags: 123456,\n hash: \"hash_test\",\n hash_code_data: \"hash_code_data_test\",\n name: \"Bitcoin\",\n },\n ],\n },\n ),\n );\n\n const expectedStates: Array<ListInstalledAppsDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Completed,\n output: {\n installedApps: [\n {\n flags: 123456,\n hash: \"hash_test\",\n hash_code_data: \"hash_code_data_test\",\n name: \"Bitcoin\",\n },\n ],\n },\n },\n ];\n\n const listInstalledAppsDeviceAction = new ListInstalledAppsDeviceAction({\n input: {},\n });\n vi.spyOn(\n listInstalledAppsDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n listInstalledAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n it(\"should return error when error occurs in fetching device version\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n getOsVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n targetId: \"123456\",\n secureElementFlags: {\n isSecureConnectionAllowed: false,\n },\n },\n }),\n );\n getDeviceVersionMock.mockResolvedValue(\n Left(new HttpFetchApiError(\"Device version fetch failed\")),\n );\n getFirmwareVersionMock.mockResolvedValue(\n Right({ perso: \"perso_test\" } as FinalFirmware),\n );\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n isSecureConnectionAllowed: false,\n });\n listInstalledAppsMock.mockReturnValue(\n of(\n {\n type: SecureChannelEventType.Exchange,\n payload: {\n data: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n } as SecureChannelEventPayload[\"Exchange\"],\n },\n {\n type: SecureChannelEventType.Result,\n payload: [],\n },\n ),\n );\n\n const expectedStates: Array<ListInstalledAppsDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new HttpFetchApiError(\"Device version fetch failed\"),\n },\n ];\n\n const listInstalledAppsDeviceAction = new ListInstalledAppsDeviceAction({\n input: {},\n });\n vi.spyOn(\n listInstalledAppsDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n listInstalledAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n it(\"should return error when error occurs in fetching firmware version\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n getOsVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n targetId: \"123456\",\n secureElementFlags: {\n isSecureConnectionAllowed: false,\n },\n },\n }),\n );\n getDeviceVersionMock.mockResolvedValue(\n Right({ id: 123456 } as DeviceVersion),\n );\n getFirmwareVersionMock.mockResolvedValue(\n Left(new HttpFetchApiError(\"Firmware version fetch failed\")),\n );\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n isSecureConnectionAllowed: false,\n });\n listInstalledAppsMock.mockReturnValue(\n of(\n {\n type: SecureChannelEventType.Exchange,\n payload: {\n data: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n } as SecureChannelEventPayload[\"Exchange\"],\n },\n {\n type: SecureChannelEventType.Result,\n payload: [],\n },\n ),\n );\n\n const expectedStates: Array<ListInstalledAppsDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new HttpFetchApiError(\"Firmware version fetch failed\"),\n },\n ];\n\n const listInstalledAppsDeviceAction = new ListInstalledAppsDeviceAction({\n input: {},\n });\n vi.spyOn(\n listInstalledAppsDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n listInstalledAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n it(\"should return error when error occurs in communicating with secure channel\", () =>\n new Promise<void>((resolve, reject) => {\n setupGoToDashboardMock();\n getOsVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n targetId: \"123456\",\n secureElementFlags: {\n isSecureConnectionAllowed: false,\n },\n },\n }),\n );\n getDeviceVersionMock.mockResolvedValue(\n Right({ id: 123456 } as DeviceVersion),\n );\n getFirmwareVersionMock.mockResolvedValue(\n Right({ perso: \"perso_test\" } as FinalFirmware),\n );\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n isSecureConnectionAllowed: false,\n });\n listInstalledAppsMock.mockReturnValue(\n concat(\n of({\n type: SecureChannelEventType.Exchange,\n payload: {\n data: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n } as SecureChannelEventPayload[\"Exchange\"],\n }),\n throwError(() => new SecureChannelError(\"Secure channel error\")),\n ),\n );\n\n const expectedStates: Array<ListInstalledAppsDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new SecureChannelError(\"Secure channel error\"),\n },\n ];\n\n const listInstalledAppsDeviceAction = new ListInstalledAppsDeviceAction({\n input: {},\n });\n vi.spyOn(\n listInstalledAppsDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n listInstalledAppsDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n});\n"],
5
- "mappings": "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",
6
- "names": ["Left", "Right", "concat", "of", "throwError", "CommandResultFactory", "DeviceStatus", "makeDeviceActionInternalApiMock", "setupGoToDashboardMock", "testDeviceActionStates", "DeviceActionStatus", "UserInteractionRequired", "DeviceSessionStateType", "SecureChannelEventType", "HttpFetchApiError", "SecureChannelError", "ListInstalledAppsDeviceAction", "getOsVersionMock", "getDeviceVersionMock", "getFirmwareVersionMock", "listInstalledAppsMock", "getDeviceSessionStateMock", "setDeviceSessionStateMock", "extractDependenciesMock", "resolve", "reject", "expectedStates", "listInstalledAppsDeviceAction"]
7
- }
@@ -1,2 +0,0 @@
1
- import{Right as A}from"purify-ts";import{of as N,throwError as U}from"rxjs";import{CommandResultFactory as v}from"../../../command/model/CommandResult";import{DeviceStatus as I}from"../../../device/DeviceStatus";import{makeDeviceActionInternalApiMock as u}from"../../../device-action/__test-utils__/makeInternalApi";import{setupGoToDashboardMock as f,setupListInstalledAppsMock as p}from"../../../device-action/__test-utils__/setupTestMachine";import{testDeviceActionStates as d}from"../../../device-action/__test-utils__/testDeviceActionStates";import{DeviceActionStatus as e}from"../../../device-action/model/DeviceActionState";import{UserInteractionRequired as t}from"../../../device-action/model/UserInteractionRequired";import{UnknownDAError as S}from"../../../device-action/os/Errors";import{DeviceSessionStateType as V}from"../../../device-session/DeviceSessionState";import{SecureChannelEventType as y}from"../../../secure-channel/task/types";import{SecureChannelError as g}from"../../../../internal/secure-channel/model/Errors";import{UninstallAppDeviceAction as m}from"./UninstallAppDeviceAction";vi.mock("@api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction");vi.mock("@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction");describe("UninstallAppDeviceAction",()=>{const a=vi.fn(),o=vi.fn(),h=vi.fn(),c=vi.fn(),D=vi.fn(),l=()=>({getOsVersion:a,getAppsByHash:o,uninstallApp:h,getDeviceSessionState:c,setDeviceSessionState:D});beforeEach(()=>{vi.resetAllMocks()}),it("should finish successfully when the app is not installed on the device",()=>new Promise((i,s)=>{p([{installedApps:[{name:"Bitcoin"}]}]);const r=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Completed,output:void 0}],n=new m({input:{appName:"Ethereum"}});vi.spyOn(n,"extractDependencies").mockImplementation(l),d(n,r,u(),{onDone:i,onError:s})})),it("should finish successfully when the app is installed on the device",()=>new Promise((i,s)=>{p([{installedApps:[{name:"Bitcoin"}]},{installedApps:[]}]),f(),a.mockResolvedValue(v({data:{targetId:12345678,secureElementFlags:{isSecureConnectionAllowed:!0}}})),c.mockReturnValue({sessionStateType:V.ReadyWithoutSecureChannel,deviceStatus:I.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),o.mockResolvedValue(A([{versionName:"Bitcoin",perso:"test_perso",firmware:"test_firmware_for_bitcoin",firmwareKey:"test_firmware_key_for_bitcoin",hash:"test_hash_for_bitcoin"}])),h.mockReturnValue(N({type:y.Exchange}));const r=[{status:e.Pending,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,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,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Completed,output:void 0}],n=new m({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(l),d(n,r,u(),{onDone:i,onError:s})})),it("should finish unsuccessfully when the app is a dependency of other installed apps",()=>new Promise((i,s)=>{p([{installedApps:[{name:"Bitcoin"},{name:"Testcoin"}]}]),f(),a.mockResolvedValue(v({data:{targetId:12345678,secureElementFlags:{isSecureConnectionAllowed:!0}}})),c.mockReturnValue({sessionStateType:V.ReadyWithoutSecureChannel,deviceStatus:I.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),o.mockResolvedValue(A([{versionName:"Testcoin",parentName:"Bitcoin"},{versionName:"Bitcoin"}]));const r=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Error,error:new S("App to uninstall is a dependency of another installed app")}],n=new m({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(l),d(n,r,u(),{onDone:i,onError:s})})),it("should finish unsuccessfully when the app is not found in manager API",()=>new Promise((i,s)=>{p([{installedApps:[{name:"Bitcoin"}]}]),f(),a.mockResolvedValue(v({data:{targetId:12345678,secureElementFlags:{isSecureConnectionAllowed:!0}}})),c.mockReturnValue({}),o.mockResolvedValueOnce(A([]));const r=[{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Pending,intermediateValue:{requiredUserInteraction:t.None}},{status:e.Error,error:new S("App to uninstall not found in manager API")}],n=new m({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(l),d(n,r,u(),{onDone:i,onError:s})})),it("should finish unsuccessfully when there is error in uninstallApp",()=>new Promise((i,s)=>{p([{installedApps:[{name:"Bitcoin"}]}]),f(),a.mockResolvedValue(v({data:{targetId:12345678,secureElementFlags:{isSecureConnectionAllowed:!0}}})),c.mockReturnValue({}),o.mockResolvedValueOnce(A([{versionName:"Bitcoin"}])),h.mockReturnValue(U(()=>new g("Uninstall app error in secure channel")));const r=[{status:e.Pending,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,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.Error,error:new g("Uninstall app error in secure channel")}],n=new m({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(l),d(n,r,u(),{onDone:i,onError:s})}))});
2
- //# sourceMappingURL=UninstallAppDeviceAction.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../../src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.ts"],
4
- "sourcesContent": ["import { Right } from \"purify-ts\";\nimport { of, throwError } from \"rxjs\";\n\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport { type GetOsVersionResponse } from \"@api/command/os/GetOsVersionCommand\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport {\n setupGoToDashboardMock,\n setupListInstalledAppsMock,\n} 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 {\n type DeviceSessionState,\n DeviceSessionStateType,\n} from \"@api/device-session/DeviceSessionState\";\nimport { type InstalledApp } from \"@api/secure-channel/device-action/ListInstalledApps/types\";\nimport {\n type SecureChannelEvent,\n SecureChannelEventType,\n} from \"@api/secure-channel/task/types\";\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { SecureChannelError } from \"@internal/secure-channel/model/Errors\";\n\nimport { type UninstallAppDAState } from \"./types\";\nimport { UninstallAppDeviceAction } from \"./UninstallAppDeviceAction\";\n\nvi.mock(\n \"@api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction\",\n);\nvi.mock(\"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\");\n\ndescribe(\"UninstallAppDeviceAction\", () => {\n const getOsVersionMock = vi.fn();\n const getAppsByHashMock = vi.fn();\n const uninstallAppMock = vi.fn();\n const getDeviceSessionStateMock = vi.fn();\n const setDeviceSessionStateMock = vi.fn();\n const extractDependenciesMock = () => ({\n getOsVersion: getOsVersionMock,\n getAppsByHash: getAppsByHashMock,\n uninstallApp: uninstallAppMock,\n getDeviceSessionState: getDeviceSessionStateMock,\n setDeviceSessionState: setDeviceSessionStateMock,\n });\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n it(\"should finish successfully when the app is not installed on the device\", () =>\n new Promise<void>((resolve, reject) => {\n setupListInstalledAppsMock([\n { installedApps: [{ name: \"Bitcoin\" } as InstalledApp] },\n ]);\n\n const expectedStates: Array<UninstallAppDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Completed,\n output: undefined,\n },\n ];\n\n const uninstallAppDeviceAction = new UninstallAppDeviceAction({\n input: { appName: \"Ethereum\" },\n });\n vi.spyOn(\n uninstallAppDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n uninstallAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n it(\"should finish successfully when the app is installed on the device\", () =>\n new Promise<void>((resolve, reject) => {\n setupListInstalledAppsMock([\n { installedApps: [{ name: \"Bitcoin\" } as InstalledApp] },\n { installedApps: [] },\n ]);\n setupGoToDashboardMock();\n getOsVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n targetId: 12345678,\n secureElementFlags: {\n isSecureConnectionAllowed: true,\n },\n } as GetOsVersionResponse,\n }),\n );\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n isSecureConnectionAllowed: false,\n });\n getAppsByHashMock.mockResolvedValue(\n Right([\n {\n versionName: \"Bitcoin\",\n perso: \"test_perso\",\n firmware: \"test_firmware_for_bitcoin\",\n firmwareKey: \"test_firmware_key_for_bitcoin\",\n hash: \"test_hash_for_bitcoin\",\n } as Application,\n ]),\n );\n uninstallAppMock.mockReturnValue(\n of({\n type: SecureChannelEventType.Exchange,\n } as SecureChannelEvent),\n );\n\n const expectedStates: Array<UninstallAppDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Completed,\n output: undefined,\n },\n ];\n\n const uninstallAppDeviceAction = new UninstallAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(\n uninstallAppDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n uninstallAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n it(\"should finish unsuccessfully when the app is a dependency of other installed apps\", () =>\n new Promise<void>((resolve, reject) => {\n setupListInstalledAppsMock([\n {\n installedApps: [\n { name: \"Bitcoin\" },\n { name: \"Testcoin\" },\n ] as InstalledApp[],\n },\n ]);\n setupGoToDashboardMock();\n getOsVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n targetId: 12345678,\n secureElementFlags: {\n isSecureConnectionAllowed: true,\n },\n } as GetOsVersionResponse,\n }),\n );\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n isSecureConnectionAllowed: false,\n });\n getAppsByHashMock.mockResolvedValue(\n Right([\n {\n versionName: \"Testcoin\",\n parentName: \"Bitcoin\",\n },\n {\n versionName: \"Bitcoin\",\n },\n ] as Application[]),\n );\n\n const expectedStates: Array<UninstallAppDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\n \"App to uninstall is a dependency of another installed app\",\n ),\n },\n ];\n\n const uninstallAppDeviceAction = new UninstallAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(\n uninstallAppDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n uninstallAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n it(\"should finish unsuccessfully when the app is not found in manager API\", () =>\n new Promise<void>((resolve, reject) => {\n setupListInstalledAppsMock([\n { installedApps: [{ name: \"Bitcoin\" } as InstalledApp] },\n ]);\n setupGoToDashboardMock();\n getOsVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n targetId: 12345678,\n secureElementFlags: {\n isSecureConnectionAllowed: true,\n },\n } as GetOsVersionResponse,\n }),\n );\n getDeviceSessionStateMock.mockReturnValue({} as DeviceSessionState);\n getAppsByHashMock.mockResolvedValueOnce(Right([]));\n\n const expectedStates: Array<UninstallAppDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\n \"App to uninstall not found in manager API\",\n ),\n },\n ];\n\n const uninstallAppDeviceAction = new UninstallAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(\n uninstallAppDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n uninstallAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n it(\"should finish unsuccessfully when there is error in uninstallApp\", () =>\n new Promise<void>((resolve, reject) => {\n setupListInstalledAppsMock([\n { installedApps: [{ name: \"Bitcoin\" } as InstalledApp] },\n ]);\n setupGoToDashboardMock();\n getOsVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n targetId: 12345678,\n secureElementFlags: {\n isSecureConnectionAllowed: true,\n },\n } as GetOsVersionResponse,\n }),\n );\n getDeviceSessionStateMock.mockReturnValue({} as DeviceSessionState);\n getAppsByHashMock.mockResolvedValueOnce(\n Right([{ versionName: \"Bitcoin\" } as Application]),\n );\n uninstallAppMock.mockReturnValue(\n throwError(\n () => new SecureChannelError(\"Uninstall app error in secure channel\"),\n ),\n );\n\n const expectedStates: Array<UninstallAppDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new SecureChannelError(\n \"Uninstall app error in secure channel\",\n ),\n },\n ];\n\n const uninstallAppDeviceAction = new UninstallAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(\n uninstallAppDeviceAction,\n \"extractDependencies\",\n ).mockImplementation(extractDependenciesMock);\n\n testDeviceActionStates(\n uninstallAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n});\n"],
5
- "mappings": "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",
6
- "names": ["Right", "of", "throwError", "CommandResultFactory", "DeviceStatus", "makeDeviceActionInternalApiMock", "setupGoToDashboardMock", "setupListInstalledAppsMock", "testDeviceActionStates", "DeviceActionStatus", "UserInteractionRequired", "UnknownDAError", "DeviceSessionStateType", "SecureChannelEventType", "SecureChannelError", "UninstallAppDeviceAction", "getOsVersionMock", "getAppsByHashMock", "uninstallAppMock", "getDeviceSessionStateMock", "setDeviceSessionStateMock", "extractDependenciesMock", "resolve", "reject", "expectedStates", "uninstallAppDeviceAction"]
7
- }
@@ -1,2 +0,0 @@
1
- import S from"isomorphic-ws";import{Right as l}from"purify-ts";import{describe as w,it as c,vi as x}from"vitest";import{SecureChannelEventType as o}from"../../secure-channel/task/types";import{SecureChannelError as m,SecureChannelErrorType as f}from"../../../internal/secure-channel/model/Errors";import{ConnectToSecureChannelTask as v}from"./ConnectToSecureChannelTask";x.mock("isomorphic-ws",()=>({...x.importActual("isomorphic-ws"),__esModule:!0,default:class{onopen=null;onmessage=null;send=x.fn();close=x.fn();url;constructor(n){this.url=n}}}));const u=5;w("ConnectToSecureChannelTask",()=>{let n,y,b,r;const i=x.fn(),d={uuid:"5b776c8d-8af2-48c0-8250-04edca2ef5e9",session:"39ce749e-00a4-4c31-a697-1dc1a29e2cab",query:"success",nonce:15};beforeEach(()=>{n=new S("wss://test-host.com"),y={sendApdu:i,disableRefresher:e=>x.fn()},b={connection:l(n)},r=new v(y,b)}),afterEach(()=>{x.resetAllMocks()}),c("should emit Opened event on WebSocket open",async()=>{const e=[];r.run().subscribe(t=>e.push(t)),expect(n.onopen).toBeDefined(),n.onopen({type:"open",target:{}}),await new Promise(t=>setTimeout(t,u)),expect(e).toStrictEqual([{type:o.Opened}])}),c("Error on wrongly formatted message",async()=>{const e=[];r.run().subscribe({next:t=>{e.push(t)}}),expect(n.onmessage).toBeDefined(),n.onmessage({data:"invalidData",type:"",target:{}}),await new Promise(t=>setTimeout(t,u)),expect(e).toStrictEqual([{type:o.Error,error:new m({url:"wss://test-host.com",errorMessage:"Invalid message received: invalidData"})}])}),c("should handle incoming EXCHANGE message including requesting user permission",async()=>{i.mockResolvedValue(l({data:new Uint8Array([144,0]),statusCode:new Uint8Array([144,0])}));const e=x.spyOn(n,"send");x.spyOn(r,"isSecureConnectionAllowed").mockReturnValueOnce(!1);const s=[];r.run().subscribe({next:a=>{s.push(a)}}),expect(n.onmessage).toBeDefined(),n.onmessage({data:JSON.stringify({...d,query:"exchange",nonce:1,data:"e051000000"}),type:"",target:{}}),await new Promise(a=>setTimeout(a,u)),expect(e).toHaveBeenCalledExactlyOnceWith(JSON.stringify({nonce:1,response:"success",data:"9000"})),expect(s).toStrictEqual([{type:o.PreExchange,payload:{nonce:1,apdu:new Uint8Array([224,81,0,0,0])}},{type:o.PermissionRequested},{type:o.Exchange,payload:{nonce:1,apdu:new Uint8Array([224,81,0,0,0]),data:new Uint8Array([144,0]),status:new Uint8Array([144,0])}},{type:o.PermissionGranted}])}),c("should capture and emit device ID on first GetCertificate APDU",async()=>{const e=new Uint8Array([7,74,7,161,82,230,187,193,65,4,28,116,122,78,8,27,92,30,208,39,252,175,128,218,218,31,132,252,142,67,96,203,83,196,182,158,99,203,145,183,202,211,21,99,104,89,27,251,5,143,114,15,151,175,196,115,249,120,85,251,150,228,84,212,128,24,22,0,52,159,216,220,18,81,70,48,68,2,32,126,60,221,29,21,8,246,141,22,99,74,58,30,225,151,196,80,201,23,101,229,226,72,36,23,178,94,227,160,25,129,200,2,32,89,121,93,9,41,199,216,75,173,173,229,5,14,59,33,25,125,170,255,163,41,234,7,213,180,41,28,166,233,42,114,217]);i.mockResolvedValue(l({data:e,statusCode:new Uint8Array([144,0])}));const s=new Uint8Array([170,187,204,221]),t={sha3_256:x.fn().mockReturnValue(s)},a=new v(y,{connection:l(n),cryptoService:t}),g=[];a.run().subscribe({next:p=>{g.push(p)}}),expect(n.onmessage).toBeDefined(),n.onmessage({data:JSON.stringify({...d,query:"exchange",nonce:1,data:"e052000000"}),type:"",target:{}}),await new Promise(p=>setTimeout(p,u)),expect(t.sha3_256).toHaveBeenCalledWith(Uint8Array.from([4,28,116,122,78,8,27,92,30,208,39,252,175,128,218,218,31,132,252,142,67,96,203,83,196,182,158,99,203,145,183,202,211,21,99,104,89,27,251,5,143,114,15,151,175,196,115,249,120,85,251,150,228,84,212,128,24,22,0,52,159,216,220,18,81]));const h=g.find(p=>p.type===o.DeviceId);expect(h).toBeDefined(),expect(h?.payload?.deviceId).toBe(s)}),c("should handle incoming EXCHANGE message with a device error",async()=>{i.mockResolvedValue(l({data:new Uint8Array([]),statusCode:new Uint8Array([85,21])}));const e=x.spyOn(n,"send"),s=[];r.run().subscribe({next:a=>{s.push(a)}}),expect(n.onmessage).toBeDefined(),n.onmessage({data:JSON.stringify({...d,query:"exchange",nonce:1,data:"e053000000"}),type:"",target:{}}),await new Promise(a=>setTimeout(a,u)),expect(e).toHaveBeenCalledExactlyOnceWith(JSON.stringify({nonce:1,response:"error",data:""})),expect(s).toStrictEqual([{type:o.PreExchange,payload:{nonce:1,apdu:new Uint8Array([224,83,0,0,0])}},{type:o.Error,error:new m({url:"wss://test-host.com",errorMessage:"Device is locked"},f.DeviceLocked)}])}),c("should handle incoming BULK message",async()=>{i.mockResolvedValue(l({data:new Uint8Array([144,0]),statusCode:new Uint8Array([144,0])}));const e=x.fn(),s=r.run(),t=[];s.subscribe({next:a=>{t.push(a)},complete:()=>e()}),expect(n.onmessage).toBeDefined(),n.onmessage({data:JSON.stringify({...d,query:"bulk",nonce:1,data:["0000000100","0000000200","0000000300"]}),type:"",target:{}}),await new Promise(a=>setTimeout(a,u)),expect(i).toHaveBeenCalledTimes(3),expect(t).toStrictEqual([{type:o.Progress,payload:{progress:.33,index:0,total:3}},{type:o.Progress,payload:{progress:.67,index:1,total:3}},{type:o.Progress,payload:{progress:1,index:2,total:3}}]),expect(e).toHaveBeenCalledOnce()}),c("should handle incoming BULK message with a device error",async()=>{i.mockResolvedValue(l({data:new Uint8Array([]),statusCode:new Uint8Array([85,1])}));const e=x.fn(),s=r.run(),t=[];s.subscribe({next:a=>{t.push(a)},complete:()=>e()}),expect(n.onmessage).toBeDefined(),n.onmessage({data:JSON.stringify({...d,query:"bulk",nonce:1,data:["0000000100","0000000200","0000000300"]}),type:"",target:{}}),await new Promise(a=>setTimeout(a,u)),expect(i).toHaveBeenCalledTimes(1),expect(t).toStrictEqual([{type:o.Error,error:new m({url:"wss://test-host.com",errorMessage:"User refused on the device"},f.RefusedByUser)}]),expect(e).toHaveBeenCalledOnce()}),c("should handle incoming SUCCESS message",()=>{const e=x.fn(),s=[];r.run().subscribe({next:a=>s.push(a),complete:()=>e()}),n.onmessage({data:JSON.stringify({...d,query:"success",nonce:1,result:"success result"}),type:"",target:{}}),expect(s).toStrictEqual([{type:o.Result,payload:"success result"}]),expect(e).toHaveBeenCalledOnce()}),c("should handle incoming WARNING message",()=>{const e=[];r.run().subscribe({next:t=>e.push(t)}),expect(n.onmessage).toBeDefined(),n.onmessage({data:JSON.stringify({...d,query:"warning",nonce:1,data:"warning message"}),type:"",target:{}}),expect(e).toStrictEqual([{type:o.Warning,payload:{message:"warning message"}}])}),c("should handle incoming ERROR message",()=>{const e=[];r.run().subscribe({next:t=>e.push(t)}),expect(n.onmessage).toBeDefined(),n.onmessage({data:JSON.stringify({...d,query:"error",data:"My error"}),type:"",target:{}}),expect(e).toStrictEqual([{type:o.Error,error:new m({url:"wss://test-host.com",errorMessage:"My error"})}])})});
2
- //# sourceMappingURL=ConnectToSecureChannelTask.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/api/secure-channel/task/ConnectToSecureChannelTask.test.ts"],
4
- "sourcesContent": ["import WebSocket from \"isomorphic-ws\";\nimport { Right } from \"purify-ts\";\nimport { describe, it, vi } from \"vitest\";\n\nimport { type InternalApi } from \"@api/index\";\nimport {\n type SecureChannelEvent,\n SecureChannelEventType,\n} from \"@api/secure-channel/task/types\";\nimport {\n SecureChannelError,\n SecureChannelErrorType,\n} from \"@internal/secure-channel/model/Errors\";\n\nimport {\n ConnectToSecureChannelTask,\n type ConnectToSecureChannelTaskArgs,\n} from \"./ConnectToSecureChannelTask\";\n\nvi.mock(\"isomorphic-ws\", () => ({\n ...vi.importActual(\"isomorphic-ws\"),\n __esModule: true,\n default: class {\n onopen: (() => void) | null = null;\n onmessage: ((event: { data: string }) => void) | null = null;\n send = vi.fn();\n close = vi.fn();\n url: string;\n constructor(url: string) {\n this.url = url;\n }\n },\n}));\n\nconst TEST_DELAY = 5;\n\ndescribe(\"ConnectToSecureChannelTask\", () => {\n let mockWebSocket: WebSocket;\n let mockInternalApi: InternalApi;\n let taskArgs: ConnectToSecureChannelTaskArgs;\n let task: ConnectToSecureChannelTask;\n const sendApduFn = vi.fn();\n const mockMessage = {\n uuid: \"5b776c8d-8af2-48c0-8250-04edca2ef5e9\",\n session: \"39ce749e-00a4-4c31-a697-1dc1a29e2cab\",\n query: \"success\",\n nonce: 15,\n };\n\n beforeEach(() => {\n // vi.useFakeTimers({ shouldAdvanceTime: true });\n\n mockWebSocket = new WebSocket(\"wss://test-host.com\");\n mockInternalApi = {\n sendApdu: sendApduFn,\n disableRefresher: (_: unknown) => vi.fn(),\n } as unknown as InternalApi;\n taskArgs = { connection: Right(mockWebSocket) };\n task = new ConnectToSecureChannelTask(mockInternalApi, taskArgs);\n });\n\n afterEach(() => {\n vi.resetAllMocks();\n });\n\n it(\"should emit Opened event on WebSocket open\", async () => {\n const events: SecureChannelEvent[] = [];\n const obs = task.run();\n obs.subscribe((e) => events.push(e));\n\n expect(mockWebSocket.onopen).toBeDefined();\n mockWebSocket.onopen!({\n type: \"open\",\n target: {} as WebSocket,\n });\n\n await new Promise((resolve) => setTimeout(resolve, TEST_DELAY));\n\n expect(events).toStrictEqual([{ type: SecureChannelEventType.Opened }]);\n });\n\n it(\"Error on wrongly formatted message\", async () => {\n const events: SecureChannelEvent[] = [];\n const obs = task.run();\n obs.subscribe({\n next: (event) => {\n events.push(event);\n },\n });\n\n expect(mockWebSocket.onmessage).toBeDefined();\n mockWebSocket.onmessage!({\n data: \"invalidData\",\n type: \"\",\n target: {} as WebSocket,\n });\n\n await new Promise((resolve) => setTimeout(resolve, TEST_DELAY));\n\n expect(events).toStrictEqual([\n {\n type: SecureChannelEventType.Error,\n error: new SecureChannelError({\n url: \"wss://test-host.com\",\n errorMessage: \"Invalid message received: invalidData\",\n }),\n },\n ]);\n });\n\n it(\"should handle incoming EXCHANGE message including requesting user permission\", async () => {\n sendApduFn.mockResolvedValue(\n Right({\n data: new Uint8Array([0x90, 0x00]),\n statusCode: new Uint8Array([0x90, 0x00]),\n }),\n );\n\n const sendSpy = vi.spyOn(mockWebSocket, \"send\");\n vi.spyOn(task, \"isSecureConnectionAllowed\").mockReturnValueOnce(false);\n\n const events: SecureChannelEvent[] = [];\n const obs = task.run();\n obs.subscribe({\n next: (event) => {\n events.push(event);\n },\n });\n\n expect(mockWebSocket.onmessage).toBeDefined();\n mockWebSocket.onmessage!({\n data: JSON.stringify({\n ...mockMessage,\n query: \"exchange\",\n nonce: 1,\n data: \"e051000000\",\n }),\n type: \"\",\n target: {} as WebSocket,\n });\n\n await new Promise((resolve) => setTimeout(resolve, TEST_DELAY));\n\n expect(sendSpy).toHaveBeenCalledExactlyOnceWith(\n JSON.stringify({\n nonce: 1,\n response: \"success\",\n data: \"9000\",\n }),\n );\n expect(events).toStrictEqual([\n {\n type: SecureChannelEventType.PreExchange,\n payload: {\n nonce: 1,\n apdu: new Uint8Array([0xe0, 0x51, 0x00, 0x00, 0x00]),\n },\n },\n {\n type: SecureChannelEventType.PermissionRequested,\n },\n {\n type: SecureChannelEventType.Exchange,\n payload: {\n nonce: 1,\n apdu: new Uint8Array([0xe0, 0x51, 0x00, 0x00, 0x00]),\n data: new Uint8Array([0x90, 0x00]),\n status: new Uint8Array([0x90, 0x00]),\n },\n },\n {\n type: SecureChannelEventType.PermissionGranted,\n },\n ]);\n });\n\n it(\"should capture and emit device ID on first GetCertificate APDU\", async () => {\n // Mock response for GetCertificate\n const mockResponse = new Uint8Array([\n 0x07, 0x4a, 0x07, 0xa1, 0x52, 0xe6, 0xbb, 0xc1, 0x41, 0x04, 0x1c, 0x74,\n 0x7a, 0x4e, 0x08, 0x1b, 0x5c, 0x1e, 0xd0, 0x27, 0xfc, 0xaf, 0x80, 0xda,\n 0xda, 0x1f, 0x84, 0xfc, 0x8e, 0x43, 0x60, 0xcb, 0x53, 0xc4, 0xb6, 0x9e,\n 0x63, 0xcb, 0x91, 0xb7, 0xca, 0xd3, 0x15, 0x63, 0x68, 0x59, 0x1b, 0xfb,\n 0x05, 0x8f, 0x72, 0x0f, 0x97, 0xaf, 0xc4, 0x73, 0xf9, 0x78, 0x55, 0xfb,\n 0x96, 0xe4, 0x54, 0xd4, 0x80, 0x18, 0x16, 0x00, 0x34, 0x9f, 0xd8, 0xdc,\n 0x12, 0x51, 0x46, 0x30, 0x44, 0x02, 0x20, 0x7e, 0x3c, 0xdd, 0x1d, 0x15,\n 0x08, 0xf6, 0x8d, 0x16, 0x63, 0x4a, 0x3a, 0x1e, 0xe1, 0x97, 0xc4, 0x50,\n 0xc9, 0x17, 0x65, 0xe5, 0xe2, 0x48, 0x24, 0x17, 0xb2, 0x5e, 0xe3, 0xa0,\n 0x19, 0x81, 0xc8, 0x02, 0x20, 0x59, 0x79, 0x5d, 0x09, 0x29, 0xc7, 0xd8,\n 0x4b, 0xad, 0xad, 0xe5, 0x05, 0x0e, 0x3b, 0x21, 0x19, 0x7d, 0xaa, 0xff,\n 0xa3, 0x29, 0xea, 0x07, 0xd5, 0xb4, 0x29, 0x1c, 0xa6, 0xe9, 0x2a, 0x72,\n 0xd9,\n ]);\n\n sendApduFn.mockResolvedValue(\n Right({\n data: mockResponse,\n statusCode: new Uint8Array([0x90, 0x00]),\n }),\n );\n\n // Mock crypto service\n const mockDeviceId = new Uint8Array([0xaa, 0xbb, 0xcc, 0xdd]);\n const mockCryptoService = {\n sha3_256: vi.fn().mockReturnValue(mockDeviceId),\n };\n\n const taskWithMockCrypto = new ConnectToSecureChannelTask(mockInternalApi, {\n connection: Right(mockWebSocket),\n cryptoService: mockCryptoService,\n });\n\n const events: SecureChannelEvent[] = [];\n const obs = taskWithMockCrypto.run();\n obs.subscribe({\n next: (event) => {\n events.push(event);\n },\n });\n\n expect(mockWebSocket.onmessage).toBeDefined();\n // Send GetCertificate APDU (e052000000)\n mockWebSocket.onmessage!({\n data: JSON.stringify({\n ...mockMessage,\n query: \"exchange\",\n nonce: 1,\n data: \"e052000000\",\n }),\n type: \"\",\n target: {} as WebSocket,\n });\n\n await new Promise((resolve) => setTimeout(resolve, TEST_DELAY));\n\n // Verify the mock crypto service was called\n expect(mockCryptoService.sha3_256).toHaveBeenCalledWith(\n Uint8Array.from([\n 0x04, 0x1c, 0x74, 0x7a, 0x4e, 0x08, 0x1b, 0x5c, 0x1e, 0xd0, 0x27, 0xfc,\n 0xaf, 0x80, 0xda, 0xda, 0x1f, 0x84, 0xfc, 0x8e, 0x43, 0x60, 0xcb, 0x53,\n 0xc4, 0xb6, 0x9e, 0x63, 0xcb, 0x91, 0xb7, 0xca, 0xd3, 0x15, 0x63, 0x68,\n 0x59, 0x1b, 0xfb, 0x05, 0x8f, 0x72, 0x0f, 0x97, 0xaf, 0xc4, 0x73, 0xf9,\n 0x78, 0x55, 0xfb, 0x96, 0xe4, 0x54, 0xd4, 0x80, 0x18, 0x16, 0x00, 0x34,\n 0x9f, 0xd8, 0xdc, 0x12, 0x51,\n ]),\n );\n\n // Verify the device ID from the mock crypto service was emitted\n const deviceIdEvent = events.find(\n (e) => e.type === SecureChannelEventType.DeviceId,\n );\n expect(deviceIdEvent).toBeDefined();\n expect(deviceIdEvent?.payload?.deviceId).toBe(mockDeviceId);\n });\n\n it(\"should handle incoming EXCHANGE message with a device error\", async () => {\n sendApduFn.mockResolvedValue(\n Right({\n data: new Uint8Array([]),\n statusCode: new Uint8Array([0x55, 0x15]),\n }),\n );\n\n const sendSpy = vi.spyOn(mockWebSocket, \"send\");\n const events: SecureChannelEvent[] = [];\n const obs = task.run();\n obs.subscribe({\n next: (event) => {\n events.push(event);\n },\n });\n\n expect(mockWebSocket.onmessage).toBeDefined();\n mockWebSocket.onmessage!({\n data: JSON.stringify({\n ...mockMessage,\n query: \"exchange\",\n nonce: 1,\n data: \"e053000000\",\n }),\n type: \"\",\n target: {} as WebSocket,\n });\n\n await new Promise((resolve) => setTimeout(resolve, TEST_DELAY));\n\n expect(sendSpy).toHaveBeenCalledExactlyOnceWith(\n JSON.stringify({\n nonce: 1,\n response: \"error\",\n data: \"\",\n }),\n );\n expect(events).toStrictEqual([\n {\n type: SecureChannelEventType.PreExchange,\n payload: {\n nonce: 1,\n apdu: new Uint8Array([0xe0, 0x53, 0x00, 0x00, 0x00]),\n },\n },\n {\n type: SecureChannelEventType.Error,\n error: new SecureChannelError(\n {\n url: \"wss://test-host.com\",\n errorMessage: \"Device is locked\",\n },\n SecureChannelErrorType.DeviceLocked,\n ),\n },\n ]);\n });\n\n it(\"should handle incoming BULK message\", async () => {\n sendApduFn.mockResolvedValue(\n Right({\n data: new Uint8Array([0x90, 0x00]),\n statusCode: new Uint8Array([0x90, 0x00]),\n }),\n );\n const completeFn: () => void = vi.fn();\n const obs = task.run();\n const events: SecureChannelEvent[] = [];\n obs.subscribe({\n next: (event: SecureChannelEvent) => {\n events.push(event);\n },\n complete: () => completeFn(),\n });\n\n expect(mockWebSocket.onmessage).toBeDefined();\n mockWebSocket.onmessage!({\n data: JSON.stringify({\n ...mockMessage,\n query: \"bulk\",\n nonce: 1,\n data: [\"0000000100\", \"0000000200\", \"0000000300\"],\n }),\n type: \"\",\n target: {} as WebSocket,\n });\n\n await new Promise((resolve) => setTimeout(resolve, TEST_DELAY));\n\n expect(sendApduFn).toHaveBeenCalledTimes(3);\n expect(events).toStrictEqual([\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 0.33, index: 0, total: 3 },\n },\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 0.67, index: 1, total: 3 },\n },\n {\n type: SecureChannelEventType.Progress,\n payload: { progress: 1.0, index: 2, total: 3 },\n },\n ]);\n expect(completeFn).toHaveBeenCalledOnce();\n });\n\n it(\"should handle incoming BULK message with a device error\", async () => {\n sendApduFn.mockResolvedValue(\n Right({\n data: new Uint8Array([]),\n statusCode: new Uint8Array([0x55, 0x01]),\n }),\n );\n const completeFn: () => void = vi.fn();\n const obs = task.run();\n const events: SecureChannelEvent[] = [];\n obs.subscribe({\n next: (event: SecureChannelEvent) => {\n events.push(event);\n },\n complete: () => completeFn(),\n });\n\n expect(mockWebSocket.onmessage).toBeDefined();\n mockWebSocket.onmessage!({\n data: JSON.stringify({\n ...mockMessage,\n query: \"bulk\",\n nonce: 1,\n data: [\"0000000100\", \"0000000200\", \"0000000300\"],\n }),\n type: \"\",\n target: {} as WebSocket,\n });\n\n await new Promise((resolve) => setTimeout(resolve, TEST_DELAY));\n\n expect(sendApduFn).toHaveBeenCalledTimes(1);\n expect(events).toStrictEqual([\n {\n type: SecureChannelEventType.Error,\n error: new SecureChannelError(\n {\n url: \"wss://test-host.com\",\n errorMessage: \"User refused on the device\",\n },\n SecureChannelErrorType.RefusedByUser,\n ),\n },\n ]);\n expect(completeFn).toHaveBeenCalledOnce();\n });\n\n it(\"should handle incoming SUCCESS message\", () => {\n const completeFn: () => void = vi.fn();\n const events: SecureChannelEvent[] = [];\n const observable = task.run();\n observable.subscribe({\n next: (event: SecureChannelEvent) => events.push(event),\n complete: () => completeFn(),\n });\n\n mockWebSocket.onmessage!({\n data: JSON.stringify({\n ...mockMessage,\n query: \"success\",\n nonce: 1,\n result: \"success result\",\n }),\n type: \"\",\n target: {} as WebSocket,\n });\n\n expect(events).toStrictEqual([\n { type: SecureChannelEventType.Result, payload: \"success result\" },\n ]);\n expect(completeFn).toHaveBeenCalledOnce();\n });\n\n it(\"should handle incoming WARNING message\", () => {\n const events: SecureChannelEvent[] = [];\n const observable = task.run();\n observable.subscribe({\n next: (event: SecureChannelEvent) => events.push(event),\n });\n\n expect(mockWebSocket.onmessage).toBeDefined();\n mockWebSocket.onmessage!({\n data: JSON.stringify({\n ...mockMessage,\n query: \"warning\",\n nonce: 1,\n data: \"warning message\",\n }),\n type: \"\",\n target: {} as WebSocket,\n });\n\n expect(events).toStrictEqual([\n {\n type: SecureChannelEventType.Warning,\n payload: { message: \"warning message\" },\n },\n ]);\n });\n\n it(\"should handle incoming ERROR message\", () => {\n const events: SecureChannelEvent[] = [];\n const observable = task.run();\n observable.subscribe({\n next: (event: SecureChannelEvent) => events.push(event),\n });\n\n expect(mockWebSocket.onmessage).toBeDefined();\n mockWebSocket.onmessage!({\n data: JSON.stringify({\n ...mockMessage,\n query: \"error\",\n data: \"My error\",\n }),\n type: \"\",\n target: {} as WebSocket,\n });\n\n expect(events).toStrictEqual([\n {\n type: SecureChannelEventType.Error,\n error: new SecureChannelError({\n url: \"wss://test-host.com\",\n errorMessage: \"My error\",\n }),\n },\n ]);\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["WebSocket", "Right", "describe", "it", "vi", "SecureChannelEventType", "SecureChannelError", "SecureChannelErrorType", "ConnectToSecureChannelTask", "url", "TEST_DELAY", "mockWebSocket", "mockInternalApi", "taskArgs", "task", "sendApduFn", "mockMessage", "_", "events", "e", "resolve", "event", "sendSpy", "mockResponse", "mockDeviceId", "mockCryptoService", "taskWithMockCrypto", "deviceIdEvent", "completeFn", "obs"]
7
- }
@@ -1,2 +0,0 @@
1
- import{ApduResponse as i}from"../device-session/ApduResponse";import{extractPublicKey as n,isDeviceGenuine as r,isGetCertificateApdu as a,willRequestPermission as s}from"./utils";describe("willRequestPermission",()=>{it("should return true if the APDU is a permission request",()=>{const x=new Uint8Array([224,81,0,0,0]);expect(s(x)).toBe(!0)}),it("should return false if the APDU is not a permission request",()=>{const x=new Uint8Array([224,82,0,0,0]);expect(s(x)).toBe(!1)})});describe("isGetCertificateApdu",()=>{it("should return true if the APDU is a GetCertificate command",()=>{const x=new Uint8Array([224,82,0,0,0]);expect(a(x)).toBe(!0)}),it("should return true for GetCertificate with different P1 and P2",()=>{const x=new Uint8Array([224,82,128,1,0]);expect(a(x)).toBe(!0)}),it("should return false if the APDU is not a GetCertificate command",()=>{const x=new Uint8Array([224,81,0,0,0]);expect(a(x)).toBe(!1)})});describe("extractPublicKey",()=>{it("should extract public key from a valid GetCertificate response",()=>{const x=new Uint8Array([7,74,7,161,82,230,187,193,65,4,28,116,122,78,8,27,92,30,208,39,252,175,128,218,218,31,132,252,142,67,96,203,83,196,182,158,99,203,145,183,202,211,21,99,104,89,27,251,5,143,114,15,151,175,196,115,249,120,85,251,150,228,84,212,128,24,22,0,52,159,216,220,18,81,70,48,68,2,32,126,60,221,29,21,8,246,141,22,99,74,58,30,225,151,196,80,201,23,101,229,226,72,36,23,178,94,227,160,25,129,200,2,32,89,121,93,9,41,199,216,75,173,173,229,5,14,59,33,25,125,170,255,163,41,234,7,213,180,41,28,166,233,42,114,217]),t=new i({statusCode:new Uint8Array([144,0]),data:x}),e=n(t);expect(e).not.toBeNull(),expect(e?.length).toBe(65),expect(e?.[0]).toBe(4),expect(e?.[64]).toBe(81)}),it("should return null for invalid response with missing header",()=>{const x=new i({statusCode:new Uint8Array([144,0]),data:new Uint8Array([])}),t=n(x);expect(t).toBeNull()}),it("should return null for invalid response with missing public key",()=>{const x=new Uint8Array([7,74,7,161,82,230,187,193]),t=new i({statusCode:new Uint8Array([144,0]),data:x}),e=n(t);expect(e).toBeNull()})});describe("isDeviceGenuine",()=>{it("should return true if the device is genuine",()=>{expect(r("0000")).toBe(!0)}),it("should return false if the device is not genuine",()=>{expect(r("not genuine")).toBe(!1)})});
2
- //# sourceMappingURL=utils.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/api/secure-channel/utils.test.ts"],
4
- "sourcesContent": ["import { ApduResponse } from \"@api/device-session/ApduResponse\";\n\nimport {\n extractPublicKey,\n isDeviceGenuine,\n isGetCertificateApdu,\n willRequestPermission,\n} from \"./utils\";\n\ndescribe(\"willRequestPermission\", () => {\n it(\"should return true if the APDU is a permission request\", () => {\n const apdu = new Uint8Array([0xe0, 0x51, 0x00, 0x00, 0x00]);\n expect(willRequestPermission(apdu)).toBe(true);\n });\n it(\"should return false if the APDU is not a permission request\", () => {\n const apdu = new Uint8Array([0xe0, 0x52, 0x00, 0x00, 0x00]);\n expect(willRequestPermission(apdu)).toBe(false);\n });\n});\n\ndescribe(\"isGetCertificateApdu\", () => {\n it(\"should return true if the APDU is a GetCertificate command\", () => {\n const apdu = new Uint8Array([0xe0, 0x52, 0x00, 0x00, 0x00]);\n expect(isGetCertificateApdu(apdu)).toBe(true);\n });\n it(\"should return true for GetCertificate with different P1 and P2\", () => {\n const apdu = new Uint8Array([0xe0, 0x52, 0x80, 0x01, 0x00]);\n expect(isGetCertificateApdu(apdu)).toBe(true);\n });\n it(\"should return false if the APDU is not a GetCertificate command\", () => {\n const apdu = new Uint8Array([0xe0, 0x51, 0x00, 0x00, 0x00]);\n expect(isGetCertificateApdu(apdu)).toBe(false);\n });\n});\n\ndescribe(\"extractPublicKey\", () => {\n it(\"should extract public key from a valid GetCertificate response\", () => {\n const responseData = new Uint8Array([\n 0x07, 0x4a, 0x07, 0xa1, 0x52, 0xe6, 0xbb, 0xc1, 0x41, 0x04, 0x1c, 0x74,\n 0x7a, 0x4e, 0x08, 0x1b, 0x5c, 0x1e, 0xd0, 0x27, 0xfc, 0xaf, 0x80, 0xda,\n 0xda, 0x1f, 0x84, 0xfc, 0x8e, 0x43, 0x60, 0xcb, 0x53, 0xc4, 0xb6, 0x9e,\n 0x63, 0xcb, 0x91, 0xb7, 0xca, 0xd3, 0x15, 0x63, 0x68, 0x59, 0x1b, 0xfb,\n 0x05, 0x8f, 0x72, 0x0f, 0x97, 0xaf, 0xc4, 0x73, 0xf9, 0x78, 0x55, 0xfb,\n 0x96, 0xe4, 0x54, 0xd4, 0x80, 0x18, 0x16, 0x00, 0x34, 0x9f, 0xd8, 0xdc,\n 0x12, 0x51, 0x46, 0x30, 0x44, 0x02, 0x20, 0x7e, 0x3c, 0xdd, 0x1d, 0x15,\n 0x08, 0xf6, 0x8d, 0x16, 0x63, 0x4a, 0x3a, 0x1e, 0xe1, 0x97, 0xc4, 0x50,\n 0xc9, 0x17, 0x65, 0xe5, 0xe2, 0x48, 0x24, 0x17, 0xb2, 0x5e, 0xe3, 0xa0,\n 0x19, 0x81, 0xc8, 0x02, 0x20, 0x59, 0x79, 0x5d, 0x09, 0x29, 0xc7, 0xd8,\n 0x4b, 0xad, 0xad, 0xe5, 0x05, 0x0e, 0x3b, 0x21, 0x19, 0x7d, 0xaa, 0xff,\n 0xa3, 0x29, 0xea, 0x07, 0xd5, 0xb4, 0x29, 0x1c, 0xa6, 0xe9, 0x2a, 0x72,\n 0xd9,\n ]);\n\n const response = new ApduResponse({\n statusCode: new Uint8Array([0x90, 0x00]),\n data: responseData,\n });\n\n const publicKey = extractPublicKey(response);\n\n expect(publicKey).not.toBeNull();\n expect(publicKey?.length).toBe(65);\n expect(publicKey?.[0]).toBe(0x04);\n expect(publicKey?.[64]).toBe(0x51);\n });\n\n it(\"should return null for invalid response with missing header\", () => {\n const response = new ApduResponse({\n statusCode: new Uint8Array([0x90, 0x00]),\n data: new Uint8Array([]),\n });\n\n const publicKey = extractPublicKey(response);\n\n expect(publicKey).toBeNull();\n });\n\n it(\"should return null for invalid response with missing public key\", () => {\n const responseData = new Uint8Array([\n 0x07, 0x4a, 0x07, 0xa1, 0x52, 0xe6, 0xbb, 0xc1,\n ]);\n\n const response = new ApduResponse({\n statusCode: new Uint8Array([0x90, 0x00]),\n data: responseData,\n });\n\n const publicKey = extractPublicKey(response);\n\n expect(publicKey).toBeNull();\n });\n});\n\ndescribe(\"isDeviceGenuine\", () => {\n it(\"should return true if the device is genuine\", () => {\n const payload = \"0000\";\n expect(isDeviceGenuine(payload)).toBe(true);\n });\n it(\"should return false if the device is not genuine\", () => {\n const payload = \"not genuine\";\n expect(isDeviceGenuine(payload)).toBe(false);\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["ApduResponse", "extractPublicKey", "isDeviceGenuine", "isGetCertificateApdu", "willRequestPermission", "apdu", "responseData", "response", "publicKey"]
7
- }
@@ -1,2 +0,0 @@
1
- import{Left as A,Right as n}from"purify-ts/Either";import{afterEach as y,beforeEach as U,describe as m,expect as e,it as c,vi as i}from"vitest";import{ApduResponse as x}from"../../device-session/ApduResponse";import{DeviceConnectionStateMachine as w}from"./DeviceConnectionStateMachine";import{DeviceDisconnectedWhileSendingError as f}from"./Errors";m("DeviceConnectionStateMachine",()=>{let o;const s={sendApdu:i.fn(),getDependencies:i.fn(),setDependencies:i.fn(),closeConnection:i.fn(),setupConnection:i.fn()},t=new x({statusCode:Uint8Array.from([144,0]),data:new Uint8Array}),v=new x({statusCode:Uint8Array.from([102,1]),data:new Uint8Array});U(()=>{i.useFakeTimers(),o=new w({deviceId:"deviceId",deviceApduSender:s,timeoutDuration:1e3,tryToReconnect:i.fn(),onTerminated:i.fn()})}),y(()=>{i.useRealTimers(),i.restoreAllMocks()}),m("Send APDUs",()=>{c("should send APDU successfully",async()=>{const d=Uint8Array.from([1,2,3,4]);s.sendApdu.mockResolvedValue(n(t));const a=await o.sendApdu(d);e(s.sendApdu).toHaveBeenCalledTimes(1),e(a).toStrictEqual(n(t))}),c("should send several APDUs successfully",async()=>{const d=Uint8Array.from([1,2,3,4]),a=Uint8Array.from([9,2,3,4]);s.sendApdu.mockResolvedValue(n(t));const r=await o.sendApdu(d),u=await o.sendApdu(a);e(s.sendApdu).toHaveBeenCalledTimes(2),e(r).toStrictEqual(n(t)),e(u).toStrictEqual(n(t))}),c("should not send several APDUs in parallel",async()=>{const d=Uint8Array.from([1,2,3,4]),a=Uint8Array.from([9,2,3,4]);s.sendApdu.mockResolvedValue(n(t));const r=o.sendApdu(d),u=o.sendApdu(a),l=await r,p=await u;e(s.sendApdu).toHaveBeenCalledTimes(2),e(l).toStrictEqual(n(t)),e(p).toStrictEqual(n(t))}),c("Disconnected while sending APDU",async()=>{const d=Uint8Array.from([1,2,3,4]);s.sendApdu.mockResolvedValue(n(t));const a=o.sendApdu(d);o.eventDeviceDisconnected();const r=await a;e(s.sendApdu).toHaveBeenCalledTimes(1),e(r).toStrictEqual(A(new f))}),c("Request disconnection while sending APDU",async()=>{const d=Uint8Array.from([1,2,3,4]);s.sendApdu.mockResolvedValue(n(t));const a=o.sendApdu(d);o.closeConnection();const r=await a;e(s.sendApdu).toHaveBeenCalledTimes(1),e(r).toStrictEqual(A(new f))})}),m("Send APDUs triggering disconnection",()=>{c("should send one APDU successfully",async()=>{const d=Uint8Array.from([1,2,3,4]);s.sendApdu.mockResolvedValue(n(t));const a=await o.sendApdu(d,!0);e(s.sendApdu).toHaveBeenCalledTimes(2),e(s.sendApdu.mock.calls).toEqual([[d,!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0]]),e(a).toStrictEqual(n(t))}),c("should send several APDUs successfully",async()=>{const d=Uint8Array.from([1,2,3,4]),a=Uint8Array.from([9,2,3,4]);s.sendApdu.mockResolvedValueOnce(n(t)).mockRejectedValueOnce(new Error("Transport error")).mockResolvedValueOnce(n(t));const r=o.sendApdu(d,!0);await Promise.resolve(),o.eventDeviceDisconnected(),o.eventDeviceConnected();const u=o.sendApdu(a),l=await r,p=await u;e(s.sendApdu).toHaveBeenCalledTimes(3),e(s.sendApdu.mock.calls).toEqual([[d,!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0],[a,!1,void 0]]),e(l).toStrictEqual(n(t)),e(p).toStrictEqual(n(t))}),c("should send a second APDU after reconnection",async()=>{const d=Uint8Array.from([1,2,3,4]),a=Uint8Array.from([9,2,3,4]);s.sendApdu.mockResolvedValueOnce(n(t)).mockRejectedValueOnce(new Error("Transport error")).mockResolvedValueOnce(n(t));const r=await o.sendApdu(d,!0);o.eventDeviceDisconnected(),o.eventDeviceConnected();const u=await o.sendApdu(a);e(s.sendApdu).toHaveBeenCalledTimes(3),e(s.sendApdu.mock.calls).toEqual([[d,!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0],[a,!1,void 0]]),e(r).toStrictEqual(n(t)),e(u).toStrictEqual(n(t))}),c("should send a second APDU without reconnection, after GetAppAndVersion response",async()=>{const d=Uint8Array.from([1,2,3,4]),a=Uint8Array.from([9,2,3,4]);s.sendApdu.mockResolvedValueOnce(n(t)).mockResolvedValueOnce(n(t)).mockResolvedValueOnce(n(t));const r=await o.sendApdu(d,!0),u=await o.sendApdu(a);e(s.sendApdu).toHaveBeenCalledTimes(3),e(s.sendApdu.mock.calls).toEqual([[d,!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0],[a,!1,void 0]]),e(r).toStrictEqual(n(t)),e(u).toStrictEqual(n(t))}),c("should send a second APDU without reconnection, after GetAppAndVersion retries",async()=>{const d=Uint8Array.from([1,2,3,4]),a=Uint8Array.from([9,2,3,4]);s.sendApdu.mockResolvedValueOnce(n(t)).mockResolvedValueOnce(n(v)).mockResolvedValueOnce(n(v)).mockResolvedValueOnce(n(t)).mockResolvedValueOnce(n(t));const r=await o.sendApdu(d,!0),u=await o.sendApdu(a);e(s.sendApdu).toHaveBeenCalledTimes(5),e(s.sendApdu.mock.calls).toEqual([[d,!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0],[a,!1,void 0]]),e(r).toStrictEqual(n(t)),e(u).toStrictEqual(n(t))}),c("should not send several APDUs in parallel",async()=>{const d=Uint8Array.from([1,2,3,4]),a=Uint8Array.from([9,2,3,4]);s.sendApdu.mockResolvedValue(n(t));const r=o.sendApdu(d,!0),u=o.sendApdu(a),l=await r,p=await u;e(s.sendApdu).toHaveBeenCalledTimes(3),e(s.sendApdu.mock.calls).toEqual([[d,!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0],[a,!1,void 0]]),e(l).toStrictEqual(n(t)),e(p).toStrictEqual(n(t))}),c("should send another APDU in promise handler",async()=>{const d=Uint8Array.from([1,2,3,4]),a=Uint8Array.from([9,2,3,4]);s.sendApdu.mockResolvedValue(n(t));let r;const u=await o.sendApdu(d,!0).then(p=>(r=o.sendApdu(a),p));o.eventDeviceDisconnected(),o.eventDeviceConnected();const l=await r;e(s.sendApdu).toHaveBeenCalledTimes(3),e(s.sendApdu.mock.calls).toEqual([[d,!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0],[a,!1,void 0]]),e(u).toStrictEqual(n(t)),e(l).toStrictEqual(n(t))}),c("send an APDU while device is reconnecting",async()=>{const d=Uint8Array.from([1,2,3,4]);s.sendApdu.mockResolvedValue(n(t)),o.eventDeviceDisconnected();const a=o.sendApdu(d,!0);o.eventDeviceConnected();const r=await a;e(s.sendApdu).toHaveBeenCalledTimes(2),e(s.sendApdu.mock.calls).toEqual([[d,!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0]]),e(r).toStrictEqual(n(t))}),c("Close while an APDU is waiting for reconnection",async()=>{const d=Uint8Array.from([1,2,3,4]),a=Uint8Array.from([9,2,3,4]);s.sendApdu.mockResolvedValue(n(t));let r;const u=o.sendApdu(d,!0);await Promise.resolve(),o.eventDeviceDisconnected();const l=await u;r=o.sendApdu(a),o.closeConnection();const p=await r;e(s.sendApdu.mock.calls).toEqual([[d,!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0]]),e(l).toStrictEqual(n(t)),e(p).toStrictEqual(A(new f))})})});
2
- //# sourceMappingURL=DeviceConnectionStateMachine.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/api/transport/model/DeviceConnectionStateMachine.test.ts"],
4
- "sourcesContent": ["import { Left, Right } from \"purify-ts/Either\";\nimport { afterEach, beforeEach, describe, expect, it, vi } from \"vitest\";\n\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\n\nimport { type SendApduResult } from \"./DeviceConnection\";\nimport { DeviceConnectionStateMachine } from \"./DeviceConnectionStateMachine\";\nimport { DeviceDisconnectedWhileSendingError } from \"./Errors\";\n\ndescribe(\"DeviceConnectionStateMachine\", () => {\n let machine: DeviceConnectionStateMachine<void>;\n const mockApduSender = {\n sendApdu: vi.fn(),\n getDependencies: vi.fn(),\n setDependencies: vi.fn(),\n closeConnection: vi.fn(),\n setupConnection: vi.fn(),\n };\n\n const apduResponse = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n });\n const apduResponseErrorBusy = new ApduResponse({\n statusCode: Uint8Array.from([0x66, 0x01]),\n data: new Uint8Array(),\n });\n\n beforeEach(() => {\n vi.useFakeTimers();\n machine = new DeviceConnectionStateMachine<void>({\n deviceId: \"deviceId\",\n deviceApduSender: mockApduSender,\n timeoutDuration: 1000,\n tryToReconnect: vi.fn(),\n onTerminated: vi.fn(),\n });\n });\n\n afterEach(() => {\n vi.useRealTimers();\n vi.restoreAllMocks();\n });\n\n describe(\"Send APDUs\", () => {\n it(\"should send APDU successfully\", async () => {\n // GIVEN\n const apdu = Uint8Array.from([1, 2, 3, 4]);\n mockApduSender.sendApdu.mockResolvedValue(Right(apduResponse));\n\n // WHEN\n const result = await machine.sendApdu(apdu);\n\n // THEN\n expect(mockApduSender.sendApdu).toHaveBeenCalledTimes(1);\n expect(result).toStrictEqual(Right(apduResponse));\n });\n\n it(\"should send several APDUs successfully\", async () => {\n // GIVEN\n const apdu = Uint8Array.from([1, 2, 3, 4]);\n const apdu2 = Uint8Array.from([9, 2, 3, 4]);\n mockApduSender.sendApdu.mockResolvedValue(Right(apduResponse));\n\n // WHEN\n const result = await machine.sendApdu(apdu);\n const result2 = await machine.sendApdu(apdu2);\n\n // THEN\n expect(mockApduSender.sendApdu).toHaveBeenCalledTimes(2);\n expect(result).toStrictEqual(Right(apduResponse));\n expect(result2).toStrictEqual(Right(apduResponse));\n });\n\n it(\"should not send several APDUs in parallel\", async () => {\n // GIVEN\n const apdu = Uint8Array.from([1, 2, 3, 4]);\n const apdu2 = Uint8Array.from([9, 2, 3, 4]);\n mockApduSender.sendApdu.mockResolvedValue(Right(apduResponse));\n\n // WHEN\n const promise = machine.sendApdu(apdu);\n const promise2 = machine.sendApdu(apdu2);\n const result = await promise;\n const result2 = await promise2;\n\n // THEN\n // With the race condition fix, second APDU waits and then sends sequentially\n expect(mockApduSender.sendApdu).toHaveBeenCalledTimes(2);\n expect(result).toStrictEqual(Right(apduResponse));\n expect(result2).toStrictEqual(Right(apduResponse));\n });\n\n it(\"Disconnected while sending APDU\", async () => {\n // GIVEN\n const apdu = Uint8Array.from([1, 2, 3, 4]);\n mockApduSender.sendApdu.mockResolvedValue(Right(apduResponse));\n\n // WHEN\n const promise = machine.sendApdu(apdu);\n machine.eventDeviceDisconnected();\n const result = await promise;\n\n // THEN\n expect(mockApduSender.sendApdu).toHaveBeenCalledTimes(1);\n expect(result).toStrictEqual(\n Left(new DeviceDisconnectedWhileSendingError()),\n );\n });\n\n it(\"Request disconnection while sending APDU\", async () => {\n // GIVEN\n const apdu = Uint8Array.from([1, 2, 3, 4]);\n mockApduSender.sendApdu.mockResolvedValue(Right(apduResponse));\n\n // WHEN\n const promise = machine.sendApdu(apdu);\n machine.closeConnection();\n const result = await promise;\n\n // THEN\n expect(mockApduSender.sendApdu).toHaveBeenCalledTimes(1);\n expect(result).toStrictEqual(\n Left(new DeviceDisconnectedWhileSendingError()),\n );\n });\n });\n\n describe(\"Send APDUs triggering disconnection\", () => {\n it(\"should send one APDU successfully\", async () => {\n // GIVEN\n const apdu = Uint8Array.from([1, 2, 3, 4]);\n mockApduSender.sendApdu.mockResolvedValue(Right(apduResponse));\n\n // WHEN\n const result = await machine.sendApdu(apdu, true);\n\n // THEN\n expect(mockApduSender.sendApdu).toHaveBeenCalledTimes(2);\n expect(mockApduSender.sendApdu.mock.calls).toEqual([\n [apdu, false, undefined],\n [Uint8Array.from([0xb0, 0x01, 0x00, 0x00, 0x00]), false, undefined], // GetAppAndVersion APDU sent after a successful result from an APDU that triggers disconnection\n ]);\n expect(result).toStrictEqual(Right(apduResponse));\n });\n\n it(\"should send several APDUs successfully\", async () => {\n // GIVEN\n const apdu = Uint8Array.from([1, 2, 3, 4]);\n const apdu2 = Uint8Array.from([9, 2, 3, 4]);\n mockApduSender.sendApdu\n .mockResolvedValueOnce(Right(apduResponse))\n .mockRejectedValueOnce(new Error(\"Transport error\"))\n .mockResolvedValueOnce(Right(apduResponse));\n\n // WHEN\n const promise1 = machine.sendApdu(apdu, true);\n await Promise.resolve(); // Allow the first APDU to be sent and processed before the disconnection event\n machine.eventDeviceDisconnected();\n machine.eventDeviceConnected();\n const promise2 = machine.sendApdu(apdu2);\n const result1 = await promise1;\n const result2 = await promise2;\n\n // THEN\n expect(mockApduSender.sendApdu).toHaveBeenCalledTimes(3);\n expect(mockApduSender.sendApdu.mock.calls).toEqual([\n [apdu, false, undefined],\n [Uint8Array.from([0xb0, 0x01, 0x00, 0x00, 0x00]), false, undefined], // GetAppAndVersion APDU sent after a successful result from an APDU that triggers disconnection\n [apdu2, false, undefined],\n ]);\n\n expect(result1).toStrictEqual(Right(apduResponse));\n expect(result2).toStrictEqual(Right(apduResponse));\n });\n\n it(\"should send a second APDU after reconnection\", async () => {\n // GIVEN\n const apdu = Uint8Array.from([1, 2, 3, 4]);\n const apdu2 = Uint8Array.from([9, 2, 3, 4]);\n mockApduSender.sendApdu\n .mockResolvedValueOnce(Right(apduResponse))\n .mockRejectedValueOnce(new Error(\"Transport error\"))\n .mockResolvedValueOnce(Right(apduResponse));\n\n // WHEN\n const result = await machine.sendApdu(apdu, true);\n machine.eventDeviceDisconnected();\n machine.eventDeviceConnected();\n const result2 = await machine.sendApdu(apdu2);\n\n // THEN\n expect(mockApduSender.sendApdu).toHaveBeenCalledTimes(3);\n expect(mockApduSender.sendApdu.mock.calls).toEqual([\n [apdu, false, undefined],\n [Uint8Array.from([0xb0, 0x01, 0x00, 0x00, 0x00]), false, undefined], // GetAppAndVersion APDU sent after a successful result from an APDU that triggers disconnection\n [apdu2, false, undefined],\n ]);\n expect(result).toStrictEqual(Right(apduResponse));\n expect(result2).toStrictEqual(Right(apduResponse));\n });\n\n it(\"should send a second APDU without reconnection, after GetAppAndVersion response\", async () => {\n // GIVEN\n const apdu = Uint8Array.from([1, 2, 3, 4]);\n const apdu2 = Uint8Array.from([9, 2, 3, 4]);\n mockApduSender.sendApdu\n .mockResolvedValueOnce(Right(apduResponse))\n .mockResolvedValueOnce(Right(apduResponse))\n .mockResolvedValueOnce(Right(apduResponse));\n\n // WHEN\n const result = await machine.sendApdu(apdu, true);\n const result2 = await machine.sendApdu(apdu2);\n\n // THEN\n expect(mockApduSender.sendApdu).toHaveBeenCalledTimes(3);\n expect(mockApduSender.sendApdu.mock.calls).toEqual([\n [apdu, false, undefined],\n [Uint8Array.from([0xb0, 0x01, 0x00, 0x00, 0x00]), false, undefined], // GetAppAndVersion APDU sent after a successful result from an APDU that triggers disconnection\n [apdu2, false, undefined],\n ]);\n expect(result).toStrictEqual(Right(apduResponse));\n expect(result2).toStrictEqual(Right(apduResponse));\n });\n\n it(\"should send a second APDU without reconnection, after GetAppAndVersion retries\", async () => {\n // GIVEN\n const apdu = Uint8Array.from([1, 2, 3, 4]);\n const apdu2 = Uint8Array.from([9, 2, 3, 4]);\n mockApduSender.sendApdu\n .mockResolvedValueOnce(Right(apduResponse))\n .mockResolvedValueOnce(Right(apduResponseErrorBusy))\n .mockResolvedValueOnce(Right(apduResponseErrorBusy))\n .mockResolvedValueOnce(Right(apduResponse))\n .mockResolvedValueOnce(Right(apduResponse));\n\n // WHEN\n const result = await machine.sendApdu(apdu, true);\n const result2 = await machine.sendApdu(apdu2);\n\n // THEN\n expect(mockApduSender.sendApdu).toHaveBeenCalledTimes(5);\n expect(mockApduSender.sendApdu.mock.calls).toEqual([\n [apdu, false, undefined],\n [Uint8Array.from([0xb0, 0x01, 0x00, 0x00, 0x00]), false, undefined],\n [Uint8Array.from([0xb0, 0x01, 0x00, 0x00, 0x00]), false, undefined],\n [Uint8Array.from([0xb0, 0x01, 0x00, 0x00, 0x00]), false, undefined],\n [apdu2, false, undefined],\n ]);\n expect(result).toStrictEqual(Right(apduResponse));\n expect(result2).toStrictEqual(Right(apduResponse));\n });\n\n it(\"should not send several APDUs in parallel\", async () => {\n // GIVEN\n const apdu = Uint8Array.from([1, 2, 3, 4]);\n const apdu2 = Uint8Array.from([9, 2, 3, 4]);\n mockApduSender.sendApdu.mockResolvedValue(Right(apduResponse));\n\n // WHEN\n const promise = machine.sendApdu(apdu, true);\n const promise2 = machine.sendApdu(apdu2);\n const result = await promise;\n const result2 = await promise2;\n\n // THEN\n // With the race condition fix, second APDU waits and then sends sequentially\n // First APDU triggers disconnection flow, which sends GetAppAndVersion, then the second APDU is sent\n expect(mockApduSender.sendApdu).toHaveBeenCalledTimes(3);\n expect(mockApduSender.sendApdu.mock.calls).toEqual([\n [apdu, false, undefined],\n [Uint8Array.from([0xb0, 0x01, 0x00, 0x00, 0x00]), false, undefined], // GetAppAndVersion APDU sent after a successful result from an APDU that triggers disconnection\n [apdu2, false, undefined], // Second APDU sent after waiting\n ]);\n expect(result).toStrictEqual(Right(apduResponse));\n expect(result2).toStrictEqual(Right(apduResponse));\n });\n\n it(\"should send another APDU in promise handler\", async () => {\n // GIVEN\n const apdu = Uint8Array.from([1, 2, 3, 4]);\n const apdu2 = Uint8Array.from([9, 2, 3, 4]);\n mockApduSender.sendApdu.mockResolvedValue(Right(apduResponse));\n\n // WHEN\n let promise: Promise<SendApduResult> | undefined = undefined;\n const result = await machine.sendApdu(apdu, true).then((value) => {\n promise = machine.sendApdu(apdu2);\n return value;\n });\n machine.eventDeviceDisconnected();\n machine.eventDeviceConnected();\n const result2 = await promise!;\n\n // THEN\n expect(mockApduSender.sendApdu).toHaveBeenCalledTimes(3);\n expect(mockApduSender.sendApdu.mock.calls).toEqual([\n [apdu, false, undefined],\n [Uint8Array.from([0xb0, 0x01, 0x00, 0x00, 0x00]), false, undefined], // GetAppAndVersion APDU sent after a successful result from an APDU that triggers disconnection\n [apdu2, false, undefined],\n ]);\n expect(result).toStrictEqual(Right(apduResponse));\n expect(result2).toStrictEqual(Right(apduResponse));\n });\n\n it(\"send an APDU while device is reconnecting\", async () => {\n // GIVEN\n const apdu = Uint8Array.from([1, 2, 3, 4]);\n mockApduSender.sendApdu.mockResolvedValue(Right(apduResponse));\n\n // WHEN\n machine.eventDeviceDisconnected();\n const promise = machine.sendApdu(apdu, true);\n machine.eventDeviceConnected();\n const result = await promise;\n\n // THEN\n expect(mockApduSender.sendApdu).toHaveBeenCalledTimes(2);\n expect(mockApduSender.sendApdu.mock.calls).toEqual([\n [apdu, false, undefined],\n [Uint8Array.from([0xb0, 0x01, 0x00, 0x00, 0x00]), false, undefined], // GetAppAndVersion APDU sent after a successful result from an APDU that triggers disconnection\n ]);\n expect(result).toStrictEqual(Right(apduResponse));\n });\n\n it(\"Close while an APDU is waiting for reconnection\", async () => {\n // GIVEN\n const apdu = Uint8Array.from([1, 2, 3, 4]);\n const apdu2 = Uint8Array.from([9, 2, 3, 4]);\n mockApduSender.sendApdu.mockResolvedValue(Right(apduResponse));\n\n // WHEN\n let promise: Promise<SendApduResult> | undefined = undefined;\n const promise1 = machine.sendApdu(apdu, true);\n await Promise.resolve(); // Allow the first APDU promise to resolve before triggering disconnection\n machine.eventDeviceDisconnected();\n const result1 = await promise1;\n promise = machine.sendApdu(apdu2);\n machine.closeConnection();\n const result2 = await promise!;\n\n // THEN\n // expect(mockApduSender.sendApdu).toHaveBeenCalledTimes(2);\n expect(mockApduSender.sendApdu.mock.calls).toEqual([\n [apdu, false, undefined],\n [Uint8Array.from([0xb0, 0x01, 0x00, 0x00, 0x00]), false, undefined], // GetAppAndVersion APDU sent after a successful result from an APDU that triggers disconnection\n ]);\n expect(result1).toStrictEqual(Right(apduResponse));\n expect(result2).toStrictEqual(\n Left(new DeviceDisconnectedWhileSendingError()),\n );\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["Left", "Right", "afterEach", "beforeEach", "describe", "expect", "it", "vi", "ApduResponse", "DeviceConnectionStateMachine", "DeviceDisconnectedWhileSendingError", "machine", "mockApduSender", "apduResponse", "apduResponseErrorBusy", "apdu", "result", "apdu2", "result2", "promise", "promise2", "promise1", "result1", "value"]
7
- }
@@ -1,2 +0,0 @@
1
- import{Right as r}from"purify-ts";import{deviceModelStubBuilder as o}from"../../device-model/model/DeviceModel.stub";import{defaultApduResponseStubBuilder as c}from"../../device-session/ApduResponse.stub";import{TransportConnectedDevice as i}from"./TransportConnectedDevice";import{connectedDeviceStubBuilder as n}from"./TransportConnectedDevice.stub";describe("TransportConnectedDevice",()=>{let e;beforeEach(()=>{e=n()}),it("should create an instance",()=>{expect(e).toBeDefined(),expect(e).toBeInstanceOf(i)}),it("should return the correct id",()=>{expect(e.id).toEqual("42")}),it("should return the correct device model",()=>{expect(JSON.stringify(e.deviceModel)).toEqual(JSON.stringify(o()))}),it("should return the correct type",()=>{expect(e.type).toEqual("MOCK")}),it("should return the correct send apdu response",async()=>{const t=await e.sendApdu(new Uint8Array);expect(t).toMatchObject(r(c()))})});
2
- //# sourceMappingURL=TransportConnectedDevice.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/api/transport/model/TransportConnectedDevice.test.ts"],
4
- "sourcesContent": ["import { Right } from \"purify-ts\";\n\nimport { deviceModelStubBuilder } from \"@api/device-model/model/DeviceModel.stub\";\nimport { defaultApduResponseStubBuilder } from \"@api/device-session/ApduResponse.stub\";\n\nimport { TransportConnectedDevice } from \"./TransportConnectedDevice\";\nimport { connectedDeviceStubBuilder } from \"./TransportConnectedDevice.stub\";\n\ndescribe(\"TransportConnectedDevice\", () => {\n let connectedDevice: TransportConnectedDevice;\n\n beforeEach(() => {\n connectedDevice = connectedDeviceStubBuilder();\n });\n\n it(\"should create an instance\", () => {\n expect(connectedDevice).toBeDefined();\n expect(connectedDevice).toBeInstanceOf(TransportConnectedDevice);\n });\n\n it(\"should return the correct id\", () => {\n expect(connectedDevice.id).toEqual(\"42\");\n });\n\n it(\"should return the correct device model\", () => {\n expect(JSON.stringify(connectedDevice.deviceModel)).toEqual(\n JSON.stringify(deviceModelStubBuilder()),\n );\n });\n\n it(\"should return the correct type\", () => {\n expect(connectedDevice.type).toEqual(\"MOCK\");\n });\n\n it(\"should return the correct send apdu response\", async () => {\n const res = await connectedDevice.sendApdu(new Uint8Array());\n expect(res).toMatchObject(Right(defaultApduResponseStubBuilder()));\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,SAAAA,MAAa,YAEtB,OAAS,0BAAAC,MAA8B,2CACvC,OAAS,kCAAAC,MAAsC,wCAE/C,OAAS,4BAAAC,MAAgC,6BACzC,OAAS,8BAAAC,MAAkC,kCAE3C,SAAS,2BAA4B,IAAM,CACzC,IAAIC,EAEJ,WAAW,IAAM,CACfA,EAAkBD,EAA2B,CAC/C,CAAC,EAED,GAAG,4BAA6B,IAAM,CACpC,OAAOC,CAAe,EAAE,YAAY,EACpC,OAAOA,CAAe,EAAE,eAAeF,CAAwB,CACjE,CAAC,EAED,GAAG,+BAAgC,IAAM,CACvC,OAAOE,EAAgB,EAAE,EAAE,QAAQ,IAAI,CACzC,CAAC,EAED,GAAG,yCAA0C,IAAM,CACjD,OAAO,KAAK,UAAUA,EAAgB,WAAW,CAAC,EAAE,QAClD,KAAK,UAAUJ,EAAuB,CAAC,CACzC,CACF,CAAC,EAED,GAAG,iCAAkC,IAAM,CACzC,OAAOI,EAAgB,IAAI,EAAE,QAAQ,MAAM,CAC7C,CAAC,EAED,GAAG,+CAAgD,SAAY,CAC7D,MAAMC,EAAM,MAAMD,EAAgB,SAAS,IAAI,UAAY,EAC3D,OAAOC,CAAG,EAAE,cAAcN,EAAME,EAA+B,CAAC,CAAC,CACnE,CAAC,CACH,CAAC",
6
- "names": ["Right", "deviceModelStubBuilder", "defaultApduResponseStubBuilder", "TransportConnectedDevice", "connectedDeviceStubBuilder", "connectedDevice", "res"]
7
- }
@@ -1,2 +0,0 @@
1
- class n{constructor(){}getIdentifier=vi.fn();isSupported=vi.fn();startDiscovering=vi.fn();stopDiscovering=vi.fn();listenToAvailableDevices=vi.fn();connect=vi.fn();disconnect=vi.fn()}export{n as TransportMock};
2
- //# sourceMappingURL=TransportMock.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../../src/api/transport/model/__mocks__/TransportMock.ts"],
4
- "sourcesContent": ["import { type Transport } from \"@api/transport/model/Transport\";\n\nexport class TransportMock implements Transport {\n constructor() {}\n getIdentifier = vi.fn();\n isSupported = vi.fn();\n startDiscovering = vi.fn();\n stopDiscovering = vi.fn();\n listenToAvailableDevices = vi.fn();\n connect = vi.fn();\n disconnect = vi.fn();\n}\n"],
5
- "mappings": "AAEO,MAAMA,CAAmC,CAC9C,aAAc,CAAC,CACf,cAAgB,GAAG,GAAG,EACtB,YAAc,GAAG,GAAG,EACpB,iBAAmB,GAAG,GAAG,EACzB,gBAAkB,GAAG,GAAG,EACxB,yBAA2B,GAAG,GAAG,EACjC,QAAU,GAAG,GAAG,EAChB,WAAa,GAAG,GAAG,CACrB",
6
- "names": ["TransportMock"]
7
- }
@@ -1,2 +0,0 @@
1
- import{isDashboardName as t}from"./AppName";describe("AppName",()=>{describe("isDashboardName",()=>{it("should return true if the value is BOLOS",()=>{const e=t("BOLOS");expect(e).toBeTruthy()}),it("should return true if the value is OLOS",()=>{const e=t("OLOS\0");expect(e).toBeTruthy()}),it("should return false if the value is Bitcoin",()=>{const e=t("Bitcoin");expect(e).toBeFalsy()})})});
2
- //# sourceMappingURL=AppName.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/api/utils/AppName.test.ts"],
4
- "sourcesContent": ["import { isDashboardName } from \"./AppName\";\n\ndescribe(\"AppName\", () => {\n describe(\"isDashboardName\", () => {\n it(\"should return true if the value is BOLOS\", () => {\n // GIVEN\n const value = \"BOLOS\";\n\n // WHEN\n const result = isDashboardName(value);\n\n // THEN\n expect(result).toBeTruthy();\n });\n\n it(\"should return true if the value is OLOS\", () => {\n // GIVEN\n const value = \"OLOS\\0\";\n\n // WHEN\n const result = isDashboardName(value);\n\n // THEN\n expect(result).toBeTruthy();\n });\n\n it(\"should return false if the value is Bitcoin\", () => {\n // GIVEN\n const value = \"Bitcoin\";\n\n // WHEN\n const result = isDashboardName(value);\n\n // THEN\n expect(result).toBeFalsy();\n });\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,SAAS,UAAW,IAAM,CACxB,SAAS,kBAAmB,IAAM,CAChC,GAAG,2CAA4C,IAAM,CAKnD,MAAMC,EAASD,EAHD,OAGsB,EAGpC,OAAOC,CAAM,EAAE,WAAW,CAC5B,CAAC,EAED,GAAG,0CAA2C,IAAM,CAKlD,MAAMA,EAASD,EAHD,QAGsB,EAGpC,OAAOC,CAAM,EAAE,WAAW,CAC5B,CAAC,EAED,GAAG,8CAA+C,IAAM,CAKtD,MAAMA,EAASD,EAHD,SAGsB,EAGpC,OAAOC,CAAM,EAAE,UAAU,CAC3B,CAAC,CACH,CAAC,CACH,CAAC",
6
- "names": ["isDashboardName", "result"]
7
- }