@ledgerhq/device-management-kit 0.5.0 → 0.6.0

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 (921) hide show
  1. package/README.md +27 -31
  2. package/lib/cjs/package.json +13 -14
  3. package/lib/cjs/src/api/DeviceManagementKit.js +1 -1
  4. package/lib/cjs/src/api/DeviceManagementKit.js.map +3 -3
  5. package/lib/cjs/src/api/DeviceManagementKit.test.js +1 -1
  6. package/lib/cjs/src/api/DeviceManagementKit.test.js.map +2 -2
  7. package/lib/cjs/src/api/DeviceManagementKitBuilder.js +1 -1
  8. package/lib/cjs/src/api/DeviceManagementKitBuilder.js.map +2 -2
  9. package/lib/cjs/src/api/DmkConfig.js +1 -1
  10. package/lib/cjs/src/api/DmkConfig.js.map +1 -1
  11. package/lib/cjs/src/api/Error.js +1 -1
  12. package/lib/cjs/src/api/Error.js.map +3 -3
  13. package/lib/cjs/src/api/apdu/utils/ApduParser.test.js +1 -1
  14. package/lib/cjs/src/api/apdu/utils/ApduParser.test.js.map +2 -2
  15. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.js +1 -1
  16. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.js.map +2 -2
  17. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.test.js +1 -1
  18. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.test.js.map +2 -2
  19. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.js +1 -1
  20. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.js.map +2 -2
  21. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.test.js +1 -1
  22. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.test.js.map +2 -2
  23. package/lib/cjs/src/api/command/model/CommandResult.js.map +1 -1
  24. package/lib/cjs/src/api/command/os/GetOsVersionCommand.js +1 -1
  25. package/lib/cjs/src/api/command/os/GetOsVersionCommand.js.map +2 -2
  26. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js +1 -1
  27. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js.map +2 -2
  28. package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js +2 -0
  29. package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +7 -0
  30. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.js.map +2 -2
  31. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
  32. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js.map +2 -2
  33. package/lib/cjs/src/api/command/utils/CommandUtils.js +1 -1
  34. package/lib/cjs/src/api/command/utils/CommandUtils.js.map +2 -2
  35. package/lib/cjs/src/api/device/DeviceModel.js +1 -1
  36. package/lib/cjs/src/api/device/DeviceModel.js.map +3 -3
  37. package/lib/cjs/src/api/device-action/DeviceAction.js.map +1 -1
  38. package/lib/cjs/src/api/device-action/__test-utils__/data.js +1 -1
  39. package/lib/cjs/src/api/device-action/__test-utils__/data.js.map +3 -3
  40. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  41. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  42. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  43. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +3 -3
  44. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +1 -1
  45. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +3 -3
  46. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js +1 -1
  47. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js.map +2 -2
  48. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +1 -1
  49. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +3 -3
  50. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/types.js.map +1 -1
  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/SendCommandInAppDeviceActionTypes.js +1 -1
  60. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js.map +1 -1
  61. package/lib/cjs/src/api/device-action/use-case/ExecuteDeviceActionUseCase.js.map +2 -2
  62. package/lib/cjs/src/api/device-model/data/DeviceModelDataSource.js +2 -0
  63. package/lib/cjs/src/api/device-model/data/DeviceModelDataSource.js.map +7 -0
  64. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.js +2 -0
  65. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.js.map +7 -0
  66. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.test.js +2 -0
  67. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.test.js.map +7 -0
  68. package/lib/cjs/src/api/device-model/model/BleDeviceInfos.js +2 -0
  69. package/lib/cjs/src/api/device-model/model/BleDeviceInfos.js.map +7 -0
  70. package/lib/cjs/src/api/device-model/model/DeviceModel.js +2 -0
  71. package/lib/cjs/src/api/device-model/model/DeviceModel.js.map +7 -0
  72. package/lib/cjs/src/api/device-model/model/DeviceModel.stub.js +2 -0
  73. package/lib/cjs/src/api/device-model/model/DeviceModel.stub.js.map +7 -0
  74. package/lib/cjs/src/api/device-model/model/DeviceModel.test.js +2 -0
  75. package/lib/cjs/src/api/device-model/model/DeviceModel.test.js.map +7 -0
  76. package/lib/cjs/src/api/device-session/DeviceSessionState.js +1 -1
  77. package/lib/cjs/src/api/device-session/DeviceSessionState.js.map +2 -2
  78. package/lib/cjs/src/{internal → api}/device-session/data/FramerConst.js.map +1 -1
  79. package/lib/cjs/src/api/device-session/service/ApduReceiverService.js +2 -0
  80. package/lib/cjs/src/{internal → api}/device-session/service/ApduReceiverService.js.map +2 -2
  81. package/lib/cjs/src/api/device-session/service/ApduSenderService.js +2 -0
  82. package/lib/cjs/src/api/device-session/service/ApduSenderService.js.map +7 -0
  83. package/lib/cjs/src/api/device-session/service/DefaultApduReceiverService.stub.js +2 -0
  84. package/lib/cjs/src/api/device-session/service/DefaultApduReceiverService.stub.js.map +7 -0
  85. package/lib/cjs/src/api/device-session/service/DefaultApduSenderService.stub.js +2 -0
  86. package/lib/cjs/src/api/device-session/service/DefaultApduSenderService.stub.js.map +7 -0
  87. package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.js +2 -0
  88. package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.js.map +7 -0
  89. package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js +2 -0
  90. package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js.map +7 -0
  91. package/lib/cjs/src/{internal → api}/device-session/utils/FramerUtils.js.map +1 -1
  92. package/lib/cjs/src/{internal → api}/device-session/utils/FramerUtils.test.js.map +1 -1
  93. package/lib/cjs/src/api/index.js +1 -1
  94. package/lib/cjs/src/api/index.js.map +3 -3
  95. package/lib/cjs/src/{internal → api}/logger-publisher/service/LoggerPublisherService.js.map +1 -1
  96. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +1 -1
  97. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +3 -3
  98. package/lib/cjs/src/api/logger-subscriber/{__mocks__ → service/__mocks__}/ConsoleLogger.js.map +1 -1
  99. package/lib/cjs/src/api/transport/model/ConnectedDevice.js +1 -1
  100. package/lib/cjs/src/api/transport/model/ConnectedDevice.js.map +2 -2
  101. package/lib/cjs/src/{internal → api}/transport/model/DeviceConnection.js.map +1 -1
  102. package/lib/cjs/src/api/transport/model/DeviceConnectionFactory.stub.js +2 -0
  103. package/lib/cjs/src/api/transport/model/DeviceConnectionFactory.stub.js.map +7 -0
  104. package/lib/cjs/src/api/transport/model/Errors.js +2 -0
  105. package/lib/cjs/src/api/transport/model/Errors.js.map +7 -0
  106. package/lib/cjs/src/api/transport/model/Transport.js +1 -1
  107. package/lib/cjs/src/api/transport/model/Transport.js.map +1 -1
  108. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.js +2 -0
  109. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.js.map +7 -0
  110. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.stub.js +2 -0
  111. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.stub.js.map +7 -0
  112. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.test.js +2 -0
  113. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.test.js.map +7 -0
  114. package/lib/cjs/src/api/transport/model/TransportDiscoveredDevice.js +2 -0
  115. package/lib/cjs/src/api/transport/model/TransportDiscoveredDevice.js.map +7 -0
  116. package/lib/cjs/src/api/transport/model/TransportIdentifier.js +1 -1
  117. package/lib/cjs/src/api/transport/model/TransportIdentifier.js.map +3 -3
  118. package/lib/cjs/src/api/transport/model/__mocks__/TransportMock.js +2 -0
  119. package/lib/cjs/src/api/transport/model/__mocks__/TransportMock.js.map +7 -0
  120. package/lib/cjs/src/api/types.js +1 -1
  121. package/lib/cjs/src/api/types.js.map +1 -1
  122. package/lib/cjs/src/di.js +1 -1
  123. package/lib/cjs/src/di.js.map +3 -3
  124. package/lib/cjs/src/internal/config/service/DefaultConfigService.js +1 -1
  125. package/lib/cjs/src/internal/config/service/DefaultConfigService.js.map +2 -2
  126. package/lib/cjs/src/internal/device-model/di/deviceModelModule.js +1 -1
  127. package/lib/cjs/src/internal/device-model/di/deviceModelModule.js.map +2 -2
  128. package/lib/cjs/src/internal/device-model/di/deviceModelModule.test.js +1 -1
  129. package/lib/cjs/src/internal/device-model/di/deviceModelModule.test.js.map +2 -2
  130. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.js +1 -1
  131. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.js.map +3 -3
  132. package/lib/cjs/src/internal/device-session/di/deviceSessionTypes.js +1 -1
  133. package/lib/cjs/src/internal/device-session/di/deviceSessionTypes.js.map +2 -2
  134. package/lib/cjs/src/internal/device-session/model/DeviceSession.js +1 -1
  135. package/lib/cjs/src/internal/device-session/model/DeviceSession.js.map +3 -3
  136. package/lib/cjs/src/internal/device-session/model/DeviceSession.stub.js +1 -1
  137. package/lib/cjs/src/internal/device-session/model/DeviceSession.stub.js.map +3 -3
  138. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.js +1 -1
  139. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.js.map +2 -2
  140. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
  141. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +2 -2
  142. package/lib/cjs/src/internal/device-session/model/Errors.js.map +1 -1
  143. package/lib/cjs/src/internal/device-session/model/FrameHeader.js +1 -1
  144. package/lib/cjs/src/internal/device-session/model/FrameHeader.js.map +2 -2
  145. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.js +1 -1
  146. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.js.map +3 -3
  147. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.test.js +1 -1
  148. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.test.js.map +3 -3
  149. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.js +1 -1
  150. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.js.map +3 -3
  151. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.test.js +1 -1
  152. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.test.js.map +3 -3
  153. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.js.map +2 -2
  154. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
  155. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +2 -2
  156. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +2 -0
  157. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +7 -0
  158. package/lib/cjs/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.js.map +2 -2
  159. package/lib/cjs/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js +1 -1
  160. package/lib/cjs/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js.map +3 -3
  161. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js +1 -1
  162. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js.map +3 -3
  163. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js +1 -1
  164. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js.map +3 -3
  165. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  166. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js.map +3 -3
  167. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.js +1 -1
  168. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.js.map +3 -3
  169. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
  170. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +3 -3
  171. package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.js +1 -1
  172. package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.js.map +2 -2
  173. package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js +1 -1
  174. package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js.map +2 -2
  175. package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.js +1 -1
  176. package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.js.map +2 -2
  177. package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js +1 -1
  178. package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js.map +2 -2
  179. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.js +1 -1
  180. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.js.map +2 -2
  181. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js +1 -1
  182. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js.map +3 -3
  183. package/lib/cjs/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.js +1 -1
  184. package/lib/cjs/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.js.map +3 -3
  185. package/lib/cjs/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.js +1 -1
  186. package/lib/cjs/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.js.map +3 -3
  187. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.js +1 -1
  188. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.js.map +3 -3
  189. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js +1 -1
  190. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js.map +3 -3
  191. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.js +1 -1
  192. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.js.map +3 -3
  193. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +1 -1
  194. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +3 -3
  195. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.js.map +2 -2
  196. package/lib/cjs/src/internal/logger-publisher/service/DefaultLoggerPublisherService.js.map +2 -2
  197. package/lib/cjs/src/internal/logger-publisher/service/DefaultLoggerPublisherService.stub.js +2 -0
  198. package/lib/cjs/src/internal/logger-publisher/service/DefaultLoggerPublisherService.stub.js.map +7 -0
  199. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
  200. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.js.map +3 -3
  201. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
  202. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +3 -3
  203. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js +1 -1
  204. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js.map +1 -1
  205. package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
  206. package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
  207. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js +1 -1
  208. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
  209. package/lib/cjs/src/internal/manager-api/model/{ManagerApiType.js → Application.js} +2 -2
  210. package/lib/cjs/src/internal/manager-api/model/Application.js.map +7 -0
  211. package/lib/cjs/src/internal/manager-api/model/Const.js +1 -1
  212. package/lib/cjs/src/internal/manager-api/model/Const.js.map +3 -3
  213. package/lib/cjs/src/internal/manager-api/model/Device.js +2 -0
  214. package/lib/cjs/src/internal/manager-api/model/Device.js.map +7 -0
  215. package/lib/cjs/src/internal/manager-api/model/Errors.js +1 -1
  216. package/lib/cjs/src/internal/manager-api/model/Errors.js.map +3 -3
  217. package/lib/cjs/src/internal/manager-api/model/Firmware.js +2 -0
  218. package/lib/cjs/src/internal/manager-api/model/Firmware.js.map +7 -0
  219. package/lib/cjs/src/internal/manager-api/model/Params.js +2 -0
  220. package/lib/cjs/src/internal/manager-api/model/Params.js.map +7 -0
  221. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  222. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js.map +3 -3
  223. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  224. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  225. package/lib/cjs/src/internal/manager-api/service/ManagerApiService.js +1 -1
  226. package/lib/cjs/src/internal/manager-api/service/ManagerApiService.js.map +1 -1
  227. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.js +1 -1
  228. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.js.map +2 -2
  229. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js +1 -1
  230. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js.map +3 -3
  231. package/lib/cjs/src/internal/transport/di/transportDiTypes.js +1 -1
  232. package/lib/cjs/src/internal/transport/di/transportDiTypes.js.map +2 -2
  233. package/lib/cjs/src/internal/transport/di/transportModule.js +1 -1
  234. package/lib/cjs/src/internal/transport/di/transportModule.js.map +3 -3
  235. package/lib/cjs/src/internal/transport/di/transportModule.test.js +2 -0
  236. package/lib/cjs/src/internal/transport/di/transportModule.test.js.map +7 -0
  237. package/lib/cjs/src/internal/transport/service/DefaultTransportService.js +2 -0
  238. package/lib/cjs/src/internal/transport/service/DefaultTransportService.js.map +7 -0
  239. package/lib/cjs/src/internal/transport/service/DefaultTransportService.test.js +2 -0
  240. package/lib/cjs/src/internal/transport/service/DefaultTransportService.test.js.map +7 -0
  241. package/lib/cjs/src/internal/transport/service/TransportService.js +2 -0
  242. package/lib/cjs/src/internal/transport/service/TransportService.js.map +7 -0
  243. package/lib/cjs/src/internal/transport/service/__mocks__/DefaultTransportService.js +2 -0
  244. package/lib/cjs/src/internal/transport/service/__mocks__/DefaultTransportService.js.map +7 -0
  245. package/lib/esm/package.json +13 -14
  246. package/lib/esm/src/api/DeviceManagementKit.js +1 -1
  247. package/lib/esm/src/api/DeviceManagementKit.js.map +3 -3
  248. package/lib/esm/src/api/DeviceManagementKit.test.js +1 -1
  249. package/lib/esm/src/api/DeviceManagementKit.test.js.map +2 -2
  250. package/lib/esm/src/api/DeviceManagementKitBuilder.js +1 -1
  251. package/lib/esm/src/api/DeviceManagementKitBuilder.js.map +3 -3
  252. package/lib/esm/src/api/Error.js +1 -1
  253. package/lib/esm/src/api/Error.js.map +3 -3
  254. package/lib/esm/src/api/apdu/utils/ApduParser.test.js +1 -1
  255. package/lib/esm/src/api/apdu/utils/ApduParser.test.js.map +2 -2
  256. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.js +1 -1
  257. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.js.map +2 -2
  258. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.test.js +1 -1
  259. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.test.js.map +2 -2
  260. package/lib/esm/src/api/apdu/utils/ByteArrayParser.js +1 -1
  261. package/lib/esm/src/api/apdu/utils/ByteArrayParser.js.map +2 -2
  262. package/lib/esm/src/api/apdu/utils/ByteArrayParser.test.js +1 -1
  263. package/lib/esm/src/api/apdu/utils/ByteArrayParser.test.js.map +2 -2
  264. package/lib/esm/src/api/command/model/CommandResult.js.map +1 -1
  265. package/lib/esm/src/api/command/os/GetOsVersionCommand.js +1 -1
  266. package/lib/esm/src/api/command/os/GetOsVersionCommand.js.map +2 -2
  267. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js +1 -1
  268. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js.map +3 -3
  269. package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js +2 -0
  270. package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +7 -0
  271. package/lib/esm/src/api/command/use-case/SendCommandUseCase.js.map +2 -2
  272. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
  273. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js.map +2 -2
  274. package/lib/esm/src/api/command/utils/CommandUtils.js +1 -1
  275. package/lib/esm/src/api/command/utils/CommandUtils.js.map +2 -2
  276. package/lib/esm/src/api/device/DeviceModel.js +1 -1
  277. package/lib/esm/src/api/device/DeviceModel.js.map +3 -3
  278. package/lib/esm/src/api/device-action/__test-utils__/data.js +1 -1
  279. package/lib/esm/src/api/device-action/__test-utils__/data.js.map +2 -2
  280. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  281. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  282. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  283. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +3 -3
  284. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +1 -1
  285. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +3 -3
  286. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js +1 -1
  287. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js.map +2 -2
  288. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +1 -1
  289. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +3 -3
  290. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js +1 -1
  291. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js.map +2 -2
  292. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  293. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +3 -3
  294. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
  295. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +2 -2
  296. package/lib/esm/src/api/device-action/use-case/ExecuteDeviceActionUseCase.js.map +2 -2
  297. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.js +2 -0
  298. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.js.map +7 -0
  299. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.test.js +2 -0
  300. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.test.js.map +7 -0
  301. package/lib/esm/src/api/device-model/model/BleDeviceInfos.js +2 -0
  302. package/lib/esm/src/api/device-model/model/BleDeviceInfos.js.map +7 -0
  303. package/lib/esm/src/api/device-model/model/DeviceModel.js +2 -0
  304. package/lib/esm/src/api/device-model/model/DeviceModel.js.map +7 -0
  305. package/lib/esm/src/api/device-model/model/DeviceModel.stub.js +2 -0
  306. package/lib/esm/src/api/device-model/model/DeviceModel.stub.js.map +7 -0
  307. package/lib/esm/src/api/device-model/model/DeviceModel.test.js +2 -0
  308. package/lib/esm/src/api/device-model/model/DeviceModel.test.js.map +7 -0
  309. package/lib/esm/src/api/device-session/DeviceSessionState.js.map +2 -2
  310. package/lib/esm/src/{internal → api}/device-session/data/FramerConst.js.map +1 -1
  311. package/lib/esm/src/api/device-session/service/DefaultApduReceiverService.stub.js +2 -0
  312. package/lib/esm/src/api/device-session/service/DefaultApduReceiverService.stub.js.map +7 -0
  313. package/lib/esm/src/api/device-session/service/DefaultApduSenderService.stub.js +2 -0
  314. package/lib/esm/src/api/device-session/service/DefaultApduSenderService.stub.js.map +7 -0
  315. package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.js +2 -0
  316. package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.js.map +7 -0
  317. package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js +2 -0
  318. package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js.map +7 -0
  319. package/lib/esm/src/{internal → api}/device-session/utils/FramerUtils.js.map +1 -1
  320. package/lib/esm/src/{internal → api}/device-session/utils/FramerUtils.test.js.map +1 -1
  321. package/lib/esm/src/api/index.js +1 -1
  322. package/lib/esm/src/api/index.js.map +3 -3
  323. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +1 -1
  324. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +3 -3
  325. package/lib/esm/src/api/logger-subscriber/{__mocks__ → service/__mocks__}/ConsoleLogger.js.map +1 -1
  326. package/lib/esm/src/api/transport/model/ConnectedDevice.js +1 -1
  327. package/lib/esm/src/api/transport/model/ConnectedDevice.js.map +2 -2
  328. package/lib/esm/src/api/transport/model/DeviceConnectionFactory.stub.js +2 -0
  329. package/lib/esm/src/api/transport/model/DeviceConnectionFactory.stub.js.map +7 -0
  330. package/lib/esm/src/api/transport/model/Errors.js +2 -0
  331. package/lib/esm/src/api/transport/model/Errors.js.map +7 -0
  332. package/lib/esm/src/api/transport/model/TransportConnectedDevice.js +2 -0
  333. package/lib/esm/src/api/transport/model/TransportConnectedDevice.js.map +7 -0
  334. package/lib/esm/src/api/transport/model/TransportConnectedDevice.stub.js +2 -0
  335. package/lib/esm/src/api/transport/model/TransportConnectedDevice.stub.js.map +7 -0
  336. package/lib/esm/src/api/transport/model/TransportConnectedDevice.test.js +2 -0
  337. package/lib/esm/src/api/transport/model/TransportConnectedDevice.test.js.map +7 -0
  338. package/lib/esm/src/api/transport/model/TransportDiscoveredDevice.js +1 -0
  339. package/lib/esm/src/api/transport/model/TransportIdentifier.js +0 -1
  340. package/lib/esm/src/api/transport/model/TransportIdentifier.js.map +4 -4
  341. package/lib/esm/src/api/transport/model/__mocks__/TransportMock.js +2 -0
  342. package/lib/esm/src/api/transport/model/__mocks__/TransportMock.js.map +7 -0
  343. package/lib/esm/src/di.js +1 -1
  344. package/lib/esm/src/di.js.map +3 -3
  345. package/lib/esm/src/internal/config/service/DefaultConfigService.js +1 -1
  346. package/lib/esm/src/internal/config/service/DefaultConfigService.js.map +2 -2
  347. package/lib/esm/src/internal/device-model/di/deviceModelModule.js +1 -1
  348. package/lib/esm/src/internal/device-model/di/deviceModelModule.js.map +2 -2
  349. package/lib/esm/src/internal/device-model/di/deviceModelModule.test.js +1 -1
  350. package/lib/esm/src/internal/device-model/di/deviceModelModule.test.js.map +2 -2
  351. package/lib/esm/src/internal/device-session/di/deviceSessionModule.js +1 -1
  352. package/lib/esm/src/internal/device-session/di/deviceSessionModule.js.map +3 -3
  353. package/lib/esm/src/internal/device-session/di/deviceSessionTypes.js +1 -1
  354. package/lib/esm/src/internal/device-session/di/deviceSessionTypes.js.map +2 -2
  355. package/lib/esm/src/internal/device-session/model/DeviceSession.js +1 -1
  356. package/lib/esm/src/internal/device-session/model/DeviceSession.js.map +3 -3
  357. package/lib/esm/src/internal/device-session/model/DeviceSession.stub.js +1 -1
  358. package/lib/esm/src/internal/device-session/model/DeviceSession.stub.js.map +3 -3
  359. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.js +1 -1
  360. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.js.map +2 -2
  361. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
  362. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +2 -2
  363. package/lib/esm/src/internal/device-session/model/Errors.js.map +1 -1
  364. package/lib/esm/src/internal/device-session/model/FrameHeader.js +1 -1
  365. package/lib/esm/src/internal/device-session/model/FrameHeader.js.map +2 -2
  366. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.js +1 -1
  367. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.js.map +3 -3
  368. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.test.js +1 -1
  369. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.test.js.map +3 -3
  370. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.js +1 -1
  371. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.js.map +3 -3
  372. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.test.js +1 -1
  373. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.test.js.map +3 -3
  374. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.js.map +2 -2
  375. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
  376. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +2 -2
  377. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +2 -0
  378. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +7 -0
  379. package/lib/esm/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.js.map +2 -2
  380. package/lib/esm/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js +1 -1
  381. package/lib/esm/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js.map +3 -3
  382. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js +1 -1
  383. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js.map +3 -3
  384. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.js +1 -1
  385. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.js.map +3 -3
  386. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  387. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js.map +3 -3
  388. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.js +1 -1
  389. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.js.map +3 -3
  390. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
  391. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +3 -3
  392. package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.js +1 -1
  393. package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.js.map +2 -2
  394. package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js +1 -1
  395. package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js.map +2 -2
  396. package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.js +1 -1
  397. package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.js.map +2 -2
  398. package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js +1 -1
  399. package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js.map +2 -2
  400. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.js +1 -1
  401. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.js.map +2 -2
  402. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js +1 -1
  403. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js.map +3 -3
  404. package/lib/esm/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.js +1 -1
  405. package/lib/esm/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.js.map +3 -3
  406. package/lib/esm/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.js +1 -1
  407. package/lib/esm/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.js.map +3 -3
  408. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.js +1 -1
  409. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.js.map +3 -3
  410. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js +1 -1
  411. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js.map +3 -3
  412. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.js +1 -1
  413. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.js.map +3 -3
  414. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +1 -1
  415. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +3 -3
  416. package/lib/esm/src/internal/logger-publisher/di/loggerModule.js.map +2 -2
  417. package/lib/esm/src/internal/logger-publisher/service/DefaultLoggerPublisherService.js.map +2 -2
  418. package/lib/esm/src/internal/logger-publisher/service/{__mocks__/DefaultLoggerService.js → DefaultLoggerPublisherService.stub.js} +2 -2
  419. package/lib/esm/src/internal/logger-publisher/service/DefaultLoggerPublisherService.stub.js.map +7 -0
  420. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
  421. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.js.map +3 -3
  422. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
  423. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +3 -3
  424. package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
  425. package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
  426. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js +1 -1
  427. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
  428. package/lib/esm/src/internal/manager-api/model/{ManagerApiType.js → Application.js} +1 -1
  429. package/lib/esm/src/internal/manager-api/model/Application.js.map +7 -0
  430. package/lib/esm/src/internal/manager-api/model/Const.js +1 -1
  431. package/lib/esm/src/internal/manager-api/model/Const.js.map +3 -3
  432. package/lib/esm/src/internal/manager-api/model/Device.js +1 -0
  433. package/lib/esm/src/internal/manager-api/model/Device.js.map +7 -0
  434. package/lib/esm/src/internal/manager-api/model/Errors.js +1 -1
  435. package/lib/esm/src/internal/manager-api/model/Errors.js.map +3 -3
  436. package/lib/esm/src/internal/manager-api/model/Firmware.js +1 -0
  437. package/lib/esm/src/internal/manager-api/model/Firmware.js.map +7 -0
  438. package/lib/esm/src/internal/manager-api/model/Params.js +1 -0
  439. package/lib/esm/src/internal/manager-api/model/Params.js.map +7 -0
  440. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  441. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js.map +3 -3
  442. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  443. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  444. package/lib/esm/src/internal/send/use-case/SendApduUseCase.js.map +2 -2
  445. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js +1 -1
  446. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js.map +3 -3
  447. package/lib/esm/src/internal/transport/di/transportDiTypes.js +1 -1
  448. package/lib/esm/src/internal/transport/di/transportDiTypes.js.map +2 -2
  449. package/lib/esm/src/internal/transport/di/transportModule.js +1 -1
  450. package/lib/esm/src/internal/transport/di/transportModule.js.map +3 -3
  451. package/lib/esm/src/internal/transport/di/transportModule.test.js +2 -0
  452. package/lib/esm/src/internal/transport/di/transportModule.test.js.map +7 -0
  453. package/lib/esm/src/internal/transport/service/DefaultTransportService.js +2 -0
  454. package/lib/esm/src/internal/transport/service/DefaultTransportService.js.map +7 -0
  455. package/lib/esm/src/internal/transport/service/DefaultTransportService.test.js +2 -0
  456. package/lib/esm/src/internal/transport/service/DefaultTransportService.test.js.map +7 -0
  457. package/lib/esm/src/internal/transport/service/TransportService.js +1 -0
  458. package/lib/esm/src/internal/transport/service/TransportService.js.map +7 -0
  459. package/lib/esm/src/internal/transport/service/__mocks__/DefaultTransportService.js +2 -0
  460. package/lib/esm/src/internal/transport/service/__mocks__/DefaultTransportService.js.map +7 -0
  461. package/lib/types/src/api/DeviceManagementKit.d.ts +9 -0
  462. package/lib/types/src/api/DeviceManagementKit.d.ts.map +1 -1
  463. package/lib/types/src/api/DeviceManagementKitBuilder.d.ts +4 -7
  464. package/lib/types/src/api/DeviceManagementKitBuilder.d.ts.map +1 -1
  465. package/lib/types/src/api/DmkConfig.d.ts +1 -0
  466. package/lib/types/src/api/DmkConfig.d.ts.map +1 -1
  467. package/lib/types/src/api/Error.d.ts +5 -0
  468. package/lib/types/src/api/Error.d.ts.map +1 -1
  469. package/lib/types/src/api/apdu/utils/ByteArrayBuilder.d.ts +28 -0
  470. package/lib/types/src/api/apdu/utils/ByteArrayBuilder.d.ts.map +1 -1
  471. package/lib/types/src/api/apdu/utils/ByteArrayParser.d.ts +24 -0
  472. package/lib/types/src/api/apdu/utils/ByteArrayParser.d.ts.map +1 -1
  473. package/lib/types/src/api/command/model/CommandResult.d.ts +1 -2
  474. package/lib/types/src/api/command/model/CommandResult.d.ts.map +1 -1
  475. package/lib/types/src/api/command/os/GetOsVersionCommand.d.ts +1 -1
  476. package/lib/types/src/api/command/os/GetOsVersionCommand.d.ts.map +1 -1
  477. package/lib/types/src/api/command/os/__mocks__/GetOsVersionCommand.d.ts +4 -0
  478. package/lib/types/src/api/command/os/__mocks__/GetOsVersionCommand.d.ts.map +1 -0
  479. package/lib/types/src/api/command/use-case/SendCommandUseCase.d.ts +1 -1
  480. package/lib/types/src/api/command/use-case/SendCommandUseCase.d.ts.map +1 -1
  481. package/lib/types/src/api/device/DeviceModel.d.ts +1 -0
  482. package/lib/types/src/api/device/DeviceModel.d.ts.map +1 -1
  483. package/lib/types/src/api/device-action/DeviceAction.d.ts +1 -1
  484. package/lib/types/src/api/device-action/DeviceAction.d.ts.map +1 -1
  485. package/lib/types/src/api/device-action/__test-utils__/data.d.ts +1 -1
  486. package/lib/types/src/api/device-action/__test-utils__/data.d.ts.map +1 -1
  487. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.d.ts +1 -1
  488. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.d.ts.map +1 -1
  489. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/types.d.ts +1 -1
  490. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/types.d.ts.map +1 -1
  491. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.d.ts.map +1 -1
  492. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts +1 -0
  493. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts.map +1 -1
  494. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.d.ts.map +1 -1
  495. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts +1 -0
  496. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts.map +1 -1
  497. package/lib/types/src/api/device-action/use-case/ExecuteDeviceActionUseCase.d.ts +1 -1
  498. package/lib/types/src/api/device-action/use-case/ExecuteDeviceActionUseCase.d.ts.map +1 -1
  499. package/lib/types/src/api/device-model/data/DeviceModelDataSource.d.ts +16 -0
  500. package/lib/types/src/api/device-model/data/DeviceModelDataSource.d.ts.map +1 -0
  501. package/lib/types/src/api/device-model/data/StaticDeviceModelDataSource.d.ts +21 -0
  502. package/lib/types/src/api/device-model/data/StaticDeviceModelDataSource.d.ts.map +1 -0
  503. package/lib/types/src/api/device-model/data/StaticDeviceModelDataSource.test.d.ts.map +1 -0
  504. package/lib/types/src/api/device-model/model/BleDeviceInfos.d.ts +10 -0
  505. package/lib/types/src/api/device-model/model/BleDeviceInfos.d.ts.map +1 -0
  506. package/lib/types/src/{internal → api}/device-model/model/DeviceModel.d.ts +2 -2
  507. package/lib/types/src/api/device-model/model/DeviceModel.d.ts.map +1 -0
  508. package/lib/types/src/api/device-model/model/DeviceModel.stub.d.ts +3 -0
  509. package/lib/types/src/api/device-model/model/DeviceModel.stub.d.ts.map +1 -0
  510. package/lib/types/src/api/device-model/model/DeviceModel.test.d.ts.map +1 -0
  511. package/lib/types/src/api/device-session/DeviceSessionState.d.ts +6 -1
  512. package/lib/types/src/api/device-session/DeviceSessionState.d.ts.map +1 -1
  513. package/lib/types/src/api/device-session/data/FramerConst.d.ts.map +1 -0
  514. package/lib/types/src/api/device-session/service/ApduReceiverService.d.ts +11 -0
  515. package/lib/types/src/api/device-session/service/ApduReceiverService.d.ts.map +1 -0
  516. package/lib/types/src/api/device-session/service/ApduSenderService.d.ts +12 -0
  517. package/lib/types/src/api/device-session/service/ApduSenderService.d.ts.map +1 -0
  518. package/lib/types/src/api/device-session/service/DefaultApduReceiverService.stub.d.ts +5 -0
  519. package/lib/types/src/api/device-session/service/DefaultApduReceiverService.stub.d.ts.map +1 -0
  520. package/lib/types/src/api/device-session/service/DefaultApduSenderService.stub.d.ts +5 -0
  521. package/lib/types/src/api/device-session/service/DefaultApduSenderService.stub.d.ts.map +1 -0
  522. package/lib/types/src/api/device-session/use-case/ToggleDeviceSessionRefresher.d.ts +17 -0
  523. package/lib/types/src/api/device-session/use-case/ToggleDeviceSessionRefresher.d.ts.map +1 -0
  524. package/lib/types/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.d.ts +2 -0
  525. package/lib/types/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.d.ts.map +1 -0
  526. package/lib/types/src/api/device-session/utils/FramerUtils.d.ts.map +1 -0
  527. package/lib/types/src/api/device-session/utils/FramerUtils.test.d.ts.map +1 -0
  528. package/lib/types/src/api/index.d.ts +23 -23
  529. package/lib/types/src/api/index.d.ts.map +1 -1
  530. package/lib/types/src/{internal → api}/logger-publisher/service/LoggerPublisherService.d.ts +2 -2
  531. package/lib/types/src/api/logger-publisher/service/LoggerPublisherService.d.ts.map +1 -0
  532. package/lib/types/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.d.ts.map +1 -0
  533. package/lib/types/src/api/transport/model/ConnectedDevice.d.ts +3 -3
  534. package/lib/types/src/api/transport/model/ConnectedDevice.d.ts.map +1 -1
  535. package/lib/types/src/{internal → api}/transport/model/DeviceConnection.d.ts +3 -3
  536. package/lib/types/src/api/transport/model/DeviceConnection.d.ts.map +1 -0
  537. package/lib/types/src/api/transport/model/DeviceConnectionFactory.stub.d.ts +5 -0
  538. package/lib/types/src/api/transport/model/DeviceConnectionFactory.stub.d.ts.map +1 -0
  539. package/lib/types/src/api/transport/model/Errors.d.ts +73 -0
  540. package/lib/types/src/api/transport/model/Errors.d.ts.map +1 -0
  541. package/lib/types/src/api/transport/model/Transport.d.ts +20 -7
  542. package/lib/types/src/api/transport/model/Transport.d.ts.map +1 -1
  543. package/lib/types/src/{internal/transport/model/InternalConnectedDevice.d.ts → api/transport/model/TransportConnectedDevice.d.ts} +8 -8
  544. package/lib/types/src/api/transport/model/TransportConnectedDevice.d.ts.map +1 -0
  545. package/lib/types/src/api/transport/model/TransportConnectedDevice.stub.d.ts +3 -0
  546. package/lib/types/src/api/transport/model/TransportConnectedDevice.stub.d.ts.map +1 -0
  547. package/lib/types/src/api/transport/model/TransportConnectedDevice.test.d.ts +2 -0
  548. package/lib/types/src/api/transport/model/TransportConnectedDevice.test.d.ts.map +1 -0
  549. package/lib/types/src/{internal/transport/model/InternalDiscoveredDevice.d.ts → api/transport/model/TransportDiscoveredDevice.d.ts} +6 -6
  550. package/lib/types/src/api/transport/model/TransportDiscoveredDevice.d.ts.map +1 -0
  551. package/lib/types/src/api/transport/model/TransportIdentifier.d.ts +0 -5
  552. package/lib/types/src/api/transport/model/TransportIdentifier.d.ts.map +1 -1
  553. package/lib/types/src/{internal/transport/usb/transport/__mocks__/WebUsbHidTransport.d.ts → api/transport/model/__mocks__/TransportMock.d.ts} +7 -7
  554. package/lib/types/src/api/transport/model/__mocks__/TransportMock.d.ts.map +1 -0
  555. package/lib/types/src/api/types.d.ts +21 -3
  556. package/lib/types/src/api/types.d.ts.map +1 -1
  557. package/lib/types/src/di.d.ts +3 -5
  558. package/lib/types/src/di.d.ts.map +1 -1
  559. package/lib/types/src/internal/config/service/DefaultConfigService.d.ts +1 -1
  560. package/lib/types/src/internal/config/service/DefaultConfigService.d.ts.map +1 -1
  561. package/lib/types/src/internal/device-session/di/deviceSessionModule.d.ts.map +1 -1
  562. package/lib/types/src/internal/device-session/di/deviceSessionTypes.d.ts +1 -0
  563. package/lib/types/src/internal/device-session/di/deviceSessionTypes.d.ts.map +1 -1
  564. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts +7 -5
  565. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts.map +1 -1
  566. package/lib/types/src/internal/device-session/model/DeviceSession.stub.d.ts +1 -1
  567. package/lib/types/src/internal/device-session/model/DeviceSession.stub.d.ts.map +1 -1
  568. package/lib/types/src/internal/device-session/model/DeviceSessionRefresher.d.ts +9 -2
  569. package/lib/types/src/internal/device-session/model/DeviceSessionRefresher.d.ts.map +1 -1
  570. package/lib/types/src/internal/device-session/model/Errors.d.ts +1 -1
  571. package/lib/types/src/internal/device-session/model/Errors.d.ts.map +1 -1
  572. package/lib/types/src/internal/device-session/service/DefaultApduReceiverService.d.ts +3 -6
  573. package/lib/types/src/internal/device-session/service/DefaultApduReceiverService.d.ts.map +1 -1
  574. package/lib/types/src/internal/device-session/service/DefaultApduSenderService.d.ts +4 -9
  575. package/lib/types/src/internal/device-session/service/DefaultApduSenderService.d.ts.map +1 -1
  576. package/lib/types/src/internal/device-session/service/DefaultDeviceSessionService.d.ts +1 -1
  577. package/lib/types/src/internal/device-session/service/DefaultDeviceSessionService.d.ts.map +1 -1
  578. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseCase.test.d.ts +2 -0
  579. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseCase.test.d.ts.map +1 -0
  580. package/lib/types/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.d.ts +1 -1
  581. package/lib/types/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.d.ts.map +1 -1
  582. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts +4 -4
  583. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts.map +1 -1
  584. package/lib/types/src/internal/discovery/use-case/DisconnectUseCase.d.ts +4 -4
  585. package/lib/types/src/internal/discovery/use-case/DisconnectUseCase.d.ts.map +1 -1
  586. package/lib/types/src/internal/discovery/use-case/GetConnectedDeviceUseCase.d.ts +1 -1
  587. package/lib/types/src/internal/discovery/use-case/GetConnectedDeviceUseCase.d.ts.map +1 -1
  588. package/lib/types/src/internal/discovery/use-case/ListConnectedDevicesUseCase.d.ts +1 -1
  589. package/lib/types/src/internal/discovery/use-case/ListConnectedDevicesUseCase.d.ts.map +1 -1
  590. package/lib/types/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.d.ts +1 -1
  591. package/lib/types/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.d.ts.map +1 -1
  592. package/lib/types/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.d.ts +3 -3
  593. package/lib/types/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.d.ts.map +1 -1
  594. package/lib/types/src/internal/discovery/use-case/StartDiscoveringUseCase.d.ts +3 -3
  595. package/lib/types/src/internal/discovery/use-case/StartDiscoveringUseCase.d.ts.map +1 -1
  596. package/lib/types/src/internal/discovery/use-case/StopDiscoveringUseCase.d.ts +3 -3
  597. package/lib/types/src/internal/discovery/use-case/StopDiscoveringUseCase.d.ts.map +1 -1
  598. package/lib/types/src/internal/logger-publisher/di/loggerModule.d.ts.map +1 -1
  599. package/lib/types/src/internal/logger-publisher/service/DefaultLoggerPublisherService.d.ts +1 -1
  600. package/lib/types/src/internal/logger-publisher/service/DefaultLoggerPublisherService.d.ts.map +1 -1
  601. package/lib/types/src/internal/logger-publisher/service/DefaultLoggerPublisherService.stub.d.ts +11 -0
  602. package/lib/types/src/internal/logger-publisher/service/DefaultLoggerPublisherService.stub.d.ts.map +1 -0
  603. package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts +20 -6
  604. package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts.map +1 -1
  605. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts +75 -3
  606. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts.map +1 -1
  607. package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts +8 -0
  608. package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts.map +1 -1
  609. package/lib/types/src/internal/manager-api/model/{ManagerApiType.d.ts → Application.d.ts} +2 -3
  610. package/lib/types/src/internal/manager-api/model/Application.d.ts.map +1 -0
  611. package/lib/types/src/internal/manager-api/model/Const.d.ts +1 -0
  612. package/lib/types/src/internal/manager-api/model/Const.d.ts.map +1 -1
  613. package/lib/types/src/internal/manager-api/model/Device.d.ts +4 -0
  614. package/lib/types/src/internal/manager-api/model/Device.d.ts.map +1 -0
  615. package/lib/types/src/internal/manager-api/model/Errors.d.ts +6 -0
  616. package/lib/types/src/internal/manager-api/model/Errors.d.ts.map +1 -1
  617. package/lib/types/src/internal/manager-api/model/Firmware.d.ts +5 -0
  618. package/lib/types/src/internal/manager-api/model/Firmware.d.ts.map +1 -0
  619. package/lib/types/src/internal/manager-api/model/Params.d.ts +86 -0
  620. package/lib/types/src/internal/manager-api/model/Params.d.ts.map +1 -0
  621. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.d.ts +5 -1
  622. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.d.ts.map +1 -1
  623. package/lib/types/src/internal/manager-api/service/ManagerApiService.d.ts +6 -1
  624. package/lib/types/src/internal/manager-api/service/ManagerApiService.d.ts.map +1 -1
  625. package/lib/types/src/internal/send/use-case/SendApduUseCase.d.ts +1 -1
  626. package/lib/types/src/internal/send/use-case/SendApduUseCase.d.ts.map +1 -1
  627. package/lib/types/src/internal/transport/di/transportDiTypes.d.ts +2 -1
  628. package/lib/types/src/internal/transport/di/transportDiTypes.d.ts.map +1 -1
  629. package/lib/types/src/internal/transport/di/transportModule.d.ts +3 -5
  630. package/lib/types/src/internal/transport/di/transportModule.d.ts.map +1 -1
  631. package/lib/types/src/internal/transport/di/transportModule.test.d.ts +2 -0
  632. package/lib/types/src/internal/transport/di/transportModule.test.d.ts.map +1 -0
  633. package/lib/types/src/internal/transport/service/DefaultTransportService.d.ts +25 -0
  634. package/lib/types/src/internal/transport/service/DefaultTransportService.d.ts.map +1 -0
  635. package/lib/types/src/internal/transport/service/DefaultTransportService.test.d.ts +2 -0
  636. package/lib/types/src/internal/transport/service/DefaultTransportService.test.d.ts.map +1 -0
  637. package/lib/types/src/internal/transport/service/TransportService.d.ts +9 -0
  638. package/lib/types/src/internal/transport/service/TransportService.d.ts.map +1 -0
  639. package/lib/types/src/internal/transport/service/__mocks__/DefaultTransportService.d.ts +19 -0
  640. package/lib/types/src/internal/transport/service/__mocks__/DefaultTransportService.d.ts.map +1 -0
  641. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  642. package/package.json +15 -16
  643. package/lib/cjs/src/internal/device-model/data/DeviceModelDataSource.js +0 -2
  644. package/lib/cjs/src/internal/device-model/data/DeviceModelDataSource.js.map +0 -7
  645. package/lib/cjs/src/internal/device-model/data/StaticDeviceModelDataSource.js +0 -2
  646. package/lib/cjs/src/internal/device-model/data/StaticDeviceModelDataSource.js.map +0 -7
  647. package/lib/cjs/src/internal/device-model/data/StaticDeviceModelDataSource.test.js +0 -2
  648. package/lib/cjs/src/internal/device-model/data/StaticDeviceModelDataSource.test.js.map +0 -7
  649. package/lib/cjs/src/internal/device-model/model/DeviceModel.js +0 -2
  650. package/lib/cjs/src/internal/device-model/model/DeviceModel.js.map +0 -7
  651. package/lib/cjs/src/internal/device-model/model/DeviceModel.stub.js +0 -2
  652. package/lib/cjs/src/internal/device-model/model/DeviceModel.stub.js.map +0 -7
  653. package/lib/cjs/src/internal/device-model/model/DeviceModel.test.js +0 -2
  654. package/lib/cjs/src/internal/device-model/model/DeviceModel.test.js.map +0 -7
  655. package/lib/cjs/src/internal/device-session/service/ApduReceiverService.js +0 -2
  656. package/lib/cjs/src/internal/device-session/service/ApduSenderService.js +0 -2
  657. package/lib/cjs/src/internal/device-session/service/ApduSenderService.js.map +0 -7
  658. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.stub.js +0 -2
  659. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.stub.js.map +0 -7
  660. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.stub.js +0 -2
  661. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.stub.js.map +0 -7
  662. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseState.test.js +0 -2
  663. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseState.test.js.map +0 -7
  664. package/lib/cjs/src/internal/logger-publisher/service/__mocks__/DefaultLoggerService.js +0 -2
  665. package/lib/cjs/src/internal/logger-publisher/service/__mocks__/DefaultLoggerService.js.map +0 -7
  666. package/lib/cjs/src/internal/manager-api/model/ManagerApiType.js.map +0 -7
  667. package/lib/cjs/src/internal/transport/ble/di/bleDiTypes.js +0 -2
  668. package/lib/cjs/src/internal/transport/ble/di/bleDiTypes.js.map +0 -7
  669. package/lib/cjs/src/internal/transport/ble/di/bleModule.js +0 -2
  670. package/lib/cjs/src/internal/transport/ble/di/bleModule.js.map +0 -7
  671. package/lib/cjs/src/internal/transport/ble/di/bleModule.test.js +0 -2
  672. package/lib/cjs/src/internal/transport/ble/di/bleModule.test.js.map +0 -7
  673. package/lib/cjs/src/internal/transport/ble/model/BleDevice.stub.js +0 -2
  674. package/lib/cjs/src/internal/transport/ble/model/BleDevice.stub.js.map +0 -7
  675. package/lib/cjs/src/internal/transport/ble/model/BleDeviceInfos.js +0 -2
  676. package/lib/cjs/src/internal/transport/ble/model/BleDeviceInfos.js.map +0 -7
  677. package/lib/cjs/src/internal/transport/ble/service/BleDeviceConnectionFactory.js +0 -2
  678. package/lib/cjs/src/internal/transport/ble/service/BleDeviceConnectionFactory.js.map +0 -7
  679. package/lib/cjs/src/internal/transport/ble/service/BleDeviceConnectionFactory.stub.js +0 -2
  680. package/lib/cjs/src/internal/transport/ble/service/BleDeviceConnectionFactory.stub.js.map +0 -7
  681. package/lib/cjs/src/internal/transport/ble/transport/BleDeviceConnection.js +0 -2
  682. package/lib/cjs/src/internal/transport/ble/transport/BleDeviceConnection.js.map +0 -7
  683. package/lib/cjs/src/internal/transport/ble/transport/BleDeviceConnection.test.js +0 -2
  684. package/lib/cjs/src/internal/transport/ble/transport/BleDeviceConnection.test.js.map +0 -7
  685. package/lib/cjs/src/internal/transport/ble/transport/WebBleTransport.js +0 -2
  686. package/lib/cjs/src/internal/transport/ble/transport/WebBleTransport.js.map +0 -7
  687. package/lib/cjs/src/internal/transport/ble/transport/WebBleTransport.test.js +0 -2
  688. package/lib/cjs/src/internal/transport/ble/transport/WebBleTransport.test.js.map +0 -7
  689. package/lib/cjs/src/internal/transport/ble/transport/__mocks__/WebBleTransport.js +0 -2
  690. package/lib/cjs/src/internal/transport/ble/transport/__mocks__/WebBleTransport.js.map +0 -7
  691. package/lib/cjs/src/internal/transport/data/TransportDataSource.js +0 -2
  692. package/lib/cjs/src/internal/transport/data/TransportDataSource.js.map +0 -7
  693. package/lib/cjs/src/internal/transport/mockserver/MockserverTransport.js +0 -2
  694. package/lib/cjs/src/internal/transport/mockserver/MockserverTransport.js.map +0 -7
  695. package/lib/cjs/src/internal/transport/model/Errors.js +0 -2
  696. package/lib/cjs/src/internal/transport/model/Errors.js.map +0 -7
  697. package/lib/cjs/src/internal/transport/model/InternalConnectedDevice.js +0 -2
  698. package/lib/cjs/src/internal/transport/model/InternalConnectedDevice.js.map +0 -7
  699. package/lib/cjs/src/internal/transport/model/InternalConnectedDevice.stub.js +0 -2
  700. package/lib/cjs/src/internal/transport/model/InternalConnectedDevice.stub.js.map +0 -7
  701. package/lib/cjs/src/internal/transport/model/InternalConnectedDevice.test.js +0 -2
  702. package/lib/cjs/src/internal/transport/model/InternalConnectedDevice.test.js.map +0 -7
  703. package/lib/cjs/src/internal/transport/model/InternalDiscoveredDevice.js +0 -2
  704. package/lib/cjs/src/internal/transport/model/InternalDiscoveredDevice.js.map +0 -7
  705. package/lib/cjs/src/internal/transport/usb/data/UsbHidConfig.js +0 -2
  706. package/lib/cjs/src/internal/transport/usb/data/UsbHidConfig.js.map +0 -7
  707. package/lib/cjs/src/internal/transport/usb/di/usbDiTypes.js +0 -2
  708. package/lib/cjs/src/internal/transport/usb/di/usbDiTypes.js.map +0 -7
  709. package/lib/cjs/src/internal/transport/usb/di/usbModule.js +0 -2
  710. package/lib/cjs/src/internal/transport/usb/di/usbModule.js.map +0 -7
  711. package/lib/cjs/src/internal/transport/usb/di/usbModule.test.js +0 -2
  712. package/lib/cjs/src/internal/transport/usb/di/usbModule.test.js.map +0 -7
  713. package/lib/cjs/src/internal/transport/usb/model/HIDDevice.stub.js +0 -2
  714. package/lib/cjs/src/internal/transport/usb/model/HIDDevice.stub.js.map +0 -7
  715. package/lib/cjs/src/internal/transport/usb/service/UsbHidDeviceConnectionFactory.js +0 -2
  716. package/lib/cjs/src/internal/transport/usb/service/UsbHidDeviceConnectionFactory.js.map +0 -7
  717. package/lib/cjs/src/internal/transport/usb/service/UsbHidDeviceConnectionFactory.stub.js +0 -2
  718. package/lib/cjs/src/internal/transport/usb/service/UsbHidDeviceConnectionFactory.stub.js.map +0 -7
  719. package/lib/cjs/src/internal/transport/usb/transport/UsbHidDeviceConnection.js +0 -2
  720. package/lib/cjs/src/internal/transport/usb/transport/UsbHidDeviceConnection.js.map +0 -7
  721. package/lib/cjs/src/internal/transport/usb/transport/UsbHidDeviceConnection.test.js +0 -2
  722. package/lib/cjs/src/internal/transport/usb/transport/UsbHidDeviceConnection.test.js.map +0 -7
  723. package/lib/cjs/src/internal/transport/usb/transport/WebUsbHidTransport.js +0 -2
  724. package/lib/cjs/src/internal/transport/usb/transport/WebUsbHidTransport.js.map +0 -7
  725. package/lib/cjs/src/internal/transport/usb/transport/WebUsbHidTransport.test.js +0 -2
  726. package/lib/cjs/src/internal/transport/usb/transport/WebUsbHidTransport.test.js.map +0 -7
  727. package/lib/cjs/src/internal/transport/usb/transport/__mocks__/WebUsbHidTransport.js +0 -2
  728. package/lib/cjs/src/internal/transport/usb/transport/__mocks__/WebUsbHidTransport.js.map +0 -7
  729. package/lib/esm/src/internal/device-model/data/StaticDeviceModelDataSource.js +0 -2
  730. package/lib/esm/src/internal/device-model/data/StaticDeviceModelDataSource.js.map +0 -7
  731. package/lib/esm/src/internal/device-model/data/StaticDeviceModelDataSource.test.js +0 -2
  732. package/lib/esm/src/internal/device-model/data/StaticDeviceModelDataSource.test.js.map +0 -7
  733. package/lib/esm/src/internal/device-model/model/DeviceModel.js +0 -2
  734. package/lib/esm/src/internal/device-model/model/DeviceModel.js.map +0 -7
  735. package/lib/esm/src/internal/device-model/model/DeviceModel.stub.js +0 -2
  736. package/lib/esm/src/internal/device-model/model/DeviceModel.stub.js.map +0 -7
  737. package/lib/esm/src/internal/device-model/model/DeviceModel.test.js +0 -2
  738. package/lib/esm/src/internal/device-model/model/DeviceModel.test.js.map +0 -7
  739. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.stub.js +0 -2
  740. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.stub.js.map +0 -7
  741. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.stub.js +0 -2
  742. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.stub.js.map +0 -7
  743. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseState.test.js +0 -2
  744. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseState.test.js.map +0 -7
  745. package/lib/esm/src/internal/logger-publisher/service/__mocks__/DefaultLoggerService.js.map +0 -7
  746. package/lib/esm/src/internal/manager-api/model/ManagerApiType.js.map +0 -7
  747. package/lib/esm/src/internal/transport/ble/di/bleDiTypes.js +0 -2
  748. package/lib/esm/src/internal/transport/ble/di/bleDiTypes.js.map +0 -7
  749. package/lib/esm/src/internal/transport/ble/di/bleModule.js +0 -2
  750. package/lib/esm/src/internal/transport/ble/di/bleModule.js.map +0 -7
  751. package/lib/esm/src/internal/transport/ble/di/bleModule.test.js +0 -2
  752. package/lib/esm/src/internal/transport/ble/di/bleModule.test.js.map +0 -7
  753. package/lib/esm/src/internal/transport/ble/model/BleDevice.stub.js +0 -2
  754. package/lib/esm/src/internal/transport/ble/model/BleDevice.stub.js.map +0 -7
  755. package/lib/esm/src/internal/transport/ble/model/BleDeviceInfos.js +0 -2
  756. package/lib/esm/src/internal/transport/ble/model/BleDeviceInfos.js.map +0 -7
  757. package/lib/esm/src/internal/transport/ble/service/BleDeviceConnectionFactory.js +0 -2
  758. package/lib/esm/src/internal/transport/ble/service/BleDeviceConnectionFactory.js.map +0 -7
  759. package/lib/esm/src/internal/transport/ble/service/BleDeviceConnectionFactory.stub.js +0 -2
  760. package/lib/esm/src/internal/transport/ble/service/BleDeviceConnectionFactory.stub.js.map +0 -7
  761. package/lib/esm/src/internal/transport/ble/transport/BleDeviceConnection.js +0 -2
  762. package/lib/esm/src/internal/transport/ble/transport/BleDeviceConnection.js.map +0 -7
  763. package/lib/esm/src/internal/transport/ble/transport/BleDeviceConnection.test.js +0 -2
  764. package/lib/esm/src/internal/transport/ble/transport/BleDeviceConnection.test.js.map +0 -7
  765. package/lib/esm/src/internal/transport/ble/transport/WebBleTransport.js +0 -2
  766. package/lib/esm/src/internal/transport/ble/transport/WebBleTransport.js.map +0 -7
  767. package/lib/esm/src/internal/transport/ble/transport/WebBleTransport.test.js +0 -2
  768. package/lib/esm/src/internal/transport/ble/transport/WebBleTransport.test.js.map +0 -7
  769. package/lib/esm/src/internal/transport/ble/transport/__mocks__/WebBleTransport.js +0 -2
  770. package/lib/esm/src/internal/transport/ble/transport/__mocks__/WebBleTransport.js.map +0 -7
  771. package/lib/esm/src/internal/transport/data/TransportDataSource.js +0 -2
  772. package/lib/esm/src/internal/transport/data/TransportDataSource.js.map +0 -7
  773. package/lib/esm/src/internal/transport/mockserver/MockserverTransport.js +0 -2
  774. package/lib/esm/src/internal/transport/mockserver/MockserverTransport.js.map +0 -7
  775. package/lib/esm/src/internal/transport/model/Errors.js +0 -2
  776. package/lib/esm/src/internal/transport/model/Errors.js.map +0 -7
  777. package/lib/esm/src/internal/transport/model/InternalConnectedDevice.js +0 -2
  778. package/lib/esm/src/internal/transport/model/InternalConnectedDevice.js.map +0 -7
  779. package/lib/esm/src/internal/transport/model/InternalConnectedDevice.stub.js +0 -2
  780. package/lib/esm/src/internal/transport/model/InternalConnectedDevice.stub.js.map +0 -7
  781. package/lib/esm/src/internal/transport/model/InternalConnectedDevice.test.js +0 -2
  782. package/lib/esm/src/internal/transport/model/InternalConnectedDevice.test.js.map +0 -7
  783. package/lib/esm/src/internal/transport/model/InternalDiscoveredDevice.js +0 -1
  784. package/lib/esm/src/internal/transport/usb/data/UsbHidConfig.js +0 -2
  785. package/lib/esm/src/internal/transport/usb/data/UsbHidConfig.js.map +0 -7
  786. package/lib/esm/src/internal/transport/usb/di/usbDiTypes.js +0 -2
  787. package/lib/esm/src/internal/transport/usb/di/usbDiTypes.js.map +0 -7
  788. package/lib/esm/src/internal/transport/usb/di/usbModule.js +0 -2
  789. package/lib/esm/src/internal/transport/usb/di/usbModule.js.map +0 -7
  790. package/lib/esm/src/internal/transport/usb/di/usbModule.test.js +0 -2
  791. package/lib/esm/src/internal/transport/usb/di/usbModule.test.js.map +0 -7
  792. package/lib/esm/src/internal/transport/usb/model/HIDDevice.stub.js +0 -2
  793. package/lib/esm/src/internal/transport/usb/model/HIDDevice.stub.js.map +0 -7
  794. package/lib/esm/src/internal/transport/usb/service/UsbHidDeviceConnectionFactory.js +0 -2
  795. package/lib/esm/src/internal/transport/usb/service/UsbHidDeviceConnectionFactory.js.map +0 -7
  796. package/lib/esm/src/internal/transport/usb/service/UsbHidDeviceConnectionFactory.stub.js +0 -2
  797. package/lib/esm/src/internal/transport/usb/service/UsbHidDeviceConnectionFactory.stub.js.map +0 -7
  798. package/lib/esm/src/internal/transport/usb/transport/UsbHidDeviceConnection.js +0 -2
  799. package/lib/esm/src/internal/transport/usb/transport/UsbHidDeviceConnection.js.map +0 -7
  800. package/lib/esm/src/internal/transport/usb/transport/UsbHidDeviceConnection.test.js +0 -2
  801. package/lib/esm/src/internal/transport/usb/transport/UsbHidDeviceConnection.test.js.map +0 -7
  802. package/lib/esm/src/internal/transport/usb/transport/WebUsbHidTransport.js +0 -2
  803. package/lib/esm/src/internal/transport/usb/transport/WebUsbHidTransport.js.map +0 -7
  804. package/lib/esm/src/internal/transport/usb/transport/WebUsbHidTransport.test.js +0 -2
  805. package/lib/esm/src/internal/transport/usb/transport/WebUsbHidTransport.test.js.map +0 -7
  806. package/lib/esm/src/internal/transport/usb/transport/__mocks__/WebUsbHidTransport.js +0 -2
  807. package/lib/esm/src/internal/transport/usb/transport/__mocks__/WebUsbHidTransport.js.map +0 -7
  808. package/lib/types/src/api/logger-subscriber/__mocks__/ConsoleLogger.d.ts.map +0 -1
  809. package/lib/types/src/internal/device-model/data/DeviceModelDataSource.d.ts +0 -16
  810. package/lib/types/src/internal/device-model/data/DeviceModelDataSource.d.ts.map +0 -1
  811. package/lib/types/src/internal/device-model/data/StaticDeviceModelDataSource.d.ts +0 -21
  812. package/lib/types/src/internal/device-model/data/StaticDeviceModelDataSource.d.ts.map +0 -1
  813. package/lib/types/src/internal/device-model/data/StaticDeviceModelDataSource.test.d.ts.map +0 -1
  814. package/lib/types/src/internal/device-model/model/DeviceModel.d.ts.map +0 -1
  815. package/lib/types/src/internal/device-model/model/DeviceModel.stub.d.ts +0 -3
  816. package/lib/types/src/internal/device-model/model/DeviceModel.stub.d.ts.map +0 -1
  817. package/lib/types/src/internal/device-model/model/DeviceModel.test.d.ts.map +0 -1
  818. package/lib/types/src/internal/device-session/data/FramerConst.d.ts.map +0 -1
  819. package/lib/types/src/internal/device-session/service/ApduReceiverService.d.ts +0 -7
  820. package/lib/types/src/internal/device-session/service/ApduReceiverService.d.ts.map +0 -1
  821. package/lib/types/src/internal/device-session/service/ApduSenderService.d.ts +0 -5
  822. package/lib/types/src/internal/device-session/service/ApduSenderService.d.ts.map +0 -1
  823. package/lib/types/src/internal/device-session/service/DefaultApduReceiverService.stub.d.ts +0 -5
  824. package/lib/types/src/internal/device-session/service/DefaultApduReceiverService.stub.d.ts.map +0 -1
  825. package/lib/types/src/internal/device-session/service/DefaultApduSenderService.stub.d.ts +0 -5
  826. package/lib/types/src/internal/device-session/service/DefaultApduSenderService.stub.d.ts.map +0 -1
  827. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseState.test.d.ts +0 -2
  828. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseState.test.d.ts.map +0 -1
  829. package/lib/types/src/internal/device-session/utils/FramerUtils.d.ts.map +0 -1
  830. package/lib/types/src/internal/device-session/utils/FramerUtils.test.d.ts.map +0 -1
  831. package/lib/types/src/internal/logger-publisher/service/LoggerPublisherService.d.ts.map +0 -1
  832. package/lib/types/src/internal/logger-publisher/service/__mocks__/DefaultLoggerService.d.ts +0 -11
  833. package/lib/types/src/internal/logger-publisher/service/__mocks__/DefaultLoggerService.d.ts.map +0 -1
  834. package/lib/types/src/internal/manager-api/model/ManagerApiType.d.ts.map +0 -1
  835. package/lib/types/src/internal/transport/ble/di/bleDiTypes.d.ts +0 -4
  836. package/lib/types/src/internal/transport/ble/di/bleDiTypes.d.ts.map +0 -1
  837. package/lib/types/src/internal/transport/ble/di/bleModule.d.ts +0 -3
  838. package/lib/types/src/internal/transport/ble/di/bleModule.d.ts.map +0 -1
  839. package/lib/types/src/internal/transport/ble/di/bleModule.test.d.ts +0 -2
  840. package/lib/types/src/internal/transport/ble/di/bleModule.test.d.ts.map +0 -1
  841. package/lib/types/src/internal/transport/ble/model/BleDevice.stub.d.ts +0 -3
  842. package/lib/types/src/internal/transport/ble/model/BleDevice.stub.d.ts.map +0 -1
  843. package/lib/types/src/internal/transport/ble/model/BleDeviceInfos.d.ts +0 -10
  844. package/lib/types/src/internal/transport/ble/model/BleDeviceInfos.d.ts.map +0 -1
  845. package/lib/types/src/internal/transport/ble/service/BleDeviceConnectionFactory.d.ts +0 -13
  846. package/lib/types/src/internal/transport/ble/service/BleDeviceConnectionFactory.d.ts.map +0 -1
  847. package/lib/types/src/internal/transport/ble/service/BleDeviceConnectionFactory.stub.d.ts +0 -3
  848. package/lib/types/src/internal/transport/ble/service/BleDeviceConnectionFactory.stub.d.ts.map +0 -1
  849. package/lib/types/src/internal/transport/ble/transport/BleDeviceConnection.d.ts +0 -104
  850. package/lib/types/src/internal/transport/ble/transport/BleDeviceConnection.d.ts.map +0 -1
  851. package/lib/types/src/internal/transport/ble/transport/BleDeviceConnection.test.d.ts +0 -2
  852. package/lib/types/src/internal/transport/ble/transport/BleDeviceConnection.test.d.ts.map +0 -1
  853. package/lib/types/src/internal/transport/ble/transport/WebBleTransport.d.ts +0 -97
  854. package/lib/types/src/internal/transport/ble/transport/WebBleTransport.d.ts.map +0 -1
  855. package/lib/types/src/internal/transport/ble/transport/WebBleTransport.test.d.ts +0 -2
  856. package/lib/types/src/internal/transport/ble/transport/WebBleTransport.test.d.ts.map +0 -1
  857. package/lib/types/src/internal/transport/ble/transport/__mocks__/WebBleTransport.d.ts +0 -14
  858. package/lib/types/src/internal/transport/ble/transport/__mocks__/WebBleTransport.d.ts.map +0 -1
  859. package/lib/types/src/internal/transport/data/TransportDataSource.d.ts +0 -8
  860. package/lib/types/src/internal/transport/data/TransportDataSource.d.ts.map +0 -1
  861. package/lib/types/src/internal/transport/mockserver/MockserverTransport.d.ts +0 -33
  862. package/lib/types/src/internal/transport/mockserver/MockserverTransport.d.ts.map +0 -1
  863. package/lib/types/src/internal/transport/model/DeviceConnection.d.ts.map +0 -1
  864. package/lib/types/src/internal/transport/model/Errors.d.ts +0 -80
  865. package/lib/types/src/internal/transport/model/Errors.d.ts.map +0 -1
  866. package/lib/types/src/internal/transport/model/InternalConnectedDevice.d.ts.map +0 -1
  867. package/lib/types/src/internal/transport/model/InternalConnectedDevice.stub.d.ts +0 -3
  868. package/lib/types/src/internal/transport/model/InternalConnectedDevice.stub.d.ts.map +0 -1
  869. package/lib/types/src/internal/transport/model/InternalConnectedDevice.test.d.ts +0 -2
  870. package/lib/types/src/internal/transport/model/InternalConnectedDevice.test.d.ts.map +0 -1
  871. package/lib/types/src/internal/transport/model/InternalDiscoveredDevice.d.ts.map +0 -1
  872. package/lib/types/src/internal/transport/usb/data/UsbHidConfig.d.ts +0 -4
  873. package/lib/types/src/internal/transport/usb/data/UsbHidConfig.d.ts.map +0 -1
  874. package/lib/types/src/internal/transport/usb/di/usbDiTypes.d.ts +0 -4
  875. package/lib/types/src/internal/transport/usb/di/usbDiTypes.d.ts.map +0 -1
  876. package/lib/types/src/internal/transport/usb/di/usbModule.d.ts +0 -7
  877. package/lib/types/src/internal/transport/usb/di/usbModule.d.ts.map +0 -1
  878. package/lib/types/src/internal/transport/usb/di/usbModule.test.d.ts +0 -2
  879. package/lib/types/src/internal/transport/usb/di/usbModule.test.d.ts.map +0 -1
  880. package/lib/types/src/internal/transport/usb/model/HIDDevice.stub.d.ts +0 -2
  881. package/lib/types/src/internal/transport/usb/model/HIDDevice.stub.d.ts.map +0 -1
  882. package/lib/types/src/internal/transport/usb/service/UsbHidDeviceConnectionFactory.d.ts +0 -20
  883. package/lib/types/src/internal/transport/usb/service/UsbHidDeviceConnectionFactory.d.ts.map +0 -1
  884. package/lib/types/src/internal/transport/usb/service/UsbHidDeviceConnectionFactory.stub.d.ts +0 -3
  885. package/lib/types/src/internal/transport/usb/service/UsbHidDeviceConnectionFactory.stub.d.ts.map +0 -1
  886. package/lib/types/src/internal/transport/usb/transport/UsbHidDeviceConnection.d.ts +0 -54
  887. package/lib/types/src/internal/transport/usb/transport/UsbHidDeviceConnection.d.ts.map +0 -1
  888. package/lib/types/src/internal/transport/usb/transport/UsbHidDeviceConnection.test.d.ts +0 -2
  889. package/lib/types/src/internal/transport/usb/transport/UsbHidDeviceConnection.test.d.ts.map +0 -1
  890. package/lib/types/src/internal/transport/usb/transport/WebUsbHidTransport.d.ts +0 -97
  891. package/lib/types/src/internal/transport/usb/transport/WebUsbHidTransport.d.ts.map +0 -1
  892. package/lib/types/src/internal/transport/usb/transport/WebUsbHidTransport.test.d.ts +0 -2
  893. package/lib/types/src/internal/transport/usb/transport/WebUsbHidTransport.test.d.ts.map +0 -1
  894. package/lib/types/src/internal/transport/usb/transport/__mocks__/WebUsbHidTransport.d.ts.map +0 -1
  895. /package/lib/cjs/src/{internal → api}/device-session/data/FramerConst.js +0 -0
  896. /package/lib/cjs/src/{internal → api}/device-session/utils/FramerUtils.js +0 -0
  897. /package/lib/cjs/src/{internal → api}/device-session/utils/FramerUtils.test.js +0 -0
  898. /package/lib/cjs/src/{internal → api}/logger-publisher/service/LoggerPublisherService.js +0 -0
  899. /package/lib/cjs/src/api/logger-subscriber/{__mocks__ → service/__mocks__}/ConsoleLogger.js +0 -0
  900. /package/lib/cjs/src/{internal → api}/transport/model/DeviceConnection.js +0 -0
  901. /package/lib/esm/src/{internal → api}/device-model/data/DeviceModelDataSource.js +0 -0
  902. /package/lib/esm/src/{internal → api}/device-model/data/DeviceModelDataSource.js.map +0 -0
  903. /package/lib/esm/src/{internal → api}/device-session/data/FramerConst.js +0 -0
  904. /package/lib/esm/src/{internal → api}/device-session/service/ApduReceiverService.js +0 -0
  905. /package/lib/esm/src/{internal → api}/device-session/service/ApduReceiverService.js.map +0 -0
  906. /package/lib/esm/src/{internal → api}/device-session/service/ApduSenderService.js +0 -0
  907. /package/lib/esm/src/{internal → api}/device-session/service/ApduSenderService.js.map +0 -0
  908. /package/lib/esm/src/{internal → api}/device-session/utils/FramerUtils.js +0 -0
  909. /package/lib/esm/src/{internal → api}/device-session/utils/FramerUtils.test.js +0 -0
  910. /package/lib/esm/src/{internal → api}/logger-publisher/service/LoggerPublisherService.js +0 -0
  911. /package/lib/esm/src/{internal → api}/logger-publisher/service/LoggerPublisherService.js.map +0 -0
  912. /package/lib/esm/src/api/logger-subscriber/{__mocks__ → service/__mocks__}/ConsoleLogger.js +0 -0
  913. /package/lib/esm/src/{internal → api}/transport/model/DeviceConnection.js +0 -0
  914. /package/lib/esm/src/{internal → api}/transport/model/DeviceConnection.js.map +0 -0
  915. /package/lib/esm/src/{internal/transport/model/InternalDiscoveredDevice.js.map → api/transport/model/TransportDiscoveredDevice.js.map} +0 -0
  916. /package/lib/types/src/{internal → api}/device-model/data/StaticDeviceModelDataSource.test.d.ts +0 -0
  917. /package/lib/types/src/{internal → api}/device-model/model/DeviceModel.test.d.ts +0 -0
  918. /package/lib/types/src/{internal → api}/device-session/data/FramerConst.d.ts +0 -0
  919. /package/lib/types/src/{internal → api}/device-session/utils/FramerUtils.d.ts +0 -0
  920. /package/lib/types/src/{internal → api}/device-session/utils/FramerUtils.test.d.ts +0 -0
  921. /package/lib/types/src/api/logger-subscriber/{__mocks__ → service/__mocks__}/ConsoleLogger.d.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/config/service/DefaultConfigService.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport type {\n LocalConfigDataSource,\n RemoteConfigDataSource,\n} from \"@internal/config/data/ConfigDataSource\";\nimport { configTypes } from \"@internal/config/di/configTypes\";\nimport { Config } from \"@internal/config/model/Config\";\nimport {\n LocalConfigFailure,\n RemoteConfigFailure,\n} from \"@internal/config/model/Errors\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport type { LoggerPublisherService } from \"@internal/logger-publisher/service/LoggerPublisherService\";\n\nimport { ConfigService } from \"./ConfigService\";\n\n@injectable()\nexport class DefaultConfigService implements ConfigService {\n private _local: LocalConfigDataSource;\n private _remote: RemoteConfigDataSource;\n private _logger: LoggerPublisherService;\n constructor(\n @inject(configTypes.LocalConfigDataSource) local: LocalConfigDataSource,\n @inject(configTypes.RemoteConfigDataSource) remote: RemoteConfigDataSource,\n @inject(loggerTypes.LoggerPublisherServiceFactory)\n loggerServiceFactory: (tag: string) => LoggerPublisherService,\n ) {\n this._local = local;\n this._remote = remote;\n this._logger = loggerServiceFactory(\"config\");\n }\n\n async getDmkConfig(): Promise<Config> {\n // Returns an Either<ReadFileError | JsonParseError, Config>\n const localConfig = this._local\n .getConfig()\n .ifLeft((error: LocalConfigFailure) => {\n this._logger.error(\"Local config not available\", {\n data: { error },\n });\n });\n\n if (localConfig.isRight()) {\n const val = localConfig.extract();\n this._logger.info(\"Local config available\", { data: { config: val } });\n return val;\n }\n\n return this._remote.getConfig().then((config) => {\n return config\n .mapLeft((error: RemoteConfigFailure) => {\n // Here we handle the error and return a default value\n this._logger.error(\"Local config available\", { data: { error } });\n return { name: \"DeadDmk\", version: \"0.0.0-dead.1\" };\n })\n .extract();\n });\n }\n}\n"],
5
- "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAMnC,OAAS,eAAAC,MAAmB,kCAM5B,OAAS,eAAAC,MAAmB,4CAMrB,IAAMC,EAAN,KAAoD,CACjD,OACA,QACA,QACR,YAC6CC,EACCC,EAE5CC,EACA,CACA,KAAK,OAASF,EACd,KAAK,QAAUC,EACf,KAAK,QAAUC,EAAqB,QAAQ,CAC9C,CAEA,MAAM,cAAgC,CAEpC,MAAMC,EAAc,KAAK,OACtB,UAAU,EACV,OAAQC,GAA8B,CACrC,KAAK,QAAQ,MAAM,6BAA8B,CAC/C,KAAM,CAAE,MAAAA,CAAM,CAChB,CAAC,CACH,CAAC,EAEH,GAAID,EAAY,QAAQ,EAAG,CACzB,MAAME,EAAMF,EAAY,QAAQ,EAChC,YAAK,QAAQ,KAAK,yBAA0B,CAAE,KAAM,CAAE,OAAQE,CAAI,CAAE,CAAC,EAC9DA,CACT,CAEA,OAAO,KAAK,QAAQ,UAAU,EAAE,KAAMC,GAC7BA,EACJ,QAASF,IAER,KAAK,QAAQ,MAAM,yBAA0B,CAAE,KAAM,CAAE,MAAAA,CAAM,CAAE,CAAC,EACzD,CAAE,KAAM,UAAW,QAAS,cAAe,EACnD,EACA,QAAQ,CACZ,CACH,CACF,EAzCaL,EAANQ,EAAA,CADNC,EAAW,EAMPC,EAAA,EAAAC,EAAOC,EAAY,qBAAqB,GACxCF,EAAA,EAAAC,EAAOC,EAAY,sBAAsB,GACzCF,EAAA,EAAAC,EAAOE,EAAY,6BAA6B,IAPxCb",
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport type { LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport type {\n LocalConfigDataSource,\n RemoteConfigDataSource,\n} from \"@internal/config/data/ConfigDataSource\";\nimport { configTypes } from \"@internal/config/di/configTypes\";\nimport { Config } from \"@internal/config/model/Config\";\nimport {\n LocalConfigFailure,\n RemoteConfigFailure,\n} from \"@internal/config/model/Errors\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\n\nimport { ConfigService } from \"./ConfigService\";\n\n@injectable()\nexport class DefaultConfigService implements ConfigService {\n private _local: LocalConfigDataSource;\n private _remote: RemoteConfigDataSource;\n private _logger: LoggerPublisherService;\n constructor(\n @inject(configTypes.LocalConfigDataSource) local: LocalConfigDataSource,\n @inject(configTypes.RemoteConfigDataSource) remote: RemoteConfigDataSource,\n @inject(loggerTypes.LoggerPublisherServiceFactory)\n loggerServiceFactory: (tag: string) => LoggerPublisherService,\n ) {\n this._local = local;\n this._remote = remote;\n this._logger = loggerServiceFactory(\"config\");\n }\n\n async getDmkConfig(): Promise<Config> {\n // Returns an Either<ReadFileError | JsonParseError, Config>\n const localConfig = this._local\n .getConfig()\n .ifLeft((error: LocalConfigFailure) => {\n this._logger.error(\"Local config not available\", {\n data: { error },\n });\n });\n\n if (localConfig.isRight()) {\n const val = localConfig.extract();\n this._logger.info(\"Local config available\", { data: { config: val } });\n return val;\n }\n\n return this._remote.getConfig().then((config) => {\n return config\n .mapLeft((error: RemoteConfigFailure) => {\n // Here we handle the error and return a default value\n this._logger.error(\"Local config available\", { data: { error } });\n return { name: \"DeadDmk\", version: \"0.0.0-dead.1\" };\n })\n .extract();\n });\n }\n}\n"],
5
+ "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAOnC,OAAS,eAAAC,MAAmB,kCAM5B,OAAS,eAAAC,MAAmB,4CAKrB,IAAMC,EAAN,KAAoD,CACjD,OACA,QACA,QACR,YAC6CC,EACCC,EAE5CC,EACA,CACA,KAAK,OAASF,EACd,KAAK,QAAUC,EACf,KAAK,QAAUC,EAAqB,QAAQ,CAC9C,CAEA,MAAM,cAAgC,CAEpC,MAAMC,EAAc,KAAK,OACtB,UAAU,EACV,OAAQC,GAA8B,CACrC,KAAK,QAAQ,MAAM,6BAA8B,CAC/C,KAAM,CAAE,MAAAA,CAAM,CAChB,CAAC,CACH,CAAC,EAEH,GAAID,EAAY,QAAQ,EAAG,CACzB,MAAME,EAAMF,EAAY,QAAQ,EAChC,YAAK,QAAQ,KAAK,yBAA0B,CAAE,KAAM,CAAE,OAAQE,CAAI,CAAE,CAAC,EAC9DA,CACT,CAEA,OAAO,KAAK,QAAQ,UAAU,EAAE,KAAMC,GAC7BA,EACJ,QAASF,IAER,KAAK,QAAQ,MAAM,yBAA0B,CAAE,KAAM,CAAE,MAAAA,CAAM,CAAE,CAAC,EACzD,CAAE,KAAM,UAAW,QAAS,cAAe,EACnD,EACA,QAAQ,CACZ,CACH,CACF,EAzCaL,EAANQ,EAAA,CADNC,EAAW,EAMPC,EAAA,EAAAC,EAAOC,EAAY,qBAAqB,GACxCF,EAAA,EAAAC,EAAOC,EAAY,sBAAsB,GACzCF,EAAA,EAAAC,EAAOE,EAAY,6BAA6B,IAPxCb",
6
6
  "names": ["inject", "injectable", "configTypes", "loggerTypes", "DefaultConfigService", "local", "remote", "loggerServiceFactory", "localConfig", "error", "val", "config", "__decorateClass", "injectable", "__decorateParam", "inject", "configTypes", "loggerTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ContainerModule as r}from"inversify";import{StaticDeviceModelDataSource as t}from"../../device-model/data/StaticDeviceModelDataSource";import{deviceModelTypes as i}from"./deviceModelTypes";const u=({stub:o})=>new r((e,c,d,a)=>{e(i.DeviceModelDataSource).to(t)});export{u as deviceModelModuleFactory};
1
+ import{ContainerModule as r}from"inversify";import{StaticDeviceModelDataSource as t}from"../../../api/device-model/data/StaticDeviceModelDataSource";import{deviceModelTypes as i}from"./deviceModelTypes";const u=({stub:o})=>new r((e,c,d,a)=>{e(i.DeviceModelDataSource).to(t)});export{u as deviceModelModuleFactory};
2
2
  //# sourceMappingURL=deviceModelModule.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-model/di/deviceModelModule.ts"],
4
- "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { StaticDeviceModelDataSource } from \"@internal/device-model/data/StaticDeviceModelDataSource\";\n\nimport { deviceModelTypes } from \"./deviceModelTypes\";\n\ntype FactoryProps = {\n stub: boolean;\n};\n\nexport const deviceModelModuleFactory = ({ stub }: FactoryProps) =>\n new ContainerModule((bind, _unbind, _isBound, _rebind) => {\n bind(deviceModelTypes.DeviceModelDataSource).to(\n StaticDeviceModelDataSource,\n );\n\n if (stub) {\n // We can rebind our interfaces to their mock implementations\n // rebind(...).to(....);\n }\n });\n"],
5
- "mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,+BAAAC,MAAmC,0DAE5C,OAAS,oBAAAC,MAAwB,qBAM1B,MAAMC,EAA2B,CAAC,CAAE,KAAAC,CAAK,IAC9C,IAAIJ,EAAgB,CAACK,EAAMC,EAASC,EAAUC,IAAY,CACxDH,EAAKH,EAAiB,qBAAqB,EAAE,GAC3CD,CACF,CAMF,CAAC",
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { StaticDeviceModelDataSource } from \"@api/device-model/data/StaticDeviceModelDataSource\";\n\nimport { deviceModelTypes } from \"./deviceModelTypes\";\n\ntype FactoryProps = {\n stub: boolean;\n};\n\nexport const deviceModelModuleFactory = ({ stub }: FactoryProps) =>\n new ContainerModule((bind, _unbind, _isBound, _rebind) => {\n bind(deviceModelTypes.DeviceModelDataSource).to(\n StaticDeviceModelDataSource,\n );\n\n if (stub) {\n // We can rebind our interfaces to their mock implementations\n // rebind(...).to(....);\n }\n });\n"],
5
+ "mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,+BAAAC,MAAmC,qDAE5C,OAAS,oBAAAC,MAAwB,qBAM1B,MAAMC,EAA2B,CAAC,CAAE,KAAAC,CAAK,IAC9C,IAAIJ,EAAgB,CAACK,EAAMC,EAASC,EAAUC,IAAY,CACxDH,EAAKH,EAAiB,qBAAqB,EAAE,GAC3CD,CACF,CAMF,CAAC",
6
6
  "names": ["ContainerModule", "StaticDeviceModelDataSource", "deviceModelTypes", "deviceModelModuleFactory", "stub", "bind", "_unbind", "_isBound", "_rebind"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Container as d}from"inversify";import{StaticDeviceModelDataSource as r}from"../../device-model/data/StaticDeviceModelDataSource";import{deviceModelModuleFactory as c}from"./deviceModelModule";import{deviceModelTypes as i}from"./deviceModelTypes";describe("deviceModelModuleFactory",()=>{let e,o;beforeEach(()=>{o=c({stub:!1}),e=new d,e.load(o)}),it("should return the device module",()=>{expect(o).toBeDefined()}),it("should return none mocked services and data sources",()=>{const t=e.get(i.DeviceModelDataSource);expect(t).toBeInstanceOf(r)})});
1
+ import{Container as d}from"inversify";import{StaticDeviceModelDataSource as r}from"../../../api/device-model/data/StaticDeviceModelDataSource";import{deviceModelModuleFactory as c}from"./deviceModelModule";import{deviceModelTypes as i}from"./deviceModelTypes";describe("deviceModelModuleFactory",()=>{let e,o;beforeEach(()=>{o=c({stub:!1}),e=new d,e.load(o)}),it("should return the device module",()=>{expect(o).toBeDefined()}),it("should return none mocked services and data sources",()=>{const t=e.get(i.DeviceModelDataSource);expect(t).toBeInstanceOf(r)})});
2
2
  //# sourceMappingURL=deviceModelModule.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-model/di/deviceModelModule.test.ts"],
4
- "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { StaticDeviceModelDataSource } from \"@internal/device-model/data/StaticDeviceModelDataSource\";\n\nimport { deviceModelModuleFactory } from \"./deviceModelModule\";\nimport { deviceModelTypes } from \"./deviceModelTypes\";\n\ndescribe(\"deviceModelModuleFactory\", () => {\n let container: Container;\n let mod: ReturnType<typeof deviceModelModuleFactory>;\n beforeEach(() => {\n mod = deviceModelModuleFactory({ stub: false });\n container = new Container();\n container.load(mod);\n });\n\n it(\"should return the device module\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should return none mocked services and data sources\", () => {\n const deviceModelDataSource = container.get(\n deviceModelTypes.DeviceModelDataSource,\n );\n expect(deviceModelDataSource).toBeInstanceOf(StaticDeviceModelDataSource);\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,+BAAAC,MAAmC,0DAE5C,OAAS,4BAAAC,MAAgC,sBACzC,OAAS,oBAAAC,MAAwB,qBAEjC,SAAS,2BAA4B,IAAM,CACzC,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMH,EAAyB,CAAE,KAAM,EAAM,CAAC,EAC9CE,EAAY,IAAIJ,EAChBI,EAAU,KAAKC,CAAG,CACpB,CAAC,EAED,GAAG,kCAAmC,IAAM,CAC1C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,sDAAuD,IAAM,CAC9D,MAAMC,EAAwBF,EAAU,IACtCD,EAAiB,qBACnB,EACA,OAAOG,CAAqB,EAAE,eAAeL,CAA2B,CAC1E,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { StaticDeviceModelDataSource } from \"@api/device-model/data/StaticDeviceModelDataSource\";\n\nimport { deviceModelModuleFactory } from \"./deviceModelModule\";\nimport { deviceModelTypes } from \"./deviceModelTypes\";\n\ndescribe(\"deviceModelModuleFactory\", () => {\n let container: Container;\n let mod: ReturnType<typeof deviceModelModuleFactory>;\n beforeEach(() => {\n mod = deviceModelModuleFactory({ stub: false });\n container = new Container();\n container.load(mod);\n });\n\n it(\"should return the device module\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should return none mocked services and data sources\", () => {\n const deviceModelDataSource = container.get(\n deviceModelTypes.DeviceModelDataSource,\n );\n expect(deviceModelDataSource).toBeInstanceOf(StaticDeviceModelDataSource);\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,+BAAAC,MAAmC,qDAE5C,OAAS,4BAAAC,MAAgC,sBACzC,OAAS,oBAAAC,MAAwB,qBAEjC,SAAS,2BAA4B,IAAM,CACzC,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMH,EAAyB,CAAE,KAAM,EAAM,CAAC,EAC9CE,EAAY,IAAIJ,EAChBI,EAAU,KAAKC,CAAG,CACpB,CAAC,EAED,GAAG,kCAAmC,IAAM,CAC1C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,sDAAuD,IAAM,CAC9D,MAAMC,EAAwBF,EAAU,IACtCD,EAAiB,qBACnB,EACA,OAAOG,CAAqB,EAAE,eAAeL,CAA2B,CAC1E,CAAC,CACH,CAAC",
6
6
  "names": ["Container", "StaticDeviceModelDataSource", "deviceModelModuleFactory", "deviceModelTypes", "container", "mod", "deviceModelDataSource"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ContainerModule as u}from"inversify";import{DefaultApduReceiverService as a}from"../../device-session/service/DefaultApduReceiverService";import{DefaultApduSenderService as S}from"../../device-session/service/DefaultApduSenderService";import{DefaultDeviceSessionService as p}from"../../device-session/service/DefaultDeviceSessionService";import{CloseSessionsUseCase as v}from"../../device-session/use-case/CloseSessionsUseCase";import{GetDeviceSessionStateUseCase as g}from"../../device-session/use-case/GetDeviceSessionStateUseCase";import{loggerTypes as s}from"../../logger-publisher/di/loggerTypes";import{StubUseCase as m}from"../../../../src/di.stub";import{deviceSessionTypes as e}from"./deviceSessionTypes";const _=({stub:c}={stub:!1})=>new u((r,l,f,n,d,A,y)=>{r(e.ApduSenderServiceFactory).toFactory(o=>{const t=o.container.get(s.LoggerPublisherServiceFactory);return i=>new S(i,t)}),r(e.ApduReceiverServiceFactory).toFactory(o=>{const t=o.container.get(s.LoggerPublisherServiceFactory);return(i={})=>new a(i,t)}),r(e.DeviceSessionService).to(p).inSingletonScope(),r(e.GetDeviceSessionStateUseCase).to(g),r(e.CloseSessionsUseCase).to(v),c&&n(e.GetDeviceSessionStateUseCase).to(m)});export{_ as deviceSessionModuleFactory};
1
+ import{ContainerModule as a}from"inversify";import{ToggleDeviceSessionRefresherUseCase as p}from"../../../api/device-session/use-case/ToggleDeviceSessionRefresher";import{DefaultApduReceiverService as u}from"../../device-session/service/DefaultApduReceiverService";import{DefaultApduSenderService as v}from"../../device-session/service/DefaultApduSenderService";import{DefaultDeviceSessionService as g}from"../../device-session/service/DefaultDeviceSessionService";import{CloseSessionsUseCase as m}from"../../device-session/use-case/CloseSessionsUseCase";import{GetDeviceSessionStateUseCase as f}from"../../device-session/use-case/GetDeviceSessionStateUseCase";import{loggerTypes as c}from"../../logger-publisher/di/loggerTypes";import{StubUseCase as n}from"../../../../src/di.stub";import{deviceSessionTypes as e}from"./deviceSessionTypes";const M=({stub:S}={stub:!1})=>new a((r,l,d,i,A,y,C)=>{r(e.ApduSenderServiceFactory).toFactory(o=>{const t=o.container.get(c.LoggerPublisherServiceFactory);return s=>new v(s,t)}),r(e.ApduReceiverServiceFactory).toFactory(o=>{const t=o.container.get(c.LoggerPublisherServiceFactory);return(s={})=>new u(s,t)}),r(e.DeviceSessionService).to(g).inSingletonScope(),r(e.GetDeviceSessionStateUseCase).to(f),r(e.CloseSessionsUseCase).to(m),r(e.ToggleDeviceSessionRefresherUseCase).to(p),S&&(i(e.GetDeviceSessionStateUseCase).to(n),i(e.ToggleDeviceSessionRefresherUseCase).to(n))});export{M as deviceSessionModuleFactory};
2
2
  //# sourceMappingURL=deviceSessionModule.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/di/deviceSessionModule.ts"],
4
- "sourcesContent": ["import { ContainerModule, type interfaces } from \"inversify\";\n\nimport { type ApduReceiverService } from \"@internal/device-session/service/ApduReceiverService\";\nimport { type ApduSenderService } from \"@internal/device-session/service/ApduSenderService\";\nimport {\n type DefaultApduReceiverConstructorArgs,\n DefaultApduReceiverService,\n} from \"@internal/device-session/service/DefaultApduReceiverService\";\nimport {\n DefaultApduSenderService,\n type DefaultApduSenderServiceConstructorArgs,\n} from \"@internal/device-session/service/DefaultApduSenderService\";\nimport { DefaultDeviceSessionService } from \"@internal/device-session/service/DefaultDeviceSessionService\";\nimport { CloseSessionsUseCase } from \"@internal/device-session/use-case/CloseSessionsUseCase\";\nimport { GetDeviceSessionStateUseCase } from \"@internal/device-session/use-case/GetDeviceSessionStateUseCase\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport { type LoggerPublisherService } from \"@internal/logger-publisher/service/LoggerPublisherService\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { deviceSessionTypes } from \"./deviceSessionTypes\";\n\nexport type DeviceSessionModuleArgs = Partial<{\n stub: boolean;\n}>;\n\nexport const deviceSessionModuleFactory = (\n { stub }: DeviceSessionModuleArgs = { stub: false },\n) =>\n new ContainerModule(\n (\n bind,\n _unbind,\n _isBound,\n rebind,\n _unbindAsync,\n _onActivation,\n _onDeactivation,\n ) => {\n bind<interfaces.Factory<ApduSenderService>>(\n deviceSessionTypes.ApduSenderServiceFactory,\n ).toFactory((context) => {\n const logger = context.container.get<\n (name: string) => LoggerPublisherService\n >(loggerTypes.LoggerPublisherServiceFactory);\n\n return (args: DefaultApduSenderServiceConstructorArgs) => {\n return new DefaultApduSenderService(args, logger);\n };\n });\n\n bind<interfaces.Factory<ApduReceiverService>>(\n deviceSessionTypes.ApduReceiverServiceFactory,\n ).toFactory((context) => {\n const logger = context.container.get<\n (name: string) => LoggerPublisherService\n >(loggerTypes.LoggerPublisherServiceFactory);\n\n return (args: DefaultApduReceiverConstructorArgs = {}) => {\n return new DefaultApduReceiverService(args, logger);\n };\n });\n\n bind(deviceSessionTypes.DeviceSessionService)\n .to(DefaultDeviceSessionService)\n .inSingletonScope();\n\n bind(deviceSessionTypes.GetDeviceSessionStateUseCase).to(\n GetDeviceSessionStateUseCase,\n );\n bind(deviceSessionTypes.CloseSessionsUseCase).to(CloseSessionsUseCase);\n\n if (stub) {\n rebind(deviceSessionTypes.GetDeviceSessionStateUseCase).to(StubUseCase);\n }\n },\n );\n"],
5
- "mappings": "AAAA,OAAS,mBAAAA,MAAwC,YAIjD,OAEE,8BAAAC,MACK,8DACP,OACE,4BAAAC,MAEK,4DACP,OAAS,+BAAAC,MAAmC,+DAC5C,OAAS,wBAAAC,MAA4B,yDACrC,OAAS,gCAAAC,MAAoC,iEAC7C,OAAS,eAAAC,MAAmB,4CAE5B,OAAS,eAAAC,MAAmB,oBAE5B,OAAS,sBAAAC,MAA0B,uBAM5B,MAAMC,EAA6B,CACxC,CAAE,KAAAC,CAAK,EAA6B,CAAE,KAAM,EAAM,IAElD,IAAIV,EACF,CACEW,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IACG,CACHN,EACEH,EAAmB,wBACrB,EAAE,UAAWU,GAAY,CACvB,MAAMC,EAASD,EAAQ,UAAU,IAE/BZ,EAAY,6BAA6B,EAE3C,OAAQc,GACC,IAAIlB,EAAyBkB,EAAMD,CAAM,CAEpD,CAAC,EAEDR,EACEH,EAAmB,0BACrB,EAAE,UAAWU,GAAY,CACvB,MAAMC,EAASD,EAAQ,UAAU,IAE/BZ,EAAY,6BAA6B,EAE3C,MAAO,CAACc,EAA2C,CAAC,IAC3C,IAAInB,EAA2BmB,EAAMD,CAAM,CAEtD,CAAC,EAEDR,EAAKH,EAAmB,oBAAoB,EACzC,GAAGL,CAA2B,EAC9B,iBAAiB,EAEpBQ,EAAKH,EAAmB,4BAA4B,EAAE,GACpDH,CACF,EACAM,EAAKH,EAAmB,oBAAoB,EAAE,GAAGJ,CAAoB,EAEjEM,GACFI,EAAON,EAAmB,4BAA4B,EAAE,GAAGD,CAAW,CAE1E,CACF",
6
- "names": ["ContainerModule", "DefaultApduReceiverService", "DefaultApduSenderService", "DefaultDeviceSessionService", "CloseSessionsUseCase", "GetDeviceSessionStateUseCase", "loggerTypes", "StubUseCase", "deviceSessionTypes", "deviceSessionModuleFactory", "stub", "bind", "_unbind", "_isBound", "rebind", "_unbindAsync", "_onActivation", "_onDeactivation", "context", "logger", "args"]
4
+ "sourcesContent": ["import { ContainerModule, type interfaces } from \"inversify\";\n\nimport { type ApduReceiverService } from \"@api/device-session/service/ApduReceiverService\";\nimport { type ApduReceiverConstructorArgs } from \"@api/device-session/service/ApduReceiverService\";\nimport { type ApduSenderService } from \"@api/device-session/service/ApduSenderService\";\nimport { type ApduSenderServiceConstructorArgs } from \"@api/device-session/service/ApduSenderService\";\nimport { ToggleDeviceSessionRefresherUseCase } from \"@api/device-session/use-case/ToggleDeviceSessionRefresher\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { DefaultApduReceiverService } from \"@internal/device-session/service/DefaultApduReceiverService\";\nimport { DefaultApduSenderService } from \"@internal/device-session/service/DefaultApduSenderService\";\nimport { DefaultDeviceSessionService } from \"@internal/device-session/service/DefaultDeviceSessionService\";\nimport { CloseSessionsUseCase } from \"@internal/device-session/use-case/CloseSessionsUseCase\";\nimport { GetDeviceSessionStateUseCase } from \"@internal/device-session/use-case/GetDeviceSessionStateUseCase\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { deviceSessionTypes } from \"./deviceSessionTypes\";\n\nexport type DeviceSessionModuleArgs = Partial<{\n stub: boolean;\n}>;\n\nexport const deviceSessionModuleFactory = (\n { stub }: DeviceSessionModuleArgs = { stub: false },\n) =>\n new ContainerModule(\n (\n bind,\n _unbind,\n _isBound,\n rebind,\n _unbindAsync,\n _onActivation,\n _onDeactivation,\n ) => {\n bind<interfaces.Factory<ApduSenderService>>(\n deviceSessionTypes.ApduSenderServiceFactory,\n ).toFactory((context) => {\n const logger = context.container.get<\n (name: string) => LoggerPublisherService\n >(loggerTypes.LoggerPublisherServiceFactory);\n\n return (args: ApduSenderServiceConstructorArgs) => {\n return new DefaultApduSenderService(args, logger);\n };\n });\n\n bind<interfaces.Factory<ApduReceiverService>>(\n deviceSessionTypes.ApduReceiverServiceFactory,\n ).toFactory((context) => {\n const logger = context.container.get<\n (name: string) => LoggerPublisherService\n >(loggerTypes.LoggerPublisherServiceFactory);\n\n return (args: ApduReceiverConstructorArgs = {}) => {\n return new DefaultApduReceiverService(args, logger);\n };\n });\n\n bind(deviceSessionTypes.DeviceSessionService)\n .to(DefaultDeviceSessionService)\n .inSingletonScope();\n\n bind(deviceSessionTypes.GetDeviceSessionStateUseCase).to(\n GetDeviceSessionStateUseCase,\n );\n bind(deviceSessionTypes.CloseSessionsUseCase).to(CloseSessionsUseCase);\n bind(deviceSessionTypes.ToggleDeviceSessionRefresherUseCase).to(\n ToggleDeviceSessionRefresherUseCase,\n );\n\n if (stub) {\n rebind(deviceSessionTypes.GetDeviceSessionStateUseCase).to(StubUseCase);\n rebind(deviceSessionTypes.ToggleDeviceSessionRefresherUseCase).to(\n StubUseCase,\n );\n }\n },\n );\n"],
5
+ "mappings": "AAAA,OAAS,mBAAAA,MAAwC,YAMjD,OAAS,uCAAAC,MAA2C,4DAEpD,OAAS,8BAAAC,MAAkC,8DAC3C,OAAS,4BAAAC,MAAgC,4DACzC,OAAS,+BAAAC,MAAmC,+DAC5C,OAAS,wBAAAC,MAA4B,yDACrC,OAAS,gCAAAC,MAAoC,iEAC7C,OAAS,eAAAC,MAAmB,4CAC5B,OAAS,eAAAC,MAAmB,oBAE5B,OAAS,sBAAAC,MAA0B,uBAM5B,MAAMC,EAA6B,CACxC,CAAE,KAAAC,CAAK,EAA6B,CAAE,KAAM,EAAM,IAElD,IAAIX,EACF,CACEY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IACG,CACHN,EACEH,EAAmB,wBACrB,EAAE,UAAWU,GAAY,CACvB,MAAMC,EAASD,EAAQ,UAAU,IAE/BZ,EAAY,6BAA6B,EAE3C,OAAQc,GACC,IAAIlB,EAAyBkB,EAAMD,CAAM,CAEpD,CAAC,EAEDR,EACEH,EAAmB,0BACrB,EAAE,UAAWU,GAAY,CACvB,MAAMC,EAASD,EAAQ,UAAU,IAE/BZ,EAAY,6BAA6B,EAE3C,MAAO,CAACc,EAAoC,CAAC,IACpC,IAAInB,EAA2BmB,EAAMD,CAAM,CAEtD,CAAC,EAEDR,EAAKH,EAAmB,oBAAoB,EACzC,GAAGL,CAA2B,EAC9B,iBAAiB,EAEpBQ,EAAKH,EAAmB,4BAA4B,EAAE,GACpDH,CACF,EACAM,EAAKH,EAAmB,oBAAoB,EAAE,GAAGJ,CAAoB,EACrEO,EAAKH,EAAmB,mCAAmC,EAAE,GAC3DR,CACF,EAEIU,IACFI,EAAON,EAAmB,4BAA4B,EAAE,GAAGD,CAAW,EACtEO,EAAON,EAAmB,mCAAmC,EAAE,GAC7DD,CACF,EAEJ,CACF",
6
+ "names": ["ContainerModule", "ToggleDeviceSessionRefresherUseCase", "DefaultApduReceiverService", "DefaultApduSenderService", "DefaultDeviceSessionService", "CloseSessionsUseCase", "GetDeviceSessionStateUseCase", "loggerTypes", "StubUseCase", "deviceSessionTypes", "deviceSessionModuleFactory", "stub", "bind", "_unbind", "_isBound", "rebind", "_unbindAsync", "_onActivation", "_onDeactivation", "context", "logger", "args"]
7
7
  }
@@ -1,2 +1,2 @@
1
- const e={ApduSenderServiceFactory:Symbol.for("ApduSenderServiceFactory"),ApduReceiverServiceFactory:Symbol.for("ApduReceiverServiceFactory"),DeviceSessionService:Symbol.for("DeviceSessionService"),GetDeviceSessionStateUseCase:Symbol.for("GetDeviceSessionStateUseCase"),CloseSessionsUseCase:Symbol.for("CloseSessionsUseCase")};export{e as deviceSessionTypes};
1
+ const e={ApduSenderServiceFactory:Symbol.for("ApduSenderServiceFactory"),ApduReceiverServiceFactory:Symbol.for("ApduReceiverServiceFactory"),DeviceSessionService:Symbol.for("DeviceSessionService"),GetDeviceSessionStateUseCase:Symbol.for("GetDeviceSessionStateUseCase"),ToggleDeviceSessionRefresherUseCase:Symbol.for("ToggleDeviceSessionRefresherUseCase"),CloseSessionsUseCase:Symbol.for("CloseSessionsUseCase")};export{e as deviceSessionTypes};
2
2
  //# sourceMappingURL=deviceSessionTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/di/deviceSessionTypes.ts"],
4
- "sourcesContent": ["export const deviceSessionTypes = {\n ApduSenderServiceFactory: Symbol.for(\"ApduSenderServiceFactory\"),\n ApduReceiverServiceFactory: Symbol.for(\"ApduReceiverServiceFactory\"),\n DeviceSessionService: Symbol.for(\"DeviceSessionService\"),\n GetDeviceSessionStateUseCase: Symbol.for(\"GetDeviceSessionStateUseCase\"),\n CloseSessionsUseCase: Symbol.for(\"CloseSessionsUseCase\"),\n};\n"],
5
- "mappings": "AAAO,MAAMA,EAAqB,CAChC,yBAA0B,OAAO,IAAI,0BAA0B,EAC/D,2BAA4B,OAAO,IAAI,4BAA4B,EACnE,qBAAsB,OAAO,IAAI,sBAAsB,EACvD,6BAA8B,OAAO,IAAI,8BAA8B,EACvE,qBAAsB,OAAO,IAAI,sBAAsB,CACzD",
4
+ "sourcesContent": ["export const deviceSessionTypes = {\n ApduSenderServiceFactory: Symbol.for(\"ApduSenderServiceFactory\"),\n ApduReceiverServiceFactory: Symbol.for(\"ApduReceiverServiceFactory\"),\n DeviceSessionService: Symbol.for(\"DeviceSessionService\"),\n GetDeviceSessionStateUseCase: Symbol.for(\"GetDeviceSessionStateUseCase\"),\n ToggleDeviceSessionRefresherUseCase: Symbol.for(\n \"ToggleDeviceSessionRefresherUseCase\",\n ),\n CloseSessionsUseCase: Symbol.for(\"CloseSessionsUseCase\"),\n};\n"],
5
+ "mappings": "AAAO,MAAMA,EAAqB,CAChC,yBAA0B,OAAO,IAAI,0BAA0B,EAC/D,2BAA4B,OAAO,IAAI,4BAA4B,EACnE,qBAAsB,OAAO,IAAI,sBAAsB,EACvD,6BAA8B,OAAO,IAAI,8BAA8B,EACvE,oCAAqC,OAAO,IAC1C,qCACF,EACA,qBAAsB,OAAO,IAAI,sBAAsB,CACzD",
6
6
  "names": ["deviceSessionTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{BehaviorSubject as c}from"rxjs";import{v4 as a}from"uuid";import{CommandUtils as p}from"../../../api/command/utils/CommandUtils";import{DeviceStatus as s}from"../../../api/device/DeviceStatus";import{DeviceSessionStateType as d}from"../../../api/device-session/DeviceSessionState";import{DEVICE_SESSION_REFRESH_INTERVAL as v}from"../../device-session/data/DeviceSessionRefresherConst";import{DeviceSessionRefresher as u}from"./DeviceSessionRefresher";class C{_id;_connectedDevice;_deviceState;_refresher;_managerApiService;constructor({connectedDevice:e,id:i=a()},r,t){this._id=i,this._connectedDevice=e,this._deviceState=new c({sessionStateType:d.Connected,deviceStatus:s.CONNECTED}),this._refresher=new u({refreshInterval:v,deviceStatus:s.CONNECTED,deviceModelId:this._connectedDevice.deviceModel.id,sendApduFn:o=>this.sendApdu(o,{isPolling:!0,triggersDisconnection:!1}),updateStateFn:o=>{const n=this._deviceState.getValue();this.setDeviceSessionState(o(n))}},r("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 i=this._deviceState.getValue();this._refresher.setDeviceStatus(e),this._deviceState.next({...i,deviceStatus:e})}async sendApdu(e,i={isPolling:!1,triggersDisconnection:!1}){return i.isPolling||this.updateDeviceStatus(s.BUSY),(await this._connectedDevice.sendApdu(e,i.triggersDisconnection)).ifRight(t=>{p.isLockedDeviceResponse(t)?this.updateDeviceStatus(s.LOCKED):this.updateDeviceStatus(s.CONNECTED)})}async sendCommand(e){const i=e.getApdu();return(await this.sendApdu(i.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:i,cancel:r}=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:i,cancel:r}}close(){this.updateDeviceStatus(s.NOT_CONNECTED),this._deviceState.complete()}}export{C as DeviceSession};
1
+ import{Left as c}from"purify-ts";import{BehaviorSubject as a}from"rxjs";import{v4 as d}from"uuid";import{CommandUtils as p}from"../../../api/command/utils/CommandUtils";import{DeviceStatus as s}from"../../../api/device/DeviceStatus";import{DeviceSessionStateType as v}from"../../../api/device-session/DeviceSessionState";import{DeviceBusyError as u}from"../../../api/Error";import{DEVICE_SESSION_REFRESH_INTERVAL as S}from"../../device-session/data/DeviceSessionRefresherConst";import{DeviceSessionRefresher as D}from"./DeviceSessionRefresher";class R{_id;_connectedDevice;_deviceState;_refresher;_managerApiService;constructor({connectedDevice:e,id:t=d()},r,i){this._id=t,this._connectedDevice=e,this._deviceState=new a({sessionStateType:v.Connected,deviceStatus:s.CONNECTED,deviceModelId:this._connectedDevice.deviceModel.id}),this._refresher=new D({refreshInterval:S,deviceStatus:s.CONNECTED,deviceModelId:this._connectedDevice.deviceModel.id,sendApduFn:o=>this.sendApdu(o,{isPolling:!0,triggersDisconnection:!1}),updateStateFn:o=>{const n=this._deviceState.getValue();this.setDeviceSessionState(o(n))}},r("device-session-refresher")),this._managerApiService=i}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 this._deviceState.getValue().deviceStatus===s.BUSY?c(new u):(t.isPolling||this.updateDeviceStatus(s.BUSY),(await this._connectedDevice.sendApdu(e,t.triggersDisconnection)).ifRight(o=>{p.isLockedDeviceResponse(o)?this.updateDeviceStatus(s.LOCKED):this.updateDeviceStatus(s.CONNECTED)}).ifLeft(()=>{this.updateDeviceStatus(s.CONNECTED)}))}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:r}=e._execute({sendCommand:async i=>this.sendCommand(i),getDeviceSessionState:()=>this._deviceState.getValue(),getDeviceSessionStateObservable:()=>this.state,setDeviceSessionState:i=>(this.setDeviceSessionState(i),this._deviceState.getValue()),getManagerApiService:()=>this._managerApiService});return{observable:t,cancel:r}}close(){this.updateDeviceStatus(s.NOT_CONNECTED),this._deviceState.complete(),this._refresher.stop()}toggleRefresher(e){e?this._refresher.start():this._refresher.stop()}}export{R as 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 { 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 { type DmkError } from \"@api/Error\";\nimport { DEVICE_SESSION_REFRESH_INTERVAL } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { type LoggerPublisherService } from \"@internal/logger-publisher/service/LoggerPublisherService\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { type InternalConnectedDevice } from \"@internal/transport/model/InternalConnectedDevice\";\n\nimport { DeviceSessionRefresher } from \"./DeviceSessionRefresher\";\n\nexport type SessionConstructorArgs = {\n connectedDevice: InternalConnectedDevice;\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: InternalConnectedDevice;\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 ) {\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.ifRight((response: ApduResponse) => {\n if (CommandUtils.isLockedDeviceResponse(response)) {\n this.updateDeviceStatus(DeviceStatus.LOCKED);\n } else {\n this.updateDeviceStatus(DeviceStatus.CONNECTED);\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 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 }\n}\n"],
5
- "mappings": "AAAA,OAAS,mBAAAA,MAAuB,OAChC,OAAS,MAAMC,MAAc,OAK7B,OAAS,gBAAAC,MAAoB,kCAC7B,OAAS,gBAAAC,MAAoB,2BAO7B,OAEE,0BAAAC,MACK,yCAGP,OAAS,mCAAAC,MAAuC,4DAKhD,OAAS,0BAAAC,MAA8B,2BAUhC,MAAMC,CAAc,CACR,IACA,iBACA,aACA,WACA,mBAEjB,YACE,CAAE,gBAAAC,EAAiB,GAAAC,EAAKR,EAAO,CAAE,EACjCS,EACAC,EACA,CACA,KAAK,IAAMF,EACX,KAAK,iBAAmBD,EACxB,KAAK,aAAe,IAAIR,EAAoC,CAC1D,iBAAkBI,EAAuB,UACzC,aAAcD,EAAa,SAC7B,CAAC,EACD,KAAK,WAAa,IAAIG,EACpB,CACE,gBAAiBD,EACjB,aAAcF,EAAa,UAC3B,cAAe,KAAK,iBAAiB,YAAY,GACjD,WAAaS,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,EACAJ,EAAoB,0BAA0B,CAChD,EACA,KAAK,mBAAqBC,CAC5B,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,EAGI,CACF,UAAW,GACX,sBAAuB,EACzB,EACA,CACA,OAAKA,EAAQ,WAAW,KAAK,mBAAmBd,EAAa,IAAI,GAEzC,MAAM,KAAK,iBAAiB,SAClDS,EACAK,EAAQ,qBACV,GAEuB,QAASC,GAA2B,CACrDhB,EAAa,uBAAuBgB,CAAQ,EAC9C,KAAK,mBAAmBf,EAAa,MAAM,EAE3C,KAAK,mBAAmBA,EAAa,SAAS,CAElD,CAAC,CACH,CAEA,MAAM,YACJgB,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,YAAa,MACXJ,GACG,KAAK,YAAYA,CAAO,EAC7B,sBAAuB,IAAM,KAAK,aAAa,SAAS,EACxD,gCAAiC,IAAM,KAAK,MAC5C,sBAAwBL,IACtB,KAAK,sBAAsBA,CAAK,EACzB,KAAK,aAAa,SAAS,GAEpC,wBAA0BY,GACxB,KAAK,mBAAmB,cAAcA,CAAI,CAC9C,CAAC,EAED,MAAO,CACL,WAAAF,EACA,OAAAC,CACF,CACF,CAEA,OAAQ,CACN,KAAK,mBAAmBtB,EAAa,aAAa,EAClD,KAAK,aAAa,SAAS,CAC7B,CACF",
6
- "names": ["BehaviorSubject", "uuidv4", "CommandUtils", "DeviceStatus", "DeviceSessionStateType", "DEVICE_SESSION_REFRESH_INTERVAL", "DeviceSessionRefresher", "DeviceSession", "connectedDevice", "id", "loggerModuleFactory", "managerApiService", "rawApdu", "callback", "state", "deviceStatus", "sessionState", "options", "response", "command", "apdu", "err", "r", "deviceAction", "observable", "cancel", "apps"]
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 { 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 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 }\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 getManagerApiService: () => this._managerApiService,\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": ["Left", "BehaviorSubject", "uuidv4", "CommandUtils", "DeviceStatus", "DeviceSessionStateType", "DeviceBusyError", "DEVICE_SESSION_REFRESH_INTERVAL", "DeviceSessionRefresher", "DeviceSession", "connectedDevice", "id", "loggerModuleFactory", "managerApiService", "rawApdu", "callback", "state", "deviceStatus", "sessionState", "options", "response", "command", "apdu", "err", "r", "deviceAction", "observable", "cancel", "enabled"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{DeviceSession as o}from"../../device-session/model/DeviceSession";import{connectedDeviceStubBuilder as t}from"../../transport/model/InternalConnectedDevice.stub";const c=(e={},r,i)=>new o({connectedDevice:t(),id:"fakeSessionId",...e},r,i);export{c as deviceSessionStubBuilder};
1
+ import{connectedDeviceStubBuilder as o}from"../../../api/transport/model/TransportConnectedDevice.stub";import{DeviceSession as t}from"../../device-session/model/DeviceSession";const c=(e={},r,i)=>new t({connectedDevice:o(),id:"fakeSessionId",...e},r,i);export{c as 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 {\n DeviceSession,\n type SessionConstructorArgs,\n} from \"@internal/device-session/model/DeviceSession\";\nimport { type LoggerPublisherService } from \"@internal/logger-publisher/service/LoggerPublisherService\";\nimport type { ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { connectedDeviceStubBuilder } from \"@internal/transport/model/InternalConnectedDevice.stub\";\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": "AAAA,OACE,iBAAAA,MAEK,+CAGP,OAAS,8BAAAC,MAAkC,yDAEpC,MAAMC,EAA2B,CACtCC,EAAyC,CAAC,EAC1CC,EACAC,IAEA,IAAIL,EACF,CACE,gBAAiBC,EAA2B,EAC5C,GAAI,gBACJ,GAAGE,CACL,EACAC,EACAC,CACF",
6
- "names": ["DeviceSession", "connectedDeviceStubBuilder", "deviceSessionStubBuilder", "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\";\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": "AACA,OAAS,8BAAAA,MAAkC,qDAC3C,OACE,iBAAAC,MAEK,+CAGA,MAAMC,EAA2B,CACtCC,EAAyC,CAAC,EAC1CC,EACAC,IAEA,IAAIJ,EACF,CACE,gBAAiBD,EAA2B,EAC5C,GAAI,gBACJ,GAAGG,CACL,EACAC,EACAC,CACF",
6
+ "names": ["connectedDeviceStubBuilder", "DeviceSession", "deviceSessionStubBuilder", "props", "loggerFactory", "managerApi"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var h=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var m=(p,e,r,s)=>{for(var t=s>1?void 0:s?A(e,r):e,i=p.length-1,n;i>=0;i--)(n=p[i])&&(t=(s?n(e,r,t):n(t))||t);return s&&t&&h(e,r,t),t};import{injectable as _}from"inversify";import{delay as g,filter as c,from as f,interval as v,map as b,of as O,race as D,switchMap as l}from"rxjs";import{isSuccessCommandResult as y}from"../../../api/command/model/CommandResult";import{GetAppAndVersionCommand as C}from"../../../api/command/os/GetAppAndVersionCommand";import{GetOsVersionCommand as E}from"../../../api/command/os/GetOsVersionCommand";import{DeviceModelId as F}from"../../../api/device/DeviceModel";import{DeviceStatus as a}from"../../../api/device/DeviceStatus";import{DeviceSessionStateType as R}from"../../../api/device-session/DeviceSessionState";let o=class{_logger;_getAppAndVersionCommand=new C;_getOsVersionCommand=new E;_deviceStatus;_subscription;_sendApduFn;_updateStateFn;constructor({refreshInterval:e,deviceStatus:r,sendApduFn:s,updateStateFn:t,deviceModelId:i},n){this._deviceStatus=r,this._logger=n,this._sendApduFn=s,this._updateStateFn=t;const S=i===F.NANO_S?this._getNanoSRefreshObservable(e*2):this._getDefaultRefreshObservable(v(e));this._subscription=S.subscribe(d=>{!d||!y(d)||this._updateStateFn(u=>({...u,sessionStateType:R.ReadyWithoutSecureChannel,deviceStatus:this._deviceStatus,currentApp:d.data,installedApps:"installedApps"in u?u.installedApps:[]}))})}_getDefaultRefreshObservable(e=f([0])){return e.pipe(c(()=>![a.BUSY,a.NOT_CONNECTED].includes(this._deviceStatus)),l(async()=>{const r=this._getAppAndVersionCommand.getApdu().getRawApdu();return await this._sendApduFn(r)}),b(r=>r.caseOf({Left:s=>(this._logger.error("Error in sending APDU when polling",{data:{error:s}}),null),Right:s=>{try{return this._getAppAndVersionCommand.parseResponse(s)}catch(t){return this._logger.error("Error in parsing APDU response",{data:{error:t}}),null}}})),c(r=>r!==null))}_getNanoSRefreshObservable(e){const r=this._getDefaultRefreshObservable().pipe(l(async t=>{const i=this._getOsVersionCommand.getApdu().getRawApdu();return await this._sendApduFn(i),t})),s=O(null).pipe(g(e),b(t=>{this._logger.warn("Nanos refresh timeout, setting device status to LOCKED"),this._updateStateFn(i=>({...i,deviceStatus:a.LOCKED}))}));return v(e+100).pipe(l(()=>D(r,s)))}setDeviceStatus(e){e===a.NOT_CONNECTED&&this.stop(),this._deviceStatus=e}stop(){!this._subscription||this._subscription.closed||this._subscription.unsubscribe()}};o=m([_()],o);export{o as DeviceSessionRefresher};
1
+ var h=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var u=(p,t,e,r)=>{for(var s=r>1?void 0:r?v(t,e):t,i=p.length-1,n;i>=0;i--)(n=p[i])&&(s=(r?n(t,e,s):n(s))||s);return r&&s&&h(t,e,s),s};import{injectable as _}from"inversify";import{delay as b,filter as l,from as S,interval as c,map as m,of as A,race as g,switchMap as d}from"rxjs";import{isSuccessCommandResult as f}from"../../../api/command/model/CommandResult";import{GetAppAndVersionCommand as O}from"../../../api/command/os/GetAppAndVersionCommand";import{GetOsVersionCommand as y}from"../../../api/command/os/GetOsVersionCommand";import{DeviceModelId as D}from"../../../api/device/DeviceModel";import{DeviceStatus as a}from"../../../api/device/DeviceStatus";import{DeviceSessionStateType as C}from"../../../api/device-session/DeviceSessionState";let o=class{_logger;_getAppAndVersionCommand=new O;_getOsVersionCommand=new y;_deviceStatus;_subscription;_refreshInterval;_deviceModelId;_sendApduFn;_updateStateFn;constructor({refreshInterval:t,deviceStatus:e,sendApduFn:r,updateStateFn:s,deviceModelId:i},n){this._deviceStatus=e,this._logger=n,this._sendApduFn=r,this._updateStateFn=s,this._refreshInterval=t,this._deviceModelId=i,this.start()}start(){if(this._subscription&&!this._subscription.closed){this._logger.warn("Refresher already started");return}const t=this._deviceModelId===D.NANO_S?this._getNanoSRefreshObservable(this._refreshInterval*2):this._getDefaultRefreshObservable(c(this._refreshInterval));this._subscription=t.subscribe(e=>{!e||!f(e)||this._updateStateFn(r=>({...r,sessionStateType:C.ReadyWithoutSecureChannel,deviceStatus:this._deviceStatus,currentApp:e.data,installedApps:"installedApps"in r?r.installedApps:[]}))})}_getDefaultRefreshObservable(t=S([0])){return t.pipe(l(()=>![a.BUSY,a.NOT_CONNECTED].includes(this._deviceStatus)),d(async()=>{const e=this._getAppAndVersionCommand.getApdu().getRawApdu();return await this._sendApduFn(e)}),m(e=>e.caseOf({Left:r=>(this._logger.error("Error in sending APDU when polling",{data:{error:r}}),null),Right:r=>{try{return this._getAppAndVersionCommand.parseResponse(r)}catch(s){return this._logger.error("Error in parsing APDU response",{data:{error:s}}),null}}})),l(e=>e!==null))}_getNanoSRefreshObservable(t){const e=this._getDefaultRefreshObservable().pipe(d(async s=>{const i=this._getOsVersionCommand.getApdu().getRawApdu();return await this._sendApduFn(i),s})),r=A(null).pipe(b(t),m(s=>{this._logger.warn("Nanos refresh timeout, setting device status to LOCKED"),this._updateStateFn(i=>({...i,deviceStatus:a.LOCKED}))}));return c(t+100).pipe(d(()=>g(e,r)))}setDeviceStatus(t){t===a.NOT_CONNECTED&&this.stop(),this._deviceStatus=t}stop(){!this._subscription||this._subscription.closed||(this._subscription.unsubscribe(),this._subscription=void 0)}};o=u([_()],o);export{o as DeviceSessionRefresher};
2
2
  //# sourceMappingURL=DeviceSessionRefresher.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/model/DeviceSessionRefresher.ts"],
4
- "sourcesContent": ["import { injectable } from \"inversify\";\nimport { Either } from \"purify-ts\";\nimport {\n delay,\n filter,\n from,\n interval,\n map,\n Observable,\n of,\n race,\n Subscription,\n switchMap,\n} from \"rxjs\";\n\nimport { isSuccessCommandResult } from \"@api/command/model/CommandResult\";\nimport {\n GetAppAndVersionCommand,\n GetAppAndVersionCommandResult,\n} from \"@api/command/os/GetAppAndVersionCommand\";\nimport { GetOsVersionCommand } from \"@api/command/os/GetOsVersionCommand\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\nimport {\n DeviceSessionState,\n DeviceSessionStateType,\n} from \"@api/device-session/DeviceSessionState\";\nimport { DmkError } from \"@api/Error\";\nimport { type LoggerPublisherService } from \"@internal/logger-publisher/service/LoggerPublisherService\";\nimport { SendApduFnType } from \"@internal/transport/model/DeviceConnection\";\n\ntype UpdateStateFnType = (\n callback: (state: DeviceSessionState) => DeviceSessionState,\n) => void;\n\n/**\n * The arguments for the DeviceSessionRefresher.\n */\nexport type DeviceSessionRefresherArgs = {\n /**\n * The refresh interval in milliseconds.\n */\n refreshInterval: number;\n\n /**\n * The current device status when the refresher is created.\n */\n deviceStatus: Exclude<DeviceStatus, DeviceStatus.NOT_CONNECTED>;\n\n /**\n * The function used to send APDU commands to the device.\n */\n sendApduFn: (rawApdu: Uint8Array) => Promise<Either<DmkError, ApduResponse>>;\n\n /**\n * Callback that updates the state of the device session with\n * polling response.\n * @param callback - A function that will take the previous state and return the new state.\n * @returns void\n */\n updateStateFn: UpdateStateFnType;\n\n /**\n * Device model to handle NanoS specific refresher\n */\n deviceModelId: DeviceModelId;\n};\n\n/**\n * The session refresher that periodically sends a command to refresh the session.\n */\n@injectable()\nexport class DeviceSessionRefresher {\n private readonly _logger: LoggerPublisherService;\n private readonly _getAppAndVersionCommand = new GetAppAndVersionCommand();\n private readonly _getOsVersionCommand = new GetOsVersionCommand();\n private _deviceStatus: DeviceStatus;\n private _subscription: Subscription;\n private readonly _sendApduFn: SendApduFnType;\n private readonly _updateStateFn: UpdateStateFnType;\n\n constructor(\n {\n refreshInterval,\n deviceStatus,\n sendApduFn,\n updateStateFn,\n deviceModelId,\n }: DeviceSessionRefresherArgs,\n logger: LoggerPublisherService,\n ) {\n this._deviceStatus = deviceStatus;\n this._logger = logger;\n this._sendApduFn = sendApduFn;\n this._updateStateFn = updateStateFn;\n\n // NanoS has a specific refresher that sends GetAppAndVersion and GetOsVersion commands\n const refreshObservable =\n deviceModelId === DeviceModelId.NANO_S\n ? this._getNanoSRefreshObservable(refreshInterval * 2)\n : this._getDefaultRefreshObservable(interval(refreshInterval));\n\n this._subscription = refreshObservable.subscribe((parsedResponse) => {\n if (!parsedResponse || !isSuccessCommandResult(parsedResponse)) {\n return;\n }\n // `batteryStatus` and `firmwareVersion` are not available in the polling response.\n this._updateStateFn((state) => ({\n ...state,\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: this._deviceStatus,\n currentApp: parsedResponse.data,\n installedApps: \"installedApps\" in state ? state.installedApps : [],\n }));\n });\n }\n\n /**\n * Creates an observable that refreshes a device state with GetAppAndVersion command result.\n *\n * @param {ObservableInput<number>} parentObservable - The parent observable to base the refresh observable on. Defaults to an array with a single number [0].\n * @return {Observable<GetAppAndVersionCommandResult>} An observable that emits the result of the GetAppAndVersionCommand.\n */\n private _getDefaultRefreshObservable(\n parentObservable: Observable<number> = from([0]),\n ): Observable<GetAppAndVersionCommandResult> {\n return parentObservable.pipe(\n filter(\n () =>\n ![DeviceStatus.BUSY, DeviceStatus.NOT_CONNECTED].includes(\n this._deviceStatus,\n ),\n ),\n switchMap(async () => {\n const rawApdu = this._getAppAndVersionCommand.getApdu().getRawApdu();\n return await this._sendApduFn(rawApdu);\n }),\n map((resp) =>\n resp.caseOf({\n Left: (error) => {\n this._logger.error(\"Error in sending APDU when polling\", {\n data: { error },\n });\n return null;\n },\n Right: (data: ApduResponse) => {\n try {\n return this._getAppAndVersionCommand.parseResponse(data);\n } catch (error) {\n this._logger.error(\"Error in parsing APDU response\", {\n data: { error },\n });\n return null;\n }\n },\n }),\n ),\n filter((parsedResponse) => parsedResponse !== null),\n );\n }\n\n /**\n * Creates an observable that emits events to refresh the NanoS device state.\n *\n * @param {number} refreshInterval - The interval, in milliseconds, at which the NanoS state should be refreshed.\n * @return {Observable<GetAppAndVersionCommandResult | void>} An observable that emits events to refresh the NanoS device state and handle timeout scenarios.\n */\n private _getNanoSRefreshObservable(\n refreshInterval: number,\n ): Observable<GetAppAndVersionCommandResult | void> {\n const nanoSRefreshObservable = this._getDefaultRefreshObservable().pipe(\n switchMap(async (resp) => {\n const rawApdu = this._getOsVersionCommand.getApdu().getRawApdu();\n await this._sendApduFn(rawApdu);\n return resp;\n }),\n );\n const timeoutObservable = of(null).pipe(\n delay(refreshInterval),\n map((_) => {\n this._logger.warn(\n \"Nanos refresh timeout, setting device status to LOCKED\",\n );\n this._updateStateFn((state) => ({\n ...state,\n deviceStatus: DeviceStatus.LOCKED,\n }));\n }),\n );\n return interval(refreshInterval + 100).pipe(\n switchMap(() => race(nanoSRefreshObservable, timeoutObservable)),\n );\n }\n\n /**\n * Maintain a device status to prevent sending APDU when the device is busy.\n *\n * @param {DeviceStatus} deviceStatus - The new device status.\n */\n setDeviceStatus(deviceStatus: DeviceStatus) {\n if (deviceStatus === DeviceStatus.NOT_CONNECTED) {\n this.stop();\n }\n this._deviceStatus = deviceStatus;\n }\n\n /**\n * Stops the session refresher.\n * The refresher will no longer send commands to refresh the session.\n */\n stop() {\n if (!this._subscription || this._subscription.closed) {\n return;\n }\n this._subscription.unsubscribe();\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { injectable } from \"inversify\";\nimport { Either } from \"purify-ts\";\nimport {\n delay,\n filter,\n from,\n interval,\n map,\n Observable,\n of,\n race,\n Subscription,\n switchMap,\n} from \"rxjs\";\n\nimport { isSuccessCommandResult } from \"@api/command/model/CommandResult\";\nimport {\n GetAppAndVersionCommand,\n GetAppAndVersionCommandResult,\n} from \"@api/command/os/GetAppAndVersionCommand\";\nimport { GetOsVersionCommand } from \"@api/command/os/GetOsVersionCommand\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\nimport {\n DeviceSessionState,\n DeviceSessionStateType,\n} from \"@api/device-session/DeviceSessionState\";\nimport { DmkError } from \"@api/Error\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { SendApduFnType } from \"@api/transport/model/DeviceConnection\";\n\ntype UpdateStateFnType = (\n callback: (state: DeviceSessionState) => DeviceSessionState,\n) => void;\n\n/**\n * The arguments for the DeviceSessionRefresher.\n */\nexport type DeviceSessionRefresherArgs = {\n /**\n * The refresh interval in milliseconds.\n */\n refreshInterval: number;\n\n /**\n * The current device status when the refresher is created.\n */\n deviceStatus: Exclude<DeviceStatus, DeviceStatus.NOT_CONNECTED>;\n\n /**\n * The function used to send APDU commands to the device.\n */\n sendApduFn: (rawApdu: Uint8Array) => Promise<Either<DmkError, ApduResponse>>;\n\n /**\n * Callback that updates the state of the device session with\n * polling response.\n * @param callback - A function that will take the previous state and return the new state.\n * @returns void\n */\n updateStateFn: UpdateStateFnType;\n\n /**\n * Device model to handle NanoS specific refresher\n */\n deviceModelId: DeviceModelId;\n};\n\n/**\n * The session refresher that periodically sends a command to refresh the session.\n */\n@injectable()\nexport class DeviceSessionRefresher {\n private readonly _logger: LoggerPublisherService;\n private readonly _getAppAndVersionCommand = new GetAppAndVersionCommand();\n private readonly _getOsVersionCommand = new GetOsVersionCommand();\n private _deviceStatus: DeviceStatus;\n private _subscription?: Subscription;\n private readonly _refreshInterval: number;\n private readonly _deviceModelId: DeviceModelId;\n private readonly _sendApduFn: SendApduFnType;\n private readonly _updateStateFn: UpdateStateFnType;\n\n constructor(\n {\n refreshInterval,\n deviceStatus,\n sendApduFn,\n updateStateFn,\n deviceModelId,\n }: DeviceSessionRefresherArgs,\n logger: LoggerPublisherService,\n ) {\n this._deviceStatus = deviceStatus;\n this._logger = logger;\n this._sendApduFn = sendApduFn;\n this._updateStateFn = updateStateFn;\n this._refreshInterval = refreshInterval;\n this._deviceModelId = deviceModelId;\n\n this.start();\n }\n\n /**\n * Start the session refresher.\n * The refresher will send commands to refresh the session.\n */\n start() {\n if (this._subscription && !this._subscription.closed) {\n this._logger.warn(\"Refresher already started\");\n return;\n }\n\n // NanoS has a specific refresher that sends GetAppAndVersion and GetOsVersion commands\n const refreshObservable =\n this._deviceModelId === DeviceModelId.NANO_S\n ? this._getNanoSRefreshObservable(this._refreshInterval * 2)\n : this._getDefaultRefreshObservable(interval(this._refreshInterval));\n\n this._subscription = refreshObservable.subscribe((parsedResponse) => {\n if (!parsedResponse || !isSuccessCommandResult(parsedResponse)) {\n return;\n }\n // `batteryStatus` and `firmwareVersion` are not available in the polling response.\n this._updateStateFn((state) => ({\n ...state,\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: this._deviceStatus,\n currentApp: parsedResponse.data,\n installedApps: \"installedApps\" in state ? state.installedApps : [],\n }));\n });\n }\n\n /**\n * Creates an observable that refreshes a device state with GetAppAndVersion command result.\n *\n * @param {ObservableInput<number>} parentObservable - The parent observable to base the refresh observable on. Defaults to an array with a single number [0].\n * @return {Observable<GetAppAndVersionCommandResult>} An observable that emits the result of the GetAppAndVersionCommand.\n */\n private _getDefaultRefreshObservable(\n parentObservable: Observable<number> = from([0]),\n ): Observable<GetAppAndVersionCommandResult> {\n return parentObservable.pipe(\n filter(\n () =>\n ![DeviceStatus.BUSY, DeviceStatus.NOT_CONNECTED].includes(\n this._deviceStatus,\n ),\n ),\n switchMap(async () => {\n const rawApdu = this._getAppAndVersionCommand.getApdu().getRawApdu();\n return await this._sendApduFn(rawApdu);\n }),\n map((resp) =>\n resp.caseOf({\n Left: (error) => {\n this._logger.error(\"Error in sending APDU when polling\", {\n data: { error },\n });\n return null;\n },\n Right: (data: ApduResponse) => {\n try {\n return this._getAppAndVersionCommand.parseResponse(data);\n } catch (error) {\n this._logger.error(\"Error in parsing APDU response\", {\n data: { error },\n });\n return null;\n }\n },\n }),\n ),\n filter((parsedResponse) => parsedResponse !== null),\n );\n }\n\n /**\n * Creates an observable that emits events to refresh the NanoS device state.\n *\n * @param {number} refreshInterval - The interval, in milliseconds, at which the NanoS state should be refreshed.\n * @return {Observable<GetAppAndVersionCommandResult | void>} An observable that emits events to refresh the NanoS device state and handle timeout scenarios.\n */\n private _getNanoSRefreshObservable(\n refreshInterval: number,\n ): Observable<GetAppAndVersionCommandResult | void> {\n const nanoSRefreshObservable = this._getDefaultRefreshObservable().pipe(\n switchMap(async (resp) => {\n const rawApdu = this._getOsVersionCommand.getApdu().getRawApdu();\n await this._sendApduFn(rawApdu);\n return resp;\n }),\n );\n const timeoutObservable = of(null).pipe(\n delay(refreshInterval),\n map((_) => {\n this._logger.warn(\n \"Nanos refresh timeout, setting device status to LOCKED\",\n );\n this._updateStateFn((state) => ({\n ...state,\n deviceStatus: DeviceStatus.LOCKED,\n }));\n }),\n );\n return interval(refreshInterval + 100).pipe(\n switchMap(() => race(nanoSRefreshObservable, timeoutObservable)),\n );\n }\n\n /**\n * Maintain a device status to prevent sending APDU when the device is busy.\n *\n * @param {DeviceStatus} deviceStatus - The new device status.\n */\n setDeviceStatus(deviceStatus: DeviceStatus) {\n if (deviceStatus === DeviceStatus.NOT_CONNECTED) {\n this.stop();\n }\n this._deviceStatus = deviceStatus;\n }\n\n /**\n * Stops the session refresher.\n * The refresher will no longer send commands to refresh the session.\n */\n stop() {\n if (!this._subscription || this._subscription.closed) {\n return;\n }\n this._subscription.unsubscribe();\n this._subscription = undefined;\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["injectable", "delay", "filter", "from", "interval", "map", "of", "race", "switchMap", "isSuccessCommandResult", "GetAppAndVersionCommand", "GetOsVersionCommand", "DeviceModelId", "DeviceStatus", "DeviceSessionStateType", "DeviceSessionRefresher", "GetAppAndVersionCommand", "GetOsVersionCommand", "refreshInterval", "deviceStatus", "sendApduFn", "updateStateFn", "deviceModelId", "logger", "refreshObservable", "DeviceModelId", "interval", "parsedResponse", "isSuccessCommandResult", "state", "DeviceSessionStateType", "parentObservable", "from", "filter", "DeviceStatus", "switchMap", "rawApdu", "map", "resp", "error", "data", "nanoSRefreshObservable", "timeoutObservable", "of", "delay", "_", "race", "__decorateClass", "injectable"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Left as v,Right as m}from"purify-ts";import{CommandResultFactory as u}from"../../../api/command/model/CommandResult";import{GetAppAndVersionCommand as p}from"../../../api/command/os/GetAppAndVersionCommand";import{GetOsVersionCommand as l}from"../../../api/command/os/GetOsVersionCommand";import{DeviceModelId as r}from"../../../api/device/DeviceModel";import{DeviceStatus as a}from"../../../api/device/DeviceStatus";import{DEVICE_SESSION_REFRESH_INTERVAL as s}from"../../device-session/data/DeviceSessionRefresherConst";import{DefaultLoggerPublisherService as h}from"../../logger-publisher/service/DefaultLoggerPublisherService";import{DeviceSessionRefresher as c}from"./DeviceSessionRefresher";const e=jest.fn().mockResolvedValue(Promise.resolve(m({}))),i=jest.fn().mockImplementation(()=>{});jest.useFakeTimers();describe("DeviceSessionRefresher",()=>{let t,n;beforeEach(()=>{jest.spyOn(p.prototype,"parseResponse").mockReturnValueOnce(u({data:{name:"testAppName"}})),jest.spyOn(l.prototype,"parseResponse").mockReturnValueOnce(u({data:{}})),n=new h([],"DeviceSessionRefresherTest")}),describe("With a modern device",()=>{beforeEach(()=>{const o=Object.values(r).filter(d=>d!==r.NANO_S);t=new c({refreshInterval:s,deviceStatus:a.CONNECTED,sendApduFn:e,updateStateFn:i,deviceModelId:o[Math.floor(Math.random()*o.length)]},n)}),afterEach(()=>{t.stop(),jest.clearAllMocks()}),it("should poll by calling sendApduFn 2 times",()=>{jest.advanceTimersByTime(s*2),expect(e).toHaveBeenCalledTimes(2)}),it("should not poll when device is busy",()=>{t.setDeviceStatus(a.BUSY),jest.advanceTimersByTime(s),expect(e).not.toHaveBeenCalled()}),it("should not poll when device is disconnected",()=>{t.setDeviceStatus(a.NOT_CONNECTED),jest.advanceTimersByTime(s),expect(e).not.toHaveBeenCalled()}),it("should update device session state by calling updateStateFn",async()=>{jest.advanceTimersByTime(s),await expect(e()).resolves.toEqual(m({})),expect(e).toHaveBeenCalled(),expect(i).toHaveBeenCalled()}),it("should not update device session state with failed polling response",async()=>{e.mockResolvedValueOnce(Promise.resolve(v("error")));const o=jest.spyOn(n,"error");jest.advanceTimersByTime(s),await e(),await expect(i).not.toHaveBeenCalled(),expect(o).toHaveBeenCalled()}),it("should stop the refresher when device is disconnected",()=>{const o=jest.spyOn(t,"stop");t.setDeviceStatus(a.NOT_CONNECTED),expect(o).toHaveBeenCalledTimes(1)}),it("should not throw error if stop is called on a stopped refresher",()=>{t.stop(),expect(()=>t.stop()).not.toThrow()})}),describe("With a NanoS device",()=>{afterEach(()=>{t.stop(),jest.clearAllMocks()}),it("should call sendApduFn 2 times and update state 1 time for a single interval",async()=>{t=new c({refreshInterval:s,deviceStatus:a.CONNECTED,sendApduFn:e,updateStateFn:i,deviceModelId:r.NANO_S},n),jest.advanceTimersByTime(s*2+100),await Promise.resolve(),expect(e).toHaveBeenNthCalledWith(1,new p().getApdu().getRawApdu()),await Promise.resolve(),expect(e).toHaveBeenLastCalledWith(new l().getApdu().getRawApdu()),await Promise.resolve(),expect(e).toHaveBeenCalledTimes(2),await Promise.resolve(),expect(i).toHaveBeenCalledTimes(1)}),it("should set device locked when get os version times out",async()=>{e.mockImplementation(o=>o.toString()===new l().getApdu().getRawApdu().toString()?new Promise(d=>setTimeout(()=>d(v("timeout")),s*10)):Promise.resolve(m({}))),i.mockImplementation(o=>{t.setDeviceStatus(o().deviceStatus)}),t=new c({refreshInterval:s,deviceStatus:a.CONNECTED,sendApduFn:e,updateStateFn:i,deviceModelId:r.NANO_S},n),jest.spyOn(t,"setDeviceStatus"),jest.advanceTimersByTime(s*5+100),await Promise.resolve(),expect(e).toHaveBeenNthCalledWith(1,new p().getApdu().getRawApdu()),await Promise.resolve(),expect(t.setDeviceStatus).toHaveBeenCalledWith(a.LOCKED)})})});
1
+ import{Left as v,Right as m}from"purify-ts";import{CommandResultFactory as u}from"../../../api/command/model/CommandResult";import{GetAppAndVersionCommand as l}from"../../../api/command/os/GetAppAndVersionCommand";import{GetOsVersionCommand as p}from"../../../api/command/os/GetOsVersionCommand";import{DeviceModelId as n}from"../../../api/device/DeviceModel";import{DeviceStatus as a}from"../../../api/device/DeviceStatus";import{DEVICE_SESSION_REFRESH_INTERVAL as s}from"../../device-session/data/DeviceSessionRefresherConst";import{DefaultLoggerPublisherService as h}from"../../logger-publisher/service/DefaultLoggerPublisherService";import{DeviceSessionRefresher as c}from"./DeviceSessionRefresher";const t=jest.fn().mockResolvedValue(Promise.resolve(m({}))),i=jest.fn().mockImplementation(()=>{});jest.useFakeTimers();describe("DeviceSessionRefresher",()=>{let e,r;beforeEach(()=>{jest.spyOn(l.prototype,"parseResponse").mockReturnValueOnce(u({data:{name:"testAppName"}})),jest.spyOn(p.prototype,"parseResponse").mockReturnValueOnce(u({data:{}})),r=new h([],"DeviceSessionRefresherTest")}),describe("With a modern device",()=>{beforeEach(()=>{const o=Object.values(n).filter(d=>d!==n.NANO_S);e=new c({refreshInterval:s,deviceStatus:a.CONNECTED,sendApduFn:t,updateStateFn:i,deviceModelId:o[Math.floor(Math.random()*o.length)]},r)}),afterEach(()=>{e.stop(),jest.clearAllMocks()}),it("should poll by calling sendApduFn 2 times",()=>{jest.advanceTimersByTime(s*2),expect(t).toHaveBeenCalledTimes(2)}),it("should not poll when device is busy",()=>{e.setDeviceStatus(a.BUSY),jest.advanceTimersByTime(s),expect(t).not.toHaveBeenCalled()}),it("should not poll when device is disconnected",()=>{e.setDeviceStatus(a.NOT_CONNECTED),jest.advanceTimersByTime(s),expect(t).not.toHaveBeenCalled()}),it("should update device session state by calling updateStateFn",async()=>{jest.advanceTimersByTime(s),await expect(t()).resolves.toEqual(m({})),expect(t).toHaveBeenCalled(),expect(i).toHaveBeenCalled()}),it("should not update device session state with failed polling response",async()=>{t.mockResolvedValueOnce(Promise.resolve(v("error")));const o=jest.spyOn(r,"error");jest.advanceTimersByTime(s),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.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({refreshInterval:s,deviceStatus:a.CONNECTED,sendApduFn:t,updateStateFn:i,deviceModelId:n.NANO_S},r),jest.advanceTimersByTime(s*2+100),await Promise.resolve(),expect(t).toHaveBeenNthCalledWith(1,new l().getApdu().getRawApdu()),await Promise.resolve(),expect(t).toHaveBeenLastCalledWith(new p().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().getApdu().getRawApdu().toString()?new Promise(d=>setTimeout(()=>d(v("timeout")),s*10)):Promise.resolve(m({}))),i.mockImplementation(o=>{e.setDeviceStatus(o().deviceStatus)}),e=new c({refreshInterval:s,deviceStatus:a.CONNECTED,sendApduFn:t,updateStateFn:i,deviceModelId:n.NANO_S},r),jest.spyOn(e,"setDeviceStatus"),jest.advanceTimersByTime(s*5+100),await Promise.resolve(),expect(t).toHaveBeenNthCalledWith(1,new l().getApdu().getRawApdu()),await Promise.resolve(),expect(e.setDeviceStatus).toHaveBeenCalledWith(a.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 { DEVICE_SESSION_REFRESH_INTERVAL } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\nimport { type LoggerPublisherService } from \"@internal/logger-publisher/service/LoggerPublisherService\";\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\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 { 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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",
6
6
  "names": ["Left", "Right", "CommandResultFactory", "GetAppAndVersionCommand", "GetOsVersionCommand", "DeviceModelId", "DeviceStatus", "DEVICE_SESSION_REFRESH_INTERVAL", "DefaultLoggerPublisherService", "DeviceSessionRefresher", "mockSendApduFn", "mockUpdateStateFn", "deviceSessionRefresher", "logger", "deviceIds", "id", "spy", "apdu", "resolve", "getState"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/model/Errors.ts"],
4
- "sourcesContent": ["import { type DmkError } from \"@root/src/api/Error\";\n\nexport class FramerOverflowError implements DmkError {\n readonly _tag = \"FramerOverflowError\";\n originalError?: Error;\n constructor() {\n this.originalError = new Error(\n \"Frame header length is greater than frame size\",\n );\n }\n}\n\nexport class FramerApduError implements DmkError {\n readonly _tag = \"FramerApduError\";\n originalError?: Error;\n\n constructor() {\n this.originalError = new Error(\"Frame offset is greater than apdu length\");\n }\n}\n\nexport class ReceiverApduError implements DmkError {\n readonly _tag = \"ReceiverApduError\";\n originalError: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Unable to parse apdu\");\n }\n}\n\nexport class DeviceSessionNotFound implements DmkError {\n readonly _tag = \"DeviceSessionNotFound\";\n originalError?: Error;\n\n constructor(originalError?: Error) {\n this.originalError = originalError ?? new Error(\"Device session not found\");\n }\n}\n\nexport class DeviceSessionRefresherError implements DmkError {\n readonly _tag = \"DeviceSessionRefresherError\";\n originalError?: Error;\n\n constructor(originalError?: Error) {\n this.originalError =\n originalError ?? new Error(\"Device session refresher error\");\n }\n}\n"],
4
+ "sourcesContent": ["import { type DmkError } from \"@api/Error\";\n\nexport class FramerOverflowError implements DmkError {\n readonly _tag = \"FramerOverflowError\";\n originalError?: Error;\n constructor() {\n this.originalError = new Error(\n \"Frame header length is greater than frame size\",\n );\n }\n}\n\nexport class FramerApduError implements DmkError {\n readonly _tag = \"FramerApduError\";\n originalError?: Error;\n\n constructor() {\n this.originalError = new Error(\"Frame offset is greater than apdu length\");\n }\n}\n\nexport class ReceiverApduError implements DmkError {\n readonly _tag = \"ReceiverApduError\";\n originalError: Error;\n\n constructor(message?: string) {\n this.originalError = new Error(message ?? \"Unable to parse apdu\");\n }\n}\n\nexport class DeviceSessionNotFound implements DmkError {\n readonly _tag = \"DeviceSessionNotFound\";\n originalError?: Error;\n\n constructor(originalError?: Error) {\n this.originalError = originalError ?? new Error(\"Device session not found\");\n }\n}\n\nexport class DeviceSessionRefresherError implements DmkError {\n readonly _tag = \"DeviceSessionRefresherError\";\n originalError?: Error;\n\n constructor(originalError?: Error) {\n this.originalError =\n originalError ?? new Error(\"Device session refresher error\");\n }\n}\n"],
5
5
  "mappings": "AAEO,MAAMA,CAAwC,CAC1C,KAAO,sBAChB,cACA,aAAc,CACZ,KAAK,cAAgB,IAAI,MACvB,gDACF,CACF,CACF,CAEO,MAAMC,CAAoC,CACtC,KAAO,kBAChB,cAEA,aAAc,CACZ,KAAK,cAAgB,IAAI,MAAM,0CAA0C,CAC3E,CACF,CAEO,MAAMC,CAAsC,CACxC,KAAO,oBAChB,cAEA,YAAYC,EAAkB,CAC5B,KAAK,cAAgB,IAAI,MAAMA,GAAW,sBAAsB,CAClE,CACF,CAEO,MAAMC,CAA0C,CAC5C,KAAO,wBAChB,cAEA,YAAYC,EAAuB,CACjC,KAAK,cAAgBA,GAAiB,IAAI,MAAM,0BAA0B,CAC5E,CACF,CAEO,MAAMC,CAAgD,CAClD,KAAO,8BAChB,cAEA,YAAYD,EAAuB,CACjC,KAAK,cACHA,GAAiB,IAAI,MAAM,gCAAgC,CAC/D,CACF",
6
6
  "names": ["FramerOverflowError", "FramerApduError", "ReceiverApduError", "message", "DeviceSessionNotFound", "originalError", "DeviceSessionRefresherError"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{FramerUtils as h}from"../../device-session/utils/FramerUtils";class d{_uuid;_channel;_headTag;_index;_length;_dataLength;constructor({uuid:t,dataSize:e,index:r,headTag:a,length:n,channel:i}){this._uuid=t,this._dataLength=e,this._index=r,this._headTag=a,this._length=n,this._channel=i}getDataLength(){return this._dataLength.map(t=>h.bytesToNumber(t))}setDataSize(t){return this._dataLength=t,this}getLength(){return this._length}toString(){return JSON.stringify({uuid:this._uuid.toString(),dataSize:this._dataLength.extract()?.toString(),index:this._index.toString(),headTag:this._headTag.toString(),length:this._length.toString(),channel:this._channel.extract()?.toString()})}getRawData(){return new Uint8Array([...this._channel.caseOf({Just:t=>[...t],Nothing:()=>[]}),...this._headTag,...this._index,...this._dataLength.caseOf({Just:t=>[...t],Nothing:()=>[]})])}}export{d as FrameHeader};
1
+ import{FramerUtils as h}from"../../../api/device-session/utils/FramerUtils";class d{_uuid;_channel;_headTag;_index;_length;_dataLength;constructor({uuid:t,dataSize:e,index:r,headTag:a,length:n,channel:i}){this._uuid=t,this._dataLength=e,this._index=r,this._headTag=a,this._length=n,this._channel=i}getDataLength(){return this._dataLength.map(t=>h.bytesToNumber(t))}setDataSize(t){return this._dataLength=t,this}getLength(){return this._length}toString(){return JSON.stringify({uuid:this._uuid.toString(),dataSize:this._dataLength.extract()?.toString(),index:this._index.toString(),headTag:this._headTag.toString(),length:this._length.toString(),channel:this._channel.extract()?.toString()})}getRawData(){return new Uint8Array([...this._channel.caseOf({Just:t=>[...t],Nothing:()=>[]}),...this._headTag,...this._index,...this._dataLength.caseOf({Just:t=>[...t],Nothing:()=>[]})])}}export{d as FrameHeader};
2
2
  //# sourceMappingURL=FrameHeader.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/model/FrameHeader.ts"],
4
- "sourcesContent": ["import { type Maybe } from \"purify-ts\";\n\nimport { FramerUtils } from \"@internal/device-session/utils/FramerUtils\";\n\ntype FrameHeaderConstructorArgs = {\n uuid: string;\n channel: Maybe<Uint8Array>;\n headTag: Uint8Array;\n index: Uint8Array;\n length: number;\n dataSize: Maybe<Uint8Array>;\n};\n\nexport class FrameHeader {\n protected _uuid: string;\n protected _channel: Maybe<Uint8Array>;\n protected _headTag: Uint8Array;\n protected _index: Uint8Array;\n protected _length: number;\n protected _dataLength: Maybe<Uint8Array>;\n constructor({\n uuid,\n dataSize,\n index,\n headTag,\n length,\n channel,\n }: FrameHeaderConstructorArgs) {\n this._uuid = uuid;\n this._dataLength = dataSize;\n this._index = index;\n this._headTag = headTag;\n this._length = length;\n this._channel = channel;\n }\n getDataLength(): Maybe<number> {\n return this._dataLength.map((value) => FramerUtils.bytesToNumber(value));\n }\n setDataSize(dataSize: Maybe<Uint8Array>): FrameHeader {\n this._dataLength = dataSize;\n return this;\n }\n getLength(): number {\n return this._length;\n }\n toString(): string {\n return JSON.stringify({\n uuid: this._uuid.toString(),\n dataSize: this._dataLength.extract()?.toString(),\n index: this._index.toString(),\n headTag: this._headTag.toString(),\n length: this._length.toString(),\n channel: this._channel.extract()?.toString(),\n });\n }\n getRawData(): Uint8Array {\n return new Uint8Array([\n ...this._channel.caseOf({\n Just: (channel) => [...channel],\n Nothing: () => [],\n }),\n ...this._headTag,\n ...this._index,\n ...this._dataLength.caseOf({\n Just: (dataSize) => [...dataSize],\n Nothing: () => [],\n }),\n ]);\n }\n}\n"],
5
- "mappings": "AAEA,OAAS,eAAAA,MAAmB,6CAWrB,MAAMC,CAAY,CACb,MACA,SACA,SACA,OACA,QACA,YACV,YAAY,CACV,KAAAC,EACA,SAAAC,EACA,MAAAC,EACA,QAAAC,EACA,OAAAC,EACA,QAAAC,CACF,EAA+B,CAC7B,KAAK,MAAQL,EACb,KAAK,YAAcC,EACnB,KAAK,OAASC,EACd,KAAK,SAAWC,EAChB,KAAK,QAAUC,EACf,KAAK,SAAWC,CAClB,CACA,eAA+B,CAC7B,OAAO,KAAK,YAAY,IAAKC,GAAUR,EAAY,cAAcQ,CAAK,CAAC,CACzE,CACA,YAAYL,EAA0C,CACpD,YAAK,YAAcA,EACZ,IACT,CACA,WAAoB,CAClB,OAAO,KAAK,OACd,CACA,UAAmB,CACjB,OAAO,KAAK,UAAU,CACpB,KAAM,KAAK,MAAM,SAAS,EAC1B,SAAU,KAAK,YAAY,QAAQ,GAAG,SAAS,EAC/C,MAAO,KAAK,OAAO,SAAS,EAC5B,QAAS,KAAK,SAAS,SAAS,EAChC,OAAQ,KAAK,QAAQ,SAAS,EAC9B,QAAS,KAAK,SAAS,QAAQ,GAAG,SAAS,CAC7C,CAAC,CACH,CACA,YAAyB,CACvB,OAAO,IAAI,WAAW,CACpB,GAAG,KAAK,SAAS,OAAO,CACtB,KAAOI,GAAY,CAAC,GAAGA,CAAO,EAC9B,QAAS,IAAM,CAAC,CAClB,CAAC,EACD,GAAG,KAAK,SACR,GAAG,KAAK,OACR,GAAG,KAAK,YAAY,OAAO,CACzB,KAAOJ,GAAa,CAAC,GAAGA,CAAQ,EAChC,QAAS,IAAM,CAAC,CAClB,CAAC,CACH,CAAC,CACH,CACF",
4
+ "sourcesContent": ["import { type Maybe } from \"purify-ts\";\n\nimport { FramerUtils } from \"@api/device-session/utils/FramerUtils\";\n\ntype FrameHeaderConstructorArgs = {\n uuid: string;\n channel: Maybe<Uint8Array>;\n headTag: Uint8Array;\n index: Uint8Array;\n length: number;\n dataSize: Maybe<Uint8Array>;\n};\n\nexport class FrameHeader {\n protected _uuid: string;\n protected _channel: Maybe<Uint8Array>;\n protected _headTag: Uint8Array;\n protected _index: Uint8Array;\n protected _length: number;\n protected _dataLength: Maybe<Uint8Array>;\n constructor({\n uuid,\n dataSize,\n index,\n headTag,\n length,\n channel,\n }: FrameHeaderConstructorArgs) {\n this._uuid = uuid;\n this._dataLength = dataSize;\n this._index = index;\n this._headTag = headTag;\n this._length = length;\n this._channel = channel;\n }\n getDataLength(): Maybe<number> {\n return this._dataLength.map((value) => FramerUtils.bytesToNumber(value));\n }\n setDataSize(dataSize: Maybe<Uint8Array>): FrameHeader {\n this._dataLength = dataSize;\n return this;\n }\n getLength(): number {\n return this._length;\n }\n toString(): string {\n return JSON.stringify({\n uuid: this._uuid.toString(),\n dataSize: this._dataLength.extract()?.toString(),\n index: this._index.toString(),\n headTag: this._headTag.toString(),\n length: this._length.toString(),\n channel: this._channel.extract()?.toString(),\n });\n }\n getRawData(): Uint8Array {\n return new Uint8Array([\n ...this._channel.caseOf({\n Just: (channel) => [...channel],\n Nothing: () => [],\n }),\n ...this._headTag,\n ...this._index,\n ...this._dataLength.caseOf({\n Just: (dataSize) => [...dataSize],\n Nothing: () => [],\n }),\n ]);\n }\n}\n"],
5
+ "mappings": "AAEA,OAAS,eAAAA,MAAmB,wCAWrB,MAAMC,CAAY,CACb,MACA,SACA,SACA,OACA,QACA,YACV,YAAY,CACV,KAAAC,EACA,SAAAC,EACA,MAAAC,EACA,QAAAC,EACA,OAAAC,EACA,QAAAC,CACF,EAA+B,CAC7B,KAAK,MAAQL,EACb,KAAK,YAAcC,EACnB,KAAK,OAASC,EACd,KAAK,SAAWC,EAChB,KAAK,QAAUC,EACf,KAAK,SAAWC,CAClB,CACA,eAA+B,CAC7B,OAAO,KAAK,YAAY,IAAKC,GAAUR,EAAY,cAAcQ,CAAK,CAAC,CACzE,CACA,YAAYL,EAA0C,CACpD,YAAK,YAAcA,EACZ,IACT,CACA,WAAoB,CAClB,OAAO,KAAK,OACd,CACA,UAAmB,CACjB,OAAO,KAAK,UAAU,CACpB,KAAM,KAAK,MAAM,SAAS,EAC1B,SAAU,KAAK,YAAY,QAAQ,GAAG,SAAS,EAC/C,MAAO,KAAK,OAAO,SAAS,EAC5B,QAAS,KAAK,SAAS,SAAS,EAChC,OAAQ,KAAK,QAAQ,SAAS,EAC9B,QAAS,KAAK,SAAS,QAAQ,GAAG,SAAS,CAC7C,CAAC,CACH,CACA,YAAyB,CACvB,OAAO,IAAI,WAAW,CACpB,GAAG,KAAK,SAAS,OAAO,CACtB,KAAOI,GAAY,CAAC,GAAGA,CAAO,EAC9B,QAAS,IAAM,CAAC,CAClB,CAAC,EACD,GAAG,KAAK,SACR,GAAG,KAAK,OACR,GAAG,KAAK,YAAY,OAAO,CACzB,KAAOJ,GAAa,CAAC,GAAGA,CAAQ,EAChC,QAAS,IAAM,CAAC,CAClB,CAAC,CACH,CAAC,CACH,CACF",
6
6
  "names": ["FramerUtils", "FrameHeader", "uuid", "dataSize", "index", "headTag", "length", "channel", "value"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var R=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var d=(s,e,r,t)=>{for(var n=t>1?void 0:t?S(e,r):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(e,r,n):a(n))||n);return t&&n&&R(e,r,n),n},l=(s,e)=>(r,t)=>e(r,t,s);import{inject as U,injectable as N}from"inversify";import{Just as u,Left as F,Maybe as T,Nothing as p,Right as D}from"purify-ts";import{v4 as H}from"uuid";import{ApduResponse as C}from"../../../api/device-session/ApduResponse";import{APDU_RESPONSE_STATUS_CODE_LENGTH as _}from"../../device-session/data/ApduResponseConst";import{APDU_DATA_LENGTH_LENGTH as G,CHANNEL_LENGTH as P,HEAD_TAG_LENGTH as o,INDEX_LENGTH as c}from"../../device-session/data/FramerConst";import{ReceiverApduError as f}from"../../device-session/model/Errors";import{Frame as x}from"../../device-session/model/Frame";import{FrameHeader as z}from"../../device-session/model/FrameHeader";import{FramerUtils as h}from"../../device-session/utils/FramerUtils";import{loggerTypes as M}from"../../logger-publisher/di/loggerTypes";let g=class{_channel;_logger;_pendingFrames;constructor({channel:e=T.zero()},r){this._channel=e,this._logger=r("ApduReceiverService"),this._pendingFrames=[]}handleFrame(e){return this.getFrameFromBytes(e).map(t=>{if(this._logger.debug("handle frame",{data:{frame:t.getRawData()}}),this._pendingFrames.push(t),!this._pendingFrames[0])return p;const n=this._pendingFrames[0].getHeader().getDataLength();return this.getCompleteFrame(n)})}getCompleteFrame(e){return e.chain(r=>{if(!this.isComplete(r))return this._logger.debug("frame is not complete, waiting for more"),p;const t=h.getFirstBytesFrom(this.concatFrames(this._pendingFrames),r),n=h.getFirstBytesFrom(t,t.length-_),i=h.getLastBytesFrom(t,_);return this._pendingFrames=[],u(new C({data:n,statusCode:i}))})}getFrameFromBytes(e){const r=this._channel.caseOf({Just:()=>P,Nothing:()=>0}),t=e.slice(r,r+o),n=e.slice(r+o,r+o+c),i=n.reduce((v,L)=>v+L,0)===0;if(!i&&this._pendingFrames.length===0)return F(new f);const a=r+o+c,m=i?G:0;if(e.length<r+o+c+m)return F(new f("Unable to parse header from apdu"));const A=i?u(e.slice(a,a+m)):p,y=a+m,b=e.slice(y),E=new x({header:new z({uuid:H(),channel:this._channel,dataSize:A,headTag:t,index:n,length:r+o+c+m}),data:b});return D(E)}isComplete(e){return this._pendingFrames.reduce((t,n)=>t+n.getData().length,0)>=e}concatFrames(e){return e.reduce((r,t)=>Uint8Array.from([...r,...t.getData()]),new Uint8Array(0))}};g=d([N(),l(1,U(M.LoggerPublisherServiceFactory))],g);export{g as DefaultApduReceiverService};
1
+ var R=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var d=(s,e,r,t)=>{for(var n=t>1?void 0:t?S(e,r):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(e,r,n):a(n))||n);return t&&n&&R(e,r,n),n},l=(s,e)=>(r,t)=>e(r,t,s);import{inject as N,injectable as T}from"inversify";import{Just as u,Left as F,Maybe as U,Nothing as p,Right as H}from"purify-ts";import{v4 as C}from"uuid";import{ApduResponse as D}from"../../../api/device-session/ApduResponse";import{APDU_DATA_LENGTH_LENGTH as G,CHANNEL_LENGTH as P,HEAD_TAG_LENGTH as o,INDEX_LENGTH as g}from"../../../api/device-session/data/FramerConst";import{FramerUtils as h}from"../../../api/device-session/utils/FramerUtils";import{APDU_RESPONSE_STATUS_CODE_LENGTH as _}from"../../device-session/data/ApduResponseConst";import{ReceiverApduError as f}from"../../device-session/model/Errors";import{Frame as z}from"../../device-session/model/Frame";import{FrameHeader as x}from"../../device-session/model/FrameHeader";import{loggerTypes as B}from"../../logger-publisher/di/loggerTypes";let c=class{_channel;_logger;_pendingFrames;constructor({channel:e=U.zero()},r){this._channel=e,this._logger=r("ApduReceiverService"),this._pendingFrames=[]}handleFrame(e){return this.getFrameFromBytes(e).map(t=>{if(this._logger.debug("handle frame",{data:{frame:t.getRawData()}}),this._pendingFrames.push(t),!this._pendingFrames[0])return p;const n=this._pendingFrames[0].getHeader().getDataLength();return this.getCompleteFrame(n)})}getCompleteFrame(e){return e.chain(r=>{if(!this.isComplete(r))return this._logger.debug("frame is not complete, waiting for more"),p;const t=h.getFirstBytesFrom(this.concatFrames(this._pendingFrames),r),n=h.getFirstBytesFrom(t,t.length-_),i=h.getLastBytesFrom(t,_);return this._pendingFrames=[],u(new D({data:n,statusCode:i}))})}getFrameFromBytes(e){const r=this._channel.caseOf({Just:()=>P,Nothing:()=>0}),t=e.slice(r,r+o),n=e.slice(r+o,r+o+g),i=n.reduce((v,L)=>v+L,0)===0;if(!i&&this._pendingFrames.length===0)return F(new f);const a=r+o+g,m=i?G:0;if(e.length<r+o+g+m)return F(new f("Unable to parse header from apdu"));const A=i?u(e.slice(a,a+m)):p,y=a+m,E=e.slice(y),b=new z({header:new x({uuid:C(),channel:this._channel,dataSize:A,headTag:t,index:n,length:r+o+g+m}),data:E});return H(b)}isComplete(e){return this._pendingFrames.reduce((t,n)=>t+n.getData().length,0)>=e}concatFrames(e){return e.reduce((r,t)=>Uint8Array.from([...r,...t.getData()]),new Uint8Array(0))}};c=d([T(),l(1,N(B.LoggerPublisherServiceFactory))],c);export{c as DefaultApduReceiverService};
2
2
  //# sourceMappingURL=DefaultApduReceiverService.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/service/DefaultApduReceiverService.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { Either, Just, Left, Maybe, Nothing, Right } from \"purify-ts\";\nimport { v4 } from \"uuid\";\n\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { APDU_RESPONSE_STATUS_CODE_LENGTH } from \"@internal/device-session/data/ApduResponseConst\";\nimport {\n APDU_DATA_LENGTH_LENGTH,\n CHANNEL_LENGTH,\n HEAD_TAG_LENGTH,\n INDEX_LENGTH,\n} from \"@internal/device-session/data/FramerConst\";\nimport { ReceiverApduError } from \"@internal/device-session/model/Errors\";\nimport { Frame } from \"@internal/device-session/model/Frame\";\nimport { FrameHeader } from \"@internal/device-session/model/FrameHeader\";\nimport { FramerUtils } from \"@internal/device-session/utils/FramerUtils\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport { LoggerPublisherService } from \"@internal/logger-publisher/service/LoggerPublisherService\";\n\nimport { ApduReceiverService } from \"./ApduReceiverService\";\n\nexport type DefaultApduReceiverConstructorArgs = {\n channel?: Maybe<Uint8Array>;\n};\n\n@injectable()\nexport class DefaultApduReceiverService implements ApduReceiverService {\n private readonly _channel: Maybe<Uint8Array>;\n private readonly _logger: LoggerPublisherService;\n private _pendingFrames: Frame[];\n\n constructor(\n { channel = Maybe.zero() }: DefaultApduReceiverConstructorArgs,\n @inject(loggerTypes.LoggerPublisherServiceFactory)\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n ) {\n this._channel = channel;\n this._logger = loggerModuleFactory(\"ApduReceiverService\");\n this._pendingFrames = [];\n }\n\n /*\n * Return\n * - A complete ApduResponse\n * - Or a Nothing if not all the data has been received\n * - Or a ReceiverApduError if the apdu is not formatted correctly\n *\n * @param Uint8Array\n */\n public handleFrame(\n frameBytes: Uint8Array,\n ): Either<ReceiverApduError, Maybe<ApduResponse>> {\n const frame = this.getFrameFromBytes(frameBytes);\n\n return frame.map((value) => {\n this._logger.debug(\"handle frame\", {\n data: { frame: value.getRawData() },\n });\n this._pendingFrames.push(value);\n if (!this._pendingFrames[0]) {\n return Nothing;\n }\n const dataSize = this._pendingFrames[0].getHeader().getDataLength();\n return this.getCompleteFrame(dataSize);\n });\n }\n\n /*\n * Return\n * - A complete ApduResponse\n * - Or a Nothing if not all the data has been received\n *\n * @param Maybe<number>\n */\n private getCompleteFrame(dataSize: Maybe<number>): Maybe<ApduResponse> {\n return dataSize.chain((value) => {\n if (!this.isComplete(value)) {\n this._logger.debug(\"frame is not complete, waiting for more\");\n return Nothing;\n }\n\n const concatenatedFramesData = FramerUtils.getFirstBytesFrom(\n this.concatFrames(this._pendingFrames),\n value,\n );\n const data = FramerUtils.getFirstBytesFrom(\n concatenatedFramesData,\n concatenatedFramesData.length - APDU_RESPONSE_STATUS_CODE_LENGTH,\n );\n const statusCode = FramerUtils.getLastBytesFrom(\n concatenatedFramesData,\n APDU_RESPONSE_STATUS_CODE_LENGTH,\n );\n\n this._pendingFrames = [];\n\n return Just(\n new ApduResponse({\n data: data,\n statusCode,\n }),\n );\n });\n }\n\n /*\n * Parse an Uint8Array to a Frame\n * Return an error if the frame is not formatted correctly\n *\n * @param Uint8Array\n */\n private getFrameFromBytes(\n rawFrame: Uint8Array,\n ): Either<ReceiverApduError, Frame> {\n const channelSize = this._channel.caseOf({\n Just: () => CHANNEL_LENGTH,\n Nothing: () => 0,\n });\n\n const headTag = rawFrame.slice(channelSize, channelSize + HEAD_TAG_LENGTH);\n const index = rawFrame.slice(\n channelSize + HEAD_TAG_LENGTH,\n channelSize + HEAD_TAG_LENGTH + INDEX_LENGTH,\n );\n\n const isFirstIndex = index.reduce((curr, val) => curr + val, 0) === 0;\n\n if (!isFirstIndex && this._pendingFrames.length === 0) {\n return Left(new ReceiverApduError());\n }\n\n const dataSizeIndex = channelSize + HEAD_TAG_LENGTH + INDEX_LENGTH;\n const dataSizeLength = isFirstIndex ? APDU_DATA_LENGTH_LENGTH : 0;\n\n if (\n rawFrame.length <\n channelSize + HEAD_TAG_LENGTH + INDEX_LENGTH + dataSizeLength\n ) {\n return Left(new ReceiverApduError(\"Unable to parse header from apdu\"));\n }\n\n const dataSize = isFirstIndex\n ? Just(rawFrame.slice(dataSizeIndex, dataSizeIndex + dataSizeLength))\n : Nothing;\n\n const dataIndex = dataSizeIndex + dataSizeLength;\n const data = rawFrame.slice(dataIndex);\n\n const frame = new Frame({\n header: new FrameHeader({\n uuid: v4(),\n channel: this._channel,\n dataSize,\n headTag,\n index,\n length: channelSize + HEAD_TAG_LENGTH + INDEX_LENGTH + dataSizeLength,\n }),\n data,\n });\n\n return Right(frame);\n }\n\n /*\n * Return true if all the datas has been received\n *\n * @param number\n */\n private isComplete(dataSize: number): boolean {\n const totalReceiveLength = this._pendingFrames.reduce(\n (prev, curr) => prev + curr.getData().length,\n 0,\n );\n\n return totalReceiveLength >= dataSize;\n }\n\n private concatFrames(frames: Frame[]): Uint8Array {\n return frames.reduce(\n (prev: Uint8Array, curr: Frame) =>\n Uint8Array.from([...prev, ...curr.getData()]),\n new Uint8Array(0),\n );\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["inject", "injectable", "Just", "Left", "Maybe", "Nothing", "Right", "v4", "ApduResponse", "APDU_RESPONSE_STATUS_CODE_LENGTH", "APDU_DATA_LENGTH_LENGTH", "CHANNEL_LENGTH", "HEAD_TAG_LENGTH", "INDEX_LENGTH", "ReceiverApduError", "Frame", "FrameHeader", "FramerUtils", "loggerTypes", "DefaultApduReceiverService", "channel", "Maybe", "loggerModuleFactory", "frameBytes", "value", "Nothing", "dataSize", "concatenatedFramesData", "FramerUtils", "data", "APDU_RESPONSE_STATUS_CODE_LENGTH", "statusCode", "Just", "ApduResponse", "rawFrame", "channelSize", "CHANNEL_LENGTH", "headTag", "HEAD_TAG_LENGTH", "index", "INDEX_LENGTH", "isFirstIndex", "curr", "val", "Left", "ReceiverApduError", "dataSizeIndex", "dataSizeLength", "APDU_DATA_LENGTH_LENGTH", "dataIndex", "frame", "Frame", "FrameHeader", "v4", "Right", "prev", "frames", "__decorateClass", "injectable", "__decorateParam", "inject", "loggerTypes"]
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { Either, Just, Left, Maybe, Nothing, Right } from \"purify-ts\";\nimport { v4 } from \"uuid\";\n\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\nimport {\n APDU_DATA_LENGTH_LENGTH,\n CHANNEL_LENGTH,\n HEAD_TAG_LENGTH,\n INDEX_LENGTH,\n} from \"@api/device-session/data/FramerConst\";\nimport {\n type ApduReceiverConstructorArgs,\n ApduReceiverService,\n} from \"@api/device-session/service/ApduReceiverService\";\nimport { FramerUtils } from \"@api/device-session/utils/FramerUtils\";\nimport { LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { APDU_RESPONSE_STATUS_CODE_LENGTH } from \"@internal/device-session/data/ApduResponseConst\";\nimport { ReceiverApduError } from \"@internal/device-session/model/Errors\";\nimport { Frame } from \"@internal/device-session/model/Frame\";\nimport { FrameHeader } from \"@internal/device-session/model/FrameHeader\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\n\n@injectable()\nexport class DefaultApduReceiverService implements ApduReceiverService {\n private readonly _channel: Maybe<Uint8Array>;\n private readonly _logger: LoggerPublisherService;\n private _pendingFrames: Frame[];\n\n constructor(\n { channel = Maybe.zero() }: ApduReceiverConstructorArgs,\n @inject(loggerTypes.LoggerPublisherServiceFactory)\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n ) {\n this._channel = channel;\n this._logger = loggerModuleFactory(\"ApduReceiverService\");\n this._pendingFrames = [];\n }\n\n /*\n * Return\n * - A complete ApduResponse\n * - Or a Nothing if not all the data has been received\n * - Or a ReceiverApduError if the apdu is not formatted correctly\n *\n * @param Uint8Array\n */\n public handleFrame(\n frameBytes: Uint8Array,\n ): Either<ReceiverApduError, Maybe<ApduResponse>> {\n const frame = this.getFrameFromBytes(frameBytes);\n\n return frame.map((value) => {\n this._logger.debug(\"handle frame\", {\n data: { frame: value.getRawData() },\n });\n this._pendingFrames.push(value);\n if (!this._pendingFrames[0]) {\n return Nothing;\n }\n const dataSize = this._pendingFrames[0].getHeader().getDataLength();\n return this.getCompleteFrame(dataSize);\n });\n }\n\n /*\n * Return\n * - A complete ApduResponse\n * - Or a Nothing if not all the data has been received\n *\n * @param Maybe<number>\n */\n private getCompleteFrame(dataSize: Maybe<number>): Maybe<ApduResponse> {\n return dataSize.chain((value) => {\n if (!this.isComplete(value)) {\n this._logger.debug(\"frame is not complete, waiting for more\");\n return Nothing;\n }\n\n const concatenatedFramesData = FramerUtils.getFirstBytesFrom(\n this.concatFrames(this._pendingFrames),\n value,\n );\n const data = FramerUtils.getFirstBytesFrom(\n concatenatedFramesData,\n concatenatedFramesData.length - APDU_RESPONSE_STATUS_CODE_LENGTH,\n );\n const statusCode = FramerUtils.getLastBytesFrom(\n concatenatedFramesData,\n APDU_RESPONSE_STATUS_CODE_LENGTH,\n );\n\n this._pendingFrames = [];\n\n return Just(\n new ApduResponse({\n data: data,\n statusCode,\n }),\n );\n });\n }\n\n /*\n * Parse an Uint8Array to a Frame\n * Return an error if the frame is not formatted correctly\n *\n * @param Uint8Array\n */\n private getFrameFromBytes(\n rawFrame: Uint8Array,\n ): Either<ReceiverApduError, Frame> {\n const channelSize = this._channel.caseOf({\n Just: () => CHANNEL_LENGTH,\n Nothing: () => 0,\n });\n\n const headTag = rawFrame.slice(channelSize, channelSize + HEAD_TAG_LENGTH);\n const index = rawFrame.slice(\n channelSize + HEAD_TAG_LENGTH,\n channelSize + HEAD_TAG_LENGTH + INDEX_LENGTH,\n );\n\n const isFirstIndex = index.reduce((curr, val) => curr + val, 0) === 0;\n\n if (!isFirstIndex && this._pendingFrames.length === 0) {\n return Left(new ReceiverApduError());\n }\n\n const dataSizeIndex = channelSize + HEAD_TAG_LENGTH + INDEX_LENGTH;\n const dataSizeLength = isFirstIndex ? APDU_DATA_LENGTH_LENGTH : 0;\n\n if (\n rawFrame.length <\n channelSize + HEAD_TAG_LENGTH + INDEX_LENGTH + dataSizeLength\n ) {\n return Left(new ReceiverApduError(\"Unable to parse header from apdu\"));\n }\n\n const dataSize = isFirstIndex\n ? Just(rawFrame.slice(dataSizeIndex, dataSizeIndex + dataSizeLength))\n : Nothing;\n\n const dataIndex = dataSizeIndex + dataSizeLength;\n const data = rawFrame.slice(dataIndex);\n\n const frame = new Frame({\n header: new FrameHeader({\n uuid: v4(),\n channel: this._channel,\n dataSize,\n headTag,\n index,\n length: channelSize + HEAD_TAG_LENGTH + INDEX_LENGTH + dataSizeLength,\n }),\n data,\n });\n\n return Right(frame);\n }\n\n /*\n * Return true if all the datas has been received\n *\n * @param number\n */\n private isComplete(dataSize: number): boolean {\n const totalReceiveLength = this._pendingFrames.reduce(\n (prev, curr) => prev + curr.getData().length,\n 0,\n );\n\n return totalReceiveLength >= dataSize;\n }\n\n private concatFrames(frames: Frame[]): Uint8Array {\n return frames.reduce(\n (prev: Uint8Array, curr: Frame) =>\n Uint8Array.from([...prev, ...curr.getData()]),\n new Uint8Array(0),\n );\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["inject", "injectable", "Just", "Left", "Maybe", "Nothing", "Right", "v4", "ApduResponse", "APDU_DATA_LENGTH_LENGTH", "CHANNEL_LENGTH", "HEAD_TAG_LENGTH", "INDEX_LENGTH", "FramerUtils", "APDU_RESPONSE_STATUS_CODE_LENGTH", "ReceiverApduError", "Frame", "FrameHeader", "loggerTypes", "DefaultApduReceiverService", "channel", "Maybe", "loggerModuleFactory", "frameBytes", "value", "Nothing", "dataSize", "concatenatedFramesData", "FramerUtils", "data", "APDU_RESPONSE_STATUS_CODE_LENGTH", "statusCode", "Just", "ApduResponse", "rawFrame", "channelSize", "CHANNEL_LENGTH", "headTag", "HEAD_TAG_LENGTH", "index", "INDEX_LENGTH", "isFirstIndex", "curr", "val", "Left", "ReceiverApduError", "dataSizeIndex", "dataSizeLength", "APDU_DATA_LENGTH_LENGTH", "dataIndex", "frame", "Frame", "FrameHeader", "v4", "Right", "prev", "frames", "__decorateClass", "injectable", "__decorateParam", "inject", "loggerTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import*as b from"uuid";import{Just as t,Left as l,Nothing as c,Right as d}from"purify-ts";import{ApduResponse as s}from"../../../api/device-session/ApduResponse";import{ReceiverApduError as u}from"../../device-session/model/Errors";import{DefaultLoggerPublisherService as y}from"../../logger-publisher/service/DefaultLoggerPublisherService";import{DefaultApduReceiverService as f}from"./DefaultApduReceiverService";jest.mock("uuid");const h=new y([],"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]),m=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]),r=[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 a;beforeAll(()=>{jest.spyOn(b,"v4").mockReturnValue("42")}),describe("without dataSize",()=>{beforeEach(()=>{a=new f({channel:t(new Uint8Array([170,170]))},()=>h)}),it("should return a left error when the first frame has no dataSize",()=>{const x=r[1],e=a.handleFrame(x);expect(e).toEqual(l(new u))})}),describe("[USB] With padding and channel",()=>{beforeEach(()=>{a=new f({channel:t(new Uint8Array([170,170]))},()=>h)}),it("should return a response directly when a frame is complete",()=>{const x=o,e=a.handleFrame(x);expect(e).toEqual(d(t(new s({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 x=[...r];let e=c;const n=[];for(;e.isNothing();){const i=x.shift();a.handleFrame(i).map(p=>{e=p,n.push(e)})}expect(n).toEqual([c,c,t(new s({data:new Uint8Array([...Array.from(r[0].slice(7)),...Array.from(r[1].slice(5)),...Array.from(r[2]).slice(5,45)]),statusCode:new Uint8Array([144,0])}))])}),it("should return two response directly when each frame is complete",()=>{const x=m,e=o,n=a.handleFrame(x),i=a.handleFrame(e);expect(n).toEqual(d(t(new s({data:new Uint8Array([]),statusCode:new Uint8Array([85,21])})))),expect(i).toEqual(d(t(new s({data:o.slice(7,38),statusCode:new Uint8Array([144,0])}))))}),it("should return an error if the frame is without index",()=>{const x=r[0].slice(0,4),e=a.handleFrame(x);expect(e).toEqual(l(new u("Unable to parse header from apdu")))}),it("should return an error if the frame is without datasize",()=>{const x=r[0].slice(0,6),e=a.handleFrame(x);expect(e).toEqual(l(new u("Unable to parse header from apdu")))})}),describe("[BLE] Without padding nor channel",()=>{beforeEach(()=>{a=new f({},()=>h)}),it("should return a response directly when a frame is complete",()=>{const x=o.slice(2,40),e=a.handleFrame(x);expect(e).toEqual(d(t(new s({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 x=[r[0].slice(2),r[1].slice(2),r[2].slice(2,47)];let e=c;const n=[];for(;e.isNothing();){const i=x.shift();a.handleFrame(i).map(p=>{e=p,n.push(e)})}expect(n).toEqual([c,c,t(new s({data:new Uint8Array([...Array.from(r[0].slice(7)),...Array.from(r[1].slice(5)),...Array.from(r[2]).slice(5,45)]),statusCode:new Uint8Array([144,0])}))])}),it("should return two response directly when each frame is complete",()=>{const x=m.slice(2,9),e=o.slice(2,40),n=a.handleFrame(x),i=a.handleFrame(e);expect(n).toEqual(d(t(new s({data:new Uint8Array([]),statusCode:new Uint8Array([85,21])})))),expect(i).toEqual(d(t(new s({data:o.slice(7,38),statusCode:new Uint8Array([144,0])}))))}),it("should return an error if the frame is without index",()=>{const x=r[0].slice(2,4),e=a.handleFrame(x);expect(e).toEqual(l(new u("Unable to parse header from apdu")))}),it("should return an error if the frame is without datasize",()=>{const x=r[0].slice(2,6),e=a.handleFrame(x);expect(e).toEqual(l(new u("Unable to parse header from apdu")))})})});
1
+ import{Just as t,Left as l,Nothing as c,Right as d}from"purify-ts";import{ApduResponse as s}from"../../../api/device-session/ApduResponse";import{ReceiverApduError as u}from"../../device-session/model/Errors";import{DefaultLoggerPublisherService as b}from"../../logger-publisher/service/DefaultLoggerPublisherService";import{DefaultApduReceiverService as f}from"./DefaultApduReceiverService";jest.mock("uuid");const h=new b([],"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]),m=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]),r=[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 a;beforeAll(()=>{jest.mock("uuid",()=>({v4:jest.fn().mockReturnValue("42")}))}),describe("without dataSize",()=>{beforeEach(()=>{a=new f({channel:t(new Uint8Array([170,170]))},()=>h)}),it("should return a left error when the first frame has no dataSize",()=>{const x=r[1],e=a.handleFrame(x);expect(e).toEqual(l(new u))})}),describe("[USB] With padding and channel",()=>{beforeEach(()=>{a=new f({channel:t(new Uint8Array([170,170]))},()=>h)}),it("should return a response directly when a frame is complete",()=>{const x=o,e=a.handleFrame(x);expect(e).toEqual(d(t(new s({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 x=[...r];let e=c;const n=[];for(;e.isNothing();){const i=x.shift();a.handleFrame(i).map(p=>{e=p,n.push(e)})}expect(n).toEqual([c,c,t(new s({data:new Uint8Array([...Array.from(r[0].slice(7)),...Array.from(r[1].slice(5)),...Array.from(r[2]).slice(5,45)]),statusCode:new Uint8Array([144,0])}))])}),it("should return two response directly when each frame is complete",()=>{const x=m,e=o,n=a.handleFrame(x),i=a.handleFrame(e);expect(n).toEqual(d(t(new s({data:new Uint8Array([]),statusCode:new Uint8Array([85,21])})))),expect(i).toEqual(d(t(new s({data:o.slice(7,38),statusCode:new Uint8Array([144,0])}))))}),it("should return an error if the frame is without index",()=>{const x=r[0].slice(0,4),e=a.handleFrame(x);expect(e).toEqual(l(new u("Unable to parse header from apdu")))}),it("should return an error if the frame is without datasize",()=>{const x=r[0].slice(0,6),e=a.handleFrame(x);expect(e).toEqual(l(new u("Unable to parse header from apdu")))})}),describe("[BLE] Without padding nor channel",()=>{beforeEach(()=>{a=new f({},()=>h)}),it("should return a response directly when a frame is complete",()=>{const x=o.slice(2,40),e=a.handleFrame(x);expect(e).toEqual(d(t(new s({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 x=[r[0].slice(2),r[1].slice(2),r[2].slice(2,47)];let e=c;const n=[];for(;e.isNothing();){const i=x.shift();a.handleFrame(i).map(p=>{e=p,n.push(e)})}expect(n).toEqual([c,c,t(new s({data:new Uint8Array([...Array.from(r[0].slice(7)),...Array.from(r[1].slice(5)),...Array.from(r[2]).slice(5,45)]),statusCode:new Uint8Array([144,0])}))])}),it("should return two response directly when each frame is complete",()=>{const x=m.slice(2,9),e=o.slice(2,40),n=a.handleFrame(x),i=a.handleFrame(e);expect(n).toEqual(d(t(new s({data:new Uint8Array([]),statusCode:new Uint8Array([85,21])})))),expect(i).toEqual(d(t(new s({data:o.slice(7,38),statusCode:new Uint8Array([144,0])}))))}),it("should return an error if the frame is without index",()=>{const x=r[0].slice(2,4),e=a.handleFrame(x);expect(e).toEqual(l(new u("Unable to parse header from apdu")))}),it("should return an error if the frame is without datasize",()=>{const x=r[0].slice(2,6),e=a.handleFrame(x);expect(e).toEqual(l(new u("Unable to parse header from apdu")))})})});
2
2
  //# sourceMappingURL=DefaultApduReceiverService.test.js.map