@ledgerhq/device-management-kit 0.0.0-develop-20250106155719 → 0.0.0-rn-hid-20250221112139

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 (557) hide show
  1. package/README.md +27 -31
  2. package/lib/cjs/index.js.map +1 -1
  3. package/lib/cjs/package.json +12 -8
  4. package/lib/cjs/src/api/DeviceManagementKit.js +1 -1
  5. package/lib/cjs/src/api/DeviceManagementKit.js.map +2 -2
  6. package/lib/cjs/src/api/DeviceManagementKit.test.js +1 -1
  7. package/lib/cjs/src/api/DeviceManagementKit.test.js.map +2 -2
  8. package/lib/cjs/src/api/DeviceManagementKitBuilder.js +1 -1
  9. package/lib/cjs/src/api/DeviceManagementKitBuilder.js.map +2 -2
  10. package/lib/cjs/src/api/DeviceManagementKitBuilder.test.js +1 -1
  11. package/lib/cjs/src/api/DeviceManagementKitBuilder.test.js.map +2 -2
  12. package/lib/cjs/src/api/DmkConfig.js +1 -1
  13. package/lib/cjs/src/api/DmkConfig.js.map +1 -1
  14. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.test.js +1 -1
  15. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.test.js.map +2 -2
  16. package/lib/cjs/src/api/command/model/CommandResult.js.map +1 -1
  17. package/lib/cjs/src/api/command/os/LoadCertificateCommand.js +2 -0
  18. package/lib/cjs/src/api/command/os/LoadCertificateCommand.js.map +7 -0
  19. package/lib/cjs/src/api/command/os/LoadCertificateCommand.test.js +2 -0
  20. package/lib/cjs/src/api/command/os/LoadCertificateCommand.test.js.map +7 -0
  21. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
  22. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js.map +3 -3
  23. package/lib/cjs/src/api/command/utils/CommandUtils.js +1 -1
  24. package/lib/cjs/src/api/command/utils/CommandUtils.js.map +3 -3
  25. package/lib/cjs/src/api/command/utils/CommandUtils.test.js +1 -1
  26. package/lib/cjs/src/api/command/utils/CommandUtils.test.js.map +3 -3
  27. package/lib/cjs/src/api/device-action/DeviceAction.js +1 -1
  28. package/lib/cjs/src/api/device-action/DeviceAction.js.map +1 -1
  29. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  30. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  31. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  32. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js.map +2 -2
  33. package/lib/cjs/src/api/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  34. package/lib/cjs/src/api/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  35. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js +2 -0
  36. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js.map +7 -0
  37. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +2 -0
  38. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +7 -0
  39. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js +2 -0
  40. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js.map +7 -0
  41. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  42. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +3 -3
  43. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +1 -1
  44. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +3 -3
  45. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js +1 -1
  46. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js.map +3 -3
  47. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js +1 -1
  48. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js.map +2 -2
  49. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +1 -1
  50. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +3 -3
  51. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js +1 -1
  52. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js.map +2 -2
  53. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  54. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +3 -3
  55. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/types.js +1 -1
  56. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/types.js.map +1 -1
  57. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
  58. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +2 -2
  59. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  60. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +3 -3
  61. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js +1 -1
  62. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js.map +1 -1
  63. package/lib/cjs/src/api/device-action/xstate-utils/XStateDeviceAction.js +1 -1
  64. package/lib/cjs/src/api/device-action/xstate-utils/XStateDeviceAction.js.map +3 -3
  65. package/lib/cjs/src/api/device-session/DeviceSessionState.js +1 -1
  66. package/lib/cjs/src/api/device-session/DeviceSessionState.js.map +2 -2
  67. package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js +1 -1
  68. package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js.map +3 -3
  69. package/lib/cjs/src/api/index.js +1 -1
  70. package/lib/cjs/src/api/index.js.map +3 -3
  71. package/lib/cjs/src/api/logger-subscriber/service/ConsoleLogger.test.js +1 -1
  72. package/lib/cjs/src/api/logger-subscriber/service/ConsoleLogger.test.js.map +2 -2
  73. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +1 -1
  74. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +2 -2
  75. package/lib/cjs/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.js +1 -1
  76. package/lib/cjs/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.js.map +2 -2
  77. package/lib/cjs/src/api/transport/model/DeviceApduSender.js +2 -0
  78. package/lib/cjs/src/api/transport/model/DeviceApduSender.js.map +7 -0
  79. package/lib/cjs/src/api/transport/model/DeviceConnection.js +1 -1
  80. package/lib/cjs/src/api/transport/model/DeviceConnection.js.map +1 -1
  81. package/lib/cjs/src/api/transport/model/DeviceConnectionFactory.stub.js +1 -1
  82. package/lib/cjs/src/api/transport/model/DeviceConnectionFactory.stub.js.map +2 -2
  83. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js +2 -0
  84. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js.map +7 -0
  85. package/lib/cjs/src/api/transport/model/DiscoveredDevice.js +1 -1
  86. package/lib/cjs/src/api/transport/model/DiscoveredDevice.js.map +1 -1
  87. package/lib/cjs/src/api/transport/model/Errors.js +1 -1
  88. package/lib/cjs/src/api/transport/model/Errors.js.map +3 -3
  89. package/lib/cjs/src/api/transport/model/Transport.js.map +1 -1
  90. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.stub.js +1 -1
  91. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.stub.js.map +2 -2
  92. package/lib/cjs/src/api/transport/model/TransportDiscoveredDevice.js +1 -1
  93. package/lib/cjs/src/api/transport/model/TransportDiscoveredDevice.js.map +1 -1
  94. package/lib/cjs/src/api/transport/model/__mocks__/TransportMock.js +1 -1
  95. package/lib/cjs/src/api/transport/model/__mocks__/TransportMock.js.map +2 -2
  96. package/lib/cjs/src/api/types.js.map +1 -1
  97. package/lib/cjs/src/api/utils/Base64String.test.js +1 -1
  98. package/lib/cjs/src/api/utils/Base64String.test.js.map +2 -2
  99. package/lib/cjs/src/api/utils/HexaString.js +1 -1
  100. package/lib/cjs/src/api/utils/HexaString.js.map +2 -2
  101. package/lib/cjs/src/api/utils/HexaString.test.js +1 -1
  102. package/lib/cjs/src/api/utils/HexaString.test.js.map +2 -2
  103. package/lib/cjs/src/di.js +1 -1
  104. package/lib/cjs/src/di.js.map +3 -3
  105. package/lib/cjs/src/di.stub.js +1 -1
  106. package/lib/cjs/src/di.stub.js.map +2 -2
  107. package/lib/cjs/src/internal/config/data/LocalConfigDataSource.test.js +1 -1
  108. package/lib/cjs/src/internal/config/data/LocalConfigDataSource.test.js.map +3 -3
  109. package/lib/cjs/src/internal/config/data/RemoteConfigDataSource.test.js +1 -1
  110. package/lib/cjs/src/internal/config/data/RemoteConfigDataSource.test.js.map +2 -2
  111. package/lib/cjs/src/internal/config/data/__mocks__/LocalConfigDataSource.js +1 -1
  112. package/lib/cjs/src/internal/config/data/__mocks__/LocalConfigDataSource.js.map +2 -2
  113. package/lib/cjs/src/internal/config/data/__mocks__/RemoteConfigDataSource.js +1 -1
  114. package/lib/cjs/src/internal/config/data/__mocks__/RemoteConfigDataSource.js.map +2 -2
  115. package/lib/cjs/src/internal/config/service/DefaultConfigService.test.js +1 -1
  116. package/lib/cjs/src/internal/config/service/DefaultConfigService.test.js.map +2 -2
  117. package/lib/cjs/src/internal/config/use-case/GetDmkVersionUseCase.test.js +1 -1
  118. package/lib/cjs/src/internal/config/use-case/GetDmkVersionUseCase.test.js.map +2 -2
  119. package/lib/cjs/src/internal/device-session/model/DeviceSession.js +1 -1
  120. package/lib/cjs/src/internal/device-session/model/DeviceSession.js.map +3 -3
  121. package/lib/cjs/src/internal/device-session/model/DeviceSession.stub.js +1 -1
  122. package/lib/cjs/src/internal/device-session/model/DeviceSession.stub.js.map +3 -3
  123. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
  124. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +2 -2
  125. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.test.js +1 -1
  126. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.test.js.map +2 -2
  127. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.test.js +1 -1
  128. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.test.js.map +2 -2
  129. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
  130. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +3 -3
  131. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.js +1 -1
  132. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.js.map +3 -3
  133. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +1 -1
  134. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +3 -3
  135. package/lib/cjs/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js +1 -1
  136. package/lib/cjs/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js.map +3 -3
  137. package/lib/cjs/src/internal/discovery/di/discoveryModule.js +1 -1
  138. package/lib/cjs/src/internal/discovery/di/discoveryModule.js.map +3 -3
  139. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js +1 -1
  140. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js.map +3 -3
  141. package/lib/cjs/src/internal/discovery/di/discoveryTypes.js +1 -1
  142. package/lib/cjs/src/internal/discovery/di/discoveryTypes.js.map +2 -2
  143. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js +1 -1
  144. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js.map +3 -3
  145. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  146. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js.map +3 -3
  147. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
  148. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +3 -3
  149. package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js +1 -1
  150. package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js.map +3 -3
  151. package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js +1 -1
  152. package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js.map +3 -3
  153. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js +2 -0
  154. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js.map +7 -0
  155. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js +2 -0
  156. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js.map +7 -0
  157. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js +1 -1
  158. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js.map +3 -3
  159. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.js +1 -1
  160. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.js.map +2 -2
  161. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js +1 -1
  162. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js.map +3 -3
  163. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +1 -1
  164. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +2 -2
  165. package/lib/cjs/src/internal/logger-publisher/service/DefaultLoggerPublisherService.stub.js +1 -1
  166. package/lib/cjs/src/internal/logger-publisher/service/DefaultLoggerPublisherService.stub.js.map +2 -2
  167. package/lib/cjs/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.js +1 -1
  168. package/lib/cjs/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.js.map +2 -2
  169. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
  170. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.js.map +3 -3
  171. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
  172. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +3 -3
  173. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js.map +1 -1
  174. package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
  175. package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
  176. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js +1 -1
  177. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
  178. package/lib/cjs/src/internal/manager-api/model/Firmware.js +1 -1
  179. package/lib/cjs/src/internal/manager-api/model/Firmware.js.map +1 -1
  180. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  181. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js.map +2 -2
  182. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  183. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  184. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js +2 -0
  185. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js.map +7 -0
  186. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +2 -0
  187. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +7 -0
  188. package/lib/cjs/src/internal/secure-channel/data/SecureChannelDataSource.js +2 -0
  189. package/lib/cjs/src/internal/secure-channel/data/SecureChannelDataSource.js.map +7 -0
  190. package/lib/cjs/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js +2 -0
  191. package/lib/cjs/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js.map +7 -0
  192. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.js +2 -0
  193. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.js.map +7 -0
  194. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js +2 -0
  195. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js.map +7 -0
  196. package/lib/cjs/src/internal/secure-channel/di/secureChannelTypes.js +2 -0
  197. package/lib/cjs/src/internal/secure-channel/di/secureChannelTypes.js.map +7 -0
  198. package/lib/cjs/src/internal/secure-channel/model/Const.js +2 -0
  199. package/lib/cjs/src/internal/secure-channel/model/Const.js.map +7 -0
  200. package/lib/cjs/src/internal/secure-channel/model/Errors.js +2 -0
  201. package/lib/cjs/src/internal/secure-channel/model/Errors.js.map +7 -0
  202. package/lib/cjs/src/internal/secure-channel/model/Params.js +2 -0
  203. package/lib/cjs/src/internal/secure-channel/model/Params.js.map +7 -0
  204. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js +2 -0
  205. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +7 -0
  206. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +2 -0
  207. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +7 -0
  208. package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js +2 -0
  209. package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js.map +7 -0
  210. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js +1 -1
  211. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js.map +3 -3
  212. package/lib/cjs/src/internal/transport/di/transportModule.test.js +1 -1
  213. package/lib/cjs/src/internal/transport/di/transportModule.test.js.map +2 -2
  214. package/lib/cjs/src/internal/transport/service/DefaultTransportService.js +1 -1
  215. package/lib/cjs/src/internal/transport/service/DefaultTransportService.js.map +3 -3
  216. package/lib/cjs/src/internal/transport/service/DefaultTransportService.test.js +1 -1
  217. package/lib/cjs/src/internal/transport/service/DefaultTransportService.test.js.map +2 -2
  218. package/lib/cjs/src/internal/transport/service/TransportService.js +1 -1
  219. package/lib/cjs/src/internal/transport/service/TransportService.js.map +1 -1
  220. package/lib/cjs/src/internal/transport/service/__mocks__/DefaultTransportService.js +1 -1
  221. package/lib/cjs/src/internal/transport/service/__mocks__/DefaultTransportService.js.map +2 -2
  222. package/lib/esm/package.json +12 -8
  223. package/lib/esm/src/api/DeviceManagementKit.js +1 -1
  224. package/lib/esm/src/api/DeviceManagementKit.js.map +2 -2
  225. package/lib/esm/src/api/DeviceManagementKit.test.js +1 -1
  226. package/lib/esm/src/api/DeviceManagementKit.test.js.map +2 -2
  227. package/lib/esm/src/api/DeviceManagementKitBuilder.js +1 -1
  228. package/lib/esm/src/api/DeviceManagementKitBuilder.js.map +3 -3
  229. package/lib/esm/src/api/DeviceManagementKitBuilder.test.js +1 -1
  230. package/lib/esm/src/api/DeviceManagementKitBuilder.test.js.map +2 -2
  231. package/lib/esm/src/api/apdu/utils/ByteArrayParser.test.js +1 -1
  232. package/lib/esm/src/api/apdu/utils/ByteArrayParser.test.js.map +2 -2
  233. package/lib/esm/src/api/command/model/CommandResult.js.map +1 -1
  234. package/lib/esm/src/api/command/os/LoadCertificateCommand.js +2 -0
  235. package/lib/esm/src/api/command/os/LoadCertificateCommand.js.map +7 -0
  236. package/lib/esm/src/api/command/os/LoadCertificateCommand.test.js +2 -0
  237. package/lib/esm/src/api/command/os/LoadCertificateCommand.test.js.map +7 -0
  238. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
  239. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js.map +3 -3
  240. package/lib/esm/src/api/command/utils/CommandUtils.js +1 -1
  241. package/lib/esm/src/api/command/utils/CommandUtils.js.map +3 -3
  242. package/lib/esm/src/api/command/utils/CommandUtils.test.js +1 -1
  243. package/lib/esm/src/api/command/utils/CommandUtils.test.js.map +3 -3
  244. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  245. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  246. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  247. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js.map +2 -2
  248. package/lib/esm/src/api/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  249. package/lib/esm/src/api/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  250. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js +2 -0
  251. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js.map +7 -0
  252. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +2 -0
  253. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +7 -0
  254. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js +1 -0
  255. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js.map +7 -0
  256. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  257. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +3 -3
  258. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +1 -1
  259. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +3 -3
  260. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js +1 -1
  261. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js.map +3 -3
  262. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js +1 -1
  263. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js.map +2 -2
  264. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +1 -1
  265. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +3 -3
  266. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js +1 -1
  267. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js.map +2 -2
  268. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  269. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +3 -3
  270. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
  271. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +2 -2
  272. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  273. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +3 -3
  274. package/lib/esm/src/api/device-action/xstate-utils/XStateDeviceAction.js +1 -1
  275. package/lib/esm/src/api/device-action/xstate-utils/XStateDeviceAction.js.map +3 -3
  276. package/lib/esm/src/api/device-session/DeviceSessionState.js.map +2 -2
  277. package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js +1 -1
  278. package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js.map +3 -3
  279. package/lib/esm/src/api/index.js +1 -1
  280. package/lib/esm/src/api/index.js.map +3 -3
  281. package/lib/esm/src/api/logger-subscriber/service/ConsoleLogger.test.js +1 -1
  282. package/lib/esm/src/api/logger-subscriber/service/ConsoleLogger.test.js.map +2 -2
  283. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +1 -1
  284. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +2 -2
  285. package/lib/esm/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.js +1 -1
  286. package/lib/esm/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.js.map +2 -2
  287. package/lib/esm/src/api/transport/model/DeviceApduSender.js +1 -0
  288. package/lib/esm/src/api/transport/model/DeviceApduSender.js.map +7 -0
  289. package/lib/esm/src/api/transport/model/DeviceConnectionFactory.stub.js +1 -1
  290. package/lib/esm/src/api/transport/model/DeviceConnectionFactory.stub.js.map +2 -2
  291. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js +2 -0
  292. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js.map +7 -0
  293. package/lib/esm/src/api/transport/model/Errors.js +1 -1
  294. package/lib/esm/src/api/transport/model/Errors.js.map +3 -3
  295. package/lib/esm/src/api/transport/model/TransportConnectedDevice.stub.js +1 -1
  296. package/lib/esm/src/api/transport/model/TransportConnectedDevice.stub.js.map +2 -2
  297. package/lib/esm/src/api/transport/model/__mocks__/TransportMock.js +1 -1
  298. package/lib/esm/src/api/transport/model/__mocks__/TransportMock.js.map +2 -2
  299. package/lib/esm/src/api/utils/Base64String.test.js +1 -1
  300. package/lib/esm/src/api/utils/Base64String.test.js.map +2 -2
  301. package/lib/esm/src/api/utils/HexaString.js +1 -1
  302. package/lib/esm/src/api/utils/HexaString.js.map +2 -2
  303. package/lib/esm/src/api/utils/HexaString.test.js +1 -1
  304. package/lib/esm/src/api/utils/HexaString.test.js.map +2 -2
  305. package/lib/esm/src/di.js +1 -1
  306. package/lib/esm/src/di.js.map +3 -3
  307. package/lib/esm/src/di.stub.js +1 -1
  308. package/lib/esm/src/di.stub.js.map +2 -2
  309. package/lib/esm/src/internal/config/data/LocalConfigDataSource.test.js +1 -1
  310. package/lib/esm/src/internal/config/data/LocalConfigDataSource.test.js.map +3 -3
  311. package/lib/esm/src/internal/config/data/RemoteConfigDataSource.test.js +1 -1
  312. package/lib/esm/src/internal/config/data/RemoteConfigDataSource.test.js.map +2 -2
  313. package/lib/esm/src/internal/config/data/__mocks__/LocalConfigDataSource.js +1 -1
  314. package/lib/esm/src/internal/config/data/__mocks__/LocalConfigDataSource.js.map +2 -2
  315. package/lib/esm/src/internal/config/data/__mocks__/RemoteConfigDataSource.js +1 -1
  316. package/lib/esm/src/internal/config/data/__mocks__/RemoteConfigDataSource.js.map +2 -2
  317. package/lib/esm/src/internal/config/service/DefaultConfigService.test.js +1 -1
  318. package/lib/esm/src/internal/config/service/DefaultConfigService.test.js.map +2 -2
  319. package/lib/esm/src/internal/config/use-case/GetDmkVersionUseCase.test.js +1 -1
  320. package/lib/esm/src/internal/config/use-case/GetDmkVersionUseCase.test.js.map +2 -2
  321. package/lib/esm/src/internal/device-session/model/DeviceSession.js +1 -1
  322. package/lib/esm/src/internal/device-session/model/DeviceSession.js.map +3 -3
  323. package/lib/esm/src/internal/device-session/model/DeviceSession.stub.js +1 -1
  324. package/lib/esm/src/internal/device-session/model/DeviceSession.stub.js.map +3 -3
  325. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
  326. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +2 -2
  327. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.test.js +1 -1
  328. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.test.js.map +2 -2
  329. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.test.js +1 -1
  330. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.test.js.map +2 -2
  331. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
  332. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +3 -3
  333. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.js +1 -1
  334. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.js.map +3 -3
  335. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +1 -1
  336. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +3 -3
  337. package/lib/esm/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js +1 -1
  338. package/lib/esm/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js.map +3 -3
  339. package/lib/esm/src/internal/discovery/di/discoveryModule.js +1 -1
  340. package/lib/esm/src/internal/discovery/di/discoveryModule.js.map +3 -3
  341. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js +1 -1
  342. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js.map +3 -3
  343. package/lib/esm/src/internal/discovery/di/discoveryTypes.js +1 -1
  344. package/lib/esm/src/internal/discovery/di/discoveryTypes.js.map +2 -2
  345. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.js +1 -1
  346. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.js.map +3 -3
  347. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  348. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js.map +3 -3
  349. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
  350. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +3 -3
  351. package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js +1 -1
  352. package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js.map +3 -3
  353. package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js +1 -1
  354. package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js.map +3 -3
  355. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js +2 -0
  356. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js.map +7 -0
  357. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js +2 -0
  358. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js.map +7 -0
  359. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js +1 -1
  360. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js.map +3 -3
  361. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.js +1 -1
  362. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.js.map +2 -2
  363. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js +1 -1
  364. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js.map +3 -3
  365. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +1 -1
  366. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +2 -2
  367. package/lib/esm/src/internal/logger-publisher/service/DefaultLoggerPublisherService.stub.js +1 -1
  368. package/lib/esm/src/internal/logger-publisher/service/DefaultLoggerPublisherService.stub.js.map +2 -2
  369. package/lib/esm/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.js +1 -1
  370. package/lib/esm/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.js.map +2 -2
  371. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
  372. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.js.map +3 -3
  373. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
  374. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +3 -3
  375. package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
  376. package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
  377. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js +1 -1
  378. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
  379. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  380. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js.map +2 -2
  381. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  382. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  383. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js +2 -0
  384. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js.map +7 -0
  385. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +2 -0
  386. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +7 -0
  387. package/lib/esm/src/internal/secure-channel/data/SecureChannelDataSource.js +1 -0
  388. package/lib/esm/src/internal/secure-channel/data/SecureChannelDataSource.js.map +7 -0
  389. package/lib/esm/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js +2 -0
  390. package/lib/esm/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js.map +7 -0
  391. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.js +2 -0
  392. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.js.map +7 -0
  393. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js +2 -0
  394. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js.map +7 -0
  395. package/lib/esm/src/internal/secure-channel/di/secureChannelTypes.js +2 -0
  396. package/lib/esm/src/internal/secure-channel/di/secureChannelTypes.js.map +7 -0
  397. package/lib/esm/src/internal/secure-channel/model/Const.js +2 -0
  398. package/lib/esm/src/internal/secure-channel/model/Const.js.map +7 -0
  399. package/lib/esm/src/internal/secure-channel/model/Errors.js +2 -0
  400. package/lib/esm/src/internal/secure-channel/model/Errors.js.map +7 -0
  401. package/lib/esm/src/internal/secure-channel/model/Params.js +1 -0
  402. package/lib/esm/src/internal/secure-channel/model/Params.js.map +7 -0
  403. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.js +2 -0
  404. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +7 -0
  405. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +2 -0
  406. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +7 -0
  407. package/lib/esm/src/internal/secure-channel/service/SecureChannelService.js +1 -0
  408. package/lib/esm/src/internal/secure-channel/service/SecureChannelService.js.map +7 -0
  409. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js +1 -1
  410. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js.map +3 -3
  411. package/lib/esm/src/internal/transport/di/transportModule.test.js +1 -1
  412. package/lib/esm/src/internal/transport/di/transportModule.test.js.map +2 -2
  413. package/lib/esm/src/internal/transport/service/DefaultTransportService.js +1 -1
  414. package/lib/esm/src/internal/transport/service/DefaultTransportService.js.map +3 -3
  415. package/lib/esm/src/internal/transport/service/DefaultTransportService.test.js +1 -1
  416. package/lib/esm/src/internal/transport/service/DefaultTransportService.test.js.map +2 -2
  417. package/lib/esm/src/internal/transport/service/__mocks__/DefaultTransportService.js +1 -1
  418. package/lib/esm/src/internal/transport/service/__mocks__/DefaultTransportService.js.map +2 -2
  419. package/lib/types/src/api/DeviceManagementKit.d.ts +1 -1
  420. package/lib/types/src/api/DeviceManagementKit.d.ts.map +1 -1
  421. package/lib/types/src/api/DeviceManagementKitBuilder.d.ts.map +1 -1
  422. package/lib/types/src/api/DmkConfig.d.ts +1 -0
  423. package/lib/types/src/api/DmkConfig.d.ts.map +1 -1
  424. package/lib/types/src/api/command/model/CommandResult.d.ts +1 -2
  425. package/lib/types/src/api/command/model/CommandResult.d.ts.map +1 -1
  426. package/lib/types/src/api/command/os/LoadCertificateCommand.d.ts +25 -0
  427. package/lib/types/src/api/command/os/LoadCertificateCommand.d.ts.map +1 -0
  428. package/lib/types/src/api/command/os/LoadCertificateCommand.test.d.ts +2 -0
  429. package/lib/types/src/api/command/os/LoadCertificateCommand.test.d.ts.map +1 -0
  430. package/lib/types/src/api/command/utils/CommandUtils.d.ts +1 -0
  431. package/lib/types/src/api/command/utils/CommandUtils.d.ts.map +1 -1
  432. package/lib/types/src/api/device-action/DeviceAction.d.ts +6 -1
  433. package/lib/types/src/api/device-action/DeviceAction.d.ts.map +1 -1
  434. package/lib/types/src/api/device-action/__test-utils__/makeInternalApi.d.ts +2 -1
  435. package/lib/types/src/api/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  436. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts.map +1 -1
  437. package/lib/types/src/api/device-action/__test-utils__/testDeviceActionStates.d.ts +5 -2
  438. package/lib/types/src/api/device-action/__test-utils__/testDeviceActionStates.d.ts.map +1 -1
  439. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.d.ts +40 -0
  440. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.d.ts.map +1 -0
  441. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.d.ts +2 -0
  442. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.d.ts.map +1 -0
  443. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.d.ts +19 -0
  444. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.d.ts.map +1 -0
  445. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.d.ts.map +1 -1
  446. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.d.ts.map +1 -1
  447. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts +1 -0
  448. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts.map +1 -1
  449. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.d.ts.map +1 -1
  450. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts +1 -0
  451. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts.map +1 -1
  452. package/lib/types/src/api/device-session/DeviceSessionState.d.ts +5 -0
  453. package/lib/types/src/api/device-session/DeviceSessionState.d.ts.map +1 -1
  454. package/lib/types/src/api/index.d.ts +3 -0
  455. package/lib/types/src/api/index.d.ts.map +1 -1
  456. package/lib/types/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.d.ts +1 -1
  457. package/lib/types/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.d.ts.map +1 -1
  458. package/lib/types/src/api/transport/model/DeviceApduSender.d.ts +17 -0
  459. package/lib/types/src/api/transport/model/DeviceApduSender.d.ts.map +1 -0
  460. package/lib/types/src/api/transport/model/DeviceConnection.d.ts +2 -1
  461. package/lib/types/src/api/transport/model/DeviceConnection.d.ts.map +1 -1
  462. package/lib/types/src/api/transport/model/DeviceConnectionFactory.stub.d.ts +1 -1
  463. package/lib/types/src/api/transport/model/DeviceConnectionFactory.stub.d.ts.map +1 -1
  464. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts +60 -0
  465. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts.map +1 -0
  466. package/lib/types/src/api/transport/model/DiscoveredDevice.d.ts +2 -0
  467. package/lib/types/src/api/transport/model/DiscoveredDevice.d.ts.map +1 -1
  468. package/lib/types/src/api/transport/model/Errors.d.ts +41 -26
  469. package/lib/types/src/api/transport/model/Errors.d.ts.map +1 -1
  470. package/lib/types/src/api/transport/model/Transport.d.ts +1 -1
  471. package/lib/types/src/api/transport/model/Transport.d.ts.map +1 -1
  472. package/lib/types/src/api/transport/model/TransportDiscoveredDevice.d.ts +2 -0
  473. package/lib/types/src/api/transport/model/TransportDiscoveredDevice.d.ts.map +1 -1
  474. package/lib/types/src/api/transport/model/__mocks__/TransportMock.d.ts +7 -7
  475. package/lib/types/src/api/transport/model/__mocks__/TransportMock.d.ts.map +1 -1
  476. package/lib/types/src/api/types.d.ts +3 -2
  477. package/lib/types/src/api/types.d.ts.map +1 -1
  478. package/lib/types/src/api/utils/HexaString.d.ts +1 -1
  479. package/lib/types/src/api/utils/HexaString.d.ts.map +1 -1
  480. package/lib/types/src/di.d.ts.map +1 -1
  481. package/lib/types/src/di.stub.d.ts +1 -1
  482. package/lib/types/src/di.stub.d.ts.map +1 -1
  483. package/lib/types/src/internal/config/data/__mocks__/LocalConfigDataSource.d.ts +1 -1
  484. package/lib/types/src/internal/config/data/__mocks__/LocalConfigDataSource.d.ts.map +1 -1
  485. package/lib/types/src/internal/config/data/__mocks__/RemoteConfigDataSource.d.ts +3 -3
  486. package/lib/types/src/internal/config/data/__mocks__/RemoteConfigDataSource.d.ts.map +1 -1
  487. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts +10 -5
  488. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts.map +1 -1
  489. package/lib/types/src/internal/device-session/model/DeviceSession.stub.d.ts +2 -1
  490. package/lib/types/src/internal/device-session/model/DeviceSession.stub.d.ts.map +1 -1
  491. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseCase.d.ts +3 -1
  492. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseCase.d.ts.map +1 -1
  493. package/lib/types/src/internal/discovery/di/discoveryTypes.d.ts +1 -1
  494. package/lib/types/src/internal/discovery/di/discoveryTypes.d.ts.map +1 -1
  495. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts +3 -1
  496. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts.map +1 -1
  497. package/lib/types/src/internal/discovery/use-case/{ListenToKnownDevicesUseCase.d.ts → ListenToAvailableDevicesUseCase.d.ts} +2 -2
  498. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.d.ts.map +1 -0
  499. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.d.ts +2 -0
  500. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.d.ts.map +1 -0
  501. package/lib/types/src/internal/discovery/use-case/StartDiscoveringUseCase.d.ts.map +1 -1
  502. package/lib/types/src/internal/logger-publisher/service/DefaultLoggerPublisherService.stub.d.ts +5 -5
  503. package/lib/types/src/internal/logger-publisher/service/DefaultLoggerPublisherService.stub.d.ts.map +1 -1
  504. package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts +4 -3
  505. package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts.map +1 -1
  506. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts +24 -0
  507. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts.map +1 -1
  508. package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts +3 -3
  509. package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts.map +1 -1
  510. package/lib/types/src/internal/manager-api/model/Firmware.d.ts +4 -0
  511. package/lib/types/src/internal/manager-api/model/Firmware.d.ts.map +1 -1
  512. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.d.ts.map +1 -1
  513. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.d.ts +18 -0
  514. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.d.ts.map +1 -0
  515. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.d.ts +2 -0
  516. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.d.ts.map +1 -0
  517. package/lib/types/src/internal/secure-channel/data/SecureChannelDataSource.d.ts +52 -0
  518. package/lib/types/src/internal/secure-channel/data/SecureChannelDataSource.d.ts.map +1 -0
  519. package/lib/types/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.d.ts +10 -0
  520. package/lib/types/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.d.ts.map +1 -0
  521. package/lib/types/src/internal/secure-channel/di/secureChannelModule.d.ts +9 -0
  522. package/lib/types/src/internal/secure-channel/di/secureChannelModule.d.ts.map +1 -0
  523. package/lib/types/src/internal/secure-channel/di/secureChannelModule.test.d.ts +2 -0
  524. package/lib/types/src/internal/secure-channel/di/secureChannelModule.test.d.ts.map +1 -0
  525. package/lib/types/src/internal/secure-channel/di/secureChannelTypes.d.ts +6 -0
  526. package/lib/types/src/internal/secure-channel/di/secureChannelTypes.d.ts.map +1 -0
  527. package/lib/types/src/internal/secure-channel/model/Const.d.ts +2 -0
  528. package/lib/types/src/internal/secure-channel/model/Const.d.ts.map +1 -0
  529. package/lib/types/src/internal/secure-channel/model/Errors.d.ts +8 -0
  530. package/lib/types/src/internal/secure-channel/model/Errors.d.ts.map +1 -0
  531. package/lib/types/src/internal/secure-channel/model/Params.d.ts +86 -0
  532. package/lib/types/src/internal/secure-channel/model/Params.d.ts.map +1 -0
  533. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts +21 -0
  534. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts.map +1 -0
  535. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.test.d.ts +2 -0
  536. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.test.d.ts.map +1 -0
  537. package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts +21 -0
  538. package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts.map +1 -0
  539. package/lib/types/src/internal/transport/service/DefaultTransportService.d.ts +2 -0
  540. package/lib/types/src/internal/transport/service/DefaultTransportService.d.ts.map +1 -1
  541. package/lib/types/src/internal/transport/service/TransportService.d.ts +3 -1
  542. package/lib/types/src/internal/transport/service/TransportService.d.ts.map +1 -1
  543. package/lib/types/src/internal/transport/service/__mocks__/DefaultTransportService.d.ts +7 -6
  544. package/lib/types/src/internal/transport/service/__mocks__/DefaultTransportService.d.ts.map +1 -1
  545. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  546. package/package.json +13 -9
  547. package/lib/cjs/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.js +0 -2
  548. package/lib/cjs/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.js.map +0 -7
  549. package/lib/cjs/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.js +0 -2
  550. package/lib/cjs/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.js.map +0 -7
  551. package/lib/esm/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.js +0 -2
  552. package/lib/esm/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.js.map +0 -7
  553. package/lib/esm/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.js +0 -2
  554. package/lib/esm/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.js.map +0 -7
  555. package/lib/types/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.d.ts.map +0 -1
  556. package/lib/types/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.d.ts +0 -2
  557. package/lib/types/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/config/use-case/GetDmkVersionUseCase.test.ts"],
4
- "sourcesContent": ["import { GetDmkVersionUseCase } from \"./GetDmkVersionUseCase\";\n\nconst getDmkConfigMock = jest.fn();\n\nlet usecase: GetDmkVersionUseCase;\ndescribe(\"GetDmkVersionUseCase\", () => {\n beforeEach(() => {\n getDmkConfigMock.mockClear();\n const configService = {\n getDmkConfig: getDmkConfigMock,\n };\n\n usecase = new GetDmkVersionUseCase(configService);\n });\n\n it(\"should return the dmk version\", async () => {\n getDmkConfigMock.mockResolvedValue({\n name: \"DeviceSDK\",\n version: \"1.0.0\",\n });\n expect(await usecase.getDmkVersion()).toBe(\"1.0.0\");\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAAqC,kCAErC,MAAMC,EAAmB,KAAK,GAAG,EAEjC,IAAIC,EACJ,SAAS,uBAAwB,IAAM,CACrC,WAAW,IAAM,CACfD,EAAiB,UAAU,EAC3B,MAAME,EAAgB,CACpB,aAAcF,CAChB,EAEAC,EAAU,IAAI,uBAAqBC,CAAa,CAClD,CAAC,EAED,GAAG,gCAAiC,SAAY,CAC9CF,EAAiB,kBAAkB,CACjC,KAAM,YACN,QAAS,OACX,CAAC,EACD,OAAO,MAAMC,EAAQ,cAAc,CAAC,EAAE,KAAK,OAAO,CACpD,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { GetDmkVersionUseCase } from \"./GetDmkVersionUseCase\";\n\nconst getDmkConfigMock = vi.fn();\n\nlet usecase: GetDmkVersionUseCase;\ndescribe(\"GetDmkVersionUseCase\", () => {\n beforeEach(() => {\n getDmkConfigMock.mockClear();\n const configService = {\n getDmkConfig: getDmkConfigMock,\n };\n\n usecase = new GetDmkVersionUseCase(configService);\n });\n\n it(\"should return the dmk version\", async () => {\n getDmkConfigMock.mockResolvedValue({\n name: \"DeviceSDK\",\n version: \"1.0.0\",\n });\n expect(await usecase.getDmkVersion()).toBe(\"1.0.0\");\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAAqC,kCAErC,MAAMC,EAAmB,GAAG,GAAG,EAE/B,IAAIC,EACJ,SAAS,uBAAwB,IAAM,CACrC,WAAW,IAAM,CACfD,EAAiB,UAAU,EAC3B,MAAME,EAAgB,CACpB,aAAcF,CAChB,EAEAC,EAAU,IAAI,uBAAqBC,CAAa,CAClD,CAAC,EAED,GAAG,gCAAiC,SAAY,CAC9CF,EAAiB,kBAAkB,CACjC,KAAM,YACN,QAAS,OACX,CAAC,EACD,OAAO,MAAMC,EAAQ,cAAc,CAAC,EAAE,KAAK,OAAO,CACpD,CAAC,CACH,CAAC",
6
6
  "names": ["import_GetDmkVersionUseCase", "getDmkConfigMock", "usecase", "configService"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var A=(r,e)=>{for(var s in e)a(r,s,{get:e[s],enumerable:!0})},_=(r,e,s,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of g(e))!f.call(r,t)&&t!==s&&a(r,t,{get:()=>e[t],enumerable:!(o=l(e,t))||o.enumerable});return r};var E=r=>_(a({},"__esModule",{value:!0}),r);var y={};A(y,{DeviceSession:()=>C});module.exports=E(y);var c=require("purify-ts"),p=require("rxjs"),d=require("uuid"),v=require("../../../api/command/utils/CommandUtils"),i=require("../../../api/device/DeviceStatus"),u=require("../../../api/device-session/DeviceSessionState"),S=require("../../../api/Error"),m=require("../../device-session/data/DeviceSessionRefresherConst"),D=require("./DeviceSessionRefresher");class C{_id;_connectedDevice;_deviceState;_refresher;_managerApiService;constructor({connectedDevice:e,id:s=(0,d.v4)()},o,t){this._id=s,this._connectedDevice=e,this._deviceState=new p.BehaviorSubject({sessionStateType:u.DeviceSessionStateType.Connected,deviceStatus:i.DeviceStatus.CONNECTED}),this._refresher=new D.DeviceSessionRefresher({refreshInterval:m.DEVICE_SESSION_REFRESH_INTERVAL,deviceStatus:i.DeviceStatus.CONNECTED,deviceModelId:this._connectedDevice.deviceModel.id,sendApduFn:n=>this.sendApdu(n,{isPolling:!0,triggersDisconnection:!1}),updateStateFn:n=>{const h=this._deviceState.getValue();this.setDeviceSessionState(n(h))}},o("device-session-refresher")),this._managerApiService=t}get id(){return this._id}get connectedDevice(){return this._connectedDevice}get state(){return this._deviceState.asObservable()}setDeviceSessionState(e){this._deviceState.next(e)}updateDeviceStatus(e){const s=this._deviceState.getValue();this._refresher.setDeviceStatus(e),this._deviceState.next({...s,deviceStatus:e})}async sendApdu(e,s={isPolling:!1,triggersDisconnection:!1}){return this._deviceState.getValue().deviceStatus===i.DeviceStatus.BUSY?(0,c.Left)(new S.DeviceBusyError):(s.isPolling||this.updateDeviceStatus(i.DeviceStatus.BUSY),(await this._connectedDevice.sendApdu(e,s.triggersDisconnection)).ifRight(n=>{v.CommandUtils.isLockedDeviceResponse(n)?this.updateDeviceStatus(i.DeviceStatus.LOCKED):this.updateDeviceStatus(i.DeviceStatus.CONNECTED)}).ifLeft(()=>{this.updateDeviceStatus(i.DeviceStatus.CONNECTED)}))}async sendCommand(e){const s=e.getApdu();return(await this.sendApdu(s.getRawApdu(),{isPolling:!1,triggersDisconnection:e.triggersDisconnection??!1})).caseOf({Left:t=>{throw t},Right:t=>e.parseResponse(t,this._connectedDevice.deviceModel.id)})}executeDeviceAction(e){const{observable:s,cancel:o}=e._execute({sendCommand:async t=>this.sendCommand(t),getDeviceSessionState:()=>this._deviceState.getValue(),getDeviceSessionStateObservable:()=>this.state,setDeviceSessionState:t=>(this.setDeviceSessionState(t),this._deviceState.getValue()),getMetadataForAppHashes:t=>this._managerApiService.getAppsByHash(t)});return{observable:s,cancel:o}}close(){this.updateDeviceStatus(i.DeviceStatus.NOT_CONNECTED),this._deviceState.complete(),this._refresher.stop()}toggleRefresher(e){e?this._refresher.start():this._refresher.stop()}}0&&(module.exports={DeviceSession});
1
+ "use strict";var a=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var _=(n,e)=>{for(var t in e)a(n,t,{get:e[t],enumerable:!0})},y=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of f(e))!C.call(n,i)&&i!==t&&a(n,i,{get:()=>e[i],enumerable:!(s=g(e,i))||s.enumerable});return n};var A=n=>y(a({},"__esModule",{value:!0}),n);var R={};_(R,{DeviceSession:()=>E});module.exports=A(R);var d=require("purify-ts"),p=require("rxjs"),u=require("uuid"),v=require("../../../api/command/utils/CommandUtils"),r=require("../../../api/device/DeviceStatus"),S=require("../../../api/device-session/DeviceSessionState"),l=require("../../../api/Error"),h=require("../../device-session/data/DeviceSessionRefresherConst"),m=require("./DeviceSessionRefresher");class E{_id;_connectedDevice;_deviceState;_refresher;_managerApiService;_secureChannelService;constructor({connectedDevice:e,id:t=(0,u.v4)()},s,i,o){this._id=t,this._connectedDevice=e,this._deviceState=new p.BehaviorSubject({sessionStateType:S.DeviceSessionStateType.Connected,deviceStatus:r.DeviceStatus.CONNECTED,deviceModelId:this._connectedDevice.deviceModel.id}),this._refresher=new m.DeviceSessionRefresher({refreshInterval:h.DEVICE_SESSION_REFRESH_INTERVAL,deviceStatus:r.DeviceStatus.CONNECTED,deviceModelId:this._connectedDevice.deviceModel.id,sendApduFn:c=>this.sendApdu(c,{isPolling:!0,triggersDisconnection:!1}),updateStateFn:c=>{const D=this._deviceState.getValue();this.setDeviceSessionState(c(D))}},s("device-session-refresher")),this._managerApiService=i,this._secureChannelService=o}get id(){return this._id}get connectedDevice(){return this._connectedDevice}get state(){return this._deviceState.asObservable()}setDeviceSessionState(e){this._deviceState.next(e)}updateDeviceStatus(e){const t=this._deviceState.getValue();this._refresher.setDeviceStatus(e),this._deviceState.next({...t,deviceStatus:e})}async sendApdu(e,t={isPolling:!1,triggersDisconnection:!1}){return t.isPolling||(this.toggleRefresher(!1),await this.waitUntilReady()),this._deviceState.getValue().deviceStatus===r.DeviceStatus.BUSY?(0,d.Left)(new l.DeviceBusyError):(this.updateDeviceStatus(r.DeviceStatus.BUSY),(await this._connectedDevice.sendApdu(e,t.triggersDisconnection)).ifRight(o=>{v.CommandUtils.isLockedDeviceResponse(o)?this.updateDeviceStatus(r.DeviceStatus.LOCKED):this.updateDeviceStatus(r.DeviceStatus.CONNECTED),t.isPolling||this.toggleRefresher(!0)}).ifLeft(()=>{this.updateDeviceStatus(r.DeviceStatus.CONNECTED),t.isPolling||this.toggleRefresher(!0)}))}async waitUntilReady(){let e;await new Promise(t=>{e=this._deviceState.subscribe(s=>{s.deviceStatus===r.DeviceStatus.CONNECTED&&(e?.unsubscribe(),t())})})}async sendCommand(e){const t=e.getApdu();return(await this.sendApdu(t.getRawApdu(),{isPolling:!1,triggersDisconnection:e.triggersDisconnection??!1})).caseOf({Left:i=>{throw i},Right:i=>e.parseResponse(i,this._connectedDevice.deviceModel.id)})}executeDeviceAction(e){const{observable:t,cancel:s}=e._execute({sendApdu:async i=>this.sendApdu(i),sendCommand:async i=>this.sendCommand(i),getDeviceSessionState:()=>this._deviceState.getValue(),getDeviceSessionStateObservable:()=>this.state,setDeviceSessionState:i=>(this.setDeviceSessionState(i),this._deviceState.getValue()),getManagerApiService:()=>this._managerApiService,getSecureChannelService:()=>this._secureChannelService});return{observable:t,cancel:s}}close(){this.updateDeviceStatus(r.DeviceStatus.NOT_CONNECTED),this._deviceState.complete(),this._refresher.stop()}toggleRefresher(e){e?this._refresher.start():this._refresher.stop()}}0&&(module.exports={DeviceSession});
2
2
  //# sourceMappingURL=DeviceSession.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/model/DeviceSession.ts"],
4
- "sourcesContent": ["import { type Either, Left } from \"purify-ts\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { type Command } from \"@api/command/Command\";\nimport { type CommandResult } from \"@api/command/model/CommandResult\";\nimport { type ListAppsResponse } from \"@api/command/os/ListAppsCommand\";\nimport { CommandUtils } from \"@api/command/utils/CommandUtils\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport {\n type DeviceAction,\n type DeviceActionIntermediateValue,\n type ExecuteDeviceActionReturnType,\n} from \"@api/device-action/DeviceAction\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport {\n type DeviceSessionState,\n DeviceSessionStateType,\n} from \"@api/device-session/DeviceSessionState\";\nimport { type DeviceSessionId } from \"@api/device-session/types\";\nimport { DeviceBusyError, type DmkError } from \"@api/Error\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { type TransportConnectedDevice } from \"@api/transport/model/TransportConnectedDevice\";\nimport { DEVICE_SESSION_REFRESH_INTERVAL } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\n\nimport { DeviceSessionRefresher } from \"./DeviceSessionRefresher\";\n\nexport type SessionConstructorArgs = {\n connectedDevice: TransportConnectedDevice;\n id?: DeviceSessionId;\n};\n\n/**\n * Represents a session with a device.\n */\nexport class DeviceSession {\n private readonly _id: DeviceSessionId;\n private readonly _connectedDevice: TransportConnectedDevice;\n private readonly _deviceState: BehaviorSubject<DeviceSessionState>;\n private readonly _refresher: DeviceSessionRefresher;\n private readonly _managerApiService: ManagerApiService;\n\n constructor(\n { connectedDevice, id = uuidv4() }: SessionConstructorArgs,\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n managerApiService: ManagerApiService,\n ) {\n this._id = id;\n this._connectedDevice = connectedDevice;\n this._deviceState = new BehaviorSubject<DeviceSessionState>({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n });\n this._refresher = new DeviceSessionRefresher(\n {\n refreshInterval: DEVICE_SESSION_REFRESH_INTERVAL,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: this._connectedDevice.deviceModel.id,\n sendApduFn: (rawApdu: Uint8Array) =>\n this.sendApdu(rawApdu, {\n isPolling: true,\n triggersDisconnection: false,\n }),\n updateStateFn: (callback) => {\n const state = this._deviceState.getValue();\n this.setDeviceSessionState(callback(state));\n },\n },\n loggerModuleFactory(\"device-session-refresher\"),\n );\n this._managerApiService = managerApiService;\n }\n\n public get id() {\n return this._id;\n }\n\n public get connectedDevice() {\n return this._connectedDevice;\n }\n\n public get state() {\n return this._deviceState.asObservable();\n }\n\n public setDeviceSessionState(state: DeviceSessionState) {\n this._deviceState.next(state);\n }\n\n private updateDeviceStatus(deviceStatus: DeviceStatus) {\n const sessionState = this._deviceState.getValue();\n this._refresher.setDeviceStatus(deviceStatus);\n this._deviceState.next({\n ...sessionState,\n deviceStatus,\n });\n }\n\n async sendApdu(\n rawApdu: Uint8Array,\n options: {\n isPolling: boolean;\n triggersDisconnection: boolean;\n } = {\n isPolling: false,\n triggersDisconnection: false,\n },\n ): Promise<Either<DmkError, ApduResponse>> {\n const sessionState = this._deviceState.getValue();\n if (sessionState.deviceStatus === DeviceStatus.BUSY) {\n return Left(new DeviceBusyError());\n }\n\n if (!options.isPolling) this.updateDeviceStatus(DeviceStatus.BUSY);\n\n const errorOrResponse = await this._connectedDevice.sendApdu(\n rawApdu,\n options.triggersDisconnection,\n );\n\n return errorOrResponse\n .ifRight((response: ApduResponse) => {\n if (CommandUtils.isLockedDeviceResponse(response)) {\n this.updateDeviceStatus(DeviceStatus.LOCKED);\n } else {\n this.updateDeviceStatus(DeviceStatus.CONNECTED);\n }\n })\n .ifLeft(() => {\n this.updateDeviceStatus(DeviceStatus.CONNECTED);\n });\n }\n\n async sendCommand<Response, Args, ErrorStatusCodes>(\n command: Command<Response, Args, ErrorStatusCodes>,\n ): Promise<CommandResult<Response, ErrorStatusCodes>> {\n const apdu = command.getApdu();\n const response = await this.sendApdu(apdu.getRawApdu(), {\n isPolling: false,\n triggersDisconnection: command.triggersDisconnection ?? false,\n });\n\n return response.caseOf({\n Left: (err) => {\n throw err;\n },\n Right: (r) =>\n command.parseResponse(r, this._connectedDevice.deviceModel.id),\n });\n }\n\n executeDeviceAction<\n Output,\n Input,\n Error extends DmkError,\n IntermediateValue extends DeviceActionIntermediateValue,\n >(\n deviceAction: DeviceAction<Output, Input, Error, IntermediateValue>,\n ): ExecuteDeviceActionReturnType<Output, Error, IntermediateValue> {\n const { observable, cancel } = deviceAction._execute({\n sendCommand: async <Response, ErrorStatusCodes, Args>(\n command: Command<Response, ErrorStatusCodes, Args>,\n ) => this.sendCommand(command),\n getDeviceSessionState: () => this._deviceState.getValue(),\n getDeviceSessionStateObservable: () => this.state,\n setDeviceSessionState: (state: DeviceSessionState) => {\n this.setDeviceSessionState(state);\n return this._deviceState.getValue();\n },\n getMetadataForAppHashes: (apps: ListAppsResponse) =>\n this._managerApiService.getAppsByHash(apps),\n });\n\n return {\n observable,\n cancel,\n };\n }\n\n close() {\n this.updateDeviceStatus(DeviceStatus.NOT_CONNECTED);\n this._deviceState.complete();\n this._refresher.stop();\n }\n\n toggleRefresher(enabled: boolean) {\n if (enabled) {\n this._refresher.start();\n } else {\n this._refresher.stop();\n }\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["DeviceSession_exports", "__export", "DeviceSession", "__toCommonJS", "import_purify_ts", "import_rxjs", "import_uuid", "import_CommandUtils", "import_DeviceStatus", "import_DeviceSessionState", "import_Error", "import_DeviceSessionRefresherConst", "import_DeviceSessionRefresher", "connectedDevice", "id", "uuidv4", "loggerModuleFactory", "managerApiService", "rawApdu", "callback", "state", "deviceStatus", "sessionState", "options", "response", "command", "apdu", "err", "r", "deviceAction", "observable", "cancel", "apps", "enabled"]
4
+ "sourcesContent": ["import { type Either, Left } from \"purify-ts\";\nimport { BehaviorSubject, type Subscription } from \"rxjs\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { type Command } from \"@api/command/Command\";\nimport { type CommandResult } from \"@api/command/model/CommandResult\";\nimport { CommandUtils } from \"@api/command/utils/CommandUtils\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport {\n type DeviceAction,\n type DeviceActionIntermediateValue,\n type ExecuteDeviceActionReturnType,\n} from \"@api/device-action/DeviceAction\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport {\n type DeviceSessionState,\n DeviceSessionStateType,\n} from \"@api/device-session/DeviceSessionState\";\nimport { type DeviceSessionId } from \"@api/device-session/types\";\nimport { DeviceBusyError, type DmkError } from \"@api/Error\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { type TransportConnectedDevice } from \"@api/transport/model/TransportConnectedDevice\";\nimport { DEVICE_SESSION_REFRESH_INTERVAL } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\n\nimport { DeviceSessionRefresher } from \"./DeviceSessionRefresher\";\n\nexport type SessionConstructorArgs = {\n connectedDevice: TransportConnectedDevice;\n id?: DeviceSessionId;\n};\n\ntype SendApduOptions = {\n isPolling?: boolean;\n triggersDisconnection?: boolean;\n};\n\n/**\n * Represents a session with a device.\n */\nexport class DeviceSession {\n private readonly _id: DeviceSessionId;\n private readonly _connectedDevice: TransportConnectedDevice;\n private readonly _deviceState: BehaviorSubject<DeviceSessionState>;\n private readonly _refresher: DeviceSessionRefresher;\n private readonly _managerApiService: ManagerApiService;\n private readonly _secureChannelService: SecureChannelService;\n\n constructor(\n { connectedDevice, id = uuidv4() }: SessionConstructorArgs,\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n managerApiService: ManagerApiService,\n secureChannelService: SecureChannelService,\n ) {\n this._id = id;\n this._connectedDevice = connectedDevice;\n this._deviceState = new BehaviorSubject<DeviceSessionState>({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: this._connectedDevice.deviceModel.id,\n });\n this._refresher = new DeviceSessionRefresher(\n {\n refreshInterval: DEVICE_SESSION_REFRESH_INTERVAL,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: this._connectedDevice.deviceModel.id,\n sendApduFn: (rawApdu: Uint8Array) =>\n this.sendApdu(rawApdu, {\n isPolling: true,\n triggersDisconnection: false,\n }),\n updateStateFn: (callback) => {\n const state = this._deviceState.getValue();\n this.setDeviceSessionState(callback(state));\n },\n },\n loggerModuleFactory(\"device-session-refresher\"),\n );\n this._managerApiService = managerApiService;\n this._secureChannelService = secureChannelService;\n }\n\n public get id() {\n return this._id;\n }\n\n public get connectedDevice() {\n return this._connectedDevice;\n }\n\n public get state() {\n return this._deviceState.asObservable();\n }\n\n public setDeviceSessionState(state: DeviceSessionState) {\n this._deviceState.next(state);\n }\n\n private updateDeviceStatus(deviceStatus: DeviceStatus) {\n const sessionState = this._deviceState.getValue();\n this._refresher.setDeviceStatus(deviceStatus);\n this._deviceState.next({\n ...sessionState,\n deviceStatus,\n });\n }\n\n async sendApdu(\n rawApdu: Uint8Array,\n options: SendApduOptions = {\n isPolling: false,\n triggersDisconnection: false,\n },\n ): Promise<Either<DmkError, ApduResponse>> {\n if (!options.isPolling) {\n this.toggleRefresher(false);\n await this.waitUntilReady();\n }\n\n const sessionState = this._deviceState.getValue();\n if (sessionState.deviceStatus === DeviceStatus.BUSY) {\n return Left(new DeviceBusyError());\n }\n\n this.updateDeviceStatus(DeviceStatus.BUSY);\n\n const errorOrResponse = await this._connectedDevice.sendApdu(\n rawApdu,\n options.triggersDisconnection,\n );\n\n return errorOrResponse\n .ifRight((response: ApduResponse) => {\n if (CommandUtils.isLockedDeviceResponse(response)) {\n this.updateDeviceStatus(DeviceStatus.LOCKED);\n } else {\n this.updateDeviceStatus(DeviceStatus.CONNECTED);\n }\n\n if (!options.isPolling) {\n this.toggleRefresher(true);\n }\n })\n .ifLeft(() => {\n this.updateDeviceStatus(DeviceStatus.CONNECTED);\n\n if (!options.isPolling) {\n this.toggleRefresher(true);\n }\n });\n }\n\n async waitUntilReady() {\n let deviceStateSub: Subscription;\n\n await new Promise<void>((resolve) => {\n deviceStateSub = this._deviceState.subscribe((state) => {\n if (state.deviceStatus === DeviceStatus.CONNECTED) {\n deviceStateSub?.unsubscribe();\n resolve();\n }\n });\n });\n }\n\n async sendCommand<Response, Args, ErrorStatusCodes>(\n command: Command<Response, Args, ErrorStatusCodes>,\n ): Promise<CommandResult<Response, ErrorStatusCodes>> {\n const apdu = command.getApdu();\n const response = await this.sendApdu(apdu.getRawApdu(), {\n isPolling: false,\n triggersDisconnection: command.triggersDisconnection ?? false,\n });\n\n return response.caseOf({\n Left: (err) => {\n throw err;\n },\n Right: (r) =>\n command.parseResponse(r, this._connectedDevice.deviceModel.id),\n });\n }\n\n executeDeviceAction<\n Output,\n Input,\n Error extends DmkError,\n IntermediateValue extends DeviceActionIntermediateValue,\n >(\n deviceAction: DeviceAction<Output, Input, Error, IntermediateValue>,\n ): ExecuteDeviceActionReturnType<Output, Error, IntermediateValue> {\n const { observable, cancel } = deviceAction._execute({\n sendApdu: async (apdu: Uint8Array) => this.sendApdu(apdu),\n sendCommand: async <Response, ErrorStatusCodes, Args>(\n command: Command<Response, ErrorStatusCodes, Args>,\n ) => this.sendCommand(command),\n getDeviceSessionState: () => this._deviceState.getValue(),\n getDeviceSessionStateObservable: () => this.state,\n setDeviceSessionState: (state: DeviceSessionState) => {\n this.setDeviceSessionState(state);\n return this._deviceState.getValue();\n },\n getManagerApiService: () => this._managerApiService,\n getSecureChannelService: () => this._secureChannelService,\n });\n\n return {\n observable,\n cancel,\n };\n }\n\n close() {\n this.updateDeviceStatus(DeviceStatus.NOT_CONNECTED);\n this._deviceState.complete();\n this._refresher.stop();\n }\n\n toggleRefresher(enabled: boolean) {\n if (enabled) {\n this._refresher.start();\n } else {\n this._refresher.stop();\n }\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkC,qBAClCC,EAAmD,gBACnDC,EAA6B,gBAI7BC,EAA6B,2CAC7BC,EAA6B,oCAO7BC,EAGO,kDAEPC,EAA+C,sBAG/CC,EAAgD,qEAIhDC,EAAuC,oCAehC,MAAMV,CAAc,CACR,IACA,iBACA,aACA,WACA,mBACA,sBAEjB,YACE,CAAE,gBAAAW,EAAiB,GAAAC,KAAK,EAAAC,IAAO,CAAE,EACjCC,EACAC,EACAC,EACA,CACA,KAAK,IAAMJ,EACX,KAAK,iBAAmBD,EACxB,KAAK,aAAe,IAAI,kBAAoC,CAC1D,iBAAkB,yBAAuB,UACzC,aAAc,eAAa,UAC3B,cAAe,KAAK,iBAAiB,YAAY,EACnD,CAAC,EACD,KAAK,WAAa,IAAI,yBACpB,CACE,gBAAiB,kCACjB,aAAc,eAAa,UAC3B,cAAe,KAAK,iBAAiB,YAAY,GACjD,WAAaM,GACX,KAAK,SAASA,EAAS,CACrB,UAAW,GACX,sBAAuB,EACzB,CAAC,EACH,cAAgBC,GAAa,CAC3B,MAAMC,EAAQ,KAAK,aAAa,SAAS,EACzC,KAAK,sBAAsBD,EAASC,CAAK,CAAC,CAC5C,CACF,EACAL,EAAoB,0BAA0B,CAChD,EACA,KAAK,mBAAqBC,EAC1B,KAAK,sBAAwBC,CAC/B,CAEA,IAAW,IAAK,CACd,OAAO,KAAK,GACd,CAEA,IAAW,iBAAkB,CAC3B,OAAO,KAAK,gBACd,CAEA,IAAW,OAAQ,CACjB,OAAO,KAAK,aAAa,aAAa,CACxC,CAEO,sBAAsBG,EAA2B,CACtD,KAAK,aAAa,KAAKA,CAAK,CAC9B,CAEQ,mBAAmBC,EAA4B,CACrD,MAAMC,EAAe,KAAK,aAAa,SAAS,EAChD,KAAK,WAAW,gBAAgBD,CAAY,EAC5C,KAAK,aAAa,KAAK,CACrB,GAAGC,EACH,aAAAD,CACF,CAAC,CACH,CAEA,MAAM,SACJH,EACAK,EAA2B,CACzB,UAAW,GACX,sBAAuB,EACzB,EACyC,CAOzC,OANKA,EAAQ,YACX,KAAK,gBAAgB,EAAK,EAC1B,MAAM,KAAK,eAAe,GAGP,KAAK,aAAa,SAAS,EAC/B,eAAiB,eAAa,QACtC,QAAK,IAAI,iBAAiB,GAGnC,KAAK,mBAAmB,eAAa,IAAI,GAEjB,MAAM,KAAK,iBAAiB,SAClDL,EACAK,EAAQ,qBACV,GAGG,QAASC,GAA2B,CAC/B,eAAa,uBAAuBA,CAAQ,EAC9C,KAAK,mBAAmB,eAAa,MAAM,EAE3C,KAAK,mBAAmB,eAAa,SAAS,EAG3CD,EAAQ,WACX,KAAK,gBAAgB,EAAI,CAE7B,CAAC,EACA,OAAO,IAAM,CACZ,KAAK,mBAAmB,eAAa,SAAS,EAEzCA,EAAQ,WACX,KAAK,gBAAgB,EAAI,CAE7B,CAAC,EACL,CAEA,MAAM,gBAAiB,CACrB,IAAIE,EAEJ,MAAM,IAAI,QAAeC,GAAY,CACnCD,EAAiB,KAAK,aAAa,UAAWL,GAAU,CAClDA,EAAM,eAAiB,eAAa,YACtCK,GAAgB,YAAY,EAC5BC,EAAQ,EAEZ,CAAC,CACH,CAAC,CACH,CAEA,MAAM,YACJC,EACoD,CACpD,MAAMC,EAAOD,EAAQ,QAAQ,EAM7B,OALiB,MAAM,KAAK,SAASC,EAAK,WAAW,EAAG,CACtD,UAAW,GACX,sBAAuBD,EAAQ,uBAAyB,EAC1D,CAAC,GAEe,OAAO,CACrB,KAAOE,GAAQ,CACb,MAAMA,CACR,EACA,MAAQC,GACNH,EAAQ,cAAcG,EAAG,KAAK,iBAAiB,YAAY,EAAE,CACjE,CAAC,CACH,CAEA,oBAMEC,EACiE,CACjE,KAAM,CAAE,WAAAC,EAAY,OAAAC,CAAO,EAAIF,EAAa,SAAS,CACnD,SAAU,MAAOH,GAAqB,KAAK,SAASA,CAAI,EACxD,YAAa,MACXD,GACG,KAAK,YAAYA,CAAO,EAC7B,sBAAuB,IAAM,KAAK,aAAa,SAAS,EACxD,gCAAiC,IAAM,KAAK,MAC5C,sBAAwBP,IACtB,KAAK,sBAAsBA,CAAK,EACzB,KAAK,aAAa,SAAS,GAEpC,qBAAsB,IAAM,KAAK,mBACjC,wBAAyB,IAAM,KAAK,qBACtC,CAAC,EAED,MAAO,CACL,WAAAY,EACA,OAAAC,CACF,CACF,CAEA,OAAQ,CACN,KAAK,mBAAmB,eAAa,aAAa,EAClD,KAAK,aAAa,SAAS,EAC3B,KAAK,WAAW,KAAK,CACvB,CAEA,gBAAgBC,EAAkB,CAC5BA,EACF,KAAK,WAAW,MAAM,EAEtB,KAAK,WAAW,KAAK,CAEzB,CACF",
6
+ "names": ["DeviceSession_exports", "__export", "DeviceSession", "__toCommonJS", "import_purify_ts", "import_rxjs", "import_uuid", "import_CommandUtils", "import_DeviceStatus", "import_DeviceSessionState", "import_Error", "import_DeviceSessionRefresherConst", "import_DeviceSessionRefresher", "connectedDevice", "id", "uuidv4", "loggerModuleFactory", "managerApiService", "secureChannelService", "rawApdu", "callback", "state", "deviceStatus", "sessionState", "options", "response", "deviceStateSub", "resolve", "command", "apdu", "err", "r", "deviceAction", "observable", "cancel", "enabled"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var t=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var S=(r,e)=>{for(var i in e)t(r,i,{get:e[i],enumerable:!0})},v=(r,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of g(e))!p.call(r,o)&&o!==i&&t(r,o,{get:()=>e[o],enumerable:!(n=a(e,o))||n.enumerable});return r};var m=r=>v(t({},"__esModule",{value:!0}),r);var d={};S(d,{deviceSessionStubBuilder:()=>u});module.exports=m(d);var s=require("../../../api/transport/model/TransportConnectedDevice.stub"),c=require("../../device-session/model/DeviceSession");const u=(r={},e,i)=>new c.DeviceSession({connectedDevice:(0,s.connectedDeviceStubBuilder)(),id:"fakeSessionId",...r},e,i);0&&(module.exports={deviceSessionStubBuilder});
1
+ "use strict";var t=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var g=(r,e)=>{for(var i in e)t(r,i,{get:e[i],enumerable:!0})},v=(r,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of S(e))!p.call(r,o)&&o!==i&&t(r,o,{get:()=>e[o],enumerable:!(n=a(e,o))||n.enumerable});return r};var m=r=>v(t({},"__esModule",{value:!0}),r);var l={};g(l,{deviceSessionStubBuilder:()=>u});module.exports=m(l);var c=require("../../../api/transport/model/TransportConnectedDevice.stub"),s=require("../../device-session/model/DeviceSession");const u=(r={},e,i,n)=>new s.DeviceSession({connectedDevice:(0,c.connectedDeviceStubBuilder)(),id:"fakeSessionId",...r},e,i,n);0&&(module.exports={deviceSessionStubBuilder});
2
2
  //# sourceMappingURL=DeviceSession.stub.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/model/DeviceSession.stub.ts"],
4
- "sourcesContent": ["import { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { connectedDeviceStubBuilder } from \"@api/transport/model/TransportConnectedDevice.stub\";\nimport {\n DeviceSession,\n type SessionConstructorArgs,\n} from \"@internal/device-session/model/DeviceSession\";\nimport type { ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\n\nexport const deviceSessionStubBuilder = (\n props: Partial<SessionConstructorArgs> = {},\n loggerFactory: (tag: string) => LoggerPublisherService,\n managerApi: ManagerApiService,\n) =>\n new DeviceSession(\n {\n connectedDevice: connectedDeviceStubBuilder(),\n id: \"fakeSessionId\",\n ...props,\n },\n loggerFactory,\n managerApi,\n );\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAA2C,8DAC3CC,EAGO,wDAGA,MAAMH,EAA2B,CACtCI,EAAyC,CAAC,EAC1CC,EACAC,IAEA,IAAI,gBACF,CACE,mBAAiB,8BAA2B,EAC5C,GAAI,gBACJ,GAAGF,CACL,EACAC,EACAC,CACF",
6
- "names": ["DeviceSession_stub_exports", "__export", "deviceSessionStubBuilder", "__toCommonJS", "import_TransportConnectedDevice", "import_DeviceSession", "props", "loggerFactory", "managerApi"]
4
+ "sourcesContent": ["import { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { connectedDeviceStubBuilder } from \"@api/transport/model/TransportConnectedDevice.stub\";\nimport {\n DeviceSession,\n type SessionConstructorArgs,\n} from \"@internal/device-session/model/DeviceSession\";\nimport type { ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\n\nexport const deviceSessionStubBuilder = (\n props: Partial<SessionConstructorArgs> = {},\n loggerFactory: (tag: string) => LoggerPublisherService,\n managerApi: ManagerApiService,\n secureChannel: SecureChannelService,\n) =>\n new DeviceSession(\n {\n connectedDevice: connectedDeviceStubBuilder(),\n id: \"fakeSessionId\",\n ...props,\n },\n loggerFactory,\n managerApi,\n secureChannel,\n );\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAA2C,8DAC3CC,EAGO,wDAIA,MAAMH,EAA2B,CACtCI,EAAyC,CAAC,EAC1CC,EACAC,EACAC,IAEA,IAAI,gBACF,CACE,mBAAiB,8BAA2B,EAC5C,GAAI,gBACJ,GAAGH,CACL,EACAC,EACAC,EACAC,CACF",
6
+ "names": ["DeviceSession_stub_exports", "__export", "deviceSessionStubBuilder", "__toCommonJS", "import_TransportConnectedDevice", "import_DeviceSession", "props", "loggerFactory", "managerApi", "secureChannel"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var r=require("purify-ts"),v=require("../../../api/command/model/CommandResult"),l=require("../../../api/command/os/GetAppAndVersionCommand"),p=require("../../../api/command/os/GetOsVersionCommand"),d=require("../../../api/device/DeviceModel"),a=require("../../../api/device/DeviceStatus"),s=require("../../device-session/data/DeviceSessionRefresherConst"),u=require("../../logger-publisher/service/DefaultLoggerPublisherService"),c=require("./DeviceSessionRefresher");const t=jest.fn().mockResolvedValue(Promise.resolve((0,r.Right)({}))),i=jest.fn().mockImplementation(()=>{});jest.useFakeTimers();describe("DeviceSessionRefresher",()=>{let e,n;beforeEach(()=>{jest.spyOn(l.GetAppAndVersionCommand.prototype,"parseResponse").mockReturnValueOnce((0,v.CommandResultFactory)({data:{name:"testAppName"}})),jest.spyOn(p.GetOsVersionCommand.prototype,"parseResponse").mockReturnValueOnce((0,v.CommandResultFactory)({data:{}})),n=new u.DefaultLoggerPublisherService([],"DeviceSessionRefresherTest")}),describe("With a modern device",()=>{beforeEach(()=>{const o=Object.values(d.DeviceModelId).filter(m=>m!==d.DeviceModelId.NANO_S);e=new c.DeviceSessionRefresher({refreshInterval:s.DEVICE_SESSION_REFRESH_INTERVAL,deviceStatus:a.DeviceStatus.CONNECTED,sendApduFn:t,updateStateFn:i,deviceModelId:o[Math.floor(Math.random()*o.length)]},n)}),afterEach(()=>{e.stop(),jest.clearAllMocks()}),it("should poll by calling sendApduFn 2 times",()=>{jest.advanceTimersByTime(s.DEVICE_SESSION_REFRESH_INTERVAL*2),expect(t).toHaveBeenCalledTimes(2)}),it("should not poll when device is busy",()=>{e.setDeviceStatus(a.DeviceStatus.BUSY),jest.advanceTimersByTime(s.DEVICE_SESSION_REFRESH_INTERVAL),expect(t).not.toHaveBeenCalled()}),it("should not poll when device is disconnected",()=>{e.setDeviceStatus(a.DeviceStatus.NOT_CONNECTED),jest.advanceTimersByTime(s.DEVICE_SESSION_REFRESH_INTERVAL),expect(t).not.toHaveBeenCalled()}),it("should update device session state by calling updateStateFn",async()=>{jest.advanceTimersByTime(s.DEVICE_SESSION_REFRESH_INTERVAL),await expect(t()).resolves.toEqual((0,r.Right)({})),expect(t).toHaveBeenCalled(),expect(i).toHaveBeenCalled()}),it("should not update device session state with failed polling response",async()=>{t.mockResolvedValueOnce(Promise.resolve((0,r.Left)("error")));const o=jest.spyOn(n,"error");jest.advanceTimersByTime(s.DEVICE_SESSION_REFRESH_INTERVAL),await t(),await expect(i).not.toHaveBeenCalled(),expect(o).toHaveBeenCalled()}),it("should stop the refresher when device is disconnected",()=>{const o=jest.spyOn(e,"stop");e.setDeviceStatus(a.DeviceStatus.NOT_CONNECTED),expect(o).toHaveBeenCalledTimes(1)}),it("should not throw error if stop is called on a stopped refresher",()=>{e.stop(),expect(()=>e.stop()).not.toThrow()}),it("should not throw error if start is called on a started refresher",()=>{e.start(),expect(()=>e.start()).not.toThrow()})}),describe("With a NanoS device",()=>{afterEach(()=>{e.stop(),jest.clearAllMocks()}),it("should call sendApduFn 2 times and update state 1 time for a single interval",async()=>{e=new c.DeviceSessionRefresher({refreshInterval:s.DEVICE_SESSION_REFRESH_INTERVAL,deviceStatus:a.DeviceStatus.CONNECTED,sendApduFn:t,updateStateFn:i,deviceModelId:d.DeviceModelId.NANO_S},n),jest.advanceTimersByTime(s.DEVICE_SESSION_REFRESH_INTERVAL*2+100),await Promise.resolve(),expect(t).toHaveBeenNthCalledWith(1,new l.GetAppAndVersionCommand().getApdu().getRawApdu()),await Promise.resolve(),expect(t).toHaveBeenLastCalledWith(new p.GetOsVersionCommand().getApdu().getRawApdu()),await Promise.resolve(),expect(t).toHaveBeenCalledTimes(2),await Promise.resolve(),expect(i).toHaveBeenCalledTimes(1)}),it("should set device locked when get os version times out",async()=>{t.mockImplementation(o=>o.toString()===new p.GetOsVersionCommand().getApdu().getRawApdu().toString()?new Promise(m=>setTimeout(()=>m((0,r.Left)("timeout")),s.DEVICE_SESSION_REFRESH_INTERVAL*10)):Promise.resolve((0,r.Right)({}))),i.mockImplementation(o=>{e.setDeviceStatus(o().deviceStatus)}),e=new c.DeviceSessionRefresher({refreshInterval:s.DEVICE_SESSION_REFRESH_INTERVAL,deviceStatus:a.DeviceStatus.CONNECTED,sendApduFn:t,updateStateFn:i,deviceModelId:d.DeviceModelId.NANO_S},n),jest.spyOn(e,"setDeviceStatus"),jest.advanceTimersByTime(s.DEVICE_SESSION_REFRESH_INTERVAL*5+100),await Promise.resolve(),expect(t).toHaveBeenNthCalledWith(1,new l.GetAppAndVersionCommand().getApdu().getRawApdu()),await Promise.resolve(),expect(e.setDeviceStatus).toHaveBeenCalledWith(a.DeviceStatus.LOCKED)})})});
1
+ "use strict";var r=require("purify-ts"),m=require("../../../api/command/model/CommandResult"),p=require("../../../api/command/os/GetAppAndVersionCommand"),l=require("../../../api/command/os/GetOsVersionCommand"),d=require("../../../api/device/DeviceModel"),i=require("../../../api/device/DeviceStatus"),s=require("../../device-session/data/DeviceSessionRefresherConst"),u=require("../../logger-publisher/service/DefaultLoggerPublisherService"),c=require("./DeviceSessionRefresher");const t=vi.fn().mockResolvedValue(Promise.resolve((0,r.Right)({}))),a=vi.fn().mockImplementation(()=>{});vi.useFakeTimers();describe("DeviceSessionRefresher",()=>{let e,n;beforeEach(()=>{vi.spyOn(p.GetAppAndVersionCommand.prototype,"parseResponse").mockReturnValueOnce((0,m.CommandResultFactory)({data:{name:"testAppName"}})),vi.spyOn(l.GetOsVersionCommand.prototype,"parseResponse").mockReturnValueOnce((0,m.CommandResultFactory)({data:{}})),n=new u.DefaultLoggerPublisherService([],"DeviceSessionRefresherTest")}),describe("With a modern device",()=>{beforeEach(()=>{const o=Object.values(d.DeviceModelId).filter(v=>v!==d.DeviceModelId.NANO_S);e=new c.DeviceSessionRefresher({refreshInterval:s.DEVICE_SESSION_REFRESH_INTERVAL,deviceStatus:i.DeviceStatus.CONNECTED,sendApduFn:t,updateStateFn:a,deviceModelId:o[Math.floor(Math.random()*o.length)]},n)}),afterEach(()=>{e.stop(),vi.clearAllMocks()}),it("should poll by calling sendApduFn 2 times",()=>{vi.advanceTimersByTime(s.DEVICE_SESSION_REFRESH_INTERVAL*2),expect(t).toHaveBeenCalledTimes(2)}),it("should not poll when device is busy",()=>{e.setDeviceStatus(i.DeviceStatus.BUSY),vi.advanceTimersByTime(s.DEVICE_SESSION_REFRESH_INTERVAL),expect(t).not.toHaveBeenCalled()}),it("should not poll when device is disconnected",()=>{e.setDeviceStatus(i.DeviceStatus.NOT_CONNECTED),vi.advanceTimersByTime(s.DEVICE_SESSION_REFRESH_INTERVAL),expect(t).not.toHaveBeenCalled()}),it("should update device session state by calling updateStateFn",async()=>{vi.advanceTimersByTime(s.DEVICE_SESSION_REFRESH_INTERVAL),await expect(t()).resolves.toEqual((0,r.Right)({})),expect(t).toHaveBeenCalled(),expect(a).toHaveBeenCalled()}),it("should not update device session state with failed polling response",async()=>{t.mockResolvedValueOnce(Promise.resolve((0,r.Left)("error")));const o=vi.spyOn(n,"error");vi.advanceTimersByTime(s.DEVICE_SESSION_REFRESH_INTERVAL),await t(),await expect(a).not.toHaveBeenCalled(),expect(o).toHaveBeenCalled()}),it("should stop the refresher when device is disconnected",()=>{const o=vi.spyOn(e,"stop");e.setDeviceStatus(i.DeviceStatus.NOT_CONNECTED),expect(o).toHaveBeenCalledTimes(1)}),it("should not throw error if stop is called on a stopped refresher",()=>{e.stop(),expect(()=>e.stop()).not.toThrow()}),it("should not throw error if start is called on a started refresher",()=>{e.start(),expect(()=>e.start()).not.toThrow()})}),describe("With a NanoS device",()=>{afterEach(()=>{e.stop(),vi.clearAllMocks()}),it("should call sendApduFn 2 times and update state 1 time for a single interval",async()=>{e=new c.DeviceSessionRefresher({refreshInterval:s.DEVICE_SESSION_REFRESH_INTERVAL,deviceStatus:i.DeviceStatus.CONNECTED,sendApduFn:t,updateStateFn:a,deviceModelId:d.DeviceModelId.NANO_S},n),vi.advanceTimersByTime(s.DEVICE_SESSION_REFRESH_INTERVAL*2+100),await Promise.resolve(),expect(t).toHaveBeenNthCalledWith(1,new p.GetAppAndVersionCommand().getApdu().getRawApdu()),await Promise.resolve(),expect(t).toHaveBeenLastCalledWith(new l.GetOsVersionCommand().getApdu().getRawApdu()),await Promise.resolve(),expect(t).toHaveBeenCalledTimes(2),await Promise.resolve(),expect(a).toHaveBeenCalledTimes(1)}),it("should set device locked when get os version times out",async()=>{t.mockImplementation(o=>o.toString()===new l.GetOsVersionCommand().getApdu().getRawApdu().toString()?new Promise(v=>setTimeout(()=>v((0,r.Left)("timeout")),s.DEVICE_SESSION_REFRESH_INTERVAL*10)):Promise.resolve((0,r.Right)({}))),a.mockImplementation(o=>{e.setDeviceStatus(o().deviceStatus)}),e=new c.DeviceSessionRefresher({refreshInterval:s.DEVICE_SESSION_REFRESH_INTERVAL,deviceStatus:i.DeviceStatus.CONNECTED,sendApduFn:t,updateStateFn:a,deviceModelId:d.DeviceModelId.NANO_S},n),vi.spyOn(e,"setDeviceStatus"),vi.advanceTimersByTime(s.DEVICE_SESSION_REFRESH_INTERVAL*5+100),await Promise.resolve(),expect(t).toHaveBeenNthCalledWith(1,new p.GetAppAndVersionCommand().getApdu().getRawApdu()),await Promise.resolve(),expect(e.setDeviceStatus).toHaveBeenCalledWith(i.DeviceStatus.LOCKED)})})});
2
2
  //# sourceMappingURL=DeviceSessionRefresher.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/model/DeviceSessionRefresher.test.ts"],
4
- "sourcesContent": ["import { Left, Right } from \"purify-ts\";\n\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport {\n GetAppAndVersionCommand,\n type GetAppAndVersionResponse,\n} from \"@api/command/os/GetAppAndVersionCommand\";\nimport {\n GetOsVersionCommand,\n type GetOsVersionResponse,\n} from \"@api/command/os/GetOsVersionCommand\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { DEVICE_SESSION_REFRESH_INTERVAL } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\n\nimport { DeviceSessionRefresher } from \"./DeviceSessionRefresher\";\n\nconst mockSendApduFn = jest\n .fn()\n .mockResolvedValue(Promise.resolve(Right({} as ApduResponse)));\nconst mockUpdateStateFn = jest.fn().mockImplementation(() => undefined);\n\njest.useFakeTimers();\n\ndescribe(\"DeviceSessionRefresher\", () => {\n let deviceSessionRefresher: DeviceSessionRefresher;\n let logger: LoggerPublisherService;\n\n beforeEach(() => {\n jest\n .spyOn(GetAppAndVersionCommand.prototype, \"parseResponse\")\n .mockReturnValueOnce(\n CommandResultFactory({\n data: {\n name: \"testAppName\",\n } as GetAppAndVersionResponse,\n }),\n );\n jest\n .spyOn(GetOsVersionCommand.prototype, \"parseResponse\")\n .mockReturnValueOnce(\n CommandResultFactory({\n data: {} as GetOsVersionResponse,\n }),\n );\n logger = new DefaultLoggerPublisherService(\n [],\n \"DeviceSessionRefresherTest\",\n );\n });\n\n describe(\"With a modern device\", () => {\n beforeEach(() => {\n const deviceIds = Object.values(DeviceModelId).filter(\n (id) => id !== DeviceModelId.NANO_S,\n );\n deviceSessionRefresher = new DeviceSessionRefresher(\n {\n refreshInterval: DEVICE_SESSION_REFRESH_INTERVAL,\n deviceStatus: DeviceStatus.CONNECTED,\n sendApduFn: mockSendApduFn,\n updateStateFn: mockUpdateStateFn,\n deviceModelId:\n deviceIds[Math.floor(Math.random() * deviceIds.length)]!,\n },\n logger,\n );\n });\n\n afterEach(() => {\n deviceSessionRefresher.stop();\n jest.clearAllMocks();\n });\n\n it(\"should poll by calling sendApduFn 2 times\", () => {\n jest.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL * 2);\n expect(mockSendApduFn).toHaveBeenCalledTimes(2);\n });\n\n it(\"should not poll when device is busy\", () => {\n deviceSessionRefresher.setDeviceStatus(DeviceStatus.BUSY);\n\n jest.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL);\n\n expect(mockSendApduFn).not.toHaveBeenCalled();\n });\n\n it(\"should not poll when device is disconnected\", () => {\n deviceSessionRefresher.setDeviceStatus(DeviceStatus.NOT_CONNECTED);\n\n jest.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL);\n\n expect(mockSendApduFn).not.toHaveBeenCalled();\n });\n\n it(\"should update device session state by calling updateStateFn\", async () => {\n jest.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL);\n\n await expect(mockSendApduFn()).resolves.toEqual(Right({}));\n expect(mockSendApduFn).toHaveBeenCalled();\n expect(mockUpdateStateFn).toHaveBeenCalled();\n });\n\n it(\"should not update device session state with failed polling response\", async () => {\n mockSendApduFn.mockResolvedValueOnce(Promise.resolve(Left(\"error\")));\n const spy = jest.spyOn(logger, \"error\");\n\n jest.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL);\n await mockSendApduFn();\n\n await expect(mockUpdateStateFn).not.toHaveBeenCalled();\n expect(spy).toHaveBeenCalled();\n });\n\n it(\"should stop the refresher when device is disconnected\", () => {\n const spy = jest.spyOn(deviceSessionRefresher, \"stop\");\n deviceSessionRefresher.setDeviceStatus(DeviceStatus.NOT_CONNECTED);\n expect(spy).toHaveBeenCalledTimes(1);\n });\n\n it(\"should not throw error if stop is called on a stopped refresher\", () => {\n deviceSessionRefresher.stop();\n expect(() => deviceSessionRefresher.stop()).not.toThrow();\n });\n\n it(\"should not throw error if start is called on a started refresher\", () => {\n deviceSessionRefresher.start();\n expect(() => deviceSessionRefresher.start()).not.toThrow();\n });\n });\n\n describe(\"With a NanoS device\", () => {\n afterEach(() => {\n deviceSessionRefresher.stop();\n jest.clearAllMocks();\n });\n\n it(\"should call sendApduFn 2 times and update state 1 time for a single interval\", async () => {\n deviceSessionRefresher = new DeviceSessionRefresher(\n {\n refreshInterval: DEVICE_SESSION_REFRESH_INTERVAL,\n deviceStatus: DeviceStatus.CONNECTED,\n sendApduFn: mockSendApduFn,\n updateStateFn: mockUpdateStateFn,\n deviceModelId: DeviceModelId.NANO_S,\n },\n logger,\n );\n jest.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL * 2 + 100);\n\n await Promise.resolve();\n expect(mockSendApduFn).toHaveBeenNthCalledWith(\n 1,\n new GetAppAndVersionCommand().getApdu().getRawApdu(),\n );\n await Promise.resolve();\n expect(mockSendApduFn).toHaveBeenLastCalledWith(\n new GetOsVersionCommand().getApdu().getRawApdu(),\n );\n await Promise.resolve();\n expect(mockSendApduFn).toHaveBeenCalledTimes(2);\n await Promise.resolve();\n expect(mockUpdateStateFn).toHaveBeenCalledTimes(1);\n });\n\n it(\"should set device locked when get os version times out\", async () => {\n mockSendApduFn.mockImplementation((apdu) => {\n if (\n apdu.toString() ===\n new GetOsVersionCommand().getApdu().getRawApdu().toString()\n ) {\n return new Promise((resolve) =>\n setTimeout(\n () => resolve(Left(\"timeout\")),\n DEVICE_SESSION_REFRESH_INTERVAL * 10,\n ),\n );\n }\n return Promise.resolve(Right({}));\n });\n mockUpdateStateFn.mockImplementation(\n (getState: () => DeviceSessionState) => {\n deviceSessionRefresher.setDeviceStatus(getState().deviceStatus);\n },\n );\n deviceSessionRefresher = new DeviceSessionRefresher(\n {\n refreshInterval: DEVICE_SESSION_REFRESH_INTERVAL,\n deviceStatus: DeviceStatus.CONNECTED,\n sendApduFn: mockSendApduFn,\n updateStateFn: mockUpdateStateFn,\n deviceModelId: DeviceModelId.NANO_S,\n },\n logger,\n );\n jest.spyOn(deviceSessionRefresher, \"setDeviceStatus\");\n jest.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL * 5 + 100);\n await Promise.resolve();\n expect(mockSendApduFn).toHaveBeenNthCalledWith(\n 1,\n new GetAppAndVersionCommand().getApdu().getRawApdu(),\n );\n await Promise.resolve();\n expect(deviceSessionRefresher.setDeviceStatus).toHaveBeenCalledWith(\n DeviceStatus.LOCKED,\n );\n });\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Left, Right } from \"purify-ts\";\n\nimport { type Apdu } from \"@api/apdu/model/Apdu\";\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport {\n GetAppAndVersionCommand,\n type GetAppAndVersionResponse,\n} from \"@api/command/os/GetAppAndVersionCommand\";\nimport {\n GetOsVersionCommand,\n type GetOsVersionResponse,\n} from \"@api/command/os/GetOsVersionCommand\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { DEVICE_SESSION_REFRESH_INTERVAL } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\n\nimport { DeviceSessionRefresher } from \"./DeviceSessionRefresher\";\n\nconst mockSendApduFn = vi\n .fn()\n .mockResolvedValue(Promise.resolve(Right({} as ApduResponse)));\nconst mockUpdateStateFn = vi.fn().mockImplementation(() => undefined);\n\nvi.useFakeTimers();\n\ndescribe(\"DeviceSessionRefresher\", () => {\n let deviceSessionRefresher: DeviceSessionRefresher;\n let logger: LoggerPublisherService;\n\n beforeEach(() => {\n vi.spyOn(\n GetAppAndVersionCommand.prototype,\n \"parseResponse\",\n ).mockReturnValueOnce(\n CommandResultFactory({\n data: {\n name: \"testAppName\",\n } as GetAppAndVersionResponse,\n }),\n );\n vi.spyOn(\n GetOsVersionCommand.prototype,\n \"parseResponse\",\n ).mockReturnValueOnce(\n CommandResultFactory({\n data: {} as GetOsVersionResponse,\n }),\n );\n logger = new DefaultLoggerPublisherService(\n [],\n \"DeviceSessionRefresherTest\",\n );\n });\n\n describe(\"With a modern device\", () => {\n beforeEach(() => {\n const deviceIds = Object.values(DeviceModelId).filter(\n (id) => id !== DeviceModelId.NANO_S,\n );\n deviceSessionRefresher = new DeviceSessionRefresher(\n {\n refreshInterval: DEVICE_SESSION_REFRESH_INTERVAL,\n deviceStatus: DeviceStatus.CONNECTED,\n sendApduFn: mockSendApduFn,\n updateStateFn: mockUpdateStateFn,\n deviceModelId:\n deviceIds[Math.floor(Math.random() * deviceIds.length)]!,\n },\n logger,\n );\n });\n\n afterEach(() => {\n deviceSessionRefresher.stop();\n vi.clearAllMocks();\n });\n\n it(\"should poll by calling sendApduFn 2 times\", () => {\n vi.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL * 2);\n expect(mockSendApduFn).toHaveBeenCalledTimes(2);\n });\n\n it(\"should not poll when device is busy\", () => {\n deviceSessionRefresher.setDeviceStatus(DeviceStatus.BUSY);\n\n vi.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL);\n\n expect(mockSendApduFn).not.toHaveBeenCalled();\n });\n\n it(\"should not poll when device is disconnected\", () => {\n deviceSessionRefresher.setDeviceStatus(DeviceStatus.NOT_CONNECTED);\n\n vi.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL);\n\n expect(mockSendApduFn).not.toHaveBeenCalled();\n });\n\n it(\"should update device session state by calling updateStateFn\", async () => {\n vi.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL);\n\n await expect(mockSendApduFn()).resolves.toEqual(Right({}));\n expect(mockSendApduFn).toHaveBeenCalled();\n expect(mockUpdateStateFn).toHaveBeenCalled();\n });\n\n it(\"should not update device session state with failed polling response\", async () => {\n mockSendApduFn.mockResolvedValueOnce(Promise.resolve(Left(\"error\")));\n const spy = vi.spyOn(logger, \"error\");\n\n vi.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL);\n await mockSendApduFn();\n\n await expect(mockUpdateStateFn).not.toHaveBeenCalled();\n expect(spy).toHaveBeenCalled();\n });\n\n it(\"should stop the refresher when device is disconnected\", () => {\n const spy = vi.spyOn(deviceSessionRefresher, \"stop\");\n deviceSessionRefresher.setDeviceStatus(DeviceStatus.NOT_CONNECTED);\n expect(spy).toHaveBeenCalledTimes(1);\n });\n\n it(\"should not throw error if stop is called on a stopped refresher\", () => {\n deviceSessionRefresher.stop();\n expect(() => deviceSessionRefresher.stop()).not.toThrow();\n });\n\n it(\"should not throw error if start is called on a started refresher\", () => {\n deviceSessionRefresher.start();\n expect(() => deviceSessionRefresher.start()).not.toThrow();\n });\n });\n\n describe(\"With a NanoS device\", () => {\n afterEach(() => {\n deviceSessionRefresher.stop();\n vi.clearAllMocks();\n });\n\n it(\"should call sendApduFn 2 times and update state 1 time for a single interval\", async () => {\n deviceSessionRefresher = new DeviceSessionRefresher(\n {\n refreshInterval: DEVICE_SESSION_REFRESH_INTERVAL,\n deviceStatus: DeviceStatus.CONNECTED,\n sendApduFn: mockSendApduFn,\n updateStateFn: mockUpdateStateFn,\n deviceModelId: DeviceModelId.NANO_S,\n },\n logger,\n );\n vi.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL * 2 + 100);\n\n await Promise.resolve();\n expect(mockSendApduFn).toHaveBeenNthCalledWith(\n 1,\n new GetAppAndVersionCommand().getApdu().getRawApdu(),\n );\n await Promise.resolve();\n expect(mockSendApduFn).toHaveBeenLastCalledWith(\n new GetOsVersionCommand().getApdu().getRawApdu(),\n );\n await Promise.resolve();\n expect(mockSendApduFn).toHaveBeenCalledTimes(2);\n await Promise.resolve();\n expect(mockUpdateStateFn).toHaveBeenCalledTimes(1);\n });\n\n it(\"should set device locked when get os version times out\", async () => {\n mockSendApduFn.mockImplementation((apdu: Apdu) => {\n if (\n apdu.toString() ===\n new GetOsVersionCommand().getApdu().getRawApdu().toString()\n ) {\n return new Promise((resolve) =>\n setTimeout(\n () => resolve(Left(\"timeout\")),\n DEVICE_SESSION_REFRESH_INTERVAL * 10,\n ),\n );\n }\n return Promise.resolve(Right({}));\n });\n mockUpdateStateFn.mockImplementation(\n (getState: () => DeviceSessionState) => {\n deviceSessionRefresher.setDeviceStatus(getState().deviceStatus);\n },\n );\n deviceSessionRefresher = new DeviceSessionRefresher(\n {\n refreshInterval: DEVICE_SESSION_REFRESH_INTERVAL,\n deviceStatus: DeviceStatus.CONNECTED,\n sendApduFn: mockSendApduFn,\n updateStateFn: mockUpdateStateFn,\n deviceModelId: DeviceModelId.NANO_S,\n },\n logger,\n );\n vi.spyOn(deviceSessionRefresher, \"setDeviceStatus\");\n vi.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL * 5 + 100);\n await Promise.resolve();\n expect(mockSendApduFn).toHaveBeenNthCalledWith(\n 1,\n new GetAppAndVersionCommand().getApdu().getRawApdu(),\n );\n await Promise.resolve();\n expect(deviceSessionRefresher.setDeviceStatus).toHaveBeenCalledWith(\n DeviceStatus.LOCKED,\n );\n });\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_purify_ts", "import_CommandResult", "import_GetAppAndVersionCommand", "import_GetOsVersionCommand", "import_DeviceModel", "import_DeviceStatus", "import_DeviceSessionRefresherConst", "import_DefaultLoggerPublisherService", "import_DeviceSessionRefresher", "mockSendApduFn", "mockUpdateStateFn", "deviceSessionRefresher", "logger", "deviceIds", "id", "spy", "apdu", "resolve", "getState"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("purify-ts"),s=require("../../../api/device-session/ApduResponse"),c=require("../../device-session/model/Errors"),f=require("../../logger-publisher/service/DefaultLoggerPublisherService"),d=require("./DefaultApduReceiverService");jest.mock("uuid");const u=new f.DefaultLoggerPublisherService([],"frame"),o=new Uint8Array([170,170,5,0,0,0,33,51,0,0,4,5,50,46,50,46,51,4,230,0,0,0,4,50,46,51,48,4,49,46,49,54,1,1,1,0,1,0,144,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),p=new Uint8Array([170,170,5,0,0,0,2,85,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),t=[new Uint8Array([170,170,5,0,0,0,158,1,77,0,19,202,80,250,161,145,64,154,107,250,108,15,187,178,231,196,169,207,229,87,65,0,93,189,132,171,154,189,102,199,108,144,221,8,121,13,8,71,185,58,143,167,111,96,51,174,211,37,215,177,229,124,235,215]),new Uint8Array([170,170,5,0,1,75,46,44,159,180,70,120,222,5,95,158,128,10,7,66,105,116,99,111,105,110,78,0,21,202,64,6,3,40,248,143,198,214,66,152,208,73,0,199,4,152,25,27,108,235,237,216,203,132,93,245,75,227,189,187,37,122,63,111]),new Uint8Array([170,170,5,0,2,104,143,84,239,127,170,196,34,170,84,231,184,10,200,163,47,150,229,94,67,45,243,163,69,141,142,170,241,78,209,30,8,69,116,104,101,114,101,117,109,144,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])];describe("DefaultApduReceiverService",()=>{let r;beforeAll(()=>{jest.mock("uuid",()=>({v4:jest.fn().mockReturnValue("42")}))}),describe("without dataSize",()=>{beforeEach(()=>{r=new d.DefaultApduReceiverService({channel:(0,e.Just)(new Uint8Array([170,170]))},()=>u)}),it("should return a left error when the first frame has no dataSize",()=>{const a=t[1],x=r.handleFrame(a);expect(x).toEqual((0,e.Left)(new c.ReceiverApduError))})}),describe("[USB] With padding and channel",()=>{beforeEach(()=>{r=new d.DefaultApduReceiverService({channel:(0,e.Just)(new Uint8Array([170,170]))},()=>u)}),it("should return a response directly when a frame is complete",()=>{const a=o,x=r.handleFrame(a);expect(x).toEqual((0,e.Right)((0,e.Just)(new s.ApduResponse({data:o.slice(7,38),statusCode:new Uint8Array([144,0])}))))}),it("should return a response on a third frame when the two first are not complete",()=>{const a=[...t];let x=e.Nothing;const n=[];for(;x.isNothing();){const i=a.shift();r.handleFrame(i).map(l=>{x=l,n.push(x)})}expect(n).toEqual([e.Nothing,e.Nothing,(0,e.Just)(new s.ApduResponse({data:new Uint8Array([...Array.from(t[0].slice(7)),...Array.from(t[1].slice(5)),...Array.from(t[2]).slice(5,45)]),statusCode:new Uint8Array([144,0])}))])}),it("should return two response directly when each frame is complete",()=>{const a=p,x=o,n=r.handleFrame(a),i=r.handleFrame(x);expect(n).toEqual((0,e.Right)((0,e.Just)(new s.ApduResponse({data:new Uint8Array([]),statusCode:new Uint8Array([85,21])})))),expect(i).toEqual((0,e.Right)((0,e.Just)(new s.ApduResponse({data:o.slice(7,38),statusCode:new Uint8Array([144,0])}))))}),it("should return an error if the frame is without index",()=>{const a=t[0].slice(0,4),x=r.handleFrame(a);expect(x).toEqual((0,e.Left)(new c.ReceiverApduError("Unable to parse header from apdu")))}),it("should return an error if the frame is without datasize",()=>{const a=t[0].slice(0,6),x=r.handleFrame(a);expect(x).toEqual((0,e.Left)(new c.ReceiverApduError("Unable to parse header from apdu")))})}),describe("[BLE] Without padding nor channel",()=>{beforeEach(()=>{r=new d.DefaultApduReceiverService({},()=>u)}),it("should return a response directly when a frame is complete",()=>{const a=o.slice(2,40),x=r.handleFrame(a);expect(x).toEqual((0,e.Right)((0,e.Just)(new s.ApduResponse({data:o.slice(7,38),statusCode:new Uint8Array([144,0])}))))}),it("should return a response on a third frame when the two first are not complete",()=>{const a=[t[0].slice(2),t[1].slice(2),t[2].slice(2,47)];let x=e.Nothing;const n=[];for(;x.isNothing();){const i=a.shift();r.handleFrame(i).map(l=>{x=l,n.push(x)})}expect(n).toEqual([e.Nothing,e.Nothing,(0,e.Just)(new s.ApduResponse({data:new Uint8Array([...Array.from(t[0].slice(7)),...Array.from(t[1].slice(5)),...Array.from(t[2]).slice(5,45)]),statusCode:new Uint8Array([144,0])}))])}),it("should return two response directly when each frame is complete",()=>{const a=p.slice(2,9),x=o.slice(2,40),n=r.handleFrame(a),i=r.handleFrame(x);expect(n).toEqual((0,e.Right)((0,e.Just)(new s.ApduResponse({data:new Uint8Array([]),statusCode:new Uint8Array([85,21])})))),expect(i).toEqual((0,e.Right)((0,e.Just)(new s.ApduResponse({data:o.slice(7,38),statusCode:new Uint8Array([144,0])}))))}),it("should return an error if the frame is without index",()=>{const a=t[0].slice(2,4),x=r.handleFrame(a);expect(x).toEqual((0,e.Left)(new c.ReceiverApduError("Unable to parse header from apdu")))}),it("should return an error if the frame is without datasize",()=>{const a=t[0].slice(2,6),x=r.handleFrame(a);expect(x).toEqual((0,e.Left)(new c.ReceiverApduError("Unable to parse header from apdu")))})})});
1
+ "use strict";var e=require("purify-ts"),s=require("../../../api/device-session/ApduResponse"),c=require("../../device-session/model/Errors"),f=require("../../logger-publisher/service/DefaultLoggerPublisherService"),d=require("./DefaultApduReceiverService");vi.mock("uuid");const u=new f.DefaultLoggerPublisherService([],"frame"),o=new Uint8Array([170,170,5,0,0,0,33,51,0,0,4,5,50,46,50,46,51,4,230,0,0,0,4,50,46,51,48,4,49,46,49,54,1,1,1,0,1,0,144,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),p=new Uint8Array([170,170,5,0,0,0,2,85,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),t=[new Uint8Array([170,170,5,0,0,0,158,1,77,0,19,202,80,250,161,145,64,154,107,250,108,15,187,178,231,196,169,207,229,87,65,0,93,189,132,171,154,189,102,199,108,144,221,8,121,13,8,71,185,58,143,167,111,96,51,174,211,37,215,177,229,124,235,215]),new Uint8Array([170,170,5,0,1,75,46,44,159,180,70,120,222,5,95,158,128,10,7,66,105,116,99,111,105,110,78,0,21,202,64,6,3,40,248,143,198,214,66,152,208,73,0,199,4,152,25,27,108,235,237,216,203,132,93,245,75,227,189,187,37,122,63,111]),new Uint8Array([170,170,5,0,2,104,143,84,239,127,170,196,34,170,84,231,184,10,200,163,47,150,229,94,67,45,243,163,69,141,142,170,241,78,209,30,8,69,116,104,101,114,101,117,109,144,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])];describe("DefaultApduReceiverService",()=>{let r;beforeAll(()=>{vi.mock("uuid",()=>({v4:vi.fn().mockReturnValue("42")}))}),describe("without dataSize",()=>{beforeEach(()=>{r=new d.DefaultApduReceiverService({channel:(0,e.Just)(new Uint8Array([170,170]))},()=>u)}),it("should return a left error when the first frame has no dataSize",()=>{const a=t[1],x=r.handleFrame(a);expect(x).toEqual((0,e.Left)(new c.ReceiverApduError))})}),describe("[USB] With padding and channel",()=>{beforeEach(()=>{r=new d.DefaultApduReceiverService({channel:(0,e.Just)(new Uint8Array([170,170]))},()=>u)}),it("should return a response directly when a frame is complete",()=>{const a=o,x=r.handleFrame(a);expect(x).toEqual((0,e.Right)((0,e.Just)(new s.ApduResponse({data:o.slice(7,38),statusCode:new Uint8Array([144,0])}))))}),it("should return a response on a third frame when the two first are not complete",()=>{const a=[...t];let x=e.Nothing;const n=[];for(;x.isNothing();){const i=a.shift();r.handleFrame(i).map(l=>{x=l,n.push(x)})}expect(n).toEqual([e.Nothing,e.Nothing,(0,e.Just)(new s.ApduResponse({data:new Uint8Array([...Array.from(t[0].slice(7)),...Array.from(t[1].slice(5)),...Array.from(t[2]).slice(5,45)]),statusCode:new Uint8Array([144,0])}))])}),it("should return two response directly when each frame is complete",()=>{const a=p,x=o,n=r.handleFrame(a),i=r.handleFrame(x);expect(n).toEqual((0,e.Right)((0,e.Just)(new s.ApduResponse({data:new Uint8Array([]),statusCode:new Uint8Array([85,21])})))),expect(i).toEqual((0,e.Right)((0,e.Just)(new s.ApduResponse({data:o.slice(7,38),statusCode:new Uint8Array([144,0])}))))}),it("should return an error if the frame is without index",()=>{const a=t[0].slice(0,4),x=r.handleFrame(a);expect(x).toEqual((0,e.Left)(new c.ReceiverApduError("Unable to parse header from apdu")))}),it("should return an error if the frame is without datasize",()=>{const a=t[0].slice(0,6),x=r.handleFrame(a);expect(x).toEqual((0,e.Left)(new c.ReceiverApduError("Unable to parse header from apdu")))})}),describe("[BLE] Without padding nor channel",()=>{beforeEach(()=>{r=new d.DefaultApduReceiverService({},()=>u)}),it("should return a response directly when a frame is complete",()=>{const a=o.slice(2,40),x=r.handleFrame(a);expect(x).toEqual((0,e.Right)((0,e.Just)(new s.ApduResponse({data:o.slice(7,38),statusCode:new Uint8Array([144,0])}))))}),it("should return a response on a third frame when the two first are not complete",()=>{const a=[t[0].slice(2),t[1].slice(2),t[2].slice(2,47)];let x=e.Nothing;const n=[];for(;x.isNothing();){const i=a.shift();r.handleFrame(i).map(l=>{x=l,n.push(x)})}expect(n).toEqual([e.Nothing,e.Nothing,(0,e.Just)(new s.ApduResponse({data:new Uint8Array([...Array.from(t[0].slice(7)),...Array.from(t[1].slice(5)),...Array.from(t[2]).slice(5,45)]),statusCode:new Uint8Array([144,0])}))])}),it("should return two response directly when each frame is complete",()=>{const a=p.slice(2,9),x=o.slice(2,40),n=r.handleFrame(a),i=r.handleFrame(x);expect(n).toEqual((0,e.Right)((0,e.Just)(new s.ApduResponse({data:new Uint8Array([]),statusCode:new Uint8Array([85,21])})))),expect(i).toEqual((0,e.Right)((0,e.Just)(new s.ApduResponse({data:o.slice(7,38),statusCode:new Uint8Array([144,0])}))))}),it("should return an error if the frame is without index",()=>{const a=t[0].slice(2,4),x=r.handleFrame(a);expect(x).toEqual((0,e.Left)(new c.ReceiverApduError("Unable to parse header from apdu")))}),it("should return an error if the frame is without datasize",()=>{const a=t[0].slice(2,6),x=r.handleFrame(a);expect(x).toEqual((0,e.Left)(new c.ReceiverApduError("Unable to parse header from apdu")))})})});
2
2
  //# sourceMappingURL=DefaultApduReceiverService.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/service/DefaultApduReceiverService.test.ts"],
4
- "sourcesContent": ["jest.mock(\"uuid\");\n\nimport { Just, Left, type Maybe, Nothing, Right } from \"purify-ts\";\n\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type ApduReceiverService } from \"@api/device-session/service/ApduReceiverService\";\nimport { ReceiverApduError } from \"@internal/device-session/model/Errors\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\n\nimport { DefaultApduReceiverService } from \"./DefaultApduReceiverService\";\n\nconst loggerService = new DefaultLoggerPublisherService([], \"frame\");\n\nconst RESPONSE_GET_VERSION = new Uint8Array([\n 0xaa, 0xaa, 0x05, 0x00, 0x00, 0x00, 0x21, 0x33, 0x00, 0x00, 0x04, 0x05, 0x32,\n 0x2e, 0x32, 0x2e, 0x33, 0x04, 0xe6, 0x00, 0x00, 0x00, 0x04, 0x32, 0x2e, 0x33,\n 0x30, 0x04, 0x31, 0x2e, 0x31, 0x36, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x90,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n]);\n\nconst RESPONSE_LOCKED_DEVICE = new Uint8Array([\n 0xaa, 0xaa, 0x05, 0x00, 0x00, 0x00, 0x02, 0x55, 0x15, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n]);\n\nconst RESPONSE_LIST_APPS = [\n new Uint8Array([\n 0xaa, 0xaa, 0x05, 0x00, 0x00, 0x00, 0x9e, 0x01, 0x4d, 0x00, 0x13, 0xca,\n 0x50, 0xfa, 0xa1, 0x91, 0x40, 0x9a, 0x6b, 0xfa, 0x6c, 0x0f, 0xbb, 0xb2,\n 0xe7, 0xc4, 0xa9, 0xcf, 0xe5, 0x57, 0x41, 0x00, 0x5d, 0xbd, 0x84, 0xab,\n 0x9a, 0xbd, 0x66, 0xc7, 0x6c, 0x90, 0xdd, 0x08, 0x79, 0x0d, 0x08, 0x47,\n 0xb9, 0x3a, 0x8f, 0xa7, 0x6f, 0x60, 0x33, 0xae, 0xd3, 0x25, 0xd7, 0xb1,\n 0xe5, 0x7c, 0xeb, 0xd7,\n ]),\n new Uint8Array([\n 0xaa, 0xaa, 0x05, 0x00, 0x01, 0x4b, 0x2e, 0x2c, 0x9f, 0xb4, 0x46, 0x78,\n 0xde, 0x05, 0x5f, 0x9e, 0x80, 0x0a, 0x07, 0x42, 0x69, 0x74, 0x63, 0x6f,\n 0x69, 0x6e, 0x4e, 0x00, 0x15, 0xca, 0x40, 0x06, 0x03, 0x28, 0xf8, 0x8f,\n 0xc6, 0xd6, 0x42, 0x98, 0xd0, 0x49, 0x00, 0xc7, 0x04, 0x98, 0x19, 0x1b,\n 0x6c, 0xeb, 0xed, 0xd8, 0xcb, 0x84, 0x5d, 0xf5, 0x4b, 0xe3, 0xbd, 0xbb,\n 0x25, 0x7a, 0x3f, 0x6f,\n ]),\n new Uint8Array([\n 0xaa, 0xaa, 0x05, 0x00, 0x02, 0x68, 0x8f, 0x54, 0xef, 0x7f, 0xaa, 0xc4,\n 0x22, 0xaa, 0x54, 0xe7, 0xb8, 0x0a, 0xc8, 0xa3, 0x2f, 0x96, 0xe5, 0x5e,\n 0x43, 0x2d, 0xf3, 0xa3, 0x45, 0x8d, 0x8e, 0xaa, 0xf1, 0x4e, 0xd1, 0x1e,\n 0x08, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x90, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00,\n ]),\n];\n\ndescribe(\"DefaultApduReceiverService\", () => {\n let service: ApduReceiverService;\n\n beforeAll(() => {\n jest.mock(\"uuid\", () => ({\n v4: jest.fn().mockReturnValue(\"42\"),\n }));\n });\n\n describe(\"without dataSize\", () => {\n beforeEach(() => {\n service = new DefaultApduReceiverService(\n { channel: Just(new Uint8Array([0xaa, 0xaa])) },\n () => loggerService,\n );\n });\n\n it(\"should return a left error when the first frame has no dataSize\", () => {\n //given\n const frame = RESPONSE_LIST_APPS[1]!;\n\n //when\n const apdu = service.handleFrame(frame);\n\n //then\n expect(apdu).toEqual(Left(new ReceiverApduError()));\n });\n });\n\n describe(\"[USB] With padding and channel\", () => {\n beforeEach(() => {\n service = new DefaultApduReceiverService(\n { channel: Just(new Uint8Array([0xaa, 0xaa])) },\n () => loggerService,\n );\n });\n\n it(\"should return a response directly when a frame is complete\", () => {\n // given\n const frame = RESPONSE_GET_VERSION;\n\n // when\n const apdu = service.handleFrame(frame);\n\n // then\n expect(apdu).toEqual(\n Right(\n Just(\n new ApduResponse({\n data: RESPONSE_GET_VERSION.slice(7, 38),\n statusCode: new Uint8Array([0x90, 0x00]),\n }),\n ),\n ),\n );\n });\n\n it(\"should return a response on a third frame when the two first are not complete\", () => {\n //given\n const apdus = [...RESPONSE_LIST_APPS];\n\n //when\n let response: Maybe<ApduResponse> = Nothing;\n const responses: Maybe<ApduResponse>[] = [];\n while (response.isNothing()) {\n const apdu = apdus.shift()!;\n const either = service.handleFrame(apdu);\n\n either.map((value) => {\n response = value;\n responses.push(response);\n });\n }\n\n //then\n expect(responses).toEqual([\n Nothing,\n Nothing,\n Just(\n new ApduResponse({\n data: new Uint8Array([\n ...Array.from(RESPONSE_LIST_APPS[0]!.slice(7)),\n ...Array.from(RESPONSE_LIST_APPS[1]!.slice(5)),\n ...Array.from(RESPONSE_LIST_APPS[2]!).slice(5, 45),\n ]),\n statusCode: new Uint8Array([0x90, 0x00]),\n }),\n ),\n ]);\n });\n\n it(\"should return two response directly when each frame is complete\", () => {\n // given\n const firstFrame = RESPONSE_LOCKED_DEVICE;\n const secondFrame = RESPONSE_GET_VERSION;\n\n // when\n const firstResponse = service.handleFrame(firstFrame);\n const secondResponse = service.handleFrame(secondFrame);\n\n // then\n expect(firstResponse).toEqual(\n Right(\n Just(\n new ApduResponse({\n data: new Uint8Array([]),\n statusCode: new Uint8Array([0x55, 0x15]),\n }),\n ),\n ),\n );\n expect(secondResponse).toEqual(\n Right(\n Just(\n new ApduResponse({\n data: RESPONSE_GET_VERSION.slice(7, 38),\n statusCode: new Uint8Array([0x90, 0x00]),\n }),\n ),\n ),\n );\n });\n\n it(\"should return an error if the frame is without index\", () => {\n //given\n //frame with channelId, headTag, and partial Index only\n const frame = RESPONSE_LIST_APPS[0]!.slice(0, 4);\n\n //when\n const apdu = service.handleFrame(frame);\n\n //then\n expect(apdu).toEqual(\n Left(new ReceiverApduError(\"Unable to parse header from apdu\")),\n );\n });\n\n it(\"should return an error if the frame is without datasize\", () => {\n //given\n //frame with channelId, headTag, and Index and partial dataSize only\n const frame = RESPONSE_LIST_APPS[0]!.slice(0, 6);\n\n //when\n const apdu = service.handleFrame(frame);\n\n //then\n expect(apdu).toEqual(\n Left(new ReceiverApduError(\"Unable to parse header from apdu\")),\n );\n });\n });\n\n describe(\"[BLE] Without padding nor channel\", () => {\n beforeEach(() => {\n service = new DefaultApduReceiverService({}, () => loggerService);\n });\n\n it(\"should return a response directly when a frame is complete\", () => {\n // given\n const frame = RESPONSE_GET_VERSION.slice(2, 40);\n\n // when\n const apdu = service.handleFrame(frame);\n\n // then\n expect(apdu).toEqual(\n Right(\n Just(\n new ApduResponse({\n data: RESPONSE_GET_VERSION.slice(7, 38),\n statusCode: new Uint8Array([0x90, 0x00]),\n }),\n ),\n ),\n );\n });\n\n it(\"should return a response on a third frame when the two first are not complete\", () => {\n //given\n const apdus = [\n RESPONSE_LIST_APPS[0]!.slice(2),\n RESPONSE_LIST_APPS[1]!.slice(2),\n RESPONSE_LIST_APPS[2]!.slice(2, 47),\n ];\n\n //when\n let response: Maybe<ApduResponse> = Nothing;\n const responses: Maybe<ApduResponse>[] = [];\n while (response.isNothing()) {\n const apdu = apdus.shift()!;\n const either = service.handleFrame(apdu);\n\n either.map((value) => {\n response = value;\n responses.push(response);\n });\n }\n\n //then\n expect(responses).toEqual([\n Nothing,\n Nothing,\n Just(\n new ApduResponse({\n data: new Uint8Array([\n ...Array.from(RESPONSE_LIST_APPS[0]!.slice(7)),\n ...Array.from(RESPONSE_LIST_APPS[1]!.slice(5)),\n ...Array.from(RESPONSE_LIST_APPS[2]!).slice(5, 45),\n ]),\n statusCode: new Uint8Array([0x90, 0x00]),\n }),\n ),\n ]);\n });\n\n it(\"should return two response directly when each frame is complete\", () => {\n // given\n const firstFrame = RESPONSE_LOCKED_DEVICE.slice(2, 9);\n const secondFrame = RESPONSE_GET_VERSION.slice(2, 40);\n\n // when\n const firstResponse = service.handleFrame(firstFrame);\n const secondResponse = service.handleFrame(secondFrame);\n\n // then\n expect(firstResponse).toEqual(\n Right(\n Just(\n new ApduResponse({\n data: new Uint8Array([]),\n statusCode: new Uint8Array([0x55, 0x15]),\n }),\n ),\n ),\n );\n expect(secondResponse).toEqual(\n Right(\n Just(\n new ApduResponse({\n data: RESPONSE_GET_VERSION.slice(7, 38),\n statusCode: new Uint8Array([0x90, 0x00]),\n }),\n ),\n ),\n );\n });\n\n it(\"should return an error if the frame is without index\", () => {\n //given\n //frame with channelId, headTag, and partial Index only\n const frame = RESPONSE_LIST_APPS[0]!.slice(2, 4);\n\n //when\n const apdu = service.handleFrame(frame);\n\n //then\n expect(apdu).toEqual(\n Left(new ReceiverApduError(\"Unable to parse header from apdu\")),\n );\n });\n\n it(\"should return an error if the frame is without datasize\", () => {\n //given\n //frame with channelId, headTag, and Index and partial dataSize only\n const frame = RESPONSE_LIST_APPS[0]!.slice(2, 6);\n\n //when\n const apdu = service.handleFrame(frame);\n\n //then\n expect(apdu).toEqual(\n Left(new ReceiverApduError(\"Unable to parse header from apdu\")),\n );\n });\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["vi.mock(\"uuid\");\n\nimport { Just, Left, type Maybe, Nothing, Right } from \"purify-ts\";\n\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type ApduReceiverService } from \"@api/device-session/service/ApduReceiverService\";\nimport { ReceiverApduError } from \"@internal/device-session/model/Errors\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\n\nimport { DefaultApduReceiverService } from \"./DefaultApduReceiverService\";\n\nconst loggerService = new DefaultLoggerPublisherService([], \"frame\");\n\nconst RESPONSE_GET_VERSION = new Uint8Array([\n 0xaa, 0xaa, 0x05, 0x00, 0x00, 0x00, 0x21, 0x33, 0x00, 0x00, 0x04, 0x05, 0x32,\n 0x2e, 0x32, 0x2e, 0x33, 0x04, 0xe6, 0x00, 0x00, 0x00, 0x04, 0x32, 0x2e, 0x33,\n 0x30, 0x04, 0x31, 0x2e, 0x31, 0x36, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x90,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n]);\n\nconst RESPONSE_LOCKED_DEVICE = new Uint8Array([\n 0xaa, 0xaa, 0x05, 0x00, 0x00, 0x00, 0x02, 0x55, 0x15, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n]);\n\nconst RESPONSE_LIST_APPS = [\n new Uint8Array([\n 0xaa, 0xaa, 0x05, 0x00, 0x00, 0x00, 0x9e, 0x01, 0x4d, 0x00, 0x13, 0xca,\n 0x50, 0xfa, 0xa1, 0x91, 0x40, 0x9a, 0x6b, 0xfa, 0x6c, 0x0f, 0xbb, 0xb2,\n 0xe7, 0xc4, 0xa9, 0xcf, 0xe5, 0x57, 0x41, 0x00, 0x5d, 0xbd, 0x84, 0xab,\n 0x9a, 0xbd, 0x66, 0xc7, 0x6c, 0x90, 0xdd, 0x08, 0x79, 0x0d, 0x08, 0x47,\n 0xb9, 0x3a, 0x8f, 0xa7, 0x6f, 0x60, 0x33, 0xae, 0xd3, 0x25, 0xd7, 0xb1,\n 0xe5, 0x7c, 0xeb, 0xd7,\n ]),\n new Uint8Array([\n 0xaa, 0xaa, 0x05, 0x00, 0x01, 0x4b, 0x2e, 0x2c, 0x9f, 0xb4, 0x46, 0x78,\n 0xde, 0x05, 0x5f, 0x9e, 0x80, 0x0a, 0x07, 0x42, 0x69, 0x74, 0x63, 0x6f,\n 0x69, 0x6e, 0x4e, 0x00, 0x15, 0xca, 0x40, 0x06, 0x03, 0x28, 0xf8, 0x8f,\n 0xc6, 0xd6, 0x42, 0x98, 0xd0, 0x49, 0x00, 0xc7, 0x04, 0x98, 0x19, 0x1b,\n 0x6c, 0xeb, 0xed, 0xd8, 0xcb, 0x84, 0x5d, 0xf5, 0x4b, 0xe3, 0xbd, 0xbb,\n 0x25, 0x7a, 0x3f, 0x6f,\n ]),\n new Uint8Array([\n 0xaa, 0xaa, 0x05, 0x00, 0x02, 0x68, 0x8f, 0x54, 0xef, 0x7f, 0xaa, 0xc4,\n 0x22, 0xaa, 0x54, 0xe7, 0xb8, 0x0a, 0xc8, 0xa3, 0x2f, 0x96, 0xe5, 0x5e,\n 0x43, 0x2d, 0xf3, 0xa3, 0x45, 0x8d, 0x8e, 0xaa, 0xf1, 0x4e, 0xd1, 0x1e,\n 0x08, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x90, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00,\n ]),\n];\n\ndescribe(\"DefaultApduReceiverService\", () => {\n let service: ApduReceiverService;\n\n beforeAll(() => {\n vi.mock(\"uuid\", () => ({\n v4: vi.fn().mockReturnValue(\"42\"),\n }));\n });\n\n describe(\"without dataSize\", () => {\n beforeEach(() => {\n service = new DefaultApduReceiverService(\n { channel: Just(new Uint8Array([0xaa, 0xaa])) },\n () => loggerService,\n );\n });\n\n it(\"should return a left error when the first frame has no dataSize\", () => {\n //given\n const frame = RESPONSE_LIST_APPS[1]!;\n\n //when\n const apdu = service.handleFrame(frame);\n\n //then\n expect(apdu).toEqual(Left(new ReceiverApduError()));\n });\n });\n\n describe(\"[USB] With padding and channel\", () => {\n beforeEach(() => {\n service = new DefaultApduReceiverService(\n { channel: Just(new Uint8Array([0xaa, 0xaa])) },\n () => loggerService,\n );\n });\n\n it(\"should return a response directly when a frame is complete\", () => {\n // given\n const frame = RESPONSE_GET_VERSION;\n\n // when\n const apdu = service.handleFrame(frame);\n\n // then\n expect(apdu).toEqual(\n Right(\n Just(\n new ApduResponse({\n data: RESPONSE_GET_VERSION.slice(7, 38),\n statusCode: new Uint8Array([0x90, 0x00]),\n }),\n ),\n ),\n );\n });\n\n it(\"should return a response on a third frame when the two first are not complete\", () => {\n //given\n const apdus = [...RESPONSE_LIST_APPS];\n\n //when\n let response: Maybe<ApduResponse> = Nothing;\n const responses: Maybe<ApduResponse>[] = [];\n while (response.isNothing()) {\n const apdu = apdus.shift()!;\n const either = service.handleFrame(apdu);\n\n either.map((value) => {\n response = value;\n responses.push(response);\n });\n }\n\n //then\n expect(responses).toEqual([\n Nothing,\n Nothing,\n Just(\n new ApduResponse({\n data: new Uint8Array([\n ...Array.from(RESPONSE_LIST_APPS[0]!.slice(7)),\n ...Array.from(RESPONSE_LIST_APPS[1]!.slice(5)),\n ...Array.from(RESPONSE_LIST_APPS[2]!).slice(5, 45),\n ]),\n statusCode: new Uint8Array([0x90, 0x00]),\n }),\n ),\n ]);\n });\n\n it(\"should return two response directly when each frame is complete\", () => {\n // given\n const firstFrame = RESPONSE_LOCKED_DEVICE;\n const secondFrame = RESPONSE_GET_VERSION;\n\n // when\n const firstResponse = service.handleFrame(firstFrame);\n const secondResponse = service.handleFrame(secondFrame);\n\n // then\n expect(firstResponse).toEqual(\n Right(\n Just(\n new ApduResponse({\n data: new Uint8Array([]),\n statusCode: new Uint8Array([0x55, 0x15]),\n }),\n ),\n ),\n );\n expect(secondResponse).toEqual(\n Right(\n Just(\n new ApduResponse({\n data: RESPONSE_GET_VERSION.slice(7, 38),\n statusCode: new Uint8Array([0x90, 0x00]),\n }),\n ),\n ),\n );\n });\n\n it(\"should return an error if the frame is without index\", () => {\n //given\n //frame with channelId, headTag, and partial Index only\n const frame = RESPONSE_LIST_APPS[0]!.slice(0, 4);\n\n //when\n const apdu = service.handleFrame(frame);\n\n //then\n expect(apdu).toEqual(\n Left(new ReceiverApduError(\"Unable to parse header from apdu\")),\n );\n });\n\n it(\"should return an error if the frame is without datasize\", () => {\n //given\n //frame with channelId, headTag, and Index and partial dataSize only\n const frame = RESPONSE_LIST_APPS[0]!.slice(0, 6);\n\n //when\n const apdu = service.handleFrame(frame);\n\n //then\n expect(apdu).toEqual(\n Left(new ReceiverApduError(\"Unable to parse header from apdu\")),\n );\n });\n });\n\n describe(\"[BLE] Without padding nor channel\", () => {\n beforeEach(() => {\n service = new DefaultApduReceiverService({}, () => loggerService);\n });\n\n it(\"should return a response directly when a frame is complete\", () => {\n // given\n const frame = RESPONSE_GET_VERSION.slice(2, 40);\n\n // when\n const apdu = service.handleFrame(frame);\n\n // then\n expect(apdu).toEqual(\n Right(\n Just(\n new ApduResponse({\n data: RESPONSE_GET_VERSION.slice(7, 38),\n statusCode: new Uint8Array([0x90, 0x00]),\n }),\n ),\n ),\n );\n });\n\n it(\"should return a response on a third frame when the two first are not complete\", () => {\n //given\n const apdus = [\n RESPONSE_LIST_APPS[0]!.slice(2),\n RESPONSE_LIST_APPS[1]!.slice(2),\n RESPONSE_LIST_APPS[2]!.slice(2, 47),\n ];\n\n //when\n let response: Maybe<ApduResponse> = Nothing;\n const responses: Maybe<ApduResponse>[] = [];\n while (response.isNothing()) {\n const apdu = apdus.shift()!;\n const either = service.handleFrame(apdu);\n\n either.map((value) => {\n response = value;\n responses.push(response);\n });\n }\n\n //then\n expect(responses).toEqual([\n Nothing,\n Nothing,\n Just(\n new ApduResponse({\n data: new Uint8Array([\n ...Array.from(RESPONSE_LIST_APPS[0]!.slice(7)),\n ...Array.from(RESPONSE_LIST_APPS[1]!.slice(5)),\n ...Array.from(RESPONSE_LIST_APPS[2]!).slice(5, 45),\n ]),\n statusCode: new Uint8Array([0x90, 0x00]),\n }),\n ),\n ]);\n });\n\n it(\"should return two response directly when each frame is complete\", () => {\n // given\n const firstFrame = RESPONSE_LOCKED_DEVICE.slice(2, 9);\n const secondFrame = RESPONSE_GET_VERSION.slice(2, 40);\n\n // when\n const firstResponse = service.handleFrame(firstFrame);\n const secondResponse = service.handleFrame(secondFrame);\n\n // then\n expect(firstResponse).toEqual(\n Right(\n Just(\n new ApduResponse({\n data: new Uint8Array([]),\n statusCode: new Uint8Array([0x55, 0x15]),\n }),\n ),\n ),\n );\n expect(secondResponse).toEqual(\n Right(\n Just(\n new ApduResponse({\n data: RESPONSE_GET_VERSION.slice(7, 38),\n statusCode: new Uint8Array([0x90, 0x00]),\n }),\n ),\n ),\n );\n });\n\n it(\"should return an error if the frame is without index\", () => {\n //given\n //frame with channelId, headTag, and partial Index only\n const frame = RESPONSE_LIST_APPS[0]!.slice(2, 4);\n\n //when\n const apdu = service.handleFrame(frame);\n\n //then\n expect(apdu).toEqual(\n Left(new ReceiverApduError(\"Unable to parse header from apdu\")),\n );\n });\n\n it(\"should return an error if the frame is without datasize\", () => {\n //given\n //frame with channelId, headTag, and Index and partial dataSize only\n const frame = RESPONSE_LIST_APPS[0]!.slice(2, 6);\n\n //when\n const apdu = service.handleFrame(frame);\n\n //then\n expect(apdu).toEqual(\n Left(new ReceiverApduError(\"Unable to parse header from apdu\")),\n );\n });\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_purify_ts", "import_ApduResponse", "import_Errors", "import_DefaultLoggerPublisherService", "import_DefaultApduReceiverService", "loggerService", "RESPONSE_GET_VERSION", "RESPONSE_LOCKED_DEVICE", "RESPONSE_LIST_APPS", "service", "frame", "apdu", "apdus", "response", "responses", "value", "firstFrame", "secondFrame", "firstResponse", "secondResponse"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var x=require("purify-ts"),t=require("../../device-session/model/Frame"),i=require("../../device-session/model/FrameHeader"),w=require("../../logger-publisher/service/DefaultLoggerPublisherService"),d=require("./DefaultApduSenderService");jest.mock("uuid",()=>({v4:jest.fn().mockReturnValue("42")}));const o=new w.DefaultLoggerPublisherService([],"frame");describe("DefaultApduSenderService",()=>{describe("[USB] With padding and channel",()=>{it("should return 1 frame",()=>{const n=x.Maybe.of(new Uint8Array([18,52])),a=new d.DefaultApduSenderService({frameSize:64,padding:!0,channel:n},()=>o),e=new Uint8Array([224,1,0,0,0]),r=a.getFrames(e);expect(r).toEqual([new t.Frame({header:new i.FrameHeader({uuid:"42",channel:x.Maybe.of(new Uint8Array([18,52])),headTag:new Uint8Array([5]),dataSize:x.Maybe.of(new Uint8Array([0,5])),index:new Uint8Array([0,0]),length:7}),data:new Uint8Array([224,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])})]),expect(r.map(c=>c.getRawData())).toEqual([new Uint8Array([18,52,5,0,0,0,5,224,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])])}),it("should return 2 frames",()=>{const n=x.Maybe.of(new Uint8Array([18,52])),a=new d.DefaultApduSenderService({frameSize:64,padding:!0,channel:n},()=>o),e=new Uint8Array([224,212,0,0,64,84,111,102,117,73,115,78,117,116,114,105,116,105,111,117,115,65,110,100,66,114,105,110,103,115,74,111,121,68,101,108,105,103,104,116,72,101,97,108,116,104,105,110,101,115,115,72,97,114,109,111,110,121,73,110,69,118,101,114,121,66,105,116,101]),r=a.getFrames(e);expect(r).toEqual([new t.Frame({header:new i.FrameHeader({uuid:"42",channel:x.Maybe.of(new Uint8Array([18,52])),headTag:new Uint8Array([5]),dataSize:x.Maybe.of(new Uint8Array([0,69])),index:new Uint8Array([0,0]),length:7}),data:new Uint8Array([224,212,0,0,64,84,111,102,117,73,115,78,117,116,114,105,116,105,111,117,115,65,110,100,66,114,105,110,103,115,74,111,121,68,101,108,105,103,104,116,72,101,97,108,116,104,105,110,101,115,115,72,97,114,109,111,110])}),new t.Frame({header:new i.FrameHeader({uuid:"42",channel:x.Maybe.of(new Uint8Array([18,52])),headTag:new Uint8Array([5]),index:new Uint8Array([0,1]),length:5,dataSize:x.Maybe.zero()}),data:new Uint8Array([121,73,110,69,118,101,114,121,66,105,116,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])})]),expect(r.map(c=>c.getRawData())).toEqual([new Uint8Array([18,52,5,0,0,0,69,224,212,0,0,64,84,111,102,117,73,115,78,117,116,114,105,116,105,111,117,115,65,110,100,66,114,105,110,103,115,74,111,121,68,101,108,105,103,104,116,72,101,97,108,116,104,105,110,101,115,115,72,97,114,109,111,110]),new Uint8Array([18,52,5,0,1,121,73,110,69,118,101,114,121,66,105,116,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])])})}),describe("[BLE] Without padding nor channel",()=>{it("should return 1 frame",()=>{const n=new d.DefaultApduSenderService({frameSize:123},()=>o),a=new Uint8Array([224,1,0,0,0]),e=n.getFrames(a);expect(e).toEqual([new t.Frame({header:new i.FrameHeader({uuid:"42",channel:x.Maybe.zero(),headTag:new Uint8Array([5]),dataSize:x.Maybe.of(new Uint8Array([0,5])),index:new Uint8Array([0,0]),length:5}),data:new Uint8Array([224,1,0,0,0])})]),expect(e.map(r=>r.getRawData())).toEqual([new Uint8Array([5,0,0,0,5,224,1,0,0,0])])}),it("should return 3 frames",()=>{const n=new d.DefaultApduSenderService({frameSize:10},()=>o),a=new Uint8Array([1,5,79,76,79,83,0,7,46,50,46,52,45,50,0,144,0]),e=n.getFrames(a);expect(e).toEqual([new t.Frame({header:new i.FrameHeader({uuid:"42",channel:x.Maybe.zero(),headTag:new Uint8Array([5]),index:new Uint8Array([0,0]),dataSize:x.Maybe.of(new Uint8Array([0,17])),length:5}),data:new Uint8Array([1,5,79,76,79])}),new t.Frame({header:new i.FrameHeader({uuid:"42",channel:x.Maybe.zero(),headTag:new Uint8Array([5]),dataSize:x.Maybe.zero(),index:new Uint8Array([0,1]),length:3}),data:new Uint8Array([83,0,7,46,50,46,52])}),new t.Frame({header:new i.FrameHeader({uuid:"42",channel:x.Maybe.zero(),headTag:new Uint8Array([5]),dataSize:x.Maybe.zero(),index:new Uint8Array([0,2]),length:3}),data:new Uint8Array([45,50,0,144,0])})]),expect(e.map(r=>r.getRawData())).toEqual([new Uint8Array([5,0,0,0,17,1,5,79,76,79]),new Uint8Array([5,0,1,83,0,7,46,50,46,52]),new Uint8Array([5,0,2,45,50,0,144,0])])})}),describe("Errors",()=>{it("should return a well formatted header with very big channel",()=>{const n=new d.DefaultApduSenderService({frameSize:64,channel:x.Maybe.of(new Uint8Array([1193012,214084,353364,30788,590916]))},()=>o),a=new Uint8Array([224,1,0,0,0]),e=n.getFrames(a);expect(e).toEqual([new t.Frame({header:new i.FrameHeader({uuid:"42",channel:x.Maybe.of(new Uint8Array([68,68])),headTag:new Uint8Array([5]),dataSize:x.Maybe.of(new Uint8Array([0,5])),index:new Uint8Array([0,0]),length:7}),data:new Uint8Array([224,1,0,0,0])})]),expect(e.map(r=>r.getRawData())).toEqual([new Uint8Array([68,68,5,0,0,0,5,224,1,0,0,0])])}),it("should return empty if packet size smaller than header size",()=>{const n=new d.DefaultApduSenderService({frameSize:Math.random()&4,channel:x.Maybe.of(new Uint8Array([18,52]))},()=>o),a=new Uint8Array([224,1,0,0,0]),e=n.getFrames(a);expect(e.length).toEqual(0)}),it("should return empty if no apdu length",()=>{const n=new d.DefaultApduSenderService({frameSize:Math.random()&255,padding:Math.random()>.5,channel:x.Maybe.of(new Uint8Array([18,52]))},()=>o),a=new Uint8Array([]),e=n.getFrames(a);expect(e.length).toEqual(0)})})});
1
+ "use strict";var x=require("purify-ts"),t=require("../../device-session/model/Frame"),i=require("../../device-session/model/FrameHeader"),w=require("../../logger-publisher/service/DefaultLoggerPublisherService"),d=require("./DefaultApduSenderService");vi.mock("uuid",()=>({v4:vi.fn().mockReturnValue("42")}));const o=new w.DefaultLoggerPublisherService([],"frame");describe("DefaultApduSenderService",()=>{describe("[USB] With padding and channel",()=>{it("should return 1 frame",()=>{const n=x.Maybe.of(new Uint8Array([18,52])),a=new d.DefaultApduSenderService({frameSize:64,padding:!0,channel:n},()=>o),e=new Uint8Array([224,1,0,0,0]),r=a.getFrames(e);expect(r).toEqual([new t.Frame({header:new i.FrameHeader({uuid:"42",channel:x.Maybe.of(new Uint8Array([18,52])),headTag:new Uint8Array([5]),dataSize:x.Maybe.of(new Uint8Array([0,5])),index:new Uint8Array([0,0]),length:7}),data:new Uint8Array([224,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])})]),expect(r.map(c=>c.getRawData())).toEqual([new Uint8Array([18,52,5,0,0,0,5,224,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])])}),it("should return 2 frames",()=>{const n=x.Maybe.of(new Uint8Array([18,52])),a=new d.DefaultApduSenderService({frameSize:64,padding:!0,channel:n},()=>o),e=new Uint8Array([224,212,0,0,64,84,111,102,117,73,115,78,117,116,114,105,116,105,111,117,115,65,110,100,66,114,105,110,103,115,74,111,121,68,101,108,105,103,104,116,72,101,97,108,116,104,105,110,101,115,115,72,97,114,109,111,110,121,73,110,69,118,101,114,121,66,105,116,101]),r=a.getFrames(e);expect(r).toEqual([new t.Frame({header:new i.FrameHeader({uuid:"42",channel:x.Maybe.of(new Uint8Array([18,52])),headTag:new Uint8Array([5]),dataSize:x.Maybe.of(new Uint8Array([0,69])),index:new Uint8Array([0,0]),length:7}),data:new Uint8Array([224,212,0,0,64,84,111,102,117,73,115,78,117,116,114,105,116,105,111,117,115,65,110,100,66,114,105,110,103,115,74,111,121,68,101,108,105,103,104,116,72,101,97,108,116,104,105,110,101,115,115,72,97,114,109,111,110])}),new t.Frame({header:new i.FrameHeader({uuid:"42",channel:x.Maybe.of(new Uint8Array([18,52])),headTag:new Uint8Array([5]),index:new Uint8Array([0,1]),length:5,dataSize:x.Maybe.zero()}),data:new Uint8Array([121,73,110,69,118,101,114,121,66,105,116,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])})]),expect(r.map(c=>c.getRawData())).toEqual([new Uint8Array([18,52,5,0,0,0,69,224,212,0,0,64,84,111,102,117,73,115,78,117,116,114,105,116,105,111,117,115,65,110,100,66,114,105,110,103,115,74,111,121,68,101,108,105,103,104,116,72,101,97,108,116,104,105,110,101,115,115,72,97,114,109,111,110]),new Uint8Array([18,52,5,0,1,121,73,110,69,118,101,114,121,66,105,116,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])])})}),describe("[BLE] Without padding nor channel",()=>{it("should return 1 frame",()=>{const n=new d.DefaultApduSenderService({frameSize:123},()=>o),a=new Uint8Array([224,1,0,0,0]),e=n.getFrames(a);expect(e).toEqual([new t.Frame({header:new i.FrameHeader({uuid:"42",channel:x.Maybe.zero(),headTag:new Uint8Array([5]),dataSize:x.Maybe.of(new Uint8Array([0,5])),index:new Uint8Array([0,0]),length:5}),data:new Uint8Array([224,1,0,0,0])})]),expect(e.map(r=>r.getRawData())).toEqual([new Uint8Array([5,0,0,0,5,224,1,0,0,0])])}),it("should return 3 frames",()=>{const n=new d.DefaultApduSenderService({frameSize:10},()=>o),a=new Uint8Array([1,5,79,76,79,83,0,7,46,50,46,52,45,50,0,144,0]),e=n.getFrames(a);expect(e).toEqual([new t.Frame({header:new i.FrameHeader({uuid:"42",channel:x.Maybe.zero(),headTag:new Uint8Array([5]),index:new Uint8Array([0,0]),dataSize:x.Maybe.of(new Uint8Array([0,17])),length:5}),data:new Uint8Array([1,5,79,76,79])}),new t.Frame({header:new i.FrameHeader({uuid:"42",channel:x.Maybe.zero(),headTag:new Uint8Array([5]),dataSize:x.Maybe.zero(),index:new Uint8Array([0,1]),length:3}),data:new Uint8Array([83,0,7,46,50,46,52])}),new t.Frame({header:new i.FrameHeader({uuid:"42",channel:x.Maybe.zero(),headTag:new Uint8Array([5]),dataSize:x.Maybe.zero(),index:new Uint8Array([0,2]),length:3}),data:new Uint8Array([45,50,0,144,0])})]),expect(e.map(r=>r.getRawData())).toEqual([new Uint8Array([5,0,0,0,17,1,5,79,76,79]),new Uint8Array([5,0,1,83,0,7,46,50,46,52]),new Uint8Array([5,0,2,45,50,0,144,0])])})}),describe("Errors",()=>{it("should return a well formatted header with very big channel",()=>{const n=new d.DefaultApduSenderService({frameSize:64,channel:x.Maybe.of(new Uint8Array([1193012,214084,353364,30788,590916]))},()=>o),a=new Uint8Array([224,1,0,0,0]),e=n.getFrames(a);expect(e).toEqual([new t.Frame({header:new i.FrameHeader({uuid:"42",channel:x.Maybe.of(new Uint8Array([68,68])),headTag:new Uint8Array([5]),dataSize:x.Maybe.of(new Uint8Array([0,5])),index:new Uint8Array([0,0]),length:7}),data:new Uint8Array([224,1,0,0,0])})]),expect(e.map(r=>r.getRawData())).toEqual([new Uint8Array([68,68,5,0,0,0,5,224,1,0,0,0])])}),it("should return empty if packet size smaller than header size",()=>{const n=new d.DefaultApduSenderService({frameSize:Math.random()&4,channel:x.Maybe.of(new Uint8Array([18,52]))},()=>o),a=new Uint8Array([224,1,0,0,0]),e=n.getFrames(a);expect(e.length).toEqual(0)}),it("should return empty if no apdu length",()=>{const n=new d.DefaultApduSenderService({frameSize:Math.random()&255,padding:Math.random()>.5,channel:x.Maybe.of(new Uint8Array([18,52]))},()=>o),a=new Uint8Array([]),e=n.getFrames(a);expect(e.length).toEqual(0)})})});
2
2
  //# sourceMappingURL=DefaultApduSenderService.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/service/DefaultApduSenderService.test.ts"],
4
- "sourcesContent": ["jest.mock(\"uuid\", () => ({\n v4: jest.fn().mockReturnValue(\"42\"),\n}));\n\nimport { Maybe } from \"purify-ts\";\n\nimport { Frame } from \"@internal/device-session/model/Frame\";\nimport { FrameHeader } from \"@internal/device-session/model/FrameHeader\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\n\nimport { DefaultApduSenderService } from \"./DefaultApduSenderService\";\n\nconst loggerService = new DefaultLoggerPublisherService([], \"frame\");\n\ndescribe(\"DefaultApduSenderService\", () => {\n describe(\"[USB] With padding and channel\", () => {\n it(\"should return 1 frame\", () => {\n // given\n const channel = Maybe.of(new Uint8Array([0x12, 0x34]));\n const apduSenderService = new DefaultApduSenderService(\n {\n frameSize: 64,\n padding: true,\n channel,\n },\n () => loggerService,\n );\n // getVersion APDU\n const apdu = new Uint8Array([0xe0, 0x01, 0x00, 0x00, 0x00]);\n\n // when\n const frames = apduSenderService.getFrames(apdu);\n\n // then\n expect(frames).toEqual([\n new Frame({\n header: new FrameHeader({\n uuid: \"42\",\n channel: Maybe.of(new Uint8Array([0x12, 0x34])),\n headTag: new Uint8Array([0x05]),\n dataSize: Maybe.of(new Uint8Array([0, 0x05])),\n index: new Uint8Array([0, 0]),\n length: 7,\n }),\n data: new Uint8Array([\n 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00,\n ]),\n }),\n ]);\n expect(frames.map((fr) => fr.getRawData())).toEqual([\n new Uint8Array([\n 0x12, 0x34, 0x05, 0x00, 0x00, 0x00, 0x05, 0xe0, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n ]),\n ]);\n });\n\n it(\"should return 2 frames\", () => {\n // given\n const channel = Maybe.of(new Uint8Array([0x12, 0x34]));\n const apduSenderService = new DefaultApduSenderService(\n {\n frameSize: 64,\n padding: true,\n channel,\n },\n () => loggerService,\n );\n const apdu = new Uint8Array([\n // editDeviceName APDU\n 0xe0, 0xd4, 0x00, 0x00, 0x40,\n // editDeviceNameData\n 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69, 0x74,\n 0x69, 0x6f, 0x75, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67,\n 0x73, 0x4a, 0x6f, 0x79, 0x44, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48,\n 0x65, 0x61, 0x6c, 0x74, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x48, 0x61,\n 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x49, 0x6e, 0x45, 0x76, 0x65, 0x72, 0x79,\n 0x42, 0x69, 0x74, 0x65,\n ]);\n\n // when\n const frames = apduSenderService.getFrames(apdu);\n\n // then\n expect(frames).toEqual([\n new Frame({\n header: new FrameHeader({\n uuid: \"42\",\n channel: Maybe.of(new Uint8Array([0x12, 0x34])),\n headTag: new Uint8Array([0x05]),\n dataSize: Maybe.of(new Uint8Array([0x00, 0x45])),\n index: new Uint8Array([0x00, 0x00]),\n length: 7,\n }),\n data: new Uint8Array([\n 0xe0, 0xd4, 0x00, 0x00, 0x40, 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73,\n 0x4e, 0x75, 0x74, 0x72, 0x69, 0x74, 0x69, 0x6f, 0x75, 0x73, 0x41,\n 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x6f, 0x79,\n 0x44, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c,\n 0x74, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x48, 0x61, 0x72, 0x6d,\n 0x6f, 0x6e,\n ]),\n }),\n new Frame({\n header: new FrameHeader({\n uuid: \"42\",\n channel: Maybe.of(new Uint8Array([0x12, 0x34])),\n headTag: new Uint8Array([0x05]),\n index: new Uint8Array([0x00, 0x01]),\n length: 5,\n dataSize: Maybe.zero(),\n }),\n data: new Uint8Array([\n 0x79, 0x49, 0x6e, 0x45, 0x76, 0x65, 0x72, 0x79, 0x42, 0x69, 0x74,\n 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n ]),\n }),\n ]);\n expect(frames.map((fr) => fr.getRawData())).toEqual([\n new Uint8Array([\n 0x12, 0x34, 0x05, 0x00, 0x00, 0x00, 0x45, 0xe0, 0xd4, 0x00, 0x00,\n 0x40, 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72,\n 0x69, 0x74, 0x69, 0x6f, 0x75, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72,\n 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x6f, 0x79, 0x44, 0x65, 0x6c, 0x69,\n 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x69, 0x6e,\n 0x65, 0x73, 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e,\n ]),\n new Uint8Array([\n 0x12, 0x34, 0x05, 0x00, 0x01, 0x79, 0x49, 0x6e, 0x45, 0x76, 0x65,\n 0x72, 0x79, 0x42, 0x69, 0x74, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n ]),\n ]);\n });\n });\n\n describe(\"[BLE] Without padding nor channel\", () => {\n it(\"should return 1 frame\", () => {\n // given\n const apduSenderService = new DefaultApduSenderService(\n {\n frameSize: 123,\n },\n () => loggerService,\n );\n const command = new Uint8Array([0xe0, 0x01, 0x00, 0x00, 0x00]);\n\n // when\n const frames = apduSenderService.getFrames(command);\n\n // then\n expect(frames).toEqual([\n new Frame({\n header: new FrameHeader({\n uuid: \"42\",\n channel: Maybe.zero(),\n headTag: new Uint8Array([0x05]),\n dataSize: Maybe.of(new Uint8Array([0, 5])),\n index: new Uint8Array([0, 0]),\n length: 5,\n }),\n data: new Uint8Array([0xe0, 0x01, 0x00, 0x00, 0x00]),\n }),\n ]);\n expect(frames.map((fr) => fr.getRawData())).toEqual([\n new Uint8Array([\n 0x05, 0x00, 0x00, 0x00, 0x05, 0xe0, 0x01, 0x00, 0x00, 0x00,\n ]),\n ]);\n });\n\n it(\"should return 3 frames\", () => {\n // given\n const apduSenderService = new DefaultApduSenderService(\n {\n frameSize: 10,\n },\n () => loggerService,\n );\n const command = new Uint8Array([\n 0x01, 0x05, 0x4f, 0x4c, 0x4f, 0x53, 0x00, 0x07, 0x2e, 0x32, 0x2e, 0x34,\n 0x2d, 0x32, 0x00, 0x90, 0x00,\n ]);\n\n // when\n const frames = apduSenderService.getFrames(command);\n\n // then\n expect(frames).toEqual([\n new Frame({\n header: new FrameHeader({\n uuid: \"42\",\n channel: Maybe.zero(),\n headTag: new Uint8Array([0x05]),\n index: new Uint8Array([0, 0]),\n dataSize: Maybe.of(new Uint8Array([0, 0x11])),\n length: 5,\n }),\n data: new Uint8Array([0x01, 0x05, 0x4f, 0x4c, 0x4f]),\n }),\n new Frame({\n header: new FrameHeader({\n uuid: \"42\",\n channel: Maybe.zero(),\n headTag: new Uint8Array([0x05]),\n dataSize: Maybe.zero(),\n index: new Uint8Array([0, 0x01]),\n length: 3,\n }),\n data: new Uint8Array([0x53, 0x00, 0x07, 0x2e, 0x32, 0x2e, 0x34]),\n }),\n new Frame({\n header: new FrameHeader({\n uuid: \"42\",\n channel: Maybe.zero(),\n headTag: new Uint8Array([0x05]),\n dataSize: Maybe.zero(),\n index: new Uint8Array([0, 0x02]),\n length: 3,\n }),\n data: new Uint8Array([0x2d, 0x32, 0x00, 0x90, 0x00]),\n }),\n ]);\n expect(frames.map((fr) => fr.getRawData())).toEqual([\n new Uint8Array([\n 0x05, 0x00, 0x00, 0x00, 0x11, 0x01, 0x05, 0x4f, 0x4c, 0x4f,\n ]),\n new Uint8Array([\n 0x05, 0x00, 0x01, 0x53, 0x00, 0x07, 0x2e, 0x32, 0x2e, 0x34,\n ]),\n new Uint8Array([0x05, 0x00, 0x02, 0x2d, 0x32, 0x00, 0x90, 0x00]),\n ]);\n });\n });\n\n describe(\"Errors\", () => {\n it(\"should return a well formatted header with very big channel\", () => {\n // given\n const apduSenderService = new DefaultApduSenderService(\n {\n frameSize: 64,\n channel: Maybe.of(\n new Uint8Array([0x123434, 0x34444, 0x56454, 0x7844, 0x90444]),\n ),\n },\n () => loggerService,\n );\n const command = new Uint8Array([0xe0, 0x01, 0x00, 0x00, 0x00]);\n\n // when\n const frames = apduSenderService.getFrames(command);\n\n // then\n expect(frames).toEqual([\n new Frame({\n header: new FrameHeader({\n uuid: \"42\",\n channel: Maybe.of(new Uint8Array([0x44, 0x44])),\n headTag: new Uint8Array([0x05]),\n dataSize: Maybe.of(new Uint8Array([0, 0x05])),\n index: new Uint8Array([0, 0]),\n length: 7,\n }),\n data: new Uint8Array([0xe0, 0x01, 0x00, 0x00, 0x00]),\n }),\n ]);\n expect(frames.map((fr) => fr.getRawData())).toEqual([\n new Uint8Array([\n 0x44, 0x44, 0x05, 0x00, 0x00, 0x00, 0x05, 0xe0, 0x01, 0x00, 0x00,\n 0x00,\n ]),\n ]);\n });\n it(\"should return empty if packet size smaller than header size\", () => {\n // given\n const apduSenderService = new DefaultApduSenderService(\n {\n frameSize: Math.random() & 4,\n channel: Maybe.of(new Uint8Array([0x12, 0x34])),\n },\n () => loggerService,\n );\n const command = new Uint8Array([0xe0, 0x01, 0x00, 0x00, 0x00]);\n\n // when\n const frames = apduSenderService.getFrames(command);\n\n // then\n expect(frames.length).toEqual(0);\n });\n\n it(\"should return empty if no apdu length\", () => {\n // given\n const apduSenderService = new DefaultApduSenderService(\n {\n // random frameSize < 0xff\n frameSize: Math.random() & 0xff,\n // random padding boolean\n padding: Math.random() > 0.5,\n channel: Maybe.of(new Uint8Array([0x12, 0x34])),\n },\n () => loggerService,\n );\n const command = new Uint8Array([]);\n\n // when\n const frames = apduSenderService.getFrames(command);\n\n // then\n expect(frames.length).toEqual(0);\n });\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Maybe } from \"purify-ts\";\n\nimport { Frame } from \"@internal/device-session/model/Frame\";\nimport { FrameHeader } from \"@internal/device-session/model/FrameHeader\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\n\nimport { DefaultApduSenderService } from \"./DefaultApduSenderService\";\n\nvi.mock(\"uuid\", () => ({\n v4: vi.fn().mockReturnValue(\"42\"),\n}));\n\nconst loggerService = new DefaultLoggerPublisherService([], \"frame\");\n\ndescribe(\"DefaultApduSenderService\", () => {\n describe(\"[USB] With padding and channel\", () => {\n it(\"should return 1 frame\", () => {\n // given\n const channel = Maybe.of(new Uint8Array([0x12, 0x34]));\n const apduSenderService = new DefaultApduSenderService(\n {\n frameSize: 64,\n padding: true,\n channel,\n },\n () => loggerService,\n );\n // getVersion APDU\n const apdu = new Uint8Array([0xe0, 0x01, 0x00, 0x00, 0x00]);\n\n // when\n const frames = apduSenderService.getFrames(apdu);\n\n // then\n expect(frames).toEqual([\n new Frame({\n header: new FrameHeader({\n uuid: \"42\",\n channel: Maybe.of(new Uint8Array([0x12, 0x34])),\n headTag: new Uint8Array([0x05]),\n dataSize: Maybe.of(new Uint8Array([0, 0x05])),\n index: new Uint8Array([0, 0]),\n length: 7,\n }),\n data: new Uint8Array([\n 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00,\n ]),\n }),\n ]);\n expect(frames.map((fr) => fr.getRawData())).toEqual([\n new Uint8Array([\n 0x12, 0x34, 0x05, 0x00, 0x00, 0x00, 0x05, 0xe0, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n ]),\n ]);\n });\n\n it(\"should return 2 frames\", () => {\n // given\n const channel = Maybe.of(new Uint8Array([0x12, 0x34]));\n const apduSenderService = new DefaultApduSenderService(\n {\n frameSize: 64,\n padding: true,\n channel,\n },\n () => loggerService,\n );\n const apdu = new Uint8Array([\n // editDeviceName APDU\n 0xe0, 0xd4, 0x00, 0x00, 0x40,\n // editDeviceNameData\n 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69, 0x74,\n 0x69, 0x6f, 0x75, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67,\n 0x73, 0x4a, 0x6f, 0x79, 0x44, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48,\n 0x65, 0x61, 0x6c, 0x74, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x48, 0x61,\n 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x49, 0x6e, 0x45, 0x76, 0x65, 0x72, 0x79,\n 0x42, 0x69, 0x74, 0x65,\n ]);\n\n // when\n const frames = apduSenderService.getFrames(apdu);\n\n // then\n expect(frames).toEqual([\n new Frame({\n header: new FrameHeader({\n uuid: \"42\",\n channel: Maybe.of(new Uint8Array([0x12, 0x34])),\n headTag: new Uint8Array([0x05]),\n dataSize: Maybe.of(new Uint8Array([0x00, 0x45])),\n index: new Uint8Array([0x00, 0x00]),\n length: 7,\n }),\n data: new Uint8Array([\n 0xe0, 0xd4, 0x00, 0x00, 0x40, 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73,\n 0x4e, 0x75, 0x74, 0x72, 0x69, 0x74, 0x69, 0x6f, 0x75, 0x73, 0x41,\n 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x6f, 0x79,\n 0x44, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c,\n 0x74, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x48, 0x61, 0x72, 0x6d,\n 0x6f, 0x6e,\n ]),\n }),\n new Frame({\n header: new FrameHeader({\n uuid: \"42\",\n channel: Maybe.of(new Uint8Array([0x12, 0x34])),\n headTag: new Uint8Array([0x05]),\n index: new Uint8Array([0x00, 0x01]),\n length: 5,\n dataSize: Maybe.zero(),\n }),\n data: new Uint8Array([\n 0x79, 0x49, 0x6e, 0x45, 0x76, 0x65, 0x72, 0x79, 0x42, 0x69, 0x74,\n 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n ]),\n }),\n ]);\n expect(frames.map((fr) => fr.getRawData())).toEqual([\n new Uint8Array([\n 0x12, 0x34, 0x05, 0x00, 0x00, 0x00, 0x45, 0xe0, 0xd4, 0x00, 0x00,\n 0x40, 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72,\n 0x69, 0x74, 0x69, 0x6f, 0x75, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72,\n 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x6f, 0x79, 0x44, 0x65, 0x6c, 0x69,\n 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x69, 0x6e,\n 0x65, 0x73, 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e,\n ]),\n new Uint8Array([\n 0x12, 0x34, 0x05, 0x00, 0x01, 0x79, 0x49, 0x6e, 0x45, 0x76, 0x65,\n 0x72, 0x79, 0x42, 0x69, 0x74, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n ]),\n ]);\n });\n });\n\n describe(\"[BLE] Without padding nor channel\", () => {\n it(\"should return 1 frame\", () => {\n // given\n const apduSenderService = new DefaultApduSenderService(\n {\n frameSize: 123,\n },\n () => loggerService,\n );\n const command = new Uint8Array([0xe0, 0x01, 0x00, 0x00, 0x00]);\n\n // when\n const frames = apduSenderService.getFrames(command);\n\n // then\n expect(frames).toEqual([\n new Frame({\n header: new FrameHeader({\n uuid: \"42\",\n channel: Maybe.zero(),\n headTag: new Uint8Array([0x05]),\n dataSize: Maybe.of(new Uint8Array([0, 5])),\n index: new Uint8Array([0, 0]),\n length: 5,\n }),\n data: new Uint8Array([0xe0, 0x01, 0x00, 0x00, 0x00]),\n }),\n ]);\n expect(frames.map((fr) => fr.getRawData())).toEqual([\n new Uint8Array([\n 0x05, 0x00, 0x00, 0x00, 0x05, 0xe0, 0x01, 0x00, 0x00, 0x00,\n ]),\n ]);\n });\n\n it(\"should return 3 frames\", () => {\n // given\n const apduSenderService = new DefaultApduSenderService(\n {\n frameSize: 10,\n },\n () => loggerService,\n );\n const command = new Uint8Array([\n 0x01, 0x05, 0x4f, 0x4c, 0x4f, 0x53, 0x00, 0x07, 0x2e, 0x32, 0x2e, 0x34,\n 0x2d, 0x32, 0x00, 0x90, 0x00,\n ]);\n\n // when\n const frames = apduSenderService.getFrames(command);\n\n // then\n expect(frames).toEqual([\n new Frame({\n header: new FrameHeader({\n uuid: \"42\",\n channel: Maybe.zero(),\n headTag: new Uint8Array([0x05]),\n index: new Uint8Array([0, 0]),\n dataSize: Maybe.of(new Uint8Array([0, 0x11])),\n length: 5,\n }),\n data: new Uint8Array([0x01, 0x05, 0x4f, 0x4c, 0x4f]),\n }),\n new Frame({\n header: new FrameHeader({\n uuid: \"42\",\n channel: Maybe.zero(),\n headTag: new Uint8Array([0x05]),\n dataSize: Maybe.zero(),\n index: new Uint8Array([0, 0x01]),\n length: 3,\n }),\n data: new Uint8Array([0x53, 0x00, 0x07, 0x2e, 0x32, 0x2e, 0x34]),\n }),\n new Frame({\n header: new FrameHeader({\n uuid: \"42\",\n channel: Maybe.zero(),\n headTag: new Uint8Array([0x05]),\n dataSize: Maybe.zero(),\n index: new Uint8Array([0, 0x02]),\n length: 3,\n }),\n data: new Uint8Array([0x2d, 0x32, 0x00, 0x90, 0x00]),\n }),\n ]);\n expect(frames.map((fr) => fr.getRawData())).toEqual([\n new Uint8Array([\n 0x05, 0x00, 0x00, 0x00, 0x11, 0x01, 0x05, 0x4f, 0x4c, 0x4f,\n ]),\n new Uint8Array([\n 0x05, 0x00, 0x01, 0x53, 0x00, 0x07, 0x2e, 0x32, 0x2e, 0x34,\n ]),\n new Uint8Array([0x05, 0x00, 0x02, 0x2d, 0x32, 0x00, 0x90, 0x00]),\n ]);\n });\n });\n\n describe(\"Errors\", () => {\n it(\"should return a well formatted header with very big channel\", () => {\n // given\n const apduSenderService = new DefaultApduSenderService(\n {\n frameSize: 64,\n channel: Maybe.of(\n new Uint8Array([0x123434, 0x34444, 0x56454, 0x7844, 0x90444]),\n ),\n },\n () => loggerService,\n );\n const command = new Uint8Array([0xe0, 0x01, 0x00, 0x00, 0x00]);\n\n // when\n const frames = apduSenderService.getFrames(command);\n\n // then\n expect(frames).toEqual([\n new Frame({\n header: new FrameHeader({\n uuid: \"42\",\n channel: Maybe.of(new Uint8Array([0x44, 0x44])),\n headTag: new Uint8Array([0x05]),\n dataSize: Maybe.of(new Uint8Array([0, 0x05])),\n index: new Uint8Array([0, 0]),\n length: 7,\n }),\n data: new Uint8Array([0xe0, 0x01, 0x00, 0x00, 0x00]),\n }),\n ]);\n expect(frames.map((fr) => fr.getRawData())).toEqual([\n new Uint8Array([\n 0x44, 0x44, 0x05, 0x00, 0x00, 0x00, 0x05, 0xe0, 0x01, 0x00, 0x00,\n 0x00,\n ]),\n ]);\n });\n it(\"should return empty if packet size smaller than header size\", () => {\n // given\n const apduSenderService = new DefaultApduSenderService(\n {\n frameSize: Math.random() & 4,\n channel: Maybe.of(new Uint8Array([0x12, 0x34])),\n },\n () => loggerService,\n );\n const command = new Uint8Array([0xe0, 0x01, 0x00, 0x00, 0x00]);\n\n // when\n const frames = apduSenderService.getFrames(command);\n\n // then\n expect(frames.length).toEqual(0);\n });\n\n it(\"should return empty if no apdu length\", () => {\n // given\n const apduSenderService = new DefaultApduSenderService(\n {\n // random frameSize < 0xff\n frameSize: Math.random() & 0xff,\n // random padding boolean\n padding: Math.random() > 0.5,\n channel: Maybe.of(new Uint8Array([0x12, 0x34])),\n },\n () => loggerService,\n );\n const command = new Uint8Array([]);\n\n // when\n const frames = apduSenderService.getFrames(command);\n\n // then\n expect(frames.length).toEqual(0);\n });\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_purify_ts", "import_Frame", "import_FrameHeader", "import_DefaultLoggerPublisherService", "import_DefaultApduSenderService", "loggerService", "channel", "apduSenderService", "apdu", "frames", "fr", "command"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var r=require("purify-ts"),v=require("rxjs"),c=require("../../device-session/model/DeviceSession.stub"),l=require("../../device-session/model/Errors"),S=require("../../logger-publisher/service/DefaultLoggerPublisherService"),u=require("../../manager-api/data/AxiosManagerApiDataSource"),p=require("../../manager-api/service/DefaultManagerApiService"),D=require("./DefaultDeviceSessionService");jest.mock("@internal/logger-publisher/service/DefaultLoggerPublisherService");jest.mock("@internal/manager-api/data/AxiosManagerApiDataSource");let e,t,s,n,d;describe("DefaultDeviceSessionService",()=>{beforeEach(()=>{jest.restoreAllMocks(),t=new S.DefaultLoggerPublisherService([],"deviceSession"),e=new D.DefaultDeviceSessionService(()=>t),d=new u.AxiosManagerApiDataSource({managerApiUrl:"http://fake.url",mockUrl:"http://fake-mock.url"}),n=new p.DefaultManagerApiService(d),s=(0,c.deviceSessionStubBuilder)({},()=>t,n)}),afterEach(()=>{s.close()}),it("should have an empty sessions list",()=>{expect(e.getDeviceSessions()).toEqual([])}),it("should add a deviceSession",()=>{e.addDeviceSession(s),expect(e.getDeviceSessions()).toEqual([s])}),it("should not add a deviceSession if it already exists",()=>{e.addDeviceSession(s),e.addDeviceSession(s),expect(e.getDeviceSessions()).toEqual([s])}),it("should remove a deviceSession",()=>{e.addDeviceSession(s),e.removeDeviceSession(s.id),expect(e.getDeviceSessions()).toEqual([])}),it("should not remove a deviceSession if it does not exist",()=>{e.removeDeviceSession(s.id),expect(e.getDeviceSessions()).toEqual([])}),it("should get a deviceSession",()=>{e.addDeviceSession(s),expect(e.getDeviceSessionById(s.id)).toEqual(r.Either.of(s))}),it("should not get a deviceSession if it does not exist",()=>{expect(e.getDeviceSessionById(s.id)).toEqual((0,r.Left)(new l.DeviceSessionNotFound))}),it("should get all sessions",()=>{e.addDeviceSession(s),expect(e.getDeviceSessions()).toEqual([s])}),it("should retrieve sessionObs",()=>{expect(e.sessionsObs).toBeInstanceOf(v.Observable)}),it("should emit new session",i=>{const o=e.sessionsObs.subscribe({next(a){expect(a).toStrictEqual(s),o.unsubscribe(),i()}});e.addDeviceSession(s)}),it("should emit previous added session",()=>{const i=(0,c.deviceSessionStubBuilder)({id:"last-session"},()=>t,n),o=[];e.addDeviceSession(s),e.addDeviceSession(i);const a=e.sessionsObs.subscribe({next(m){o.push(m)}});i.close(),expect(o).toEqual([s,i]),a.unsubscribe()})});
1
+ "use strict";var r=require("purify-ts"),d=require("rxjs"),l=require("../../device-session/model/DeviceSession.stub"),p=require("../../device-session/model/Errors"),m=require("../../logger-publisher/service/DefaultLoggerPublisherService"),D=require("../../manager-api/data/AxiosManagerApiDataSource"),f=require("../../manager-api/service/DefaultManagerApiService"),g=require("../../secure-channel/data/DefaultSecureChannelDataSource"),h=require("../../secure-channel/service/DefaultSecureChannelService"),b=require("./DefaultDeviceSessionService");vi.mock("@internal/logger-publisher/service/DefaultLoggerPublisherService");vi.mock("@internal/manager-api/data/AxiosManagerApiDataSource");let e,t,i,v,c,u,S;describe("DefaultDeviceSessionService",()=>{beforeEach(()=>{vi.restoreAllMocks(),t=new m.DefaultLoggerPublisherService([],"deviceSession"),e=new b.DefaultDeviceSessionService(()=>t),v=new D.AxiosManagerApiDataSource({}),c=new f.DefaultManagerApiService(v),u=new g.DefaultSecureChannelDataSource({}),S=new h.DefaultSecureChannelService(u),i=(0,l.deviceSessionStubBuilder)({},()=>t,c,S)}),afterEach(()=>{i.close()}),it("should have an empty sessions list",()=>{expect(e.getDeviceSessions()).toEqual([])}),it("should add a deviceSession",()=>{e.addDeviceSession(i),expect(e.getDeviceSessions()).toEqual([i])}),it("should not add a deviceSession if it already exists",()=>{e.addDeviceSession(i),e.addDeviceSession(i),expect(e.getDeviceSessions()).toEqual([i])}),it("should remove a deviceSession",()=>{e.addDeviceSession(i),e.removeDeviceSession(i.id),expect(e.getDeviceSessions()).toEqual([])}),it("should not remove a deviceSession if it does not exist",()=>{e.removeDeviceSession(i.id),expect(e.getDeviceSessions()).toEqual([])}),it("should get a deviceSession",()=>{e.addDeviceSession(i),expect(e.getDeviceSessionById(i.id)).toEqual(r.Either.of(i))}),it("should not get a deviceSession if it does not exist",()=>{expect(e.getDeviceSessionById(i.id)).toEqual((0,r.Left)(new p.DeviceSessionNotFound))}),it("should get all sessions",()=>{e.addDeviceSession(i),expect(e.getDeviceSessions()).toEqual([i])}),it("should retrieve sessionObs",()=>{expect(e.sessionsObs).toBeInstanceOf(d.Observable)}),it("should emit new session",()=>new Promise((s,o)=>{const n=e.sessionsObs.subscribe({next(a){try{expect(a).toStrictEqual(i),n.unsubscribe(),s()}catch(x){o(x)}}});e.addDeviceSession(i)})),it("should emit previous added session",()=>{const s=(0,l.deviceSessionStubBuilder)({id:"last-session"},()=>t,c,S),o=[];e.addDeviceSession(i),e.addDeviceSession(s);const n=e.sessionsObs.subscribe({next(a){o.push(a)}});s.close(),expect(o).toEqual([i,s]),n.unsubscribe()})});
2
2
  //# sourceMappingURL=DefaultDeviceSessionService.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/service/DefaultDeviceSessionService.test.ts"],
4
- "sourcesContent": ["import { Either, Left } from \"purify-ts\";\nimport { Observable } from \"rxjs\";\n\nimport { type DeviceSession } from \"@internal/device-session/model/DeviceSession\";\nimport { deviceSessionStubBuilder } from \"@internal/device-session/model/DeviceSession.stub\";\nimport { DeviceSessionNotFound } from \"@internal/device-session/model/Errors\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\nimport { AxiosManagerApiDataSource } from \"@internal/manager-api/data/AxiosManagerApiDataSource\";\nimport { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\nimport { DefaultManagerApiService } from \"@internal/manager-api/service/DefaultManagerApiService\";\nimport type { ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\n\nimport { DefaultDeviceSessionService } from \"./DefaultDeviceSessionService\";\n\njest.mock(\"@internal/logger-publisher/service/DefaultLoggerPublisherService\");\njest.mock(\"@internal/manager-api/data/AxiosManagerApiDataSource\");\n\nlet sessionService: DefaultDeviceSessionService;\nlet loggerService: DefaultLoggerPublisherService;\nlet deviceSession: DeviceSession;\nlet managerApi: ManagerApiService;\nlet managerApiDataSource: ManagerApiDataSource;\ndescribe(\"DefaultDeviceSessionService\", () => {\n beforeEach(() => {\n jest.restoreAllMocks();\n loggerService = new DefaultLoggerPublisherService([], \"deviceSession\");\n sessionService = new DefaultDeviceSessionService(() => loggerService);\n managerApiDataSource = new AxiosManagerApiDataSource({\n managerApiUrl: \"http://fake.url\",\n mockUrl: \"http://fake-mock.url\",\n });\n managerApi = new DefaultManagerApiService(managerApiDataSource);\n\n deviceSession = deviceSessionStubBuilder(\n {},\n () => loggerService,\n managerApi,\n );\n });\n\n afterEach(() => {\n deviceSession.close();\n });\n\n it(\"should have an empty sessions list\", () => {\n expect(sessionService.getDeviceSessions()).toEqual([]);\n });\n\n it(\"should add a deviceSession\", () => {\n sessionService.addDeviceSession(deviceSession);\n expect(sessionService.getDeviceSessions()).toEqual([deviceSession]);\n });\n\n it(\"should not add a deviceSession if it already exists\", () => {\n sessionService.addDeviceSession(deviceSession);\n sessionService.addDeviceSession(deviceSession);\n expect(sessionService.getDeviceSessions()).toEqual([deviceSession]);\n });\n\n it(\"should remove a deviceSession\", () => {\n sessionService.addDeviceSession(deviceSession);\n sessionService.removeDeviceSession(deviceSession.id);\n expect(sessionService.getDeviceSessions()).toEqual([]);\n });\n\n it(\"should not remove a deviceSession if it does not exist\", () => {\n sessionService.removeDeviceSession(deviceSession.id);\n expect(sessionService.getDeviceSessions()).toEqual([]);\n });\n\n it(\"should get a deviceSession\", () => {\n sessionService.addDeviceSession(deviceSession);\n expect(sessionService.getDeviceSessionById(deviceSession.id)).toEqual(\n Either.of(deviceSession),\n );\n });\n\n it(\"should not get a deviceSession if it does not exist\", () => {\n expect(sessionService.getDeviceSessionById(deviceSession.id)).toEqual(\n Left(new DeviceSessionNotFound()),\n );\n });\n\n it(\"should get all sessions\", () => {\n sessionService.addDeviceSession(deviceSession);\n expect(sessionService.getDeviceSessions()).toEqual([deviceSession]);\n });\n\n it(\"should retrieve sessionObs\", () => {\n expect(sessionService.sessionsObs).toBeInstanceOf(\n Observable<DeviceSession>,\n );\n });\n\n it(\"should emit new session\", (done) => {\n const subscription = sessionService.sessionsObs.subscribe({\n next(emittedDeviceSession) {\n expect(emittedDeviceSession).toStrictEqual(deviceSession);\n subscription.unsubscribe();\n done();\n },\n });\n sessionService.addDeviceSession(deviceSession);\n });\n\n it(\"should emit previous added session\", () => {\n const lastDeviceSession = deviceSessionStubBuilder(\n { id: \"last-session\" },\n () => loggerService,\n managerApi,\n );\n const emittedSessions: DeviceSession[] = [];\n sessionService.addDeviceSession(deviceSession);\n sessionService.addDeviceSession(lastDeviceSession);\n\n const subscription = sessionService.sessionsObs.subscribe({\n next(emittedDeviceSession) {\n emittedSessions.push(emittedDeviceSession);\n },\n });\n lastDeviceSession.close();\n expect(emittedSessions).toEqual([deviceSession, lastDeviceSession]);\n subscription.unsubscribe();\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_purify_ts", "import_rxjs", "import_DeviceSession", "import_Errors", "import_DefaultLoggerPublisherService", "import_AxiosManagerApiDataSource", "import_DefaultManagerApiService", "import_DefaultDeviceSessionService", "sessionService", "loggerService", "deviceSession", "managerApi", "managerApiDataSource", "done", "subscription", "emittedDeviceSession", "lastDeviceSession", "emittedSessions"]
4
+ "sourcesContent": ["import { Either, Left } from \"purify-ts\";\nimport { Observable } from \"rxjs\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { type DeviceSession } from \"@internal/device-session/model/DeviceSession\";\nimport { deviceSessionStubBuilder } from \"@internal/device-session/model/DeviceSession.stub\";\nimport { DeviceSessionNotFound } from \"@internal/device-session/model/Errors\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\nimport { AxiosManagerApiDataSource } from \"@internal/manager-api/data/AxiosManagerApiDataSource\";\nimport { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\nimport { DefaultManagerApiService } from \"@internal/manager-api/service/DefaultManagerApiService\";\nimport type { ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { type SecureChannelDataSource } from \"@internal/secure-channel/data/SecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\n\nimport { DefaultDeviceSessionService } from \"./DefaultDeviceSessionService\";\n\nvi.mock(\"@internal/logger-publisher/service/DefaultLoggerPublisherService\");\nvi.mock(\"@internal/manager-api/data/AxiosManagerApiDataSource\");\n\nlet sessionService: DefaultDeviceSessionService;\nlet loggerService: DefaultLoggerPublisherService;\nlet deviceSession: DeviceSession;\nlet managerApiDataSource: ManagerApiDataSource;\nlet managerApi: ManagerApiService;\nlet secureChannelDataSource: SecureChannelDataSource;\nlet secureChannel: SecureChannelService;\n\ndescribe(\"DefaultDeviceSessionService\", () => {\n beforeEach(() => {\n vi.restoreAllMocks();\n loggerService = new DefaultLoggerPublisherService([], \"deviceSession\");\n sessionService = new DefaultDeviceSessionService(() => loggerService);\n managerApiDataSource = new AxiosManagerApiDataSource({} as DmkConfig);\n managerApi = new DefaultManagerApiService(managerApiDataSource);\n secureChannelDataSource = new DefaultSecureChannelDataSource(\n {} as DmkConfig,\n );\n secureChannel = new DefaultSecureChannelService(secureChannelDataSource);\n\n deviceSession = deviceSessionStubBuilder(\n {},\n () => loggerService,\n managerApi,\n secureChannel,\n );\n });\n\n afterEach(() => {\n deviceSession.close();\n });\n\n it(\"should have an empty sessions list\", () => {\n expect(sessionService.getDeviceSessions()).toEqual([]);\n });\n\n it(\"should add a deviceSession\", () => {\n sessionService.addDeviceSession(deviceSession);\n expect(sessionService.getDeviceSessions()).toEqual([deviceSession]);\n });\n\n it(\"should not add a deviceSession if it already exists\", () => {\n sessionService.addDeviceSession(deviceSession);\n sessionService.addDeviceSession(deviceSession);\n expect(sessionService.getDeviceSessions()).toEqual([deviceSession]);\n });\n\n it(\"should remove a deviceSession\", () => {\n sessionService.addDeviceSession(deviceSession);\n sessionService.removeDeviceSession(deviceSession.id);\n expect(sessionService.getDeviceSessions()).toEqual([]);\n });\n\n it(\"should not remove a deviceSession if it does not exist\", () => {\n sessionService.removeDeviceSession(deviceSession.id);\n expect(sessionService.getDeviceSessions()).toEqual([]);\n });\n\n it(\"should get a deviceSession\", () => {\n sessionService.addDeviceSession(deviceSession);\n expect(sessionService.getDeviceSessionById(deviceSession.id)).toEqual(\n Either.of(deviceSession),\n );\n });\n\n it(\"should not get a deviceSession if it does not exist\", () => {\n expect(sessionService.getDeviceSessionById(deviceSession.id)).toEqual(\n Left(new DeviceSessionNotFound()),\n );\n });\n\n it(\"should get all sessions\", () => {\n sessionService.addDeviceSession(deviceSession);\n expect(sessionService.getDeviceSessions()).toEqual([deviceSession]);\n });\n\n it(\"should retrieve sessionObs\", () => {\n expect(sessionService.sessionsObs).toBeInstanceOf(\n Observable<DeviceSession>,\n );\n });\n\n it(\"should emit new session\", () =>\n new Promise<void>((resolve, reject) => {\n const subscription = sessionService.sessionsObs.subscribe({\n next(emittedDeviceSession) {\n try {\n expect(emittedDeviceSession).toStrictEqual(deviceSession);\n subscription.unsubscribe();\n resolve();\n } catch (error) {\n reject(error);\n }\n },\n });\n sessionService.addDeviceSession(deviceSession);\n }));\n\n it(\"should emit previous added session\", () => {\n const lastDeviceSession = deviceSessionStubBuilder(\n { id: \"last-session\" },\n () => loggerService,\n managerApi,\n secureChannel,\n );\n const emittedSessions: DeviceSession[] = [];\n sessionService.addDeviceSession(deviceSession);\n sessionService.addDeviceSession(lastDeviceSession);\n\n const subscription = sessionService.sessionsObs.subscribe({\n next(emittedDeviceSession) {\n emittedSessions.push(emittedDeviceSession);\n },\n });\n lastDeviceSession.close();\n expect(emittedSessions).toEqual([deviceSession, lastDeviceSession]);\n subscription.unsubscribe();\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_purify_ts", "import_rxjs", "import_DeviceSession", "import_Errors", "import_DefaultLoggerPublisherService", "import_AxiosManagerApiDataSource", "import_DefaultManagerApiService", "import_DefaultSecureChannelDataSource", "import_DefaultSecureChannelService", "import_DefaultDeviceSessionService", "sessionService", "loggerService", "deviceSession", "managerApiDataSource", "managerApi", "secureChannelDataSource", "secureChannel", "resolve", "reject", "subscription", "emittedDeviceSession", "error", "lastDeviceSession", "emittedSessions"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var v=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var _=(i,e)=>{for(var s in e)v(i,s,{get:e[s],enumerable:!0})},a=(i,e,s,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let c of f(e))!y.call(i,c)&&c!==s&&v(i,c,{get:()=>e[c],enumerable:!(o=p(e,c))||o.enumerable});return i};var h=i=>a(v({},"__esModule",{value:!0}),i),m=(i,e,s,o)=>{for(var c=o>1?void 0:o?p(e,s):e,t=i.length-1,S;t>=0;t--)(S=i[t])&&(c=(o?S(e,s,c):S(c))||c);return o&&c&&v(e,s,c),c},D=(i,e)=>(s,o)=>e(s,o,i);var j={};_(j,{CloseSessionsUseCase:()=>r});module.exports=h(j);var n=require("inversify"),d=require("../../device-session/di/deviceSessionTypes");let r=class{_sessionService;constructor(e){this._sessionService=e}execute(){const e=this._sessionService.getDeviceSessions();for(const s of e)s.close()}};r=m([(0,n.injectable)(),D(0,(0,n.inject)(d.deviceSessionTypes.DeviceSessionService))],r);0&&(module.exports={CloseSessionsUseCase});
1
+ "use strict";var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var _=(r,e)=>{for(var i in e)n(r,i,{get:e[i],enumerable:!0})},y=(r,e,i,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of f(e))!T.call(r,s)&&s!==i&&n(r,s,{get:()=>e[s],enumerable:!(o=a(e,s))||o.enumerable});return r};var h=r=>y(n({},"__esModule",{value:!0}),r),m=(r,e,i,o)=>{for(var s=o>1?void 0:o?a(e,i):e,v=r.length-1,S;v>=0;v--)(S=r[v])&&(s=(o?S(e,i,s):S(s))||s);return o&&s&&n(e,i,s),s},p=(r,e)=>(i,o)=>e(i,o,r);var l={};_(l,{CloseSessionsUseCase:()=>c});module.exports=h(l);var t=require("inversify"),D=require("../../device-session/di/deviceSessionTypes"),d=require("../../transport/di/transportDiTypes");let c=class{_sessionService;_transportService;constructor(e,i){this._sessionService=e,this._transportService=i}execute(){const e=this._sessionService.getDeviceSessions();for(const i of e)this._transportService.closeConnection(i.connectedDevice),this._sessionService.removeDeviceSession(i.id)}};c=m([(0,t.injectable)(),p(0,(0,t.inject)(D.deviceSessionTypes.DeviceSessionService)),p(1,(0,t.inject)(d.transportDiTypes.TransportService))],c);0&&(module.exports={CloseSessionsUseCase});
2
2
  //# sourceMappingURL=CloseSessionsUseCase.js.map