@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,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/api/network/DmkNetworkClientHelpers.test.ts"],
4
- "sourcesContent": ["import { DmkNetworkClientError } from \"./DmkNetworkClientError\";\nimport {\n buildBodyAndHeaders,\n buildSignal,\n buildUrl,\n hasHeader,\n isRawBody,\n joinPath,\n JSON_CONTENT_TYPE,\n parseBody,\n safeReadText,\n wrapFetchError,\n} from \"./DmkNetworkClientHelpers\";\n\ndescribe(\"DmkNetworkClientHelpers\", () => {\n describe(\"joinPath\", () => {\n it(\"should return the base when the path is empty\", () => {\n expect(joinPath(\"https://api.example.com\", \"\")).toBe(\n \"https://api.example.com\",\n );\n });\n\n it(\"should insert a single slash when neither side has one\", () => {\n expect(joinPath(\"https://api.example.com\", \"items\")).toBe(\n \"https://api.example.com/items\",\n );\n });\n\n it(\"should collapse a trailing base slash with a leading path slash\", () => {\n expect(joinPath(\"https://api.example.com/\", \"/items\")).toBe(\n \"https://api.example.com/items\",\n );\n });\n\n it(\"should keep a single slash when only one side has one\", () => {\n expect(joinPath(\"https://api.example.com/\", \"items\")).toBe(\n \"https://api.example.com/items\",\n );\n expect(joinPath(\"https://api.example.com\", \"/items\")).toBe(\n \"https://api.example.com/items\",\n );\n });\n });\n\n describe(\"buildUrl\", () => {\n it(\"should keep an absolute URL as-is\", () => {\n const url = buildUrl({ url: \"https://api.example.com/items\" });\n expect(url).toBe(\"https://api.example.com/items\");\n });\n\n it(\"should prepend the base URL to a relative path\", () => {\n const url = buildUrl({\n url: \"/items\",\n baseUrl: \"https://api.example.com/\",\n });\n expect(url).toBe(\"https://api.example.com/items\");\n });\n\n it(\"should ignore the base URL when the input URL is absolute\", () => {\n const url = buildUrl({\n url: \"https://other.example.com/items\",\n baseUrl: \"https://api.example.com\",\n });\n expect(url).toBe(\"https://other.example.com/items\");\n });\n\n it(\"should append query params and skip null/undefined entries\", () => {\n const url = buildUrl({\n url: \"https://api.example.com/items\",\n params: {\n chain: 1,\n contract: \"0xabc\",\n active: true,\n skip: null,\n alsoSkip: undefined,\n },\n });\n expect(typeof url).toBe(\"string\");\n const parsed = new URL(url);\n expect(parsed.searchParams.get(\"chain\")).toBe(\"1\");\n expect(parsed.searchParams.get(\"contract\")).toBe(\"0xabc\");\n expect(parsed.searchParams.get(\"active\")).toBe(\"true\");\n expect(parsed.searchParams.has(\"skip\")).toBe(false);\n expect(parsed.searchParams.has(\"alsoSkip\")).toBe(false);\n });\n\n it(\"should preserve a pre-existing query string in the input URL\", () => {\n const url = buildUrl({\n url: \"https://api.example.com/items?keep=1\",\n params: { chain: 2 },\n });\n const parsed = new URL(url);\n expect(parsed.searchParams.get(\"keep\")).toBe(\"1\");\n expect(parsed.searchParams.get(\"chain\")).toBe(\"2\");\n });\n\n it(\"should percent-encode keys and values\", () => {\n const url = buildUrl({\n url: \"https://api.example.com/items\",\n params: { \"a key\": \"a value&b\" },\n });\n expect(url).toBe(\"https://api.example.com/items?a%20key=a%20value%26b\");\n });\n\n it(\"should not append a trailing slash after the last query value (facebook/react-native#54242)\", () => {\n const url = buildUrl({\n url: \"https://manager.api.live.ledger.com/api/get_device_version\",\n params: { target_id: 858783748, provider: 1 },\n });\n expect(typeof url).toBe(\"string\");\n expect(url).toBe(\n \"https://manager.api.live.ledger.com/api/get_device_version?target_id=858783748&provider=1\",\n );\n expect(url.endsWith(\"/\")).toBe(false);\n });\n\n it(\"should return a plain string (not a URL instance) so RN URL serialization is bypassed\", () => {\n const url = buildUrl({\n url: \"https://api.example.com/items\",\n params: { chain: 1 },\n });\n expect(typeof url).toBe(\"string\");\n expect(url).not.toBeInstanceOf(URL);\n });\n\n it(\"should still build the URL when URLSearchParams.set is unavailable (React Native regression)\", () => {\n const original = URLSearchParams.prototype.set;\n URLSearchParams.prototype.set = function notImplemented(): never {\n throw new Error(\"URLSearchParams.set is not implemented\");\n };\n try {\n const url = buildUrl({\n url: \"https://api.example.com/items\",\n params: { chain: 1, contract: \"0xabc\" },\n });\n expect(url).toContain(\"chain=1\");\n expect(url).toContain(\"contract=0xabc\");\n } finally {\n URLSearchParams.prototype.set = original;\n }\n });\n });\n\n describe(\"hasHeader\", () => {\n it(\"should find a header regardless of case\", () => {\n expect(hasHeader({ \"Content-Type\": \"json\" }, \"content-type\")).toBe(true);\n expect(hasHeader({ \"content-type\": \"json\" }, \"Content-Type\")).toBe(true);\n });\n\n it(\"should return false when no matching header exists\", () => {\n expect(hasHeader({ Accept: \"json\" }, \"content-type\")).toBe(false);\n expect(hasHeader({}, \"content-type\")).toBe(false);\n });\n });\n\n describe(\"isRawBody\", () => {\n it(\"should accept native BodyInit values\", () => {\n expect(isRawBody(\"raw-string\")).toBe(true);\n expect(isRawBody(new ArrayBuffer(4))).toBe(true);\n expect(isRawBody(new Uint8Array([1, 2, 3]))).toBe(true);\n expect(isRawBody(new Blob([\"a\"]))).toBe(true);\n expect(isRawBody(new FormData())).toBe(true);\n expect(isRawBody(new URLSearchParams({ a: \"1\" }))).toBe(true);\n expect(isRawBody(new ReadableStream())).toBe(true);\n });\n\n it(\"should reject plain objects and primitives\", () => {\n expect(isRawBody({ foo: \"bar\" })).toBe(false);\n expect(isRawBody([1, 2, 3])).toBe(false);\n expect(isRawBody(42)).toBe(false);\n expect(isRawBody(null)).toBe(false);\n expect(isRawBody(undefined)).toBe(false);\n });\n\n it(\"should not throw when optional Web globals are missing (React Native regression)\", () => {\n const globals = globalThis as unknown as Record<string, unknown>;\n const names = [\"Blob\", \"FormData\", \"URLSearchParams\", \"ReadableStream\"];\n const saved: Record<string, unknown> = {};\n for (const name of names) {\n saved[name] = globals[name];\n delete globals[name];\n }\n try {\n expect(() => isRawBody({ foo: \"bar\" })).not.toThrow();\n expect(isRawBody({ foo: \"bar\" })).toBe(false);\n expect(isRawBody(\"raw\")).toBe(true);\n expect(isRawBody(new Uint8Array([1]))).toBe(true);\n } finally {\n for (const name of names) {\n globals[name] = saved[name];\n }\n }\n });\n });\n\n describe(\"buildBodyAndHeaders\", () => {\n it(\"should merge default and per-request headers with per-request winning\", () => {\n const { headers } = buildBodyAndHeaders({\n method: \"GET\",\n body: undefined,\n defaultHeaders: { \"X-Default\": \"default\", \"X-Shared\": \"from-default\" },\n perRequestHeaders: { \"X-Shared\": \"overridden\", \"X-Per\": \"per\" },\n });\n expect(headers).toEqual({\n \"X-Default\": \"default\",\n \"X-Shared\": \"overridden\",\n \"X-Per\": \"per\",\n });\n });\n\n it(\"should not emit a body on GET/HEAD even when a body is provided\", () => {\n const result = buildBodyAndHeaders({\n method: \"GET\",\n body: { foo: \"bar\" },\n defaultHeaders: {},\n });\n expect(result.body).toBeUndefined();\n expect(result.headers[\"Content-Type\"]).toBeUndefined();\n });\n\n it(\"should JSON-stringify plain objects and set the Content-Type\", () => {\n const result = buildBodyAndHeaders({\n method: \"POST\",\n body: { foo: \"bar\" },\n defaultHeaders: {},\n });\n expect(result.body).toBe(JSON.stringify({ foo: \"bar\" }));\n expect(result.headers[\"Content-Type\"]).toBe(JSON_CONTENT_TYPE);\n });\n\n it(\"should not override an explicit Content-Type header\", () => {\n const result = buildBodyAndHeaders({\n method: \"POST\",\n body: { foo: \"bar\" },\n defaultHeaders: {},\n perRequestHeaders: { \"content-type\": \"application/vnd.custom+json\" },\n });\n expect(result.body).toBe(JSON.stringify({ foo: \"bar\" }));\n expect(result.headers[\"content-type\"]).toBe(\n \"application/vnd.custom+json\",\n );\n expect(result.headers[\"Content-Type\"]).toBeUndefined();\n });\n\n it(\"should pass raw BodyInit values through unchanged without JSON headers\", () => {\n const formData = new FormData();\n formData.set(\"field\", \"value\");\n const result = buildBodyAndHeaders({\n method: \"POST\",\n body: formData,\n defaultHeaders: {},\n });\n expect(result.body).toBe(formData);\n expect(result.headers[\"Content-Type\"]).toBeUndefined();\n });\n\n it(\"should return an undefined body when the body itself is undefined\", () => {\n const result = buildBodyAndHeaders({\n method: \"POST\",\n body: undefined,\n defaultHeaders: { \"X-Default\": \"d\" },\n });\n expect(result.body).toBeUndefined();\n expect(result.headers).toEqual({ \"X-Default\": \"d\" });\n });\n });\n\n describe(\"buildSignal\", () => {\n afterEach(() => {\n vi.useRealTimers();\n });\n\n it(\"GIVEN no timeout WHEN building a signal THEN it returns no signal\", () => {\n const result = buildSignal({\n timeoutMs: undefined,\n });\n\n expect(result.signal).toBeUndefined();\n expect(result.cleanup).toEqual(expect.any(Function));\n });\n\n it(\"GIVEN a zero timeout WHEN building a signal THEN it returns no signal\", () => {\n const result = buildSignal({\n timeoutMs: 0,\n });\n\n expect(result.signal).toBeUndefined();\n expect(result.cleanup).toEqual(expect.any(Function));\n });\n\n it(\"GIVEN a negative timeout WHEN building a signal THEN it returns no signal\", () => {\n const result = buildSignal({\n timeoutMs: -1,\n });\n\n expect(result.signal).toBeUndefined();\n expect(result.cleanup).toEqual(expect.any(Function));\n });\n\n it(\"GIVEN a positive timeout WHEN building a signal THEN it returns an AbortSignal\", () => {\n const { signal, cleanup } = buildSignal({\n timeoutMs: 1000,\n });\n\n expect(signal).toBeInstanceOf(AbortSignal);\n expect(signal?.aborted).toBe(false);\n cleanup();\n });\n\n it(\"GIVEN a positive timeout WHEN the delay elapses THEN it aborts the signal\", () => {\n vi.useFakeTimers();\n const { signal, cleanup } = buildSignal({\n timeoutMs: 1000,\n });\n\n expect(signal?.aborted).toBe(false);\n vi.advanceTimersByTime(999);\n expect(signal?.aborted).toBe(false);\n vi.advanceTimersByTime(1);\n expect(signal?.aborted).toBe(true);\n cleanup();\n });\n\n it(\"GIVEN a timeout signal WHEN cleanup runs before the delay THEN it does not abort\", () => {\n vi.useFakeTimers();\n const { signal, cleanup } = buildSignal({\n timeoutMs: 100,\n });\n\n cleanup();\n vi.advanceTimersByTime(100);\n\n expect(signal?.aborted).toBe(false);\n });\n });\n\n describe(\"parseBody\", () => {\n it(\"should return undefined for 'void' response type without consuming the body\", async () => {\n const response = new Response(\"ignored\");\n const result = await parseBody(response, \"void\");\n expect(result).toBeUndefined();\n expect(response.bodyUsed).toBe(false);\n });\n\n it(\"should return text for 'text' response type\", async () => {\n const response = new Response(\"plain-body\");\n await expect(parseBody(response, \"text\")).resolves.toBe(\"plain-body\");\n });\n\n it(\"should return a Blob for 'blob' response type\", async () => {\n const response = new Response(\"blob-body\");\n const result = await parseBody(response, \"blob\");\n expect(result).toBeInstanceOf(Blob);\n });\n\n it(\"should return an ArrayBuffer for 'arrayBuffer' response type\", async () => {\n const response = new Response(new Uint8Array([1, 2, 3]));\n const result = await parseBody(response, \"arrayBuffer\");\n expect(result).toBeInstanceOf(ArrayBuffer);\n expect(new Uint8Array(result as ArrayBuffer)).toEqual(\n new Uint8Array([1, 2, 3]),\n );\n });\n\n it(\"should parse JSON for 'json' response type\", async () => {\n const response = new Response(JSON.stringify({ hello: \"world\" }));\n await expect(parseBody(response, \"json\")).resolves.toEqual({\n hello: \"world\",\n });\n });\n\n it(\"should resolve to undefined for an empty JSON body\", async () => {\n const response = new Response(\"\");\n await expect(parseBody(response, \"json\")).resolves.toBeUndefined();\n });\n\n it(\"should throw a DmkNetworkClientError for malformed JSON\", async () => {\n const response = new Response(\"not-json\", {\n status: 200,\n statusText: \"OK\",\n });\n const error = await parseBody(response, \"json\").catch((e: unknown) => e);\n expect(error).toBeInstanceOf(DmkNetworkClientError);\n const dmkError = error as DmkNetworkClientError;\n expect(dmkError.status).toBe(200);\n expect(dmkError.statusText).toBe(\"OK\");\n expect(dmkError.responseBody).toBe(\"not-json\");\n expect(dmkError.cause).toBeInstanceOf(SyntaxError);\n });\n });\n\n describe(\"safeReadText\", () => {\n it(\"should return the text body\", async () => {\n await expect(safeReadText(new Response(\"hello\"))).resolves.toBe(\"hello\");\n });\n\n it(\"should return undefined when reading the body throws\", async () => {\n const response = {\n text: () => Promise.reject(new Error(\"read failed\")),\n } as unknown as Response;\n await expect(safeReadText(response)).resolves.toBeUndefined();\n });\n });\n\n describe(\"wrapFetchError\", () => {\n it(\"should wrap a generic Error with its message\", () => {\n const cause = new TypeError(\"network down\");\n const error = wrapFetchError({\n cause,\n timeoutMs: undefined,\n });\n expect(error).toBeInstanceOf(DmkNetworkClientError);\n expect(error.message).toBe(\"network down\");\n expect(error.cause).toBe(cause);\n expect(error.isTimeout).toBe(false);\n });\n\n it(\"should fall back to a generic message for non-Error causes\", () => {\n const error = wrapFetchError({\n cause: \"something\",\n timeoutMs: undefined,\n });\n expect(error.message).toBe(\"Network request failed\");\n expect(error.cause).toBe(\"something\");\n });\n\n it(\"should flag TimeoutError as a timeout\", () => {\n const cause = new Error(\"timed out\");\n cause.name = \"TimeoutError\";\n const error = wrapFetchError({\n cause,\n timeoutMs: 10,\n });\n expect(error.isTimeout).toBe(true);\n expect(error.message).toBe(\"Request timed out\");\n });\n\n it(\"should flag AbortError as a timeout when a timeout is configured and no external abort\", () => {\n const cause = new Error(\"aborted\");\n cause.name = \"AbortError\";\n const error = wrapFetchError({\n cause,\n timeoutMs: 1000,\n });\n expect(error.isTimeout).toBe(true);\n });\n\n it(\"should treat AbortError with no timeout and no external abort as a plain abort\", () => {\n const cause = new Error(\"aborted\");\n cause.name = \"AbortError\";\n const error = wrapFetchError({\n cause,\n timeoutMs: undefined,\n });\n expect(error.isTimeout).toBe(false);\n expect(error.message).toBe(\"Request aborted\");\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_DmkNetworkClientError", "import_DmkNetworkClientHelpers", "url", "parsed", "original", "globals", "names", "saved", "name", "headers", "result", "formData", "signal", "cleanup", "response", "error", "e", "dmkError", "cause"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var i=require("purify-ts"),o=require("rxjs"),v=require("../../../command/model/CommandResult"),g=require("../../../device/DeviceStatus"),h=require("../../../device-action/__test-utils__/makeInternalApi"),V=require("../../../device-action/__test-utils__/setupTestMachine"),S=require("../../../device-action/__test-utils__/testDeviceActionStates"),e=require("../../../device-action/model/DeviceActionState"),n=require("../../../device-action/model/UserInteractionRequired"),k=require("../../../device-session/DeviceSessionState"),r=require("../../../secure-channel/task/types"),y=require("../../../../internal/manager-api/model/Errors"),C=require("../../../../internal/secure-channel/model/Errors"),f=require("./GenuineCheckDeviceAction");vi.mock("@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction");describe("GenuineCheckDeviceAction",()=>{const u=vi.fn(),d=vi.fn(),l=vi.fn(),m=vi.fn(),p=vi.fn(),w=vi.fn(),D=()=>({getOsVersion:u,getDeviceVersion:d,getFirmwareVersion:l,genuineCheck:m,getDeviceSessionState:p,setDeviceSessionState:w});beforeEach(()=>{vi.resetAllMocks()}),it("should return the result of the genuine check",()=>new Promise((a,s)=>{(0,V.setupGoToDashboardMock)(),u.mockResolvedValue((0,v.CommandResultFactory)({data:{targetId:"123456",secureElementFlags:{isSecureConnectionAllowed:!1}}})),d.mockResolvedValue((0,i.Right)({id:123456})),l.mockResolvedValue((0,i.Right)({perso:"perso_test"})),p.mockReturnValue({sessionStateType:k.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:g.DeviceStatus.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),m.mockReturnValue((0,o.of)({type:r.SecureChannelEventType.Exchange,payload:{data:new Uint8Array([0,1,2,3])}},{type:r.SecureChannelEventType.PermissionRequested},{type:r.SecureChannelEventType.PermissionGranted},{type:r.SecureChannelEventType.Result,payload:"0000"}));const c=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.AllowSecureConnection}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Completed,output:{isGenuine:!0}}],t=new f.GenuineCheckDeviceAction({input:{}});vi.spyOn(t,"extractDependencies").mockImplementation(D),(0,S.testDeviceActionStates)(t,c,(0,h.makeDeviceActionInternalApiMock)(),{onDone:a,onError:s})})),it("should return error when error occurs in fetching device version",()=>new Promise((a,s)=>{(0,V.setupGoToDashboardMock)(),u.mockResolvedValue((0,v.CommandResultFactory)({data:{targetId:"123456",secureElementFlags:{isSecureConnectionAllowed:!1}}})),d.mockResolvedValue((0,i.Left)(new y.HttpFetchApiError("Device version fetch failed"))),l.mockResolvedValue((0,i.Right)({perso:"perso_test"})),p.mockReturnValue({sessionStateType:k.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:g.DeviceStatus.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),m.mockReturnValue((0,o.of)({type:r.SecureChannelEventType.Exchange,payload:{data:new Uint8Array([0,1,2,3])}},{type:r.SecureChannelEventType.Result,payload:"0000"}));const c=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new y.HttpFetchApiError("Device version fetch failed")}],t=new f.GenuineCheckDeviceAction({input:{}});vi.spyOn(t,"extractDependencies").mockImplementation(D),(0,S.testDeviceActionStates)(t,c,(0,h.makeDeviceActionInternalApiMock)(),{onDone:a,onError:s})})),it("should return error when error occurs in fetching firmware version",()=>new Promise((a,s)=>{(0,V.setupGoToDashboardMock)(),u.mockResolvedValue((0,v.CommandResultFactory)({data:{targetId:"123456",secureElementFlags:{isSecureConnectionAllowed:!1}}})),d.mockResolvedValue((0,i.Right)({id:123456})),l.mockResolvedValue((0,i.Left)(new y.HttpFetchApiError("Firmware version fetch failed"))),p.mockReturnValue({sessionStateType:k.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:g.DeviceStatus.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),m.mockReturnValue((0,o.of)({type:r.SecureChannelEventType.Exchange,payload:{data:new Uint8Array([0,1,2,3])}},{type:r.SecureChannelEventType.Result,payload:"0000"}));const c=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new y.HttpFetchApiError("Firmware version fetch failed")}],t=new f.GenuineCheckDeviceAction({input:{}});vi.spyOn(t,"extractDependencies").mockImplementation(D),(0,S.testDeviceActionStates)(t,c,(0,h.makeDeviceActionInternalApiMock)(),{onDone:a,onError:s})})),it("should return error when error occurs in communicating with secure channel",()=>new Promise((a,s)=>{(0,V.setupGoToDashboardMock)(),u.mockResolvedValue((0,v.CommandResultFactory)({data:{targetId:"123456",secureElementFlags:{isSecureConnectionAllowed:!1}}})),d.mockResolvedValue((0,i.Right)({id:123456})),l.mockResolvedValue((0,i.Right)({perso:"perso_test"})),p.mockReturnValue({sessionStateType:k.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:g.DeviceStatus.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),m.mockReturnValue((0,o.concat)((0,o.of)({type:r.SecureChannelEventType.Exchange,payload:{data:new Uint8Array([0,1,2,3])}}),(0,o.throwError)(()=>new C.SecureChannelError("Secure channel error"))));const c=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new C.SecureChannelError("Secure channel error")}],t=new f.GenuineCheckDeviceAction({input:{}});vi.spyOn(t,"extractDependencies").mockImplementation(D),(0,S.testDeviceActionStates)(t,c,(0,h.makeDeviceActionInternalApiMock)(),{onDone:a,onError:s})}))});
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": ["import_purify_ts", "import_rxjs", "import_CommandResult", "import_DeviceStatus", "import_makeInternalApi", "import_setupTestMachine", "import_testDeviceActionStates", "import_DeviceActionState", "import_UserInteractionRequired", "import_DeviceSessionState", "import_types", "import_Errors", "import_GenuineCheckDeviceAction", "getOsVersionMock", "getDeviceVersionMock", "getFirmwareVersionMock", "genuineCheckMock", "getDeviceSessionStateMock", "setDeviceSessionStateMock", "extractDependenciesMock", "resolve", "reject", "expectedStates", "genuineCheckDeviceAction"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var g=require("purify-ts"),v=require("rxjs"),A=require("../../../command/model/CommandResult"),P=require("../../../device/DeviceStatus"),a=require("../../../device-action/__test-utils__/makeInternalApi"),r=require("../../../device-action/__test-utils__/setupTestMachine"),p=require("../../../device-action/__test-utils__/testDeviceActionStates"),e=require("../../../device-action/model/DeviceActionState"),t=require("../../../device-action/model/UserInteractionRequired"),S=require("../../../device-action/os/Errors"),f=require("../../../device-session/DeviceSessionState"),I=require("../../../secure-channel/task/types"),N=require("../../../../internal/secure-channel/model/Errors"),c=require("./InstallAppDeviceAction");vi.mock("@api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction");vi.mock("@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction");describe("InstallAppDeviceAction",()=>{const l=vi.fn(),u=vi.fn(),V=vi.fn(),d=vi.fn(),h=vi.fn(),m=()=>({getOsVersion:l,getAppList:u,installApp:V,getDeviceSessionState:d,setDeviceSessionState:h});beforeEach(()=>{vi.resetAllMocks()}),it("should finish successfully when the app is already installed on the device",()=>new Promise((s,i)=>{(0,r.setupListInstalledAppsMock)([{installedApps:[{name:"Bitcoin"}]}]);const o=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Completed,output:void 0}],n=new c.InstallAppDeviceAction({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(m),(0,p.testDeviceActionStates)(n,o,(0,a.makeDeviceActionInternalApiMock)(),{onDone:s,onError:i})})),it("should finish successfully when the app is not installed",()=>new Promise((s,i)=>{(0,r.setupListInstalledAppsMock)([{installedApps:[]},{installedApps:[{name:"Bitcoin"}]}]),(0,r.setupGoToDashboardMock)(),l.mockResolvedValue((0,A.CommandResultFactory)({data:{targetId:12345678,secureElementFlags:{isSecureConnectionAllowed:!0}}})),d.mockReturnValue({sessionStateType:f.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:P.DeviceStatus.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),u.mockResolvedValue((0,g.Right)([{versionName:"Bitcoin",perso:"test_perso",firmware:"test_firmware_for_bitcoin",firmwareKey:"test_firmware_key_for_bitcoin",hash:"test_hash_for_bitcoin"}])),V.mockImplementation(()=>(0,v.of)({type:I.SecureChannelEventType.Progress,payload:{progress:0}},{type:I.SecureChannelEventType.Progress,payload:{progress:.55}},{type:I.SecureChannelEventType.Progress,payload:{progress:1}}));const o=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:.55}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:1}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:1}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:1}},{status:e.DeviceActionStatus.Completed,output:void 0}],n=new c.InstallAppDeviceAction({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(m),(0,p.testDeviceActionStates)(n,o,(0,a.makeDeviceActionInternalApiMock)(),{onDone:s,onError:i})})),it("should finish unsuccessfully when the dep app is not installed",()=>new Promise((s,i)=>{(0,r.setupListInstalledAppsMock)([{installedApps:[]}]),(0,r.setupGoToDashboardMock)(),l.mockResolvedValue((0,A.CommandResultFactory)({data:{targetId:12345678,secureElementFlags:{isSecureConnectionAllowed:!0}}})),d.mockReturnValue({sessionStateType:f.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:P.DeviceStatus.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),u.mockResolvedValue((0,g.Right)([{versionName:"Bitcoin",parentName:"test_parent"}]));const o=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Error,error:new S.UnknownDAError("Dep app is not installed on the device")}],n=new c.InstallAppDeviceAction({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(m),(0,p.testDeviceActionStates)(n,o,(0,a.makeDeviceActionInternalApiMock)(),{onDone:s,onError:i})})),it("should finish unsuccessfully when the app is not found in manager API",()=>new Promise((s,i)=>{(0,r.setupListInstalledAppsMock)([{installedApps:[]}]),(0,r.setupGoToDashboardMock)(),l.mockResolvedValue((0,A.CommandResultFactory)({data:{targetId:12345678,secureElementFlags:{isSecureConnectionAllowed:!0}}})),d.mockReturnValue({}),u.mockResolvedValueOnce((0,g.Right)([]));const o=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Error,error:new S.UnknownDAError("App to install not found in manager API")}],n=new c.InstallAppDeviceAction({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(m),(0,p.testDeviceActionStates)(n,o,(0,a.makeDeviceActionInternalApiMock)(),{onDone:s,onError:i})})),it("should finish unsuccessfully when there is error in installApp",()=>new Promise((s,i)=>{(0,r.setupListInstalledAppsMock)([{installedApps:[]}]),(0,r.setupGoToDashboardMock)(),l.mockResolvedValue((0,A.CommandResultFactory)({data:{targetId:12345678,secureElementFlags:{isSecureConnectionAllowed:!0}}})),d.mockReturnValue({}),u.mockResolvedValueOnce((0,g.Right)([{versionName:"Bitcoin"}])),V.mockReturnValue((0,v.throwError)(()=>new N.SecureChannelError("Install app error in secure channel")));const o=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None,progress:0}},{status:e.DeviceActionStatus.Error,error:new N.SecureChannelError("Install app error in secure channel")}],n=new c.InstallAppDeviceAction({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(m),(0,p.testDeviceActionStates)(n,o,(0,a.makeDeviceActionInternalApiMock)(),{onDone:s,onError:i})}))});
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": ["import_purify_ts", "import_rxjs", "import_CommandResult", "import_DeviceStatus", "import_makeInternalApi", "import_setupTestMachine", "import_testDeviceActionStates", "import_DeviceActionState", "import_UserInteractionRequired", "import_Errors", "import_DeviceSessionState", "import_types", "import_InstallAppDeviceAction", "getOsVersionMock", "getAppListMock", "installAppMock", "getDeviceSessionStateMock", "setDeviceSessionStateMock", "extractDependenciesMock", "resolve", "reject", "expectedStates", "installAppDeviceAction"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var r=require("purify-ts"),i=require("rxjs"),v=require("../../../command/model/CommandResult"),h=require("../../../device/DeviceStatus"),V=require("../../../device-action/__test-utils__/makeInternalApi"),g=require("../../../device-action/__test-utils__/setupTestMachine"),S=require("../../../device-action/__test-utils__/testDeviceActionStates"),e=require("../../../device-action/model/DeviceActionState"),t=require("../../../device-action/model/UserInteractionRequired"),A=require("../../../device-session/DeviceSessionState"),a=require("../../../secure-channel/task/types"),I=require("../../../../internal/manager-api/model/Errors"),y=require("../../../../internal/secure-channel/model/Errors"),f=require("./ListInstalledAppsDeviceAction");vi.mock("@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction");describe("ListInstalledAppsDeviceAction",()=>{const d=vi.fn(),l=vi.fn(),u=vi.fn(),m=vi.fn(),p=vi.fn(),w=vi.fn(),D=()=>({getOsVersion:d,getDeviceVersion:l,getFirmwareVersion:u,listInstalledApps:m,getDeviceSessionState:p,setDeviceSessionState:w});beforeEach(()=>{vi.resetAllMocks()}),it("should return a list that contains all installed apps on the device",()=>new Promise((o,s)=>{(0,g.setupGoToDashboardMock)(),d.mockResolvedValue((0,v.CommandResultFactory)({data:{targetId:"123456",secureElementFlags:{isSecureConnectionAllowed:!0}}})),l.mockResolvedValue((0,r.Right)({id:123456})),u.mockResolvedValue((0,r.Right)({perso:"perso_test"})),p.mockReturnValue({sessionStateType:A.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:h.DeviceStatus.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),m.mockReturnValue((0,i.of)({type:a.SecureChannelEventType.Exchange},{type:a.SecureChannelEventType.Result,payload:[{flags:123456,hash:"hash_test",hash_code_data:"hash_code_data_test",name:"Bitcoin"}]}));const c=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Completed,output:{installedApps:[{flags:123456,hash:"hash_test",hash_code_data:"hash_code_data_test",name:"Bitcoin"}]}}],n=new f.ListInstalledAppsDeviceAction({input:{}});vi.spyOn(n,"extractDependencies").mockImplementation(D),(0,S.testDeviceActionStates)(n,c,(0,V.makeDeviceActionInternalApiMock)(),{onDone:o,onError:s})})),it("should return error when error occurs in fetching device version",()=>new Promise((o,s)=>{(0,g.setupGoToDashboardMock)(),d.mockResolvedValue((0,v.CommandResultFactory)({data:{targetId:"123456",secureElementFlags:{isSecureConnectionAllowed:!1}}})),l.mockResolvedValue((0,r.Left)(new I.HttpFetchApiError("Device version fetch failed"))),u.mockResolvedValue((0,r.Right)({perso:"perso_test"})),p.mockReturnValue({sessionStateType:A.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:h.DeviceStatus.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),m.mockReturnValue((0,i.of)({type:a.SecureChannelEventType.Exchange,payload:{data:new Uint8Array([0,1,2,3])}},{type:a.SecureChannelEventType.Result,payload:[]}));const c=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new I.HttpFetchApiError("Device version fetch failed")}],n=new f.ListInstalledAppsDeviceAction({input:{}});vi.spyOn(n,"extractDependencies").mockImplementation(D),(0,S.testDeviceActionStates)(n,c,(0,V.makeDeviceActionInternalApiMock)(),{onDone:o,onError:s})})),it("should return error when error occurs in fetching firmware version",()=>new Promise((o,s)=>{(0,g.setupGoToDashboardMock)(),d.mockResolvedValue((0,v.CommandResultFactory)({data:{targetId:"123456",secureElementFlags:{isSecureConnectionAllowed:!1}}})),l.mockResolvedValue((0,r.Right)({id:123456})),u.mockResolvedValue((0,r.Left)(new I.HttpFetchApiError("Firmware version fetch failed"))),p.mockReturnValue({sessionStateType:A.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:h.DeviceStatus.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),m.mockReturnValue((0,i.of)({type:a.SecureChannelEventType.Exchange,payload:{data:new Uint8Array([0,1,2,3])}},{type:a.SecureChannelEventType.Result,payload:[]}));const c=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new I.HttpFetchApiError("Firmware version fetch failed")}],n=new f.ListInstalledAppsDeviceAction({input:{}});vi.spyOn(n,"extractDependencies").mockImplementation(D),(0,S.testDeviceActionStates)(n,c,(0,V.makeDeviceActionInternalApiMock)(),{onDone:o,onError:s})})),it("should return error when error occurs in communicating with secure channel",()=>new Promise((o,s)=>{(0,g.setupGoToDashboardMock)(),d.mockResolvedValue((0,v.CommandResultFactory)({data:{targetId:"123456",secureElementFlags:{isSecureConnectionAllowed:!1}}})),l.mockResolvedValue((0,r.Right)({id:123456})),u.mockResolvedValue((0,r.Right)({perso:"perso_test"})),p.mockReturnValue({sessionStateType:A.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:h.DeviceStatus.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),m.mockReturnValue((0,i.concat)((0,i.of)({type:a.SecureChannelEventType.Exchange,payload:{data:new Uint8Array([0,1,2,3])}}),(0,i.throwError)(()=>new y.SecureChannelError("Secure channel error"))));const c=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new y.SecureChannelError("Secure channel error")}],n=new f.ListInstalledAppsDeviceAction({input:{}});vi.spyOn(n,"extractDependencies").mockImplementation(D),(0,S.testDeviceActionStates)(n,c,(0,V.makeDeviceActionInternalApiMock)(),{onDone:o,onError:s})}))});
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": ["import_purify_ts", "import_rxjs", "import_CommandResult", "import_DeviceStatus", "import_makeInternalApi", "import_setupTestMachine", "import_testDeviceActionStates", "import_DeviceActionState", "import_UserInteractionRequired", "import_DeviceSessionState", "import_types", "import_Errors", "import_ListInstalledAppsDeviceAction", "getOsVersionMock", "getDeviceVersionMock", "getFirmwareVersionMock", "listInstalledAppsMock", "getDeviceSessionStateMock", "setDeviceSessionStateMock", "extractDependenciesMock", "resolve", "reject", "expectedStates", "listInstalledAppsDeviceAction"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var A=require("purify-ts"),f=require("rxjs"),v=require("../../../command/model/CommandResult"),I=require("../../../device/DeviceStatus"),o=require("../../../device-action/__test-utils__/makeInternalApi"),i=require("../../../device-action/__test-utils__/setupTestMachine"),c=require("../../../device-action/__test-utils__/testDeviceActionStates"),e=require("../../../device-action/model/DeviceActionState"),t=require("../../../device-action/model/UserInteractionRequired"),S=require("../../../device-action/os/Errors"),V=require("../../../device-session/DeviceSessionState"),D=require("../../../secure-channel/task/types"),g=require("../../../../internal/secure-channel/model/Errors"),l=require("./UninstallAppDeviceAction");vi.mock("@api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction");vi.mock("@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction");describe("UninstallAppDeviceAction",()=>{const u=vi.fn(),p=vi.fn(),h=vi.fn(),d=vi.fn(),N=vi.fn(),m=()=>({getOsVersion:u,getAppsByHash:p,uninstallApp:h,getDeviceSessionState:d,setDeviceSessionState:N});beforeEach(()=>{vi.resetAllMocks()}),it("should finish successfully when the app is not installed on the device",()=>new Promise((s,r)=>{(0,i.setupListInstalledAppsMock)([{installedApps:[{name:"Bitcoin"}]}]);const a=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Completed,output:void 0}],n=new l.UninstallAppDeviceAction({input:{appName:"Ethereum"}});vi.spyOn(n,"extractDependencies").mockImplementation(m),(0,c.testDeviceActionStates)(n,a,(0,o.makeDeviceActionInternalApiMock)(),{onDone:s,onError:r})})),it("should finish successfully when the app is installed on the device",()=>new Promise((s,r)=>{(0,i.setupListInstalledAppsMock)([{installedApps:[{name:"Bitcoin"}]},{installedApps:[]}]),(0,i.setupGoToDashboardMock)(),u.mockResolvedValue((0,v.CommandResultFactory)({data:{targetId:12345678,secureElementFlags:{isSecureConnectionAllowed:!0}}})),d.mockReturnValue({sessionStateType:V.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:I.DeviceStatus.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),p.mockResolvedValue((0,A.Right)([{versionName:"Bitcoin",perso:"test_perso",firmware:"test_firmware_for_bitcoin",firmwareKey:"test_firmware_key_for_bitcoin",hash:"test_hash_for_bitcoin"}])),h.mockReturnValue((0,f.of)({type:D.SecureChannelEventType.Exchange}));const a=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Completed,output:void 0}],n=new l.UninstallAppDeviceAction({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(m),(0,c.testDeviceActionStates)(n,a,(0,o.makeDeviceActionInternalApiMock)(),{onDone:s,onError:r})})),it("should finish unsuccessfully when the app is a dependency of other installed apps",()=>new Promise((s,r)=>{(0,i.setupListInstalledAppsMock)([{installedApps:[{name:"Bitcoin"},{name:"Testcoin"}]}]),(0,i.setupGoToDashboardMock)(),u.mockResolvedValue((0,v.CommandResultFactory)({data:{targetId:12345678,secureElementFlags:{isSecureConnectionAllowed:!0}}})),d.mockReturnValue({sessionStateType:V.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:I.DeviceStatus.CONNECTED,currentApp:{name:"BOLOS",version:"0.0.0"},isSecureConnectionAllowed:!1}),p.mockResolvedValue((0,A.Right)([{versionName:"Testcoin",parentName:"Bitcoin"},{versionName:"Bitcoin"}]));const a=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new S.UnknownDAError("App to uninstall is a dependency of another installed app")}],n=new l.UninstallAppDeviceAction({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(m),(0,c.testDeviceActionStates)(n,a,(0,o.makeDeviceActionInternalApiMock)(),{onDone:s,onError:r})})),it("should finish unsuccessfully when the app is not found in manager API",()=>new Promise((s,r)=>{(0,i.setupListInstalledAppsMock)([{installedApps:[{name:"Bitcoin"}]}]),(0,i.setupGoToDashboardMock)(),u.mockResolvedValue((0,v.CommandResultFactory)({data:{targetId:12345678,secureElementFlags:{isSecureConnectionAllowed:!0}}})),d.mockReturnValue({}),p.mockResolvedValueOnce((0,A.Right)([]));const a=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new S.UnknownDAError("App to uninstall not found in manager API")}],n=new l.UninstallAppDeviceAction({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(m),(0,c.testDeviceActionStates)(n,a,(0,o.makeDeviceActionInternalApiMock)(),{onDone:s,onError:r})})),it("should finish unsuccessfully when there is error in uninstallApp",()=>new Promise((s,r)=>{(0,i.setupListInstalledAppsMock)([{installedApps:[{name:"Bitcoin"}]}]),(0,i.setupGoToDashboardMock)(),u.mockResolvedValue((0,v.CommandResultFactory)({data:{targetId:12345678,secureElementFlags:{isSecureConnectionAllowed:!0}}})),d.mockReturnValue({}),p.mockResolvedValueOnce((0,A.Right)([{versionName:"Bitcoin"}])),h.mockReturnValue((0,f.throwError)(()=>new g.SecureChannelError("Uninstall app error in secure channel")));const a=[{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:t.UserInteractionRequired.None}},{status:e.DeviceActionStatus.Error,error:new g.SecureChannelError("Uninstall app error in secure channel")}],n=new l.UninstallAppDeviceAction({input:{appName:"Bitcoin"}});vi.spyOn(n,"extractDependencies").mockImplementation(m),(0,c.testDeviceActionStates)(n,a,(0,o.makeDeviceActionInternalApiMock)(),{onDone:s,onError:r})}))});
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": ["import_purify_ts", "import_rxjs", "import_CommandResult", "import_DeviceStatus", "import_makeInternalApi", "import_setupTestMachine", "import_testDeviceActionStates", "import_DeviceActionState", "import_UserInteractionRequired", "import_Errors", "import_DeviceSessionState", "import_types", "import_UninstallAppDeviceAction", "getOsVersionMock", "getAppsByHashMock", "uninstallAppMock", "getDeviceSessionStateMock", "setDeviceSessionStateMock", "extractDependenciesMock", "resolve", "reject", "expectedStates", "uninstallAppDeviceAction"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var S=Object.create;var f=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var A=(e,i,d,r)=>{if(i&&typeof i=="object"||typeof i=="function")for(let c of C(i))!k.call(e,c)&&c!==d&&f(e,c,{get:()=>i[c],enumerable:!(r=w(i,c))||r.enumerable});return e};var T=(e,i,d)=>(d=e!=null?S(E(e)):{},A(i||!e||!e.__esModule?f(d,"default",{value:e,enumerable:!0}):d,e));var v=T(require("isomorphic-ws")),u=require("purify-ts"),n=require("vitest"),x=require("../../secure-channel/task/types"),p=require("../../../internal/secure-channel/model/Errors"),b=require("./ConnectToSecureChannelTask");n.vi.mock("isomorphic-ws",()=>({...n.vi.importActual("isomorphic-ws"),__esModule:!0,default:class{onopen=null;onmessage=null;send=n.vi.fn();close=n.vi.fn();url;constructor(e){this.url=e}}}));const m=5;(0,n.describe)("ConnectToSecureChannelTask",()=>{let e,i,d,r;const c=n.vi.fn(),l={uuid:"5b776c8d-8af2-48c0-8250-04edca2ef5e9",session:"39ce749e-00a4-4c31-a697-1dc1a29e2cab",query:"success",nonce:15};beforeEach(()=>{e=new v.default("wss://test-host.com"),i={sendApdu:c,disableRefresher:t=>n.vi.fn()},d={connection:(0,u.Right)(e)},r=new b.ConnectToSecureChannelTask(i,d)}),afterEach(()=>{n.vi.resetAllMocks()}),(0,n.it)("should emit Opened event on WebSocket open",async()=>{const t=[];r.run().subscribe(s=>t.push(s)),expect(e.onopen).toBeDefined(),e.onopen({type:"open",target:{}}),await new Promise(s=>setTimeout(s,m)),expect(t).toStrictEqual([{type:x.SecureChannelEventType.Opened}])}),(0,n.it)("Error on wrongly formatted message",async()=>{const t=[];r.run().subscribe({next:s=>{t.push(s)}}),expect(e.onmessage).toBeDefined(),e.onmessage({data:"invalidData",type:"",target:{}}),await new Promise(s=>setTimeout(s,m)),expect(t).toStrictEqual([{type:x.SecureChannelEventType.Error,error:new p.SecureChannelError({url:"wss://test-host.com",errorMessage:"Invalid message received: invalidData"})}])}),(0,n.it)("should handle incoming EXCHANGE message including requesting user permission",async()=>{c.mockResolvedValue((0,u.Right)({data:new Uint8Array([144,0]),statusCode:new Uint8Array([144,0])}));const t=n.vi.spyOn(e,"send");n.vi.spyOn(r,"isSecureConnectionAllowed").mockReturnValueOnce(!1);const a=[];r.run().subscribe({next:o=>{a.push(o)}}),expect(e.onmessage).toBeDefined(),e.onmessage({data:JSON.stringify({...l,query:"exchange",nonce:1,data:"e051000000"}),type:"",target:{}}),await new Promise(o=>setTimeout(o,m)),expect(t).toHaveBeenCalledExactlyOnceWith(JSON.stringify({nonce:1,response:"success",data:"9000"})),expect(a).toStrictEqual([{type:x.SecureChannelEventType.PreExchange,payload:{nonce:1,apdu:new Uint8Array([224,81,0,0,0])}},{type:x.SecureChannelEventType.PermissionRequested},{type:x.SecureChannelEventType.Exchange,payload:{nonce:1,apdu:new Uint8Array([224,81,0,0,0]),data:new Uint8Array([144,0]),status:new Uint8Array([144,0])}},{type:x.SecureChannelEventType.PermissionGranted}])}),(0,n.it)("should capture and emit device ID on first GetCertificate APDU",async()=>{const t=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]);c.mockResolvedValue((0,u.Right)({data:t,statusCode:new Uint8Array([144,0])}));const a=new Uint8Array([170,187,204,221]),s={sha3_256:n.vi.fn().mockReturnValue(a)},o=new b.ConnectToSecureChannelTask(i,{connection:(0,u.Right)(e),cryptoService:s}),g=[];o.run().subscribe({next:y=>{g.push(y)}}),expect(e.onmessage).toBeDefined(),e.onmessage({data:JSON.stringify({...l,query:"exchange",nonce:1,data:"e052000000"}),type:"",target:{}}),await new Promise(y=>setTimeout(y,m)),expect(s.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(y=>y.type===x.SecureChannelEventType.DeviceId);expect(h).toBeDefined(),expect(h?.payload?.deviceId).toBe(a)}),(0,n.it)("should handle incoming EXCHANGE message with a device error",async()=>{c.mockResolvedValue((0,u.Right)({data:new Uint8Array([]),statusCode:new Uint8Array([85,21])}));const t=n.vi.spyOn(e,"send"),a=[];r.run().subscribe({next:o=>{a.push(o)}}),expect(e.onmessage).toBeDefined(),e.onmessage({data:JSON.stringify({...l,query:"exchange",nonce:1,data:"e053000000"}),type:"",target:{}}),await new Promise(o=>setTimeout(o,m)),expect(t).toHaveBeenCalledExactlyOnceWith(JSON.stringify({nonce:1,response:"error",data:""})),expect(a).toStrictEqual([{type:x.SecureChannelEventType.PreExchange,payload:{nonce:1,apdu:new Uint8Array([224,83,0,0,0])}},{type:x.SecureChannelEventType.Error,error:new p.SecureChannelError({url:"wss://test-host.com",errorMessage:"Device is locked"},p.SecureChannelErrorType.DeviceLocked)}])}),(0,n.it)("should handle incoming BULK message",async()=>{c.mockResolvedValue((0,u.Right)({data:new Uint8Array([144,0]),statusCode:new Uint8Array([144,0])}));const t=n.vi.fn(),a=r.run(),s=[];a.subscribe({next:o=>{s.push(o)},complete:()=>t()}),expect(e.onmessage).toBeDefined(),e.onmessage({data:JSON.stringify({...l,query:"bulk",nonce:1,data:["0000000100","0000000200","0000000300"]}),type:"",target:{}}),await new Promise(o=>setTimeout(o,m)),expect(c).toHaveBeenCalledTimes(3),expect(s).toStrictEqual([{type:x.SecureChannelEventType.Progress,payload:{progress:.33,index:0,total:3}},{type:x.SecureChannelEventType.Progress,payload:{progress:.67,index:1,total:3}},{type:x.SecureChannelEventType.Progress,payload:{progress:1,index:2,total:3}}]),expect(t).toHaveBeenCalledOnce()}),(0,n.it)("should handle incoming BULK message with a device error",async()=>{c.mockResolvedValue((0,u.Right)({data:new Uint8Array([]),statusCode:new Uint8Array([85,1])}));const t=n.vi.fn(),a=r.run(),s=[];a.subscribe({next:o=>{s.push(o)},complete:()=>t()}),expect(e.onmessage).toBeDefined(),e.onmessage({data:JSON.stringify({...l,query:"bulk",nonce:1,data:["0000000100","0000000200","0000000300"]}),type:"",target:{}}),await new Promise(o=>setTimeout(o,m)),expect(c).toHaveBeenCalledTimes(1),expect(s).toStrictEqual([{type:x.SecureChannelEventType.Error,error:new p.SecureChannelError({url:"wss://test-host.com",errorMessage:"User refused on the device"},p.SecureChannelErrorType.RefusedByUser)}]),expect(t).toHaveBeenCalledOnce()}),(0,n.it)("should handle incoming SUCCESS message",()=>{const t=n.vi.fn(),a=[];r.run().subscribe({next:o=>a.push(o),complete:()=>t()}),e.onmessage({data:JSON.stringify({...l,query:"success",nonce:1,result:"success result"}),type:"",target:{}}),expect(a).toStrictEqual([{type:x.SecureChannelEventType.Result,payload:"success result"}]),expect(t).toHaveBeenCalledOnce()}),(0,n.it)("should handle incoming WARNING message",()=>{const t=[];r.run().subscribe({next:s=>t.push(s)}),expect(e.onmessage).toBeDefined(),e.onmessage({data:JSON.stringify({...l,query:"warning",nonce:1,data:"warning message"}),type:"",target:{}}),expect(t).toStrictEqual([{type:x.SecureChannelEventType.Warning,payload:{message:"warning message"}}])}),(0,n.it)("should handle incoming ERROR message",()=>{const t=[];r.run().subscribe({next:s=>t.push(s)}),expect(e.onmessage).toBeDefined(),e.onmessage({data:JSON.stringify({...l,query:"error",data:"My error"}),type:"",target:{}}),expect(t).toStrictEqual([{type:x.SecureChannelEventType.Error,error:new p.SecureChannelError({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": ["import_isomorphic_ws", "import_purify_ts", "import_vitest", "import_types", "import_Errors", "import_ConnectToSecureChannelTask", "url", "TEST_DELAY", "mockWebSocket", "mockInternalApi", "taskArgs", "task", "sendApduFn", "mockMessage", "WebSocket", "_", "events", "e", "resolve", "event", "sendSpy", "mockResponse", "mockDeviceId", "mockCryptoService", "taskWithMockCrypto", "deviceIdEvent", "completeFn", "obs"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var n=require("../device-session/ApduResponse"),e=require("./utils");describe("willRequestPermission",()=>{it("should return true if the APDU is a permission request",()=>{const x=new Uint8Array([224,81,0,0,0]);expect((0,e.willRequestPermission)(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((0,e.willRequestPermission)(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((0,e.isGetCertificateApdu)(x)).toBe(!0)}),it("should return true for GetCertificate with different P1 and P2",()=>{const x=new Uint8Array([224,82,128,1,0]);expect((0,e.isGetCertificateApdu)(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((0,e.isGetCertificateApdu)(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]),i=new n.ApduResponse({statusCode:new Uint8Array([144,0]),data:x}),t=(0,e.extractPublicKey)(i);expect(t).not.toBeNull(),expect(t?.length).toBe(65),expect(t?.[0]).toBe(4),expect(t?.[64]).toBe(81)}),it("should return null for invalid response with missing header",()=>{const x=new n.ApduResponse({statusCode:new Uint8Array([144,0]),data:new Uint8Array([])}),i=(0,e.extractPublicKey)(x);expect(i).toBeNull()}),it("should return null for invalid response with missing public key",()=>{const x=new Uint8Array([7,74,7,161,82,230,187,193]),i=new n.ApduResponse({statusCode:new Uint8Array([144,0]),data:x}),t=(0,e.extractPublicKey)(i);expect(t).toBeNull()})});describe("isDeviceGenuine",()=>{it("should return true if the device is genuine",()=>{expect((0,e.isDeviceGenuine)("0000")).toBe(!0)}),it("should return false if the device is not genuine",()=>{expect((0,e.isDeviceGenuine)("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": ["import_ApduResponse", "import_utils", "apdu", "responseData", "response", "publicKey"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var n=require("purify-ts/Either"),e=require("vitest"),p=require("../../device-session/ApduResponse"),m=require("./DeviceConnectionStateMachine"),l=require("./Errors");(0,e.describe)("DeviceConnectionStateMachine",()=>{let o;const s={sendApdu:e.vi.fn(),getDependencies:e.vi.fn(),setDependencies:e.vi.fn(),closeConnection:e.vi.fn(),setupConnection:e.vi.fn()},t=new p.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array}),A=new p.ApduResponse({statusCode:Uint8Array.from([102,1]),data:new Uint8Array});(0,e.beforeEach)(()=>{e.vi.useFakeTimers(),o=new m.DeviceConnectionStateMachine({deviceId:"deviceId",deviceApduSender:s,timeoutDuration:1e3,tryToReconnect:e.vi.fn(),onTerminated:e.vi.fn()})}),(0,e.afterEach)(()=>{e.vi.useRealTimers(),e.vi.restoreAllMocks()}),(0,e.describe)("Send APDUs",()=>{(0,e.it)("should send APDU successfully",async()=>{const d=Uint8Array.from([1,2,3,4]);s.sendApdu.mockResolvedValue((0,n.Right)(t));const a=await o.sendApdu(d);(0,e.expect)(s.sendApdu).toHaveBeenCalledTimes(1),(0,e.expect)(a).toStrictEqual((0,n.Right)(t))}),(0,e.it)("should send several APDUs successfully",async()=>{const d=Uint8Array.from([1,2,3,4]),a=Uint8Array.from([9,2,3,4]);s.sendApdu.mockResolvedValue((0,n.Right)(t));const r=await o.sendApdu(d),u=await o.sendApdu(a);(0,e.expect)(s.sendApdu).toHaveBeenCalledTimes(2),(0,e.expect)(r).toStrictEqual((0,n.Right)(t)),(0,e.expect)(u).toStrictEqual((0,n.Right)(t))}),(0,e.it)("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((0,n.Right)(t));const r=o.sendApdu(d),u=o.sendApdu(a),c=await r,i=await u;(0,e.expect)(s.sendApdu).toHaveBeenCalledTimes(2),(0,e.expect)(c).toStrictEqual((0,n.Right)(t)),(0,e.expect)(i).toStrictEqual((0,n.Right)(t))}),(0,e.it)("Disconnected while sending APDU",async()=>{const d=Uint8Array.from([1,2,3,4]);s.sendApdu.mockResolvedValue((0,n.Right)(t));const a=o.sendApdu(d);o.eventDeviceDisconnected();const r=await a;(0,e.expect)(s.sendApdu).toHaveBeenCalledTimes(1),(0,e.expect)(r).toStrictEqual((0,n.Left)(new l.DeviceDisconnectedWhileSendingError))}),(0,e.it)("Request disconnection while sending APDU",async()=>{const d=Uint8Array.from([1,2,3,4]);s.sendApdu.mockResolvedValue((0,n.Right)(t));const a=o.sendApdu(d);o.closeConnection();const r=await a;(0,e.expect)(s.sendApdu).toHaveBeenCalledTimes(1),(0,e.expect)(r).toStrictEqual((0,n.Left)(new l.DeviceDisconnectedWhileSendingError))})}),(0,e.describe)("Send APDUs triggering disconnection",()=>{(0,e.it)("should send one APDU successfully",async()=>{const d=Uint8Array.from([1,2,3,4]);s.sendApdu.mockResolvedValue((0,n.Right)(t));const a=await o.sendApdu(d,!0);(0,e.expect)(s.sendApdu).toHaveBeenCalledTimes(2),(0,e.expect)(s.sendApdu.mock.calls).toEqual([[d,!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0]]),(0,e.expect)(a).toStrictEqual((0,n.Right)(t))}),(0,e.it)("should send several APDUs successfully",async()=>{const d=Uint8Array.from([1,2,3,4]),a=Uint8Array.from([9,2,3,4]);s.sendApdu.mockResolvedValueOnce((0,n.Right)(t)).mockRejectedValueOnce(new Error("Transport error")).mockResolvedValueOnce((0,n.Right)(t));const r=o.sendApdu(d,!0);await Promise.resolve(),o.eventDeviceDisconnected(),o.eventDeviceConnected();const u=o.sendApdu(a),c=await r,i=await u;(0,e.expect)(s.sendApdu).toHaveBeenCalledTimes(3),(0,e.expect)(s.sendApdu.mock.calls).toEqual([[d,!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0],[a,!1,void 0]]),(0,e.expect)(c).toStrictEqual((0,n.Right)(t)),(0,e.expect)(i).toStrictEqual((0,n.Right)(t))}),(0,e.it)("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((0,n.Right)(t)).mockRejectedValueOnce(new Error("Transport error")).mockResolvedValueOnce((0,n.Right)(t));const r=await o.sendApdu(d,!0);o.eventDeviceDisconnected(),o.eventDeviceConnected();const u=await o.sendApdu(a);(0,e.expect)(s.sendApdu).toHaveBeenCalledTimes(3),(0,e.expect)(s.sendApdu.mock.calls).toEqual([[d,!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0],[a,!1,void 0]]),(0,e.expect)(r).toStrictEqual((0,n.Right)(t)),(0,e.expect)(u).toStrictEqual((0,n.Right)(t))}),(0,e.it)("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((0,n.Right)(t)).mockResolvedValueOnce((0,n.Right)(t)).mockResolvedValueOnce((0,n.Right)(t));const r=await o.sendApdu(d,!0),u=await o.sendApdu(a);(0,e.expect)(s.sendApdu).toHaveBeenCalledTimes(3),(0,e.expect)(s.sendApdu.mock.calls).toEqual([[d,!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0],[a,!1,void 0]]),(0,e.expect)(r).toStrictEqual((0,n.Right)(t)),(0,e.expect)(u).toStrictEqual((0,n.Right)(t))}),(0,e.it)("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((0,n.Right)(t)).mockResolvedValueOnce((0,n.Right)(A)).mockResolvedValueOnce((0,n.Right)(A)).mockResolvedValueOnce((0,n.Right)(t)).mockResolvedValueOnce((0,n.Right)(t));const r=await o.sendApdu(d,!0),u=await o.sendApdu(a);(0,e.expect)(s.sendApdu).toHaveBeenCalledTimes(5),(0,e.expect)(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]]),(0,e.expect)(r).toStrictEqual((0,n.Right)(t)),(0,e.expect)(u).toStrictEqual((0,n.Right)(t))}),(0,e.it)("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((0,n.Right)(t));const r=o.sendApdu(d,!0),u=o.sendApdu(a),c=await r,i=await u;(0,e.expect)(s.sendApdu).toHaveBeenCalledTimes(3),(0,e.expect)(s.sendApdu.mock.calls).toEqual([[d,!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0],[a,!1,void 0]]),(0,e.expect)(c).toStrictEqual((0,n.Right)(t)),(0,e.expect)(i).toStrictEqual((0,n.Right)(t))}),(0,e.it)("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((0,n.Right)(t));let r;const u=await o.sendApdu(d,!0).then(i=>(r=o.sendApdu(a),i));o.eventDeviceDisconnected(),o.eventDeviceConnected();const c=await r;(0,e.expect)(s.sendApdu).toHaveBeenCalledTimes(3),(0,e.expect)(s.sendApdu.mock.calls).toEqual([[d,!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0],[a,!1,void 0]]),(0,e.expect)(u).toStrictEqual((0,n.Right)(t)),(0,e.expect)(c).toStrictEqual((0,n.Right)(t))}),(0,e.it)("send an APDU while device is reconnecting",async()=>{const d=Uint8Array.from([1,2,3,4]);s.sendApdu.mockResolvedValue((0,n.Right)(t)),o.eventDeviceDisconnected();const a=o.sendApdu(d,!0);o.eventDeviceConnected();const r=await a;(0,e.expect)(s.sendApdu).toHaveBeenCalledTimes(2),(0,e.expect)(s.sendApdu.mock.calls).toEqual([[d,!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0]]),(0,e.expect)(r).toStrictEqual((0,n.Right)(t))}),(0,e.it)("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((0,n.Right)(t));let r;const u=o.sendApdu(d,!0);await Promise.resolve(),o.eventDeviceDisconnected();const c=await u;r=o.sendApdu(a),o.closeConnection();const i=await r;(0,e.expect)(s.sendApdu.mock.calls).toEqual([[d,!1,void 0],[Uint8Array.from([176,1,0,0,0]),!1,void 0]]),(0,e.expect)(c).toStrictEqual((0,n.Right)(t)),(0,e.expect)(i).toStrictEqual((0,n.Left)(new l.DeviceDisconnectedWhileSendingError))})})});
2
- //# sourceMappingURL=DeviceConnectionStateMachine.test.js.map