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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (557) hide show
  1. package/README.md +27 -31
  2. package/lib/cjs/index.js.map +1 -1
  3. package/lib/cjs/package.json +12 -8
  4. package/lib/cjs/src/api/DeviceManagementKit.js +1 -1
  5. package/lib/cjs/src/api/DeviceManagementKit.js.map +2 -2
  6. package/lib/cjs/src/api/DeviceManagementKit.test.js +1 -1
  7. package/lib/cjs/src/api/DeviceManagementKit.test.js.map +2 -2
  8. package/lib/cjs/src/api/DeviceManagementKitBuilder.js +1 -1
  9. package/lib/cjs/src/api/DeviceManagementKitBuilder.js.map +2 -2
  10. package/lib/cjs/src/api/DeviceManagementKitBuilder.test.js +1 -1
  11. package/lib/cjs/src/api/DeviceManagementKitBuilder.test.js.map +2 -2
  12. package/lib/cjs/src/api/DmkConfig.js +1 -1
  13. package/lib/cjs/src/api/DmkConfig.js.map +1 -1
  14. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.test.js +1 -1
  15. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.test.js.map +2 -2
  16. package/lib/cjs/src/api/command/model/CommandResult.js.map +1 -1
  17. package/lib/cjs/src/api/command/os/LoadCertificateCommand.js +2 -0
  18. package/lib/cjs/src/api/command/os/LoadCertificateCommand.js.map +7 -0
  19. package/lib/cjs/src/api/command/os/LoadCertificateCommand.test.js +2 -0
  20. package/lib/cjs/src/api/command/os/LoadCertificateCommand.test.js.map +7 -0
  21. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
  22. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js.map +3 -3
  23. package/lib/cjs/src/api/command/utils/CommandUtils.js +1 -1
  24. package/lib/cjs/src/api/command/utils/CommandUtils.js.map +3 -3
  25. package/lib/cjs/src/api/command/utils/CommandUtils.test.js +1 -1
  26. package/lib/cjs/src/api/command/utils/CommandUtils.test.js.map +3 -3
  27. package/lib/cjs/src/api/device-action/DeviceAction.js +1 -1
  28. package/lib/cjs/src/api/device-action/DeviceAction.js.map +1 -1
  29. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  30. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  31. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  32. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js.map +2 -2
  33. package/lib/cjs/src/api/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  34. package/lib/cjs/src/api/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  35. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js +2 -0
  36. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js.map +7 -0
  37. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +2 -0
  38. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +7 -0
  39. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js +2 -0
  40. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js.map +7 -0
  41. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  42. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +3 -3
  43. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +1 -1
  44. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +3 -3
  45. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js +1 -1
  46. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js.map +3 -3
  47. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js +1 -1
  48. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js.map +2 -2
  49. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +1 -1
  50. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +3 -3
  51. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js +1 -1
  52. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js.map +2 -2
  53. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  54. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +3 -3
  55. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/types.js +1 -1
  56. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/types.js.map +1 -1
  57. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
  58. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +2 -2
  59. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  60. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +3 -3
  61. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js +1 -1
  62. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js.map +1 -1
  63. package/lib/cjs/src/api/device-action/xstate-utils/XStateDeviceAction.js +1 -1
  64. package/lib/cjs/src/api/device-action/xstate-utils/XStateDeviceAction.js.map +3 -3
  65. package/lib/cjs/src/api/device-session/DeviceSessionState.js +1 -1
  66. package/lib/cjs/src/api/device-session/DeviceSessionState.js.map +2 -2
  67. package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js +1 -1
  68. package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js.map +3 -3
  69. package/lib/cjs/src/api/index.js +1 -1
  70. package/lib/cjs/src/api/index.js.map +3 -3
  71. package/lib/cjs/src/api/logger-subscriber/service/ConsoleLogger.test.js +1 -1
  72. package/lib/cjs/src/api/logger-subscriber/service/ConsoleLogger.test.js.map +2 -2
  73. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +1 -1
  74. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +2 -2
  75. package/lib/cjs/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.js +1 -1
  76. package/lib/cjs/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.js.map +2 -2
  77. package/lib/cjs/src/api/transport/model/DeviceApduSender.js +2 -0
  78. package/lib/cjs/src/api/transport/model/DeviceApduSender.js.map +7 -0
  79. package/lib/cjs/src/api/transport/model/DeviceConnection.js +1 -1
  80. package/lib/cjs/src/api/transport/model/DeviceConnection.js.map +1 -1
  81. package/lib/cjs/src/api/transport/model/DeviceConnectionFactory.stub.js +1 -1
  82. package/lib/cjs/src/api/transport/model/DeviceConnectionFactory.stub.js.map +2 -2
  83. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js +2 -0
  84. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js.map +7 -0
  85. package/lib/cjs/src/api/transport/model/DiscoveredDevice.js +1 -1
  86. package/lib/cjs/src/api/transport/model/DiscoveredDevice.js.map +1 -1
  87. package/lib/cjs/src/api/transport/model/Errors.js +1 -1
  88. package/lib/cjs/src/api/transport/model/Errors.js.map +3 -3
  89. package/lib/cjs/src/api/transport/model/Transport.js.map +1 -1
  90. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.stub.js +1 -1
  91. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.stub.js.map +2 -2
  92. package/lib/cjs/src/api/transport/model/TransportDiscoveredDevice.js +1 -1
  93. package/lib/cjs/src/api/transport/model/TransportDiscoveredDevice.js.map +1 -1
  94. package/lib/cjs/src/api/transport/model/__mocks__/TransportMock.js +1 -1
  95. package/lib/cjs/src/api/transport/model/__mocks__/TransportMock.js.map +2 -2
  96. package/lib/cjs/src/api/types.js.map +1 -1
  97. package/lib/cjs/src/api/utils/Base64String.test.js +1 -1
  98. package/lib/cjs/src/api/utils/Base64String.test.js.map +2 -2
  99. package/lib/cjs/src/api/utils/HexaString.js +1 -1
  100. package/lib/cjs/src/api/utils/HexaString.js.map +2 -2
  101. package/lib/cjs/src/api/utils/HexaString.test.js +1 -1
  102. package/lib/cjs/src/api/utils/HexaString.test.js.map +2 -2
  103. package/lib/cjs/src/di.js +1 -1
  104. package/lib/cjs/src/di.js.map +3 -3
  105. package/lib/cjs/src/di.stub.js +1 -1
  106. package/lib/cjs/src/di.stub.js.map +2 -2
  107. package/lib/cjs/src/internal/config/data/LocalConfigDataSource.test.js +1 -1
  108. package/lib/cjs/src/internal/config/data/LocalConfigDataSource.test.js.map +3 -3
  109. package/lib/cjs/src/internal/config/data/RemoteConfigDataSource.test.js +1 -1
  110. package/lib/cjs/src/internal/config/data/RemoteConfigDataSource.test.js.map +2 -2
  111. package/lib/cjs/src/internal/config/data/__mocks__/LocalConfigDataSource.js +1 -1
  112. package/lib/cjs/src/internal/config/data/__mocks__/LocalConfigDataSource.js.map +2 -2
  113. package/lib/cjs/src/internal/config/data/__mocks__/RemoteConfigDataSource.js +1 -1
  114. package/lib/cjs/src/internal/config/data/__mocks__/RemoteConfigDataSource.js.map +2 -2
  115. package/lib/cjs/src/internal/config/service/DefaultConfigService.test.js +1 -1
  116. package/lib/cjs/src/internal/config/service/DefaultConfigService.test.js.map +2 -2
  117. package/lib/cjs/src/internal/config/use-case/GetDmkVersionUseCase.test.js +1 -1
  118. package/lib/cjs/src/internal/config/use-case/GetDmkVersionUseCase.test.js.map +2 -2
  119. package/lib/cjs/src/internal/device-session/model/DeviceSession.js +1 -1
  120. package/lib/cjs/src/internal/device-session/model/DeviceSession.js.map +3 -3
  121. package/lib/cjs/src/internal/device-session/model/DeviceSession.stub.js +1 -1
  122. package/lib/cjs/src/internal/device-session/model/DeviceSession.stub.js.map +3 -3
  123. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
  124. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +2 -2
  125. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.test.js +1 -1
  126. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.test.js.map +2 -2
  127. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.test.js +1 -1
  128. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.test.js.map +2 -2
  129. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
  130. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +3 -3
  131. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.js +1 -1
  132. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.js.map +3 -3
  133. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +1 -1
  134. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +3 -3
  135. package/lib/cjs/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js +1 -1
  136. package/lib/cjs/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js.map +3 -3
  137. package/lib/cjs/src/internal/discovery/di/discoveryModule.js +1 -1
  138. package/lib/cjs/src/internal/discovery/di/discoveryModule.js.map +3 -3
  139. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js +1 -1
  140. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js.map +3 -3
  141. package/lib/cjs/src/internal/discovery/di/discoveryTypes.js +1 -1
  142. package/lib/cjs/src/internal/discovery/di/discoveryTypes.js.map +2 -2
  143. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js +1 -1
  144. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js.map +3 -3
  145. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  146. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js.map +3 -3
  147. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
  148. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +3 -3
  149. package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js +1 -1
  150. package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js.map +3 -3
  151. package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js +1 -1
  152. package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js.map +3 -3
  153. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js +2 -0
  154. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js.map +7 -0
  155. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js +2 -0
  156. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js.map +7 -0
  157. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js +1 -1
  158. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js.map +3 -3
  159. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.js +1 -1
  160. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.js.map +2 -2
  161. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js +1 -1
  162. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js.map +3 -3
  163. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +1 -1
  164. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +2 -2
  165. package/lib/cjs/src/internal/logger-publisher/service/DefaultLoggerPublisherService.stub.js +1 -1
  166. package/lib/cjs/src/internal/logger-publisher/service/DefaultLoggerPublisherService.stub.js.map +2 -2
  167. package/lib/cjs/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.js +1 -1
  168. package/lib/cjs/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.js.map +2 -2
  169. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
  170. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.js.map +3 -3
  171. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
  172. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +3 -3
  173. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js.map +1 -1
  174. package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
  175. package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
  176. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js +1 -1
  177. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
  178. package/lib/cjs/src/internal/manager-api/model/Firmware.js +1 -1
  179. package/lib/cjs/src/internal/manager-api/model/Firmware.js.map +1 -1
  180. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  181. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js.map +2 -2
  182. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  183. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  184. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js +2 -0
  185. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js.map +7 -0
  186. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +2 -0
  187. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +7 -0
  188. package/lib/cjs/src/internal/secure-channel/data/SecureChannelDataSource.js +2 -0
  189. package/lib/cjs/src/internal/secure-channel/data/SecureChannelDataSource.js.map +7 -0
  190. package/lib/cjs/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js +2 -0
  191. package/lib/cjs/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js.map +7 -0
  192. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.js +2 -0
  193. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.js.map +7 -0
  194. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js +2 -0
  195. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js.map +7 -0
  196. package/lib/cjs/src/internal/secure-channel/di/secureChannelTypes.js +2 -0
  197. package/lib/cjs/src/internal/secure-channel/di/secureChannelTypes.js.map +7 -0
  198. package/lib/cjs/src/internal/secure-channel/model/Const.js +2 -0
  199. package/lib/cjs/src/internal/secure-channel/model/Const.js.map +7 -0
  200. package/lib/cjs/src/internal/secure-channel/model/Errors.js +2 -0
  201. package/lib/cjs/src/internal/secure-channel/model/Errors.js.map +7 -0
  202. package/lib/cjs/src/internal/secure-channel/model/Params.js +2 -0
  203. package/lib/cjs/src/internal/secure-channel/model/Params.js.map +7 -0
  204. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js +2 -0
  205. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +7 -0
  206. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +2 -0
  207. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +7 -0
  208. package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js +2 -0
  209. package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js.map +7 -0
  210. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js +1 -1
  211. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js.map +3 -3
  212. package/lib/cjs/src/internal/transport/di/transportModule.test.js +1 -1
  213. package/lib/cjs/src/internal/transport/di/transportModule.test.js.map +2 -2
  214. package/lib/cjs/src/internal/transport/service/DefaultTransportService.js +1 -1
  215. package/lib/cjs/src/internal/transport/service/DefaultTransportService.js.map +3 -3
  216. package/lib/cjs/src/internal/transport/service/DefaultTransportService.test.js +1 -1
  217. package/lib/cjs/src/internal/transport/service/DefaultTransportService.test.js.map +2 -2
  218. package/lib/cjs/src/internal/transport/service/TransportService.js +1 -1
  219. package/lib/cjs/src/internal/transport/service/TransportService.js.map +1 -1
  220. package/lib/cjs/src/internal/transport/service/__mocks__/DefaultTransportService.js +1 -1
  221. package/lib/cjs/src/internal/transport/service/__mocks__/DefaultTransportService.js.map +2 -2
  222. package/lib/esm/package.json +12 -8
  223. package/lib/esm/src/api/DeviceManagementKit.js +1 -1
  224. package/lib/esm/src/api/DeviceManagementKit.js.map +2 -2
  225. package/lib/esm/src/api/DeviceManagementKit.test.js +1 -1
  226. package/lib/esm/src/api/DeviceManagementKit.test.js.map +2 -2
  227. package/lib/esm/src/api/DeviceManagementKitBuilder.js +1 -1
  228. package/lib/esm/src/api/DeviceManagementKitBuilder.js.map +3 -3
  229. package/lib/esm/src/api/DeviceManagementKitBuilder.test.js +1 -1
  230. package/lib/esm/src/api/DeviceManagementKitBuilder.test.js.map +2 -2
  231. package/lib/esm/src/api/apdu/utils/ByteArrayParser.test.js +1 -1
  232. package/lib/esm/src/api/apdu/utils/ByteArrayParser.test.js.map +2 -2
  233. package/lib/esm/src/api/command/model/CommandResult.js.map +1 -1
  234. package/lib/esm/src/api/command/os/LoadCertificateCommand.js +2 -0
  235. package/lib/esm/src/api/command/os/LoadCertificateCommand.js.map +7 -0
  236. package/lib/esm/src/api/command/os/LoadCertificateCommand.test.js +2 -0
  237. package/lib/esm/src/api/command/os/LoadCertificateCommand.test.js.map +7 -0
  238. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
  239. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js.map +3 -3
  240. package/lib/esm/src/api/command/utils/CommandUtils.js +1 -1
  241. package/lib/esm/src/api/command/utils/CommandUtils.js.map +3 -3
  242. package/lib/esm/src/api/command/utils/CommandUtils.test.js +1 -1
  243. package/lib/esm/src/api/command/utils/CommandUtils.test.js.map +3 -3
  244. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  245. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  246. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  247. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js.map +2 -2
  248. package/lib/esm/src/api/device-action/__test-utils__/testDeviceActionStates.js +1 -1
  249. package/lib/esm/src/api/device-action/__test-utils__/testDeviceActionStates.js.map +3 -3
  250. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js +2 -0
  251. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js.map +7 -0
  252. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +2 -0
  253. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +7 -0
  254. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js +1 -0
  255. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js.map +7 -0
  256. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  257. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +3 -3
  258. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +1 -1
  259. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +3 -3
  260. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js +1 -1
  261. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js.map +3 -3
  262. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js +1 -1
  263. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js.map +2 -2
  264. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +1 -1
  265. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +3 -3
  266. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js +1 -1
  267. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js.map +2 -2
  268. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  269. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +3 -3
  270. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
  271. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +2 -2
  272. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  273. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +3 -3
  274. package/lib/esm/src/api/device-action/xstate-utils/XStateDeviceAction.js +1 -1
  275. package/lib/esm/src/api/device-action/xstate-utils/XStateDeviceAction.js.map +3 -3
  276. package/lib/esm/src/api/device-session/DeviceSessionState.js.map +2 -2
  277. package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js +1 -1
  278. package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js.map +3 -3
  279. package/lib/esm/src/api/index.js +1 -1
  280. package/lib/esm/src/api/index.js.map +3 -3
  281. package/lib/esm/src/api/logger-subscriber/service/ConsoleLogger.test.js +1 -1
  282. package/lib/esm/src/api/logger-subscriber/service/ConsoleLogger.test.js.map +2 -2
  283. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +1 -1
  284. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +2 -2
  285. package/lib/esm/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.js +1 -1
  286. package/lib/esm/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.js.map +2 -2
  287. package/lib/esm/src/api/transport/model/DeviceApduSender.js +1 -0
  288. package/lib/esm/src/api/transport/model/DeviceApduSender.js.map +7 -0
  289. package/lib/esm/src/api/transport/model/DeviceConnectionFactory.stub.js +1 -1
  290. package/lib/esm/src/api/transport/model/DeviceConnectionFactory.stub.js.map +2 -2
  291. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js +2 -0
  292. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js.map +7 -0
  293. package/lib/esm/src/api/transport/model/Errors.js +1 -1
  294. package/lib/esm/src/api/transport/model/Errors.js.map +3 -3
  295. package/lib/esm/src/api/transport/model/TransportConnectedDevice.stub.js +1 -1
  296. package/lib/esm/src/api/transport/model/TransportConnectedDevice.stub.js.map +2 -2
  297. package/lib/esm/src/api/transport/model/__mocks__/TransportMock.js +1 -1
  298. package/lib/esm/src/api/transport/model/__mocks__/TransportMock.js.map +2 -2
  299. package/lib/esm/src/api/utils/Base64String.test.js +1 -1
  300. package/lib/esm/src/api/utils/Base64String.test.js.map +2 -2
  301. package/lib/esm/src/api/utils/HexaString.js +1 -1
  302. package/lib/esm/src/api/utils/HexaString.js.map +2 -2
  303. package/lib/esm/src/api/utils/HexaString.test.js +1 -1
  304. package/lib/esm/src/api/utils/HexaString.test.js.map +2 -2
  305. package/lib/esm/src/di.js +1 -1
  306. package/lib/esm/src/di.js.map +3 -3
  307. package/lib/esm/src/di.stub.js +1 -1
  308. package/lib/esm/src/di.stub.js.map +2 -2
  309. package/lib/esm/src/internal/config/data/LocalConfigDataSource.test.js +1 -1
  310. package/lib/esm/src/internal/config/data/LocalConfigDataSource.test.js.map +3 -3
  311. package/lib/esm/src/internal/config/data/RemoteConfigDataSource.test.js +1 -1
  312. package/lib/esm/src/internal/config/data/RemoteConfigDataSource.test.js.map +2 -2
  313. package/lib/esm/src/internal/config/data/__mocks__/LocalConfigDataSource.js +1 -1
  314. package/lib/esm/src/internal/config/data/__mocks__/LocalConfigDataSource.js.map +2 -2
  315. package/lib/esm/src/internal/config/data/__mocks__/RemoteConfigDataSource.js +1 -1
  316. package/lib/esm/src/internal/config/data/__mocks__/RemoteConfigDataSource.js.map +2 -2
  317. package/lib/esm/src/internal/config/service/DefaultConfigService.test.js +1 -1
  318. package/lib/esm/src/internal/config/service/DefaultConfigService.test.js.map +2 -2
  319. package/lib/esm/src/internal/config/use-case/GetDmkVersionUseCase.test.js +1 -1
  320. package/lib/esm/src/internal/config/use-case/GetDmkVersionUseCase.test.js.map +2 -2
  321. package/lib/esm/src/internal/device-session/model/DeviceSession.js +1 -1
  322. package/lib/esm/src/internal/device-session/model/DeviceSession.js.map +3 -3
  323. package/lib/esm/src/internal/device-session/model/DeviceSession.stub.js +1 -1
  324. package/lib/esm/src/internal/device-session/model/DeviceSession.stub.js.map +3 -3
  325. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
  326. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +2 -2
  327. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.test.js +1 -1
  328. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.test.js.map +2 -2
  329. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.test.js +1 -1
  330. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.test.js.map +2 -2
  331. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
  332. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +3 -3
  333. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.js +1 -1
  334. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.js.map +3 -3
  335. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +1 -1
  336. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +3 -3
  337. package/lib/esm/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js +1 -1
  338. package/lib/esm/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js.map +3 -3
  339. package/lib/esm/src/internal/discovery/di/discoveryModule.js +1 -1
  340. package/lib/esm/src/internal/discovery/di/discoveryModule.js.map +3 -3
  341. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js +1 -1
  342. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js.map +3 -3
  343. package/lib/esm/src/internal/discovery/di/discoveryTypes.js +1 -1
  344. package/lib/esm/src/internal/discovery/di/discoveryTypes.js.map +2 -2
  345. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.js +1 -1
  346. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.js.map +3 -3
  347. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  348. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js.map +3 -3
  349. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
  350. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +3 -3
  351. package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js +1 -1
  352. package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js.map +3 -3
  353. package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js +1 -1
  354. package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js.map +3 -3
  355. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js +2 -0
  356. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js.map +7 -0
  357. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js +2 -0
  358. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js.map +7 -0
  359. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js +1 -1
  360. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js.map +3 -3
  361. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.js +1 -1
  362. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.js.map +2 -2
  363. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js +1 -1
  364. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js.map +3 -3
  365. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +1 -1
  366. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +2 -2
  367. package/lib/esm/src/internal/logger-publisher/service/DefaultLoggerPublisherService.stub.js +1 -1
  368. package/lib/esm/src/internal/logger-publisher/service/DefaultLoggerPublisherService.stub.js.map +2 -2
  369. package/lib/esm/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.js +1 -1
  370. package/lib/esm/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.js.map +2 -2
  371. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
  372. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.js.map +3 -3
  373. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
  374. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +3 -3
  375. package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
  376. package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
  377. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js +1 -1
  378. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
  379. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  380. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js.map +2 -2
  381. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  382. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  383. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js +2 -0
  384. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js.map +7 -0
  385. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +2 -0
  386. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +7 -0
  387. package/lib/esm/src/internal/secure-channel/data/SecureChannelDataSource.js +1 -0
  388. package/lib/esm/src/internal/secure-channel/data/SecureChannelDataSource.js.map +7 -0
  389. package/lib/esm/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js +2 -0
  390. package/lib/esm/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js.map +7 -0
  391. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.js +2 -0
  392. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.js.map +7 -0
  393. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js +2 -0
  394. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js.map +7 -0
  395. package/lib/esm/src/internal/secure-channel/di/secureChannelTypes.js +2 -0
  396. package/lib/esm/src/internal/secure-channel/di/secureChannelTypes.js.map +7 -0
  397. package/lib/esm/src/internal/secure-channel/model/Const.js +2 -0
  398. package/lib/esm/src/internal/secure-channel/model/Const.js.map +7 -0
  399. package/lib/esm/src/internal/secure-channel/model/Errors.js +2 -0
  400. package/lib/esm/src/internal/secure-channel/model/Errors.js.map +7 -0
  401. package/lib/esm/src/internal/secure-channel/model/Params.js +1 -0
  402. package/lib/esm/src/internal/secure-channel/model/Params.js.map +7 -0
  403. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.js +2 -0
  404. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +7 -0
  405. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +2 -0
  406. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +7 -0
  407. package/lib/esm/src/internal/secure-channel/service/SecureChannelService.js +1 -0
  408. package/lib/esm/src/internal/secure-channel/service/SecureChannelService.js.map +7 -0
  409. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js +1 -1
  410. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js.map +3 -3
  411. package/lib/esm/src/internal/transport/di/transportModule.test.js +1 -1
  412. package/lib/esm/src/internal/transport/di/transportModule.test.js.map +2 -2
  413. package/lib/esm/src/internal/transport/service/DefaultTransportService.js +1 -1
  414. package/lib/esm/src/internal/transport/service/DefaultTransportService.js.map +3 -3
  415. package/lib/esm/src/internal/transport/service/DefaultTransportService.test.js +1 -1
  416. package/lib/esm/src/internal/transport/service/DefaultTransportService.test.js.map +2 -2
  417. package/lib/esm/src/internal/transport/service/__mocks__/DefaultTransportService.js +1 -1
  418. package/lib/esm/src/internal/transport/service/__mocks__/DefaultTransportService.js.map +2 -2
  419. package/lib/types/src/api/DeviceManagementKit.d.ts +1 -1
  420. package/lib/types/src/api/DeviceManagementKit.d.ts.map +1 -1
  421. package/lib/types/src/api/DeviceManagementKitBuilder.d.ts.map +1 -1
  422. package/lib/types/src/api/DmkConfig.d.ts +1 -0
  423. package/lib/types/src/api/DmkConfig.d.ts.map +1 -1
  424. package/lib/types/src/api/command/model/CommandResult.d.ts +1 -2
  425. package/lib/types/src/api/command/model/CommandResult.d.ts.map +1 -1
  426. package/lib/types/src/api/command/os/LoadCertificateCommand.d.ts +25 -0
  427. package/lib/types/src/api/command/os/LoadCertificateCommand.d.ts.map +1 -0
  428. package/lib/types/src/api/command/os/LoadCertificateCommand.test.d.ts +2 -0
  429. package/lib/types/src/api/command/os/LoadCertificateCommand.test.d.ts.map +1 -0
  430. package/lib/types/src/api/command/utils/CommandUtils.d.ts +1 -0
  431. package/lib/types/src/api/command/utils/CommandUtils.d.ts.map +1 -1
  432. package/lib/types/src/api/device-action/DeviceAction.d.ts +6 -1
  433. package/lib/types/src/api/device-action/DeviceAction.d.ts.map +1 -1
  434. package/lib/types/src/api/device-action/__test-utils__/makeInternalApi.d.ts +2 -1
  435. package/lib/types/src/api/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  436. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts.map +1 -1
  437. package/lib/types/src/api/device-action/__test-utils__/testDeviceActionStates.d.ts +5 -2
  438. package/lib/types/src/api/device-action/__test-utils__/testDeviceActionStates.d.ts.map +1 -1
  439. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.d.ts +40 -0
  440. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.d.ts.map +1 -0
  441. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.d.ts +2 -0
  442. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.d.ts.map +1 -0
  443. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.d.ts +19 -0
  444. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.d.ts.map +1 -0
  445. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.d.ts.map +1 -1
  446. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.d.ts.map +1 -1
  447. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts +1 -0
  448. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts.map +1 -1
  449. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.d.ts.map +1 -1
  450. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts +1 -0
  451. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts.map +1 -1
  452. package/lib/types/src/api/device-session/DeviceSessionState.d.ts +5 -0
  453. package/lib/types/src/api/device-session/DeviceSessionState.d.ts.map +1 -1
  454. package/lib/types/src/api/index.d.ts +3 -0
  455. package/lib/types/src/api/index.d.ts.map +1 -1
  456. package/lib/types/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.d.ts +1 -1
  457. package/lib/types/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.d.ts.map +1 -1
  458. package/lib/types/src/api/transport/model/DeviceApduSender.d.ts +17 -0
  459. package/lib/types/src/api/transport/model/DeviceApduSender.d.ts.map +1 -0
  460. package/lib/types/src/api/transport/model/DeviceConnection.d.ts +2 -1
  461. package/lib/types/src/api/transport/model/DeviceConnection.d.ts.map +1 -1
  462. package/lib/types/src/api/transport/model/DeviceConnectionFactory.stub.d.ts +1 -1
  463. package/lib/types/src/api/transport/model/DeviceConnectionFactory.stub.d.ts.map +1 -1
  464. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts +60 -0
  465. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts.map +1 -0
  466. package/lib/types/src/api/transport/model/DiscoveredDevice.d.ts +2 -0
  467. package/lib/types/src/api/transport/model/DiscoveredDevice.d.ts.map +1 -1
  468. package/lib/types/src/api/transport/model/Errors.d.ts +41 -26
  469. package/lib/types/src/api/transport/model/Errors.d.ts.map +1 -1
  470. package/lib/types/src/api/transport/model/Transport.d.ts +1 -1
  471. package/lib/types/src/api/transport/model/Transport.d.ts.map +1 -1
  472. package/lib/types/src/api/transport/model/TransportDiscoveredDevice.d.ts +2 -0
  473. package/lib/types/src/api/transport/model/TransportDiscoveredDevice.d.ts.map +1 -1
  474. package/lib/types/src/api/transport/model/__mocks__/TransportMock.d.ts +7 -7
  475. package/lib/types/src/api/transport/model/__mocks__/TransportMock.d.ts.map +1 -1
  476. package/lib/types/src/api/types.d.ts +3 -2
  477. package/lib/types/src/api/types.d.ts.map +1 -1
  478. package/lib/types/src/api/utils/HexaString.d.ts +1 -1
  479. package/lib/types/src/api/utils/HexaString.d.ts.map +1 -1
  480. package/lib/types/src/di.d.ts.map +1 -1
  481. package/lib/types/src/di.stub.d.ts +1 -1
  482. package/lib/types/src/di.stub.d.ts.map +1 -1
  483. package/lib/types/src/internal/config/data/__mocks__/LocalConfigDataSource.d.ts +1 -1
  484. package/lib/types/src/internal/config/data/__mocks__/LocalConfigDataSource.d.ts.map +1 -1
  485. package/lib/types/src/internal/config/data/__mocks__/RemoteConfigDataSource.d.ts +3 -3
  486. package/lib/types/src/internal/config/data/__mocks__/RemoteConfigDataSource.d.ts.map +1 -1
  487. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts +10 -5
  488. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts.map +1 -1
  489. package/lib/types/src/internal/device-session/model/DeviceSession.stub.d.ts +2 -1
  490. package/lib/types/src/internal/device-session/model/DeviceSession.stub.d.ts.map +1 -1
  491. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseCase.d.ts +3 -1
  492. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseCase.d.ts.map +1 -1
  493. package/lib/types/src/internal/discovery/di/discoveryTypes.d.ts +1 -1
  494. package/lib/types/src/internal/discovery/di/discoveryTypes.d.ts.map +1 -1
  495. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts +3 -1
  496. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts.map +1 -1
  497. package/lib/types/src/internal/discovery/use-case/{ListenToKnownDevicesUseCase.d.ts → ListenToAvailableDevicesUseCase.d.ts} +2 -2
  498. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.d.ts.map +1 -0
  499. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.d.ts +2 -0
  500. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.d.ts.map +1 -0
  501. package/lib/types/src/internal/discovery/use-case/StartDiscoveringUseCase.d.ts.map +1 -1
  502. package/lib/types/src/internal/logger-publisher/service/DefaultLoggerPublisherService.stub.d.ts +5 -5
  503. package/lib/types/src/internal/logger-publisher/service/DefaultLoggerPublisherService.stub.d.ts.map +1 -1
  504. package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts +4 -3
  505. package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts.map +1 -1
  506. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts +24 -0
  507. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts.map +1 -1
  508. package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts +3 -3
  509. package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts.map +1 -1
  510. package/lib/types/src/internal/manager-api/model/Firmware.d.ts +4 -0
  511. package/lib/types/src/internal/manager-api/model/Firmware.d.ts.map +1 -1
  512. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.d.ts.map +1 -1
  513. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.d.ts +18 -0
  514. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.d.ts.map +1 -0
  515. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.d.ts +2 -0
  516. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.d.ts.map +1 -0
  517. package/lib/types/src/internal/secure-channel/data/SecureChannelDataSource.d.ts +52 -0
  518. package/lib/types/src/internal/secure-channel/data/SecureChannelDataSource.d.ts.map +1 -0
  519. package/lib/types/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.d.ts +10 -0
  520. package/lib/types/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.d.ts.map +1 -0
  521. package/lib/types/src/internal/secure-channel/di/secureChannelModule.d.ts +9 -0
  522. package/lib/types/src/internal/secure-channel/di/secureChannelModule.d.ts.map +1 -0
  523. package/lib/types/src/internal/secure-channel/di/secureChannelModule.test.d.ts +2 -0
  524. package/lib/types/src/internal/secure-channel/di/secureChannelModule.test.d.ts.map +1 -0
  525. package/lib/types/src/internal/secure-channel/di/secureChannelTypes.d.ts +6 -0
  526. package/lib/types/src/internal/secure-channel/di/secureChannelTypes.d.ts.map +1 -0
  527. package/lib/types/src/internal/secure-channel/model/Const.d.ts +2 -0
  528. package/lib/types/src/internal/secure-channel/model/Const.d.ts.map +1 -0
  529. package/lib/types/src/internal/secure-channel/model/Errors.d.ts +8 -0
  530. package/lib/types/src/internal/secure-channel/model/Errors.d.ts.map +1 -0
  531. package/lib/types/src/internal/secure-channel/model/Params.d.ts +86 -0
  532. package/lib/types/src/internal/secure-channel/model/Params.d.ts.map +1 -0
  533. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts +21 -0
  534. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts.map +1 -0
  535. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.test.d.ts +2 -0
  536. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.test.d.ts.map +1 -0
  537. package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts +21 -0
  538. package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts.map +1 -0
  539. package/lib/types/src/internal/transport/service/DefaultTransportService.d.ts +2 -0
  540. package/lib/types/src/internal/transport/service/DefaultTransportService.d.ts.map +1 -1
  541. package/lib/types/src/internal/transport/service/TransportService.d.ts +3 -1
  542. package/lib/types/src/internal/transport/service/TransportService.d.ts.map +1 -1
  543. package/lib/types/src/internal/transport/service/__mocks__/DefaultTransportService.d.ts +7 -6
  544. package/lib/types/src/internal/transport/service/__mocks__/DefaultTransportService.d.ts.map +1 -1
  545. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  546. package/package.json +13 -9
  547. package/lib/cjs/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.js +0 -2
  548. package/lib/cjs/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.js.map +0 -7
  549. package/lib/cjs/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.js +0 -2
  550. package/lib/cjs/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.js.map +0 -7
  551. package/lib/esm/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.js +0 -2
  552. package/lib/esm/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.js.map +0 -7
  553. package/lib/esm/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.js +0 -2
  554. package/lib/esm/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.js.map +0 -7
  555. package/lib/types/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.d.ts.map +0 -1
  556. package/lib/types/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.d.ts +0 -2
  557. package/lib/types/src/internal/discovery/use-case/ListenToKnownDevicesUseCase.test.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/api/utils/HexaString.test.ts"],
4
- "sourcesContent": ["import {\n bufferToHexaString,\n hexaStringToBuffer,\n isHexaString,\n} from \"./HexaString\";\n\ndescribe(\"HexaString\", () => {\n describe(\"isHexaString function\", () => {\n it(\"should return true if the value is a valid hex string\", () => {\n // GIVEN\n const value = \"0x1234abc\";\n\n // WHEN\n const result = isHexaString(value);\n\n // THEN\n expect(result).toBeTruthy();\n });\n\n it(\"should return true if no data\", () => {\n // GIVEN\n const value = \"0x\";\n\n // WHEN\n const result = isHexaString(value);\n\n // THEN\n expect(result).toBeTruthy();\n });\n\n it(\"should return false if the value contain an invalid letter\", () => {\n // GIVEN\n const value = \"0x1234z\";\n\n // WHEN\n const result = isHexaString(value);\n\n // THEN\n expect(result).toBeFalsy();\n });\n\n it(\"should return false if the value does not start with 0x\", () => {\n // GIVEN\n const value = \"1234abc\";\n\n // WHEN\n const result = isHexaString(value);\n\n // THEN\n expect(result).toBeFalsy();\n });\n\n it(\"should return false for an epmty string\", () => {\n // GIVEN\n const value = \"\";\n\n // WHEN\n const result = isHexaString(value);\n\n // THEN\n expect(result).toBeFalsy();\n });\n });\n\n describe(\"hexaStringToBuffer function\", () => {\n it(\"should convert empty input to empty buffer\", () => {\n // GIVEN\n const value = \"\";\n\n // WHEN\n const result = hexaStringToBuffer(value);\n\n // THEN\n expect(result).toStrictEqual(new Uint8Array());\n });\n\n it(\"should fail on invalid string\", () => {\n // GIVEN\n const value = \"bonjour\";\n\n // WHEN\n const result = hexaStringToBuffer(value);\n\n // THEN\n expect(result).toStrictEqual(null);\n });\n\n it(\"should fail on invalid string with valid numbers\", () => {\n // GIVEN\n const value = \"0x012n34\";\n\n // WHEN\n const result = hexaStringToBuffer(value);\n\n // THEN\n expect(result).toStrictEqual(null);\n });\n\n it(\"should convert correct hexadecimal string\", () => {\n // GIVEN\n const value = \"1a35669f0100\";\n\n // WHEN\n const result = hexaStringToBuffer(value);\n\n // THEN\n expect(result).toStrictEqual(\n new Uint8Array([0x1a, 0x35, 0x66, 0x9f, 0x01, 0x00]),\n );\n });\n\n it(\"should support 0x prefix\", () => {\n // GIVEN\n const value = \"0x1a35\";\n\n // WHEN\n const result = hexaStringToBuffer(value);\n\n // THEN\n expect(result).toStrictEqual(new Uint8Array([0x1a, 0x35]));\n });\n\n it(\"should be case insensitive\", () => {\n // GIVEN\n const value = \"0xcCDd\";\n\n // WHEN\n const result = hexaStringToBuffer(value);\n\n // THEN\n expect(result).toStrictEqual(new Uint8Array([0xcc, 0xdd]));\n });\n\n it(\"should pad with 0\", () => {\n // GIVEN\n const value = \"0xa35\";\n\n // WHEN\n const result = hexaStringToBuffer(value);\n\n // THEN\n expect(result).toStrictEqual(new Uint8Array([0x0a, 0x35]));\n });\n });\n\n describe(\"bufferToHexaString function\", () => {\n it(\"should convert a buffer into a hexa string\", () => {\n // GIVEN\n const value = Uint8Array.from([0, 1, 2, 0xff, 0xfe]);\n\n // WHEN\n const result = bufferToHexaString(value);\n\n // THEN\n expect(result).toStrictEqual(\"0x000102fffe\");\n });\n });\n});\n"],
5
- "mappings": "AAAA,OACE,sBAAAA,EACA,sBAAAC,EACA,gBAAAC,MACK,eAEP,SAAS,aAAc,IAAM,CAC3B,SAAS,wBAAyB,IAAM,CACtC,GAAG,wDAAyD,IAAM,CAKhE,MAAMC,EAASD,EAHD,WAGmB,EAGjC,OAAOC,CAAM,EAAE,WAAW,CAC5B,CAAC,EAED,GAAG,gCAAiC,IAAM,CAKxC,MAAMA,EAASD,EAHD,IAGmB,EAGjC,OAAOC,CAAM,EAAE,WAAW,CAC5B,CAAC,EAED,GAAG,6DAA8D,IAAM,CAKrE,MAAMA,EAASD,EAHD,SAGmB,EAGjC,OAAOC,CAAM,EAAE,UAAU,CAC3B,CAAC,EAED,GAAG,0DAA2D,IAAM,CAKlE,MAAMA,EAASD,EAHD,SAGmB,EAGjC,OAAOC,CAAM,EAAE,UAAU,CAC3B,CAAC,EAED,GAAG,0CAA2C,IAAM,CAKlD,MAAMA,EAASD,EAHD,EAGmB,EAGjC,OAAOC,CAAM,EAAE,UAAU,CAC3B,CAAC,CACH,CAAC,EAED,SAAS,8BAA+B,IAAM,CAC5C,GAAG,6CAA8C,IAAM,CAKrD,MAAMA,EAASF,EAHD,EAGyB,EAGvC,OAAOE,CAAM,EAAE,cAAc,IAAI,UAAY,CAC/C,CAAC,EAED,GAAG,gCAAiC,IAAM,CAKxC,MAAMA,EAASF,EAHD,SAGyB,EAGvC,OAAOE,CAAM,EAAE,cAAc,IAAI,CACnC,CAAC,EAED,GAAG,mDAAoD,IAAM,CAK3D,MAAMA,EAASF,EAHD,UAGyB,EAGvC,OAAOE,CAAM,EAAE,cAAc,IAAI,CACnC,CAAC,EAED,GAAG,4CAA6C,IAAM,CAKpD,MAAMA,EAASF,EAHD,cAGyB,EAGvC,OAAOE,CAAM,EAAE,cACb,IAAI,WAAW,CAAC,GAAM,GAAM,IAAM,IAAM,EAAM,CAAI,CAAC,CACrD,CACF,CAAC,EAED,GAAG,2BAA4B,IAAM,CAKnC,MAAMA,EAASF,EAHD,QAGyB,EAGvC,OAAOE,CAAM,EAAE,cAAc,IAAI,WAAW,CAAC,GAAM,EAAI,CAAC,CAAC,CAC3D,CAAC,EAED,GAAG,6BAA8B,IAAM,CAKrC,MAAMA,EAASF,EAHD,QAGyB,EAGvC,OAAOE,CAAM,EAAE,cAAc,IAAI,WAAW,CAAC,IAAM,GAAI,CAAC,CAAC,CAC3D,CAAC,EAED,GAAG,oBAAqB,IAAM,CAK5B,MAAMA,EAASF,EAHD,OAGyB,EAGvC,OAAOE,CAAM,EAAE,cAAc,IAAI,WAAW,CAAC,GAAM,EAAI,CAAC,CAAC,CAC3D,CAAC,CACH,CAAC,EAED,SAAS,8BAA+B,IAAM,CAC5C,GAAG,6CAA8C,IAAM,CAErD,MAAMC,EAAQ,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,IAAM,GAAI,CAAC,EAG7CD,EAASH,EAAmBI,CAAK,EAGvC,OAAOD,CAAM,EAAE,cAAc,cAAc,CAC7C,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import {\n bufferToHexaString,\n hexaStringToBuffer,\n isHexaString,\n} from \"./HexaString\";\n\ndescribe(\"HexaString\", () => {\n describe(\"isHexaString function\", () => {\n it(\"should return true if the value is a valid hex string\", () => {\n // GIVEN\n const value = \"0x1234abc\";\n\n // WHEN\n const result = isHexaString(value);\n\n // THEN\n expect(result).toBeTruthy();\n });\n\n it(\"should return true if no data\", () => {\n // GIVEN\n const value = \"0x\";\n\n // WHEN\n const result = isHexaString(value);\n\n // THEN\n expect(result).toBeTruthy();\n });\n\n it(\"should return false if the value contain an invalid letter\", () => {\n // GIVEN\n const value = \"0x1234z\";\n\n // WHEN\n const result = isHexaString(value);\n\n // THEN\n expect(result).toBeFalsy();\n });\n\n it(\"should return false if the value does not start with 0x\", () => {\n // GIVEN\n const value = \"1234abc\";\n\n // WHEN\n const result = isHexaString(value);\n\n // THEN\n expect(result).toBeFalsy();\n });\n\n it(\"should return false for an epmty string\", () => {\n // GIVEN\n const value = \"\";\n\n // WHEN\n const result = isHexaString(value);\n\n // THEN\n expect(result).toBeFalsy();\n });\n\n it.each([123, [], {}, null, undefined, true])(\n \"should return false for invalid input %p\",\n (value) => {\n // WHEN\n const result = isHexaString(value);\n\n // THEN\n expect(result).toBeFalsy();\n },\n );\n });\n\n describe(\"hexaStringToBuffer function\", () => {\n it(\"should convert empty input to empty buffer\", () => {\n // GIVEN\n const value = \"\";\n\n // WHEN\n const result = hexaStringToBuffer(value);\n\n // THEN\n expect(result).toStrictEqual(new Uint8Array());\n });\n\n it(\"should fail on invalid string\", () => {\n // GIVEN\n const value = \"bonjour\";\n\n // WHEN\n const result = hexaStringToBuffer(value);\n\n // THEN\n expect(result).toStrictEqual(null);\n });\n\n it(\"should fail on invalid string with valid numbers\", () => {\n // GIVEN\n const value = \"0x012n34\";\n\n // WHEN\n const result = hexaStringToBuffer(value);\n\n // THEN\n expect(result).toStrictEqual(null);\n });\n\n it(\"should convert correct hexadecimal string\", () => {\n // GIVEN\n const value = \"1a35669f0100\";\n\n // WHEN\n const result = hexaStringToBuffer(value);\n\n // THEN\n expect(result).toStrictEqual(\n new Uint8Array([0x1a, 0x35, 0x66, 0x9f, 0x01, 0x00]),\n );\n });\n\n it(\"should support 0x prefix\", () => {\n // GIVEN\n const value = \"0x1a35\";\n\n // WHEN\n const result = hexaStringToBuffer(value);\n\n // THEN\n expect(result).toStrictEqual(new Uint8Array([0x1a, 0x35]));\n });\n\n it(\"should be case insensitive\", () => {\n // GIVEN\n const value = \"0xcCDd\";\n\n // WHEN\n const result = hexaStringToBuffer(value);\n\n // THEN\n expect(result).toStrictEqual(new Uint8Array([0xcc, 0xdd]));\n });\n\n it(\"should pad with 0\", () => {\n // GIVEN\n const value = \"0xa35\";\n\n // WHEN\n const result = hexaStringToBuffer(value);\n\n // THEN\n expect(result).toStrictEqual(new Uint8Array([0x0a, 0x35]));\n });\n });\n\n describe(\"bufferToHexaString function\", () => {\n it(\"should convert a buffer into a hexa string\", () => {\n // GIVEN\n const value = Uint8Array.from([0, 1, 2, 0xff, 0xfe]);\n\n // WHEN\n const result = bufferToHexaString(value);\n\n // THEN\n expect(result).toStrictEqual(\"0x000102fffe\");\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OACE,sBAAAA,EACA,sBAAAC,EACA,gBAAAC,MACK,eAEP,SAAS,aAAc,IAAM,CAC3B,SAAS,wBAAyB,IAAM,CACtC,GAAG,wDAAyD,IAAM,CAKhE,MAAMC,EAASD,EAHD,WAGmB,EAGjC,OAAOC,CAAM,EAAE,WAAW,CAC5B,CAAC,EAED,GAAG,gCAAiC,IAAM,CAKxC,MAAMA,EAASD,EAHD,IAGmB,EAGjC,OAAOC,CAAM,EAAE,WAAW,CAC5B,CAAC,EAED,GAAG,6DAA8D,IAAM,CAKrE,MAAMA,EAASD,EAHD,SAGmB,EAGjC,OAAOC,CAAM,EAAE,UAAU,CAC3B,CAAC,EAED,GAAG,0DAA2D,IAAM,CAKlE,MAAMA,EAASD,EAHD,SAGmB,EAGjC,OAAOC,CAAM,EAAE,UAAU,CAC3B,CAAC,EAED,GAAG,0CAA2C,IAAM,CAKlD,MAAMA,EAASD,EAHD,EAGmB,EAGjC,OAAOC,CAAM,EAAE,UAAU,CAC3B,CAAC,EAED,GAAG,KAAK,CAAC,IAAK,CAAC,EAAG,CAAC,EAAG,KAAM,OAAW,EAAI,CAAC,EAC1C,2CACCC,GAAU,CAET,MAAMD,EAASD,EAAaE,CAAK,EAGjC,OAAOD,CAAM,EAAE,UAAU,CAC3B,CACF,CACF,CAAC,EAED,SAAS,8BAA+B,IAAM,CAC5C,GAAG,6CAA8C,IAAM,CAKrD,MAAMA,EAASF,EAHD,EAGyB,EAGvC,OAAOE,CAAM,EAAE,cAAc,IAAI,UAAY,CAC/C,CAAC,EAED,GAAG,gCAAiC,IAAM,CAKxC,MAAMA,EAASF,EAHD,SAGyB,EAGvC,OAAOE,CAAM,EAAE,cAAc,IAAI,CACnC,CAAC,EAED,GAAG,mDAAoD,IAAM,CAK3D,MAAMA,EAASF,EAHD,UAGyB,EAGvC,OAAOE,CAAM,EAAE,cAAc,IAAI,CACnC,CAAC,EAED,GAAG,4CAA6C,IAAM,CAKpD,MAAMA,EAASF,EAHD,cAGyB,EAGvC,OAAOE,CAAM,EAAE,cACb,IAAI,WAAW,CAAC,GAAM,GAAM,IAAM,IAAM,EAAM,CAAI,CAAC,CACrD,CACF,CAAC,EAED,GAAG,2BAA4B,IAAM,CAKnC,MAAMA,EAASF,EAHD,QAGyB,EAGvC,OAAOE,CAAM,EAAE,cAAc,IAAI,WAAW,CAAC,GAAM,EAAI,CAAC,CAAC,CAC3D,CAAC,EAED,GAAG,6BAA8B,IAAM,CAKrC,MAAMA,EAASF,EAHD,QAGyB,EAGvC,OAAOE,CAAM,EAAE,cAAc,IAAI,WAAW,CAAC,IAAM,GAAI,CAAC,CAAC,CAC3D,CAAC,EAED,GAAG,oBAAqB,IAAM,CAK5B,MAAMA,EAASF,EAHD,OAGyB,EAGvC,OAAOE,CAAM,EAAE,cAAc,IAAI,WAAW,CAAC,GAAM,EAAI,CAAC,CAAC,CAC3D,CAAC,CACH,CAAC,EAED,SAAS,8BAA+B,IAAM,CAC5C,GAAG,6CAA8C,IAAM,CAErD,MAAMC,EAAQ,WAAW,KAAK,CAAC,EAAG,EAAG,EAAG,IAAM,GAAI,CAAC,EAG7CD,EAASH,EAAmBI,CAAK,EAGvC,OAAOD,CAAM,EAAE,cAAc,cAAc,CAC7C,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["bufferToHexaString", "hexaStringToBuffer", "isHexaString", "result", "value"]
7
7
  }
package/lib/esm/src/di.js CHANGED
@@ -1,2 +1,2 @@
1
- import{Container as i}from"inversify";import{commandModuleFactory as a}from"./api/command/di/commandModule";import{deviceActionModuleFactory as p}from"./api/device-action/di/deviceActionModule";import{configModuleFactory as c}from"./internal/config/di/configModule";import{deviceModelModuleFactory as n}from"./internal/device-model/di/deviceModelModule";import{deviceSessionModuleFactory as f}from"./internal/device-session/di/deviceSessionModule";import{discoveryModuleFactory as l}from"./internal/discovery/di/discoveryModule";import{loggerModuleFactory as d}from"./internal/logger-publisher/di/loggerModule";import{managerApiModuleFactory as y}from"./internal/manager-api/di/managerApiModule";import{DEFAULT_MANAGER_API_BASE_URL as M,DEFAULT_MOCK_SERVER_BASE_URL as F}from"./internal/manager-api/model/Const";import{sendModuleFactory as g}from"./internal/send/di/sendModule";import{transportModuleFactory as s}from"./internal/transport/di/transportModule";const P=({stub:o=!1,transports:t=[],loggers:m=[],config:r={managerApiUrl:M,mockUrl:F}})=>{const e=new i;return e.load(c({stub:o}),n({stub:o}),s({stub:o,transports:t,config:r}),y({stub:o,config:r}),l({stub:o}),d({subscribers:m}),f({stub:o}),g({stub:o}),a({stub:o}),p({stub:o})),e};export{P as makeContainer};
1
+ import{Container as i}from"inversify";import{commandModuleFactory as a}from"./api/command/di/commandModule";import{deviceActionModuleFactory as p}from"./api/device-action/di/deviceActionModule";import{configModuleFactory as c}from"./internal/config/di/configModule";import{deviceModelModuleFactory as n}from"./internal/device-model/di/deviceModelModule";import{deviceSessionModuleFactory as l}from"./internal/device-session/di/deviceSessionModule";import{discoveryModuleFactory as f}from"./internal/discovery/di/discoveryModule";import{loggerModuleFactory as d}from"./internal/logger-publisher/di/loggerModule";import{managerApiModuleFactory as y}from"./internal/manager-api/di/managerApiModule";import{DEFAULT_MANAGER_API_BASE_URL as F,DEFAULT_MOCK_SERVER_BASE_URL as M}from"./internal/manager-api/model/Const";import{secureChannelModuleFactory as s}from"./internal/secure-channel/di/secureChannelModule";import{DEFAULT_WEB_SOCKET_BASE_URL as g}from"./internal/secure-channel/model/Const";import{sendModuleFactory as A}from"./internal/send/di/sendModule";import{transportModuleFactory as _}from"./internal/transport/di/transportModule";const x=({stub:o=!1,transports:t=[],loggers:m=[],config:r={mockUrl:M,managerApiUrl:F,webSocketUrl:g}})=>{const e=new i;return e.load(c({stub:o}),n({stub:o}),_({stub:o,transports:t,config:r}),y({stub:o,config:r}),s({stub:o,config:r}),f({stub:o}),d({subscribers:m}),l({stub:o}),A({stub:o}),a({stub:o}),p({stub:o})),e};export{x as makeContainer};
2
2
  //# sourceMappingURL=di.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/di.ts"],
4
- "sourcesContent": ["import { Container } from \"inversify\";\n\n// Uncomment this line to enable the logger middleware\n// import { makeLoggerMiddleware } from \"inversify-logger-middleware\";\nimport { commandModuleFactory } from \"@api/command/di/commandModule\";\nimport { deviceActionModuleFactory } from \"@api/device-action/di/deviceActionModule\";\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { type LoggerSubscriberService } from \"@api/logger-subscriber/service/LoggerSubscriberService\";\nimport { type TransportFactory } from \"@api/transport/model/Transport\";\nimport { configModuleFactory } from \"@internal/config/di/configModule\";\nimport { deviceModelModuleFactory } from \"@internal/device-model/di/deviceModelModule\";\nimport { deviceSessionModuleFactory } from \"@internal/device-session/di/deviceSessionModule\";\nimport { discoveryModuleFactory } from \"@internal/discovery/di/discoveryModule\";\nimport { loggerModuleFactory } from \"@internal/logger-publisher/di/loggerModule\";\nimport { managerApiModuleFactory } from \"@internal/manager-api/di/managerApiModule\";\nimport {\n DEFAULT_MANAGER_API_BASE_URL,\n DEFAULT_MOCK_SERVER_BASE_URL,\n} from \"@internal/manager-api/model/Const\";\nimport { sendModuleFactory } from \"@internal/send/di/sendModule\";\nimport { transportModuleFactory } from \"@internal/transport//di/transportModule\";\n\n// Uncomment this line to enable the logger middleware\n// const logger = makeLoggerMiddleware();\n\nexport type MakeContainerProps = {\n stub: boolean;\n transports: TransportFactory[];\n loggers: LoggerSubscriberService[];\n config: DmkConfig;\n};\n\nexport const makeContainer = ({\n stub = false,\n transports = [],\n loggers = [],\n config = {\n managerApiUrl: DEFAULT_MANAGER_API_BASE_URL,\n mockUrl: DEFAULT_MOCK_SERVER_BASE_URL,\n },\n}: Partial<MakeContainerProps>) => {\n const container = new Container();\n\n // Uncomment this line to enable the logger middleware\n // container.applyMiddleware(logger);\n\n container.load(\n configModuleFactory({ stub }),\n deviceModelModuleFactory({ stub }),\n transportModuleFactory({ stub, transports, config }),\n managerApiModuleFactory({ stub, config }),\n discoveryModuleFactory({ stub }),\n loggerModuleFactory({ subscribers: loggers }),\n deviceSessionModuleFactory({ stub }),\n sendModuleFactory({ stub }),\n commandModuleFactory({ stub }),\n deviceActionModuleFactory({ stub }),\n // modules go here\n );\n\n return container;\n};\n"],
5
- "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAI1B,OAAS,wBAAAC,MAA4B,gCACrC,OAAS,6BAAAC,MAAiC,2CAI1C,OAAS,uBAAAC,MAA2B,mCACpC,OAAS,4BAAAC,MAAgC,8CACzC,OAAS,8BAAAC,MAAkC,kDAC3C,OAAS,0BAAAC,MAA8B,yCACvC,OAAS,uBAAAC,MAA2B,6CACpC,OAAS,2BAAAC,MAA+B,4CACxC,OACE,gCAAAC,EACA,gCAAAC,MACK,oCACP,OAAS,qBAAAC,MAAyB,+BAClC,OAAS,0BAAAC,MAA8B,0CAYhC,MAAMC,EAAgB,CAAC,CAC5B,KAAAC,EAAO,GACP,WAAAC,EAAa,CAAC,EACd,QAAAC,EAAU,CAAC,EACX,OAAAC,EAAS,CACP,cAAeR,EACf,QAASC,CACX,CACF,IAAmC,CACjC,MAAMQ,EAAY,IAAIlB,EAKtB,OAAAkB,EAAU,KACRf,EAAoB,CAAE,KAAAW,CAAK,CAAC,EAC5BV,EAAyB,CAAE,KAAAU,CAAK,CAAC,EACjCF,EAAuB,CAAE,KAAAE,EAAM,WAAAC,EAAY,OAAAE,CAAO,CAAC,EACnDT,EAAwB,CAAE,KAAAM,EAAM,OAAAG,CAAO,CAAC,EACxCX,EAAuB,CAAE,KAAAQ,CAAK,CAAC,EAC/BP,EAAoB,CAAE,YAAaS,CAAQ,CAAC,EAC5CX,EAA2B,CAAE,KAAAS,CAAK,CAAC,EACnCH,EAAkB,CAAE,KAAAG,CAAK,CAAC,EAC1Bb,EAAqB,CAAE,KAAAa,CAAK,CAAC,EAC7BZ,EAA0B,CAAE,KAAAY,CAAK,CAAC,CAEpC,EAEOI,CACT",
6
- "names": ["Container", "commandModuleFactory", "deviceActionModuleFactory", "configModuleFactory", "deviceModelModuleFactory", "deviceSessionModuleFactory", "discoveryModuleFactory", "loggerModuleFactory", "managerApiModuleFactory", "DEFAULT_MANAGER_API_BASE_URL", "DEFAULT_MOCK_SERVER_BASE_URL", "sendModuleFactory", "transportModuleFactory", "makeContainer", "stub", "transports", "loggers", "config", "container"]
4
+ "sourcesContent": ["import { Container } from \"inversify\";\n\n// Uncomment this line to enable the logger middleware\n// import { makeLoggerMiddleware } from \"inversify-logger-middleware\";\nimport { commandModuleFactory } from \"@api/command/di/commandModule\";\nimport { deviceActionModuleFactory } from \"@api/device-action/di/deviceActionModule\";\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { type LoggerSubscriberService } from \"@api/logger-subscriber/service/LoggerSubscriberService\";\nimport { type TransportFactory } from \"@api/transport/model/Transport\";\nimport { configModuleFactory } from \"@internal/config/di/configModule\";\nimport { deviceModelModuleFactory } from \"@internal/device-model/di/deviceModelModule\";\nimport { deviceSessionModuleFactory } from \"@internal/device-session/di/deviceSessionModule\";\nimport { discoveryModuleFactory } from \"@internal/discovery/di/discoveryModule\";\nimport { loggerModuleFactory } from \"@internal/logger-publisher/di/loggerModule\";\nimport { managerApiModuleFactory } from \"@internal/manager-api/di/managerApiModule\";\nimport {\n DEFAULT_MANAGER_API_BASE_URL,\n DEFAULT_MOCK_SERVER_BASE_URL,\n} from \"@internal/manager-api/model/Const\";\nimport { secureChannelModuleFactory } from \"@internal/secure-channel/di/secureChannelModule\";\nimport { DEFAULT_WEB_SOCKET_BASE_URL } from \"@internal/secure-channel/model/Const\";\nimport { sendModuleFactory } from \"@internal/send/di/sendModule\";\nimport { transportModuleFactory } from \"@internal/transport//di/transportModule\";\n\n// Uncomment this line to enable the logger middleware\n// const logger = makeLoggerMiddleware();\n\nexport type MakeContainerProps = {\n stub: boolean;\n transports: TransportFactory[];\n loggers: LoggerSubscriberService[];\n config: DmkConfig;\n};\n\nexport const makeContainer = ({\n stub = false,\n transports = [],\n loggers = [],\n config = {\n mockUrl: DEFAULT_MOCK_SERVER_BASE_URL,\n managerApiUrl: DEFAULT_MANAGER_API_BASE_URL,\n webSocketUrl: DEFAULT_WEB_SOCKET_BASE_URL,\n },\n}: Partial<MakeContainerProps>) => {\n const container = new Container();\n\n // Uncomment this line to enable the logger middleware\n // container.applyMiddleware(logger);\n\n container.load(\n configModuleFactory({ stub }),\n deviceModelModuleFactory({ stub }),\n transportModuleFactory({ stub, transports, config }),\n managerApiModuleFactory({ stub, config }),\n secureChannelModuleFactory({ stub, config }),\n discoveryModuleFactory({ stub }),\n loggerModuleFactory({ subscribers: loggers }),\n deviceSessionModuleFactory({ stub }),\n sendModuleFactory({ stub }),\n commandModuleFactory({ stub }),\n deviceActionModuleFactory({ stub }),\n // modules go here\n );\n\n return container;\n};\n"],
5
+ "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAI1B,OAAS,wBAAAC,MAA4B,gCACrC,OAAS,6BAAAC,MAAiC,2CAI1C,OAAS,uBAAAC,MAA2B,mCACpC,OAAS,4BAAAC,MAAgC,8CACzC,OAAS,8BAAAC,MAAkC,kDAC3C,OAAS,0BAAAC,MAA8B,yCACvC,OAAS,uBAAAC,MAA2B,6CACpC,OAAS,2BAAAC,MAA+B,4CACxC,OACE,gCAAAC,EACA,gCAAAC,MACK,oCACP,OAAS,8BAAAC,MAAkC,kDAC3C,OAAS,+BAAAC,MAAmC,uCAC5C,OAAS,qBAAAC,MAAyB,+BAClC,OAAS,0BAAAC,MAA8B,0CAYhC,MAAMC,EAAgB,CAAC,CAC5B,KAAAC,EAAO,GACP,WAAAC,EAAa,CAAC,EACd,QAAAC,EAAU,CAAC,EACX,OAAAC,EAAS,CACP,QAAST,EACT,cAAeD,EACf,aAAcG,CAChB,CACF,IAAmC,CACjC,MAAMQ,EAAY,IAAIpB,EAKtB,OAAAoB,EAAU,KACRjB,EAAoB,CAAE,KAAAa,CAAK,CAAC,EAC5BZ,EAAyB,CAAE,KAAAY,CAAK,CAAC,EACjCF,EAAuB,CAAE,KAAAE,EAAM,WAAAC,EAAY,OAAAE,CAAO,CAAC,EACnDX,EAAwB,CAAE,KAAAQ,EAAM,OAAAG,CAAO,CAAC,EACxCR,EAA2B,CAAE,KAAAK,EAAM,OAAAG,CAAO,CAAC,EAC3Cb,EAAuB,CAAE,KAAAU,CAAK,CAAC,EAC/BT,EAAoB,CAAE,YAAaW,CAAQ,CAAC,EAC5Cb,EAA2B,CAAE,KAAAW,CAAK,CAAC,EACnCH,EAAkB,CAAE,KAAAG,CAAK,CAAC,EAC1Bf,EAAqB,CAAE,KAAAe,CAAK,CAAC,EAC7Bd,EAA0B,CAAE,KAAAc,CAAK,CAAC,CAEpC,EAEOI,CACT",
6
+ "names": ["Container", "commandModuleFactory", "deviceActionModuleFactory", "configModuleFactory", "deviceModelModuleFactory", "deviceSessionModuleFactory", "discoveryModuleFactory", "loggerModuleFactory", "managerApiModuleFactory", "DEFAULT_MANAGER_API_BASE_URL", "DEFAULT_MOCK_SERVER_BASE_URL", "secureChannelModuleFactory", "DEFAULT_WEB_SOCKET_BASE_URL", "sendModuleFactory", "transportModuleFactory", "makeContainer", "stub", "transports", "loggers", "config", "container"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var n=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var m=(f,o,i,r)=>{for(var c=r>1?void 0:r?p(o,i):o,j=f.length-1,l;j>=0;j--)(l=f[j])&&(c=(r?l(o,i,c):l(c))||c);return r&&c&&n(o,i,c),c};import{injectable as x}from"inversify";let t=class{execute=jest.fn(()=>"stub")};t=m([x()],t);export{t as StubUseCase};
1
+ var t=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var p=(f,i,l,o)=>{for(var c=o>1?void 0:o?x(i,l):i,m=f.length-1,n;m>=0;m--)(n=f[m])&&(c=(o?n(i,l,c):n(c))||c);return o&&c&&t(i,l,c),c};import{injectable as j}from"inversify";let r=class{execute=vi.fn(()=>"stub")};r=p([j()],r);export{r as StubUseCase};
2
2
  //# sourceMappingURL=di.stub.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/di.stub.ts"],
4
- "sourcesContent": ["import { injectable } from \"inversify\";\n\n@injectable()\nexport class StubUseCase {\n execute = jest.fn(() => \"stub\");\n}\n"],
5
- "mappings": "wMAAA,OAAS,cAAAA,MAAkB,YAGpB,IAAMC,EAAN,KAAkB,CACvB,QAAU,KAAK,GAAG,IAAM,MAAM,CAChC,EAFaA,EAANC,EAAA,CADNC,EAAW,GACCF",
4
+ "sourcesContent": ["import { injectable } from \"inversify\";\n\n@injectable()\nexport class StubUseCase {\n execute = vi.fn(() => \"stub\");\n}\n"],
5
+ "mappings": "wMAAA,OAAS,cAAAA,MAAkB,YAGpB,IAAMC,EAAN,KAAkB,CACvB,QAAU,GAAG,GAAG,IAAM,MAAM,CAC9B,EAFaA,EAANC,EAAA,CADNC,EAAW,GACCF",
6
6
  "names": ["injectable", "StubUseCase", "__decorateClass", "injectable"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Either as a,Left as n}from"purify-ts";import{JSONParseError as s,ReadFileError as c}from"../../config/model/Errors";import l from"../../../../package.json";import*as i from"./LocalConfigDataSource";const{FileLocalConfigDataSource:m}=i,r=jest.spyOn(i,"stubFsReadFile"),o=jest.spyOn(JSON,"parse");let t;describe("LocalConfigDataSource",()=>{describe("FileLocalConfigDataSource",()=>{beforeEach(()=>{r.mockClear(),o.mockClear(),t=new m}),afterAll(()=>{r.mockRestore(),o.mockRestore()}),it("should return an Either<never, Config>",()=>{r.mockReturnValue(JSON.stringify({name:"DeviceSDK",version:"0.0.0-spied.1"})),o.mockReturnValue({name:"DeviceSDK",version:"0.0.0-spied.1"}),expect(t.getConfig()).toStrictEqual(a.of({name:"DeviceSDK",version:"0.0.0-spied.1"}))}),it("should return an Either<ReadFileError, never> if readFileSync throws",()=>{const e=new Error("readFileSync error");r.mockImplementation(()=>{throw e}),expect(t.getConfig()).toEqual(n(new c(e)))}),it("should return an Either<JSONParseError, never> if JSON.parse throws",()=>{const e=new Error("JSON.parse error");r.mockReturnValue(JSON.stringify({name:"DeviceSDK",version:"0.0.0-spied.1"})),o.mockImplementation(()=>{throw e}),expect(t.getConfig()).toEqual(n(new s(e)))})}),describe("stubFsReadFile",()=>{it("should return a stringified version of the version object",()=>{expect(i.stubFsReadFile()).toEqual(JSON.stringify({name:"@ledgerhq/device-management-kit",version:l.version}))})})});
1
+ import{Either as a,Left as i}from"purify-ts";import{JSONParseError as s,ReadFileError as c}from"../../config/model/Errors";import l from"../../../../package.json";import*as o from"./LocalConfigDataSource";const{FileLocalConfigDataSource:f}=o,t=vi.spyOn(o,"stubFsReadFile"),n=vi.spyOn(JSON,"parse"),u=vi.spyOn(JSON,"stringify");let r;describe("LocalConfigDataSource",()=>{describe("FileLocalConfigDataSource",()=>{beforeEach(()=>{vi.resetAllMocks(),r=new f}),afterAll(()=>{vi.resetAllMocks()}),it("should return an Either<never, Config>",()=>{t.mockReturnValue(JSON.stringify({name:"DeviceSDK",version:"0.0.0-spied.1"})),n.mockReturnValue({name:"DeviceSDK",version:"0.0.0-spied.1"}),expect(r.getConfig()).toStrictEqual(a.of({name:"DeviceSDK",version:"0.0.0-spied.1"}))}),it("should return an Either<ReadFileError, never> if readFileSync throws",()=>{const e=new Error("readFileSync error");u.mockImplementation(()=>{throw e}),expect(r.getConfig()).toEqual(i(new c(e)))}),it("should return an Either<JSONParseError, never> if JSON.parse throws",()=>{const e=new Error("JSON.parse error");t.mockReturnValue(JSON.stringify({name:"DeviceSDK",version:"0.0.0-spied.1"})),n.mockImplementation(()=>{throw e}),expect(r.getConfig()).toEqual(i(new s(e)))})}),describe("stubFsReadFile",()=>{it("should return a stringified version of the version object",()=>{expect(o.stubFsReadFile()).toEqual(JSON.stringify({name:"@ledgerhq/device-management-kit",version:l.version}))})})});
2
2
  //# sourceMappingURL=LocalConfigDataSource.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/config/data/LocalConfigDataSource.test.ts"],
4
- "sourcesContent": ["import { Either, Left } from \"purify-ts\";\n\nimport { JSONParseError, ReadFileError } from \"@internal/config/model/Errors\";\nimport pkg from \"@root/package.json\";\n\nimport { type LocalConfigDataSource } from \"./ConfigDataSource\";\nimport * as LocalConfig from \"./LocalConfigDataSource\";\n\nconst { FileLocalConfigDataSource } = LocalConfig;\n\nconst readFileSyncSpy = jest.spyOn(LocalConfig, \"stubFsReadFile\");\nconst jsonParse = jest.spyOn(JSON, \"parse\");\n\nlet datasource: LocalConfigDataSource;\ndescribe(\"LocalConfigDataSource\", () => {\n describe(\"FileLocalConfigDataSource\", () => {\n beforeEach(() => {\n readFileSyncSpy.mockClear();\n jsonParse.mockClear();\n datasource = new FileLocalConfigDataSource();\n });\n\n afterAll(() => {\n readFileSyncSpy.mockRestore();\n jsonParse.mockRestore();\n });\n\n it(\"should return an Either<never, Config>\", () => {\n readFileSyncSpy.mockReturnValue(\n JSON.stringify({ name: \"DeviceSDK\", version: \"0.0.0-spied.1\" }),\n );\n\n jsonParse.mockReturnValue({\n name: \"DeviceSDK\",\n version: \"0.0.0-spied.1\",\n });\n\n expect(datasource.getConfig()).toStrictEqual(\n Either.of({\n name: \"DeviceSDK\",\n version: \"0.0.0-spied.1\",\n }),\n );\n });\n\n it(\"should return an Either<ReadFileError, never> if readFileSync throws\", () => {\n const err = new Error(\"readFileSync error\");\n readFileSyncSpy.mockImplementation(() => {\n throw err;\n });\n\n expect(datasource.getConfig()).toEqual(Left(new ReadFileError(err)));\n });\n\n it(\"should return an Either<JSONParseError, never> if JSON.parse throws\", () => {\n const err = new Error(\"JSON.parse error\");\n readFileSyncSpy.mockReturnValue(\n JSON.stringify({ name: \"DeviceSDK\", version: \"0.0.0-spied.1\" }),\n );\n\n jsonParse.mockImplementation(() => {\n throw err;\n });\n\n expect(datasource.getConfig()).toEqual(Left(new JSONParseError(err)));\n });\n });\n\n describe(\"stubFsReadFile\", () => {\n it(\"should return a stringified version of the version object\", () => {\n expect(LocalConfig.stubFsReadFile()).toEqual(\n JSON.stringify({\n name: \"@ledgerhq/device-management-kit\",\n version: pkg.version,\n }),\n );\n });\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,UAAAA,EAAQ,QAAAC,MAAY,YAE7B,OAAS,kBAAAC,EAAgB,iBAAAC,MAAqB,gCAC9C,OAAOC,MAAS,qBAGhB,UAAYC,MAAiB,0BAE7B,KAAM,CAAE,0BAAAC,CAA0B,EAAID,EAEhCE,EAAkB,KAAK,MAAMF,EAAa,gBAAgB,EAC1DG,EAAY,KAAK,MAAM,KAAM,OAAO,EAE1C,IAAIC,EACJ,SAAS,wBAAyB,IAAM,CACtC,SAAS,4BAA6B,IAAM,CAC1C,WAAW,IAAM,CACfF,EAAgB,UAAU,EAC1BC,EAAU,UAAU,EACpBC,EAAa,IAAIH,CACnB,CAAC,EAED,SAAS,IAAM,CACbC,EAAgB,YAAY,EAC5BC,EAAU,YAAY,CACxB,CAAC,EAED,GAAG,yCAA0C,IAAM,CACjDD,EAAgB,gBACd,KAAK,UAAU,CAAE,KAAM,YAAa,QAAS,eAAgB,CAAC,CAChE,EAEAC,EAAU,gBAAgB,CACxB,KAAM,YACN,QAAS,eACX,CAAC,EAED,OAAOC,EAAW,UAAU,CAAC,EAAE,cAC7BT,EAAO,GAAG,CACR,KAAM,YACN,QAAS,eACX,CAAC,CACH,CACF,CAAC,EAED,GAAG,uEAAwE,IAAM,CAC/E,MAAMU,EAAM,IAAI,MAAM,oBAAoB,EAC1CH,EAAgB,mBAAmB,IAAM,CACvC,MAAMG,CACR,CAAC,EAED,OAAOD,EAAW,UAAU,CAAC,EAAE,QAAQR,EAAK,IAAIE,EAAcO,CAAG,CAAC,CAAC,CACrE,CAAC,EAED,GAAG,sEAAuE,IAAM,CAC9E,MAAMA,EAAM,IAAI,MAAM,kBAAkB,EACxCH,EAAgB,gBACd,KAAK,UAAU,CAAE,KAAM,YAAa,QAAS,eAAgB,CAAC,CAChE,EAEAC,EAAU,mBAAmB,IAAM,CACjC,MAAME,CACR,CAAC,EAED,OAAOD,EAAW,UAAU,CAAC,EAAE,QAAQR,EAAK,IAAIC,EAAeQ,CAAG,CAAC,CAAC,CACtE,CAAC,CACH,CAAC,EAED,SAAS,iBAAkB,IAAM,CAC/B,GAAG,4DAA6D,IAAM,CACpE,OAAOL,EAAY,eAAe,CAAC,EAAE,QACnC,KAAK,UAAU,CACb,KAAM,kCACN,QAASD,EAAI,OACf,CAAC,CACH,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
- "names": ["Either", "Left", "JSONParseError", "ReadFileError", "pkg", "LocalConfig", "FileLocalConfigDataSource", "readFileSyncSpy", "jsonParse", "datasource", "err"]
4
+ "sourcesContent": ["import { Either, Left } from \"purify-ts\";\n\nimport { JSONParseError, ReadFileError } from \"@internal/config/model/Errors\";\nimport pkg from \"@root/package.json\";\n\nimport { type LocalConfigDataSource } from \"./ConfigDataSource\";\nimport * as LocalConfig from \"./LocalConfigDataSource\";\n\nconst { FileLocalConfigDataSource } = LocalConfig;\n\nconst readFileSyncSpy = vi.spyOn(LocalConfig, \"stubFsReadFile\");\nconst jsonParse = vi.spyOn(JSON, \"parse\");\nconst jsonStringify = vi.spyOn(JSON, \"stringify\");\n\nlet datasource: LocalConfigDataSource;\ndescribe(\"LocalConfigDataSource\", () => {\n describe(\"FileLocalConfigDataSource\", () => {\n beforeEach(() => {\n vi.resetAllMocks();\n datasource = new FileLocalConfigDataSource();\n });\n\n afterAll(() => {\n vi.resetAllMocks();\n });\n\n it(\"should return an Either<never, Config>\", () => {\n readFileSyncSpy.mockReturnValue(\n JSON.stringify({ name: \"DeviceSDK\", version: \"0.0.0-spied.1\" }),\n );\n\n jsonParse.mockReturnValue({\n name: \"DeviceSDK\",\n version: \"0.0.0-spied.1\",\n });\n\n expect(datasource.getConfig()).toStrictEqual(\n Either.of({\n name: \"DeviceSDK\",\n version: \"0.0.0-spied.1\",\n }),\n );\n });\n\n it(\"should return an Either<ReadFileError, never> if readFileSync throws\", () => {\n const err = new Error(\"readFileSync error\");\n jsonStringify.mockImplementation(() => {\n throw err;\n });\n\n expect(datasource.getConfig()).toEqual(Left(new ReadFileError(err)));\n });\n\n it(\"should return an Either<JSONParseError, never> if JSON.parse throws\", () => {\n const err = new Error(\"JSON.parse error\");\n readFileSyncSpy.mockReturnValue(\n JSON.stringify({ name: \"DeviceSDK\", version: \"0.0.0-spied.1\" }),\n );\n\n jsonParse.mockImplementation(() => {\n throw err;\n });\n\n expect(datasource.getConfig()).toEqual(Left(new JSONParseError(err)));\n });\n });\n\n describe(\"stubFsReadFile\", () => {\n it(\"should return a stringified version of the version object\", () => {\n expect(LocalConfig.stubFsReadFile()).toEqual(\n JSON.stringify({\n name: \"@ledgerhq/device-management-kit\",\n version: pkg.version,\n }),\n );\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,UAAAA,EAAQ,QAAAC,MAAY,YAE7B,OAAS,kBAAAC,EAAgB,iBAAAC,MAAqB,gCAC9C,OAAOC,MAAS,qBAGhB,UAAYC,MAAiB,0BAE7B,KAAM,CAAE,0BAAAC,CAA0B,EAAID,EAEhCE,EAAkB,GAAG,MAAMF,EAAa,gBAAgB,EACxDG,EAAY,GAAG,MAAM,KAAM,OAAO,EAClCC,EAAgB,GAAG,MAAM,KAAM,WAAW,EAEhD,IAAIC,EACJ,SAAS,wBAAyB,IAAM,CACtC,SAAS,4BAA6B,IAAM,CAC1C,WAAW,IAAM,CACf,GAAG,cAAc,EACjBA,EAAa,IAAIJ,CACnB,CAAC,EAED,SAAS,IAAM,CACb,GAAG,cAAc,CACnB,CAAC,EAED,GAAG,yCAA0C,IAAM,CACjDC,EAAgB,gBACd,KAAK,UAAU,CAAE,KAAM,YAAa,QAAS,eAAgB,CAAC,CAChE,EAEAC,EAAU,gBAAgB,CACxB,KAAM,YACN,QAAS,eACX,CAAC,EAED,OAAOE,EAAW,UAAU,CAAC,EAAE,cAC7BV,EAAO,GAAG,CACR,KAAM,YACN,QAAS,eACX,CAAC,CACH,CACF,CAAC,EAED,GAAG,uEAAwE,IAAM,CAC/E,MAAMW,EAAM,IAAI,MAAM,oBAAoB,EAC1CF,EAAc,mBAAmB,IAAM,CACrC,MAAME,CACR,CAAC,EAED,OAAOD,EAAW,UAAU,CAAC,EAAE,QAAQT,EAAK,IAAIE,EAAcQ,CAAG,CAAC,CAAC,CACrE,CAAC,EAED,GAAG,sEAAuE,IAAM,CAC9E,MAAMA,EAAM,IAAI,MAAM,kBAAkB,EACxCJ,EAAgB,gBACd,KAAK,UAAU,CAAE,KAAM,YAAa,QAAS,eAAgB,CAAC,CAChE,EAEAC,EAAU,mBAAmB,IAAM,CACjC,MAAMG,CACR,CAAC,EAED,OAAOD,EAAW,UAAU,CAAC,EAAE,QAAQT,EAAK,IAAIC,EAAeS,CAAG,CAAC,CAAC,CACtE,CAAC,CACH,CAAC,EAED,SAAS,iBAAkB,IAAM,CAC/B,GAAG,4DAA6D,IAAM,CACpE,OAAON,EAAY,eAAe,CAAC,EAAE,QACnC,KAAK,UAAU,CACb,KAAM,kCACN,QAASD,EAAI,OACf,CAAC,CACH,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["Either", "Left", "JSONParseError", "ReadFileError", "pkg", "LocalConfig", "FileLocalConfigDataSource", "readFileSyncSpy", "jsonParse", "jsonStringify", "datasource", "err"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Either as e,Left as o}from"purify-ts";import{ApiCallError as c,JSONParseError as l,ParseResponseError as s}from"../../config/model/Errors";import{RestRemoteConfigDataSource as i}from"./RemoteConfigDataSource";let r;const t=jest.spyOn(i.prototype,"_callApi"),n=jest.spyOn(i.prototype,"_parseResponse");describe("RemoteRestConfigDataSource",()=>{describe("RestRemoteConfigDataSource",()=>{beforeEach(()=>{t.mockClear(),n.mockClear(),r=new i}),it("should return an Either<never, Config>",async()=>{t.mockResolvedValue(e.of({ok:!0,json:()=>Promise.resolve(e.of({name:"DeviceSDK",version:"0.0.0-fake.1"}))})),n.mockReturnValue(e.of({name:"DeviceSDK",version:"0.0.0-fake.1"})),expect(await r.getConfig()).toStrictEqual(e.of({name:"DeviceSDK",version:"0.0.0-fake.1"}))}),it("should return an Either<ApiCallError, never> if _callApi throws",async()=>{const a=new Error("_callApi error");t.mockResolvedValue(o(a)),expect(await r.getConfig()).toStrictEqual(o(new c(a)))}),it("should return an Either<ApiCallError, never> if _callApi returns a non-ok response",async()=>{t.mockResolvedValue(e.of({ok:!1,json:()=>Promise.resolve(e.of({name:"DeviceSDK",version:"0.0.0-fake.1"}))})),expect(await r.getConfig()).toStrictEqual(o(new c(new Error("response not ok"))))}),it("should return an Either<JSONParseError, never> if deserializing json fails",async()=>{const a=new Error("deserializing json failure");t.mockResolvedValue(e.of({ok:!0,json:()=>Promise.resolve(o(a))})),expect(await r.getConfig()).toStrictEqual(o(new l))}),it("should return an Either<ParseResponseError, never> if _parseResponse throws",async()=>{t.mockResolvedValue(e.of({ok:!0,json:()=>Promise.resolve(e.of({name:"DeviceSDK",version:"0.0.0-fake.1"}))})),n.mockImplementation(()=>o(new s)),expect(await r.getConfig()).toStrictEqual(o(new s))}),it("should return an Either<ParseResponseError, never> if `name` is missing in Dto",async()=>{n.mockRestore(),t.mockResolvedValue(e.of({ok:!0,json:()=>Promise.resolve(e.of({version:"0.0.0-fake.1",yolo:"yolo"}))})),expect(await r.getConfig()).toStrictEqual(o(new s))}),describe("without private methods spy",()=>{beforeEach(()=>{t.mockRestore(),n.mockRestore()}),it("should return an Either<never, Config>",async()=>{expect(await r.getConfig()).toStrictEqual(e.of({name:"DeviceSDK",version:"0.0.0-fake.1"}))})})})});
1
+ import{Either as e,Left as o}from"purify-ts";import{ApiCallError as c,JSONParseError as l,ParseResponseError as i}from"../../config/model/Errors";import{RestRemoteConfigDataSource as s}from"./RemoteConfigDataSource";let r;const t=vi.spyOn(s.prototype,"_callApi"),n=vi.spyOn(s.prototype,"_parseResponse");describe("RemoteRestConfigDataSource",()=>{describe("RestRemoteConfigDataSource",()=>{beforeEach(()=>{t.mockClear(),n.mockClear(),r=new s}),it("should return an Either<never, Config>",async()=>{t.mockResolvedValue(e.of({ok:!0,json:()=>Promise.resolve(e.of({name:"DeviceSDK",version:"0.0.0-fake.1"}))})),n.mockReturnValue(e.of({name:"DeviceSDK",version:"0.0.0-fake.1"})),expect(await r.getConfig()).toStrictEqual(e.of({name:"DeviceSDK",version:"0.0.0-fake.1"}))}),it("should return an Either<ApiCallError, never> if _callApi throws",async()=>{const a=new Error("_callApi error");t.mockResolvedValue(o(a)),expect(await r.getConfig()).toStrictEqual(o(new c(a)))}),it("should return an Either<ApiCallError, never> if _callApi returns a non-ok response",async()=>{t.mockResolvedValue(e.of({ok:!1,json:()=>Promise.resolve(e.of({name:"DeviceSDK",version:"0.0.0-fake.1"}))})),expect(await r.getConfig()).toStrictEqual(o(new c(new Error("response not ok"))))}),it("should return an Either<JSONParseError, never> if deserializing json fails",async()=>{const a=new Error("deserializing json failure");t.mockResolvedValue(e.of({ok:!0,json:()=>Promise.resolve(o(a))})),expect(await r.getConfig()).toStrictEqual(o(new l))}),it("should return an Either<ParseResponseError, never> if _parseResponse throws",async()=>{t.mockResolvedValue(e.of({ok:!0,json:()=>Promise.resolve(e.of({name:"DeviceSDK",version:"0.0.0-fake.1"}))})),n.mockImplementation(()=>o(new i)),expect(await r.getConfig()).toStrictEqual(o(new i))}),it("should return an Either<ParseResponseError, never> if `name` is missing in Dto",async()=>{n.mockRestore(),t.mockResolvedValue(e.of({ok:!0,json:()=>Promise.resolve(e.of({version:"0.0.0-fake.1",yolo:"yolo"}))})),expect(await r.getConfig()).toStrictEqual(o(new i))}),describe("without private methods spy",()=>{beforeEach(()=>{t.mockRestore(),n.mockRestore()}),it("should return an Either<never, Config>",async()=>{expect(await r.getConfig()).toStrictEqual(e.of({name:"DeviceSDK",version:"0.0.0-fake.1"}))})})})});
2
2
  //# sourceMappingURL=RemoteConfigDataSource.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/config/data/RemoteConfigDataSource.test.ts"],
4
- "sourcesContent": ["import { Either, Left } from \"purify-ts\";\n\nimport {\n ApiCallError,\n JSONParseError,\n ParseResponseError,\n} from \"@internal/config/model/Errors\";\n\nimport { type RemoteConfigDataSource } from \"./ConfigDataSource\";\nimport { RestRemoteConfigDataSource } from \"./RemoteConfigDataSource\";\n\nlet datasource: RemoteConfigDataSource;\n\n// Necessary to use `any` on the prototype to be able to spy on private methods\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst callApiSpy = jest.spyOn(\n RestRemoteConfigDataSource.prototype as any,\n \"_callApi\",\n);\nconst parseResponseSpy = jest.spyOn(\n RestRemoteConfigDataSource.prototype as any,\n \"_parseResponse\",\n);\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\ndescribe(\"RemoteRestConfigDataSource\", () => {\n describe(\"RestRemoteConfigDataSource\", () => {\n beforeEach(() => {\n callApiSpy.mockClear();\n parseResponseSpy.mockClear();\n datasource = new RestRemoteConfigDataSource();\n });\n\n it(\"should return an Either<never, Config>\", async () => {\n callApiSpy.mockResolvedValue(\n Either.of({\n ok: true,\n json: () =>\n Promise.resolve(\n Either.of({ name: \"DeviceSDK\", version: \"0.0.0-fake.1\" }),\n ),\n }),\n );\n\n parseResponseSpy.mockReturnValue(\n Either.of({\n name: \"DeviceSDK\",\n version: \"0.0.0-fake.1\",\n }),\n );\n\n expect(await datasource.getConfig()).toStrictEqual(\n Either.of({\n name: \"DeviceSDK\",\n version: \"0.0.0-fake.1\",\n }),\n );\n });\n\n it(\"should return an Either<ApiCallError, never> if _callApi throws\", async () => {\n const err = new Error(\"_callApi error\");\n callApiSpy.mockResolvedValue(Left(err));\n\n expect(await datasource.getConfig()).toStrictEqual(\n Left(new ApiCallError(err)),\n );\n });\n\n it(\"should return an Either<ApiCallError, never> if _callApi returns a non-ok response\", async () => {\n callApiSpy.mockResolvedValue(\n Either.of({\n ok: false,\n json: () =>\n Promise.resolve(\n Either.of({ name: \"DeviceSDK\", version: \"0.0.0-fake.1\" }),\n ),\n }),\n );\n\n expect(await datasource.getConfig()).toStrictEqual(\n Left(new ApiCallError(new Error(\"response not ok\"))),\n );\n });\n\n it(\"should return an Either<JSONParseError, never> if deserializing json fails\", async () => {\n const err = new Error(\"deserializing json failure\");\n callApiSpy.mockResolvedValue(\n Either.of({\n ok: true,\n json: () => Promise.resolve(Left(err)),\n }),\n );\n\n expect(await datasource.getConfig()).toStrictEqual(\n Left(new JSONParseError()),\n );\n });\n\n it(\"should return an Either<ParseResponseError, never> if _parseResponse throws\", async () => {\n callApiSpy.mockResolvedValue(\n Either.of({\n ok: true,\n json: () =>\n Promise.resolve(\n Either.of({ name: \"DeviceSDK\", version: \"0.0.0-fake.1\" }),\n ),\n }),\n );\n\n parseResponseSpy.mockImplementation(() => {\n return Left(new ParseResponseError());\n });\n\n expect(await datasource.getConfig()).toStrictEqual(\n Left(new ParseResponseError()),\n );\n });\n\n it(\"should return an Either<ParseResponseError, never> if `name` is missing in Dto\", async () => {\n parseResponseSpy.mockRestore();\n callApiSpy.mockResolvedValue(\n Either.of({\n ok: true,\n json: () =>\n Promise.resolve(\n Either.of({\n version: \"0.0.0-fake.1\",\n yolo: \"yolo\",\n }),\n ),\n }),\n );\n\n expect(await datasource.getConfig()).toStrictEqual(\n Left(new ParseResponseError()),\n );\n });\n\n describe(\"without private methods spy\", () => {\n beforeEach(() => {\n callApiSpy.mockRestore();\n parseResponseSpy.mockRestore();\n });\n\n it(\"should return an Either<never, Config>\", async () => {\n expect(await datasource.getConfig()).toStrictEqual(\n Either.of({\n name: \"DeviceSDK\",\n version: \"0.0.0-fake.1\",\n }),\n );\n });\n });\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Either, Left } from \"purify-ts\";\n\nimport {\n ApiCallError,\n JSONParseError,\n ParseResponseError,\n} from \"@internal/config/model/Errors\";\n\nimport { type RemoteConfigDataSource } from \"./ConfigDataSource\";\nimport { RestRemoteConfigDataSource } from \"./RemoteConfigDataSource\";\n\nlet datasource: RemoteConfigDataSource;\n\n// Necessary to use `any` on the prototype to be able to spy on private methods\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst callApiSpy = vi.spyOn(\n RestRemoteConfigDataSource.prototype as any,\n \"_callApi\",\n);\nconst parseResponseSpy = vi.spyOn(\n RestRemoteConfigDataSource.prototype as any,\n \"_parseResponse\",\n);\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\ndescribe(\"RemoteRestConfigDataSource\", () => {\n describe(\"RestRemoteConfigDataSource\", () => {\n beforeEach(() => {\n callApiSpy.mockClear();\n parseResponseSpy.mockClear();\n datasource = new RestRemoteConfigDataSource();\n });\n\n it(\"should return an Either<never, Config>\", async () => {\n callApiSpy.mockResolvedValue(\n Either.of({\n ok: true,\n json: () =>\n Promise.resolve(\n Either.of({ name: \"DeviceSDK\", version: \"0.0.0-fake.1\" }),\n ),\n }),\n );\n\n parseResponseSpy.mockReturnValue(\n Either.of({\n name: \"DeviceSDK\",\n version: \"0.0.0-fake.1\",\n }),\n );\n\n expect(await datasource.getConfig()).toStrictEqual(\n Either.of({\n name: \"DeviceSDK\",\n version: \"0.0.0-fake.1\",\n }),\n );\n });\n\n it(\"should return an Either<ApiCallError, never> if _callApi throws\", async () => {\n const err = new Error(\"_callApi error\");\n callApiSpy.mockResolvedValue(Left(err));\n\n expect(await datasource.getConfig()).toStrictEqual(\n Left(new ApiCallError(err)),\n );\n });\n\n it(\"should return an Either<ApiCallError, never> if _callApi returns a non-ok response\", async () => {\n callApiSpy.mockResolvedValue(\n Either.of({\n ok: false,\n json: () =>\n Promise.resolve(\n Either.of({ name: \"DeviceSDK\", version: \"0.0.0-fake.1\" }),\n ),\n }),\n );\n\n expect(await datasource.getConfig()).toStrictEqual(\n Left(new ApiCallError(new Error(\"response not ok\"))),\n );\n });\n\n it(\"should return an Either<JSONParseError, never> if deserializing json fails\", async () => {\n const err = new Error(\"deserializing json failure\");\n callApiSpy.mockResolvedValue(\n Either.of({\n ok: true,\n json: () => Promise.resolve(Left(err)),\n }),\n );\n\n expect(await datasource.getConfig()).toStrictEqual(\n Left(new JSONParseError()),\n );\n });\n\n it(\"should return an Either<ParseResponseError, never> if _parseResponse throws\", async () => {\n callApiSpy.mockResolvedValue(\n Either.of({\n ok: true,\n json: () =>\n Promise.resolve(\n Either.of({ name: \"DeviceSDK\", version: \"0.0.0-fake.1\" }),\n ),\n }),\n );\n\n parseResponseSpy.mockImplementation(() => {\n return Left(new ParseResponseError());\n });\n\n expect(await datasource.getConfig()).toStrictEqual(\n Left(new ParseResponseError()),\n );\n });\n\n it(\"should return an Either<ParseResponseError, never> if `name` is missing in Dto\", async () => {\n parseResponseSpy.mockRestore();\n callApiSpy.mockResolvedValue(\n Either.of({\n ok: true,\n json: () =>\n Promise.resolve(\n Either.of({\n version: \"0.0.0-fake.1\",\n yolo: \"yolo\",\n }),\n ),\n }),\n );\n\n expect(await datasource.getConfig()).toStrictEqual(\n Left(new ParseResponseError()),\n );\n });\n\n describe(\"without private methods spy\", () => {\n beforeEach(() => {\n callApiSpy.mockRestore();\n parseResponseSpy.mockRestore();\n });\n\n it(\"should return an Either<never, Config>\", async () => {\n expect(await datasource.getConfig()).toStrictEqual(\n Either.of({\n name: \"DeviceSDK\",\n version: \"0.0.0-fake.1\",\n }),\n );\n });\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,UAAAA,EAAQ,QAAAC,MAAY,YAE7B,OACE,gBAAAC,EACA,kBAAAC,EACA,sBAAAC,MACK,gCAGP,OAAS,8BAAAC,MAAkC,2BAE3C,IAAIC,EAIJ,MAAMC,EAAa,GAAG,MACpBF,EAA2B,UAC3B,UACF,EACMG,EAAmB,GAAG,MAC1BH,EAA2B,UAC3B,gBACF,EAGA,SAAS,6BAA8B,IAAM,CAC3C,SAAS,6BAA8B,IAAM,CAC3C,WAAW,IAAM,CACfE,EAAW,UAAU,EACrBC,EAAiB,UAAU,EAC3BF,EAAa,IAAID,CACnB,CAAC,EAED,GAAG,yCAA0C,SAAY,CACvDE,EAAW,kBACTP,EAAO,GAAG,CACR,GAAI,GACJ,KAAM,IACJ,QAAQ,QACNA,EAAO,GAAG,CAAE,KAAM,YAAa,QAAS,cAAe,CAAC,CAC1D,CACJ,CAAC,CACH,EAEAQ,EAAiB,gBACfR,EAAO,GAAG,CACR,KAAM,YACN,QAAS,cACX,CAAC,CACH,EAEA,OAAO,MAAMM,EAAW,UAAU,CAAC,EAAE,cACnCN,EAAO,GAAG,CACR,KAAM,YACN,QAAS,cACX,CAAC,CACH,CACF,CAAC,EAED,GAAG,kEAAmE,SAAY,CAChF,MAAMS,EAAM,IAAI,MAAM,gBAAgB,EACtCF,EAAW,kBAAkBN,EAAKQ,CAAG,CAAC,EAEtC,OAAO,MAAMH,EAAW,UAAU,CAAC,EAAE,cACnCL,EAAK,IAAIC,EAAaO,CAAG,CAAC,CAC5B,CACF,CAAC,EAED,GAAG,qFAAsF,SAAY,CACnGF,EAAW,kBACTP,EAAO,GAAG,CACR,GAAI,GACJ,KAAM,IACJ,QAAQ,QACNA,EAAO,GAAG,CAAE,KAAM,YAAa,QAAS,cAAe,CAAC,CAC1D,CACJ,CAAC,CACH,EAEA,OAAO,MAAMM,EAAW,UAAU,CAAC,EAAE,cACnCL,EAAK,IAAIC,EAAa,IAAI,MAAM,iBAAiB,CAAC,CAAC,CACrD,CACF,CAAC,EAED,GAAG,6EAA8E,SAAY,CAC3F,MAAMO,EAAM,IAAI,MAAM,4BAA4B,EAClDF,EAAW,kBACTP,EAAO,GAAG,CACR,GAAI,GACJ,KAAM,IAAM,QAAQ,QAAQC,EAAKQ,CAAG,CAAC,CACvC,CAAC,CACH,EAEA,OAAO,MAAMH,EAAW,UAAU,CAAC,EAAE,cACnCL,EAAK,IAAIE,CAAgB,CAC3B,CACF,CAAC,EAED,GAAG,8EAA+E,SAAY,CAC5FI,EAAW,kBACTP,EAAO,GAAG,CACR,GAAI,GACJ,KAAM,IACJ,QAAQ,QACNA,EAAO,GAAG,CAAE,KAAM,YAAa,QAAS,cAAe,CAAC,CAC1D,CACJ,CAAC,CACH,EAEAQ,EAAiB,mBAAmB,IAC3BP,EAAK,IAAIG,CAAoB,CACrC,EAED,OAAO,MAAME,EAAW,UAAU,CAAC,EAAE,cACnCL,EAAK,IAAIG,CAAoB,CAC/B,CACF,CAAC,EAED,GAAG,iFAAkF,SAAY,CAC/FI,EAAiB,YAAY,EAC7BD,EAAW,kBACTP,EAAO,GAAG,CACR,GAAI,GACJ,KAAM,IACJ,QAAQ,QACNA,EAAO,GAAG,CACR,QAAS,eACT,KAAM,MACR,CAAC,CACH,CACJ,CAAC,CACH,EAEA,OAAO,MAAMM,EAAW,UAAU,CAAC,EAAE,cACnCL,EAAK,IAAIG,CAAoB,CAC/B,CACF,CAAC,EAED,SAAS,8BAA+B,IAAM,CAC5C,WAAW,IAAM,CACfG,EAAW,YAAY,EACvBC,EAAiB,YAAY,CAC/B,CAAC,EAED,GAAG,yCAA0C,SAAY,CACvD,OAAO,MAAMF,EAAW,UAAU,CAAC,EAAE,cACnCN,EAAO,GAAG,CACR,KAAM,YACN,QAAS,cACX,CAAC,CACH,CACF,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["Either", "Left", "ApiCallError", "JSONParseError", "ParseResponseError", "RestRemoteConfigDataSource", "datasource", "callApiSpy", "parseResponseSpy", "err"]
7
7
  }
@@ -1,2 +1,2 @@
1
- class a{getConfig=jest.fn()}export{a as FileLocalConfigDataSource};
1
+ class a{getConfig=vi.fn()}export{a as FileLocalConfigDataSource};
2
2
  //# sourceMappingURL=LocalConfigDataSource.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/internal/config/data/__mocks__/LocalConfigDataSource.ts"],
4
- "sourcesContent": ["import { type LocalConfigDataSource } from \"@internal/config/data/ConfigDataSource\";\n\nexport class FileLocalConfigDataSource implements LocalConfigDataSource {\n getConfig = jest.fn();\n}\n"],
5
- "mappings": "AAEO,MAAMA,CAA2D,CACtE,UAAY,KAAK,GAAG,CACtB",
4
+ "sourcesContent": ["import { type LocalConfigDataSource } from \"@internal/config/data/ConfigDataSource\";\n\nexport class FileLocalConfigDataSource implements LocalConfigDataSource {\n getConfig = vi.fn();\n}\n"],
5
+ "mappings": "AAEO,MAAMA,CAA2D,CACtE,UAAY,GAAG,GAAG,CACpB",
6
6
  "names": ["FileLocalConfigDataSource"]
7
7
  }
@@ -1,2 +1,2 @@
1
- class t{getConfig=jest.fn();_parseResponse=jest.fn();_callApi=jest.fn()}export{t as RestRemoteConfigDataSource};
1
+ class o{getConfig=vi.fn();_parseResponse=vi.fn();_callApi=vi.fn()}export{o as RestRemoteConfigDataSource};
2
2
  //# sourceMappingURL=RemoteConfigDataSource.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/internal/config/data/__mocks__/RemoteConfigDataSource.ts"],
4
- "sourcesContent": ["import { type RemoteConfigDataSource } from \"@internal/config/data/ConfigDataSource\";\n\nexport class RestRemoteConfigDataSource implements RemoteConfigDataSource {\n getConfig = jest.fn();\n _parseResponse = jest.fn();\n _callApi = jest.fn();\n}\n"],
5
- "mappings": "AAEO,MAAMA,CAA6D,CACxE,UAAY,KAAK,GAAG,EACpB,eAAiB,KAAK,GAAG,EACzB,SAAW,KAAK,GAAG,CACrB",
4
+ "sourcesContent": ["import { type RemoteConfigDataSource } from \"@internal/config/data/ConfigDataSource\";\n\nexport class RestRemoteConfigDataSource implements RemoteConfigDataSource {\n getConfig = vi.fn();\n _parseResponse = vi.fn();\n _callApi = vi.fn();\n}\n"],
5
+ "mappings": "AAEO,MAAMA,CAA6D,CACxE,UAAY,GAAG,GAAG,EAClB,eAAiB,GAAG,GAAG,EACvB,SAAW,GAAG,GAAG,CACnB",
6
6
  "names": ["RestRemoteConfigDataSource"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Either as r,Left as a}from"purify-ts";import{FileLocalConfigDataSource as n}from"../../config/data/LocalConfigDataSource";import{RestRemoteConfigDataSource as l}from"../../config/data/RemoteConfigDataSource";import{JSONParseError as i}from"../../config/model/Errors";import{DefaultLoggerPublisherService as s}from"../../logger-publisher/service/DefaultLoggerPublisherService";import{DefaultConfigService as f}from"./DefaultConfigService";jest.mock("@internal/config/data/LocalConfigDataSource");jest.mock("@internal/config/data/RemoteConfigDataSource");let e,o,c,t;describe("DefaultConfigService",()=>{beforeEach(()=>{jest.clearAllMocks(),e=new n,o=new l,c=new s([],"config"),t=new f(e,o,()=>c)}),describe("when the local config is available",()=>{it("should return the `local` version",async()=>{e.getConfig.mockReturnValue(r.of({name:"DeviceSDK",version:"1.0.0-local"})),expect(await t.getDmkConfig()).toStrictEqual({name:"DeviceSDK",version:"1.0.0-local"})})}),describe("when the local config is not available, use remote",()=>{it("should return the `remote` version",async()=>{e.getConfig.mockReturnValue(a(new i)),o.getConfig.mockResolvedValue(r.of({name:"DeviceSDK",version:"1.0.0-remote"})),expect(await t.getDmkConfig()).toStrictEqual({name:"DeviceSDK",version:"1.0.0-remote"})})}),describe("when the local remote config are not available",()=>{it("should return the `default` version",async()=>{e.getConfig.mockReturnValue(a(new i)),o.getConfig.mockResolvedValue(a(new i)),expect(await t.getDmkConfig()).toStrictEqual({name:"DeadDmk",version:"0.0.0-dead.1"})})})});
1
+ import{Either as r,Left as i}from"purify-ts";import{FileLocalConfigDataSource as n}from"../../config/data/LocalConfigDataSource";import{RestRemoteConfigDataSource as l}from"../../config/data/RemoteConfigDataSource";import{JSONParseError as a}from"../../config/model/Errors";import{DefaultLoggerPublisherService as f}from"../../logger-publisher/service/DefaultLoggerPublisherService";import{DefaultConfigService as g}from"./DefaultConfigService";vi.mock("@internal/config/data/LocalConfigDataSource");vi.mock("@internal/config/data/RemoteConfigDataSource");let e,o,c,t;describe("DefaultConfigService",()=>{beforeEach(()=>{vi.clearAllMocks(),e=new n,o=new l,c=new f([],"config"),t=new g(e,o,()=>c)}),describe("when the local config is available",()=>{it("should return the `local` version",async()=>{e.getConfig.mockReturnValue(r.of({name:"DeviceSDK",version:"1.0.0-local"})),expect(await t.getDmkConfig()).toStrictEqual({name:"DeviceSDK",version:"1.0.0-local"})})}),describe("when the local config is not available, use remote",()=>{it("should return the `remote` version",async()=>{e.getConfig.mockReturnValue(i(new a)),o.getConfig.mockResolvedValue(r.of({name:"DeviceSDK",version:"1.0.0-remote"})),expect(await t.getDmkConfig()).toStrictEqual({name:"DeviceSDK",version:"1.0.0-remote"})})}),describe("when the local remote config are not available",()=>{it("should return the `default` version",async()=>{e.getConfig.mockReturnValue(i(new a)),o.getConfig.mockResolvedValue(i(new a)),expect(await t.getDmkConfig()).toStrictEqual({name:"DeadDmk",version:"0.0.0-dead.1"})})})});
2
2
  //# sourceMappingURL=DefaultConfigService.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/config/service/DefaultConfigService.test.ts"],
4
- "sourcesContent": ["import { Either, Left } from \"purify-ts\";\n\nimport { FileLocalConfigDataSource } from \"@internal/config/data/LocalConfigDataSource\";\nimport { RestRemoteConfigDataSource } from \"@internal/config/data/RemoteConfigDataSource\";\nimport { JSONParseError } from \"@internal/config/model/Errors\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\n\nimport { type ConfigService } from \"./ConfigService\";\nimport { DefaultConfigService } from \"./DefaultConfigService\";\n\njest.mock(\"@internal/config/data/LocalConfigDataSource\");\njest.mock(\"@internal/config/data/RemoteConfigDataSource\");\n\nlet localDataSource: jest.Mocked<FileLocalConfigDataSource>;\nlet remoteDataSource: jest.Mocked<RestRemoteConfigDataSource>;\nlet loggerService: jest.Mocked<DefaultLoggerPublisherService>;\n\nlet service: ConfigService;\ndescribe(\"DefaultConfigService\", () => {\n beforeEach(() => {\n jest.clearAllMocks();\n localDataSource =\n new FileLocalConfigDataSource() as jest.Mocked<FileLocalConfigDataSource>;\n remoteDataSource =\n new RestRemoteConfigDataSource() as jest.Mocked<RestRemoteConfigDataSource>;\n\n loggerService = new DefaultLoggerPublisherService(\n [],\n \"config\",\n ) as jest.Mocked<DefaultLoggerPublisherService>;\n\n service = new DefaultConfigService(\n localDataSource,\n remoteDataSource,\n () => loggerService,\n );\n });\n\n describe(\"when the local config is available\", () => {\n it(\"should return the `local` version\", async () => {\n localDataSource.getConfig.mockReturnValue(\n Either.of({\n name: \"DeviceSDK\",\n version: \"1.0.0-local\",\n }),\n );\n\n expect(await service.getDmkConfig()).toStrictEqual({\n name: \"DeviceSDK\",\n version: \"1.0.0-local\",\n });\n });\n });\n\n describe(\"when the local config is not available, use remote\", () => {\n it(\"should return the `remote` version\", async () => {\n localDataSource.getConfig.mockReturnValue(Left(new JSONParseError()));\n remoteDataSource.getConfig.mockResolvedValue(\n Either.of({\n name: \"DeviceSDK\",\n version: \"1.0.0-remote\",\n }),\n );\n\n expect(await service.getDmkConfig()).toStrictEqual({\n name: \"DeviceSDK\",\n version: \"1.0.0-remote\",\n });\n });\n });\n\n describe(\"when the local remote config are not available\", () => {\n it(\"should return the `default` version\", async () => {\n localDataSource.getConfig.mockReturnValue(Left(new JSONParseError()));\n remoteDataSource.getConfig.mockResolvedValue(Left(new JSONParseError()));\n\n expect(await service.getDmkConfig()).toStrictEqual({\n name: \"DeadDmk\",\n version: \"0.0.0-dead.1\",\n });\n });\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,UAAAA,EAAQ,QAAAC,MAAY,YAE7B,OAAS,6BAAAC,MAAiC,8CAC1C,OAAS,8BAAAC,MAAkC,+CAC3C,OAAS,kBAAAC,MAAsB,gCAC/B,OAAS,iCAAAC,MAAqC,mEAG9C,OAAS,wBAAAC,MAA4B,yBAErC,KAAK,KAAK,6CAA6C,EACvD,KAAK,KAAK,8CAA8C,EAExD,IAAIC,EACAC,EACAC,EAEAC,EACJ,SAAS,uBAAwB,IAAM,CACrC,WAAW,IAAM,CACf,KAAK,cAAc,EACnBH,EACE,IAAIL,EACNM,EACE,IAAIL,EAENM,EAAgB,IAAIJ,EAClB,CAAC,EACD,QACF,EAEAK,EAAU,IAAIJ,EACZC,EACAC,EACA,IAAMC,CACR,CACF,CAAC,EAED,SAAS,qCAAsC,IAAM,CACnD,GAAG,oCAAqC,SAAY,CAClDF,EAAgB,UAAU,gBACxBP,EAAO,GAAG,CACR,KAAM,YACN,QAAS,aACX,CAAC,CACH,EAEA,OAAO,MAAMU,EAAQ,aAAa,CAAC,EAAE,cAAc,CACjD,KAAM,YACN,QAAS,aACX,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,qDAAsD,IAAM,CACnE,GAAG,qCAAsC,SAAY,CACnDH,EAAgB,UAAU,gBAAgBN,EAAK,IAAIG,CAAgB,CAAC,EACpEI,EAAiB,UAAU,kBACzBR,EAAO,GAAG,CACR,KAAM,YACN,QAAS,cACX,CAAC,CACH,EAEA,OAAO,MAAMU,EAAQ,aAAa,CAAC,EAAE,cAAc,CACjD,KAAM,YACN,QAAS,cACX,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,iDAAkD,IAAM,CAC/D,GAAG,sCAAuC,SAAY,CACpDH,EAAgB,UAAU,gBAAgBN,EAAK,IAAIG,CAAgB,CAAC,EACpEI,EAAiB,UAAU,kBAAkBP,EAAK,IAAIG,CAAgB,CAAC,EAEvE,OAAO,MAAMM,EAAQ,aAAa,CAAC,EAAE,cAAc,CACjD,KAAM,UACN,QAAS,cACX,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { Either, Left } from \"purify-ts\";\nimport { type Mocked } from \"vitest\";\n\nimport { FileLocalConfigDataSource } from \"@internal/config/data/LocalConfigDataSource\";\nimport { RestRemoteConfigDataSource } from \"@internal/config/data/RemoteConfigDataSource\";\nimport { JSONParseError } from \"@internal/config/model/Errors\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\n\nimport { type ConfigService } from \"./ConfigService\";\nimport { DefaultConfigService } from \"./DefaultConfigService\";\n\nvi.mock(\"@internal/config/data/LocalConfigDataSource\");\nvi.mock(\"@internal/config/data/RemoteConfigDataSource\");\n\nlet localDataSource: Mocked<FileLocalConfigDataSource>;\nlet remoteDataSource: Mocked<RestRemoteConfigDataSource>;\nlet loggerService: Mocked<DefaultLoggerPublisherService>;\n\nlet service: ConfigService;\ndescribe(\"DefaultConfigService\", () => {\n beforeEach(() => {\n vi.clearAllMocks();\n localDataSource =\n new FileLocalConfigDataSource() as Mocked<FileLocalConfigDataSource>;\n remoteDataSource =\n new RestRemoteConfigDataSource() as Mocked<RestRemoteConfigDataSource>;\n\n loggerService = new DefaultLoggerPublisherService(\n [],\n \"config\",\n ) as Mocked<DefaultLoggerPublisherService>;\n\n service = new DefaultConfigService(\n localDataSource,\n remoteDataSource,\n () => loggerService,\n );\n });\n\n describe(\"when the local config is available\", () => {\n it(\"should return the `local` version\", async () => {\n localDataSource.getConfig.mockReturnValue(\n Either.of({\n name: \"DeviceSDK\",\n version: \"1.0.0-local\",\n }),\n );\n\n expect(await service.getDmkConfig()).toStrictEqual({\n name: \"DeviceSDK\",\n version: \"1.0.0-local\",\n });\n });\n });\n\n describe(\"when the local config is not available, use remote\", () => {\n it(\"should return the `remote` version\", async () => {\n localDataSource.getConfig.mockReturnValue(Left(new JSONParseError()));\n remoteDataSource.getConfig.mockResolvedValue(\n Either.of({\n name: \"DeviceSDK\",\n version: \"1.0.0-remote\",\n }),\n );\n\n expect(await service.getDmkConfig()).toStrictEqual({\n name: \"DeviceSDK\",\n version: \"1.0.0-remote\",\n });\n });\n });\n\n describe(\"when the local remote config are not available\", () => {\n it(\"should return the `default` version\", async () => {\n localDataSource.getConfig.mockReturnValue(Left(new JSONParseError()));\n remoteDataSource.getConfig.mockResolvedValue(Left(new JSONParseError()));\n\n expect(await service.getDmkConfig()).toStrictEqual({\n name: \"DeadDmk\",\n version: \"0.0.0-dead.1\",\n });\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,UAAAA,EAAQ,QAAAC,MAAY,YAG7B,OAAS,6BAAAC,MAAiC,8CAC1C,OAAS,8BAAAC,MAAkC,+CAC3C,OAAS,kBAAAC,MAAsB,gCAC/B,OAAS,iCAAAC,MAAqC,mEAG9C,OAAS,wBAAAC,MAA4B,yBAErC,GAAG,KAAK,6CAA6C,EACrD,GAAG,KAAK,8CAA8C,EAEtD,IAAIC,EACAC,EACAC,EAEAC,EACJ,SAAS,uBAAwB,IAAM,CACrC,WAAW,IAAM,CACf,GAAG,cAAc,EACjBH,EACE,IAAIL,EACNM,EACE,IAAIL,EAENM,EAAgB,IAAIJ,EAClB,CAAC,EACD,QACF,EAEAK,EAAU,IAAIJ,EACZC,EACAC,EACA,IAAMC,CACR,CACF,CAAC,EAED,SAAS,qCAAsC,IAAM,CACnD,GAAG,oCAAqC,SAAY,CAClDF,EAAgB,UAAU,gBACxBP,EAAO,GAAG,CACR,KAAM,YACN,QAAS,aACX,CAAC,CACH,EAEA,OAAO,MAAMU,EAAQ,aAAa,CAAC,EAAE,cAAc,CACjD,KAAM,YACN,QAAS,aACX,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,qDAAsD,IAAM,CACnE,GAAG,qCAAsC,SAAY,CACnDH,EAAgB,UAAU,gBAAgBN,EAAK,IAAIG,CAAgB,CAAC,EACpEI,EAAiB,UAAU,kBACzBR,EAAO,GAAG,CACR,KAAM,YACN,QAAS,cACX,CAAC,CACH,EAEA,OAAO,MAAMU,EAAQ,aAAa,CAAC,EAAE,cAAc,CACjD,KAAM,YACN,QAAS,cACX,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,iDAAkD,IAAM,CAC/D,GAAG,sCAAuC,SAAY,CACpDH,EAAgB,UAAU,gBAAgBN,EAAK,IAAIG,CAAgB,CAAC,EACpEI,EAAiB,UAAU,kBAAkBP,EAAK,IAAIG,CAAgB,CAAC,EAEvE,OAAO,MAAMM,EAAQ,aAAa,CAAC,EAAE,cAAc,CACjD,KAAM,UACN,QAAS,cACX,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["Either", "Left", "FileLocalConfigDataSource", "RestRemoteConfigDataSource", "JSONParseError", "DefaultLoggerPublisherService", "DefaultConfigService", "localDataSource", "remoteDataSource", "loggerService", "service"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{GetDmkVersionUseCase as t}from"./GetDmkVersionUseCase";const e=jest.fn();let s;describe("GetDmkVersionUseCase",()=>{beforeEach(()=>{e.mockClear();const o={getDmkConfig:e};s=new t(o)}),it("should return the dmk version",async()=>{e.mockResolvedValue({name:"DeviceSDK",version:"1.0.0"}),expect(await s.getDmkVersion()).toBe("1.0.0")})});
1
+ import{GetDmkVersionUseCase as i}from"./GetDmkVersionUseCase";const e=vi.fn();let o;describe("GetDmkVersionUseCase",()=>{beforeEach(()=>{e.mockClear();const s={getDmkConfig:e};o=new i(s)}),it("should return the dmk version",async()=>{e.mockResolvedValue({name:"DeviceSDK",version:"1.0.0"}),expect(await o.getDmkVersion()).toBe("1.0.0")})});
2
2
  //# sourceMappingURL=GetDmkVersionUseCase.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/config/use-case/GetDmkVersionUseCase.test.ts"],
4
- "sourcesContent": ["import { GetDmkVersionUseCase } from \"./GetDmkVersionUseCase\";\n\nconst getDmkConfigMock = jest.fn();\n\nlet usecase: GetDmkVersionUseCase;\ndescribe(\"GetDmkVersionUseCase\", () => {\n beforeEach(() => {\n getDmkConfigMock.mockClear();\n const configService = {\n getDmkConfig: getDmkConfigMock,\n };\n\n usecase = new GetDmkVersionUseCase(configService);\n });\n\n it(\"should return the dmk version\", async () => {\n getDmkConfigMock.mockResolvedValue({\n name: \"DeviceSDK\",\n version: \"1.0.0\",\n });\n expect(await usecase.getDmkVersion()).toBe(\"1.0.0\");\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,wBAAAA,MAA4B,yBAErC,MAAMC,EAAmB,KAAK,GAAG,EAEjC,IAAIC,EACJ,SAAS,uBAAwB,IAAM,CACrC,WAAW,IAAM,CACfD,EAAiB,UAAU,EAC3B,MAAME,EAAgB,CACpB,aAAcF,CAChB,EAEAC,EAAU,IAAIF,EAAqBG,CAAa,CAClD,CAAC,EAED,GAAG,gCAAiC,SAAY,CAC9CF,EAAiB,kBAAkB,CACjC,KAAM,YACN,QAAS,OACX,CAAC,EACD,OAAO,MAAMC,EAAQ,cAAc,CAAC,EAAE,KAAK,OAAO,CACpD,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { GetDmkVersionUseCase } from \"./GetDmkVersionUseCase\";\n\nconst getDmkConfigMock = vi.fn();\n\nlet usecase: GetDmkVersionUseCase;\ndescribe(\"GetDmkVersionUseCase\", () => {\n beforeEach(() => {\n getDmkConfigMock.mockClear();\n const configService = {\n getDmkConfig: getDmkConfigMock,\n };\n\n usecase = new GetDmkVersionUseCase(configService);\n });\n\n it(\"should return the dmk version\", async () => {\n getDmkConfigMock.mockResolvedValue({\n name: \"DeviceSDK\",\n version: \"1.0.0\",\n });\n expect(await usecase.getDmkVersion()).toBe(\"1.0.0\");\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,wBAAAA,MAA4B,yBAErC,MAAMC,EAAmB,GAAG,GAAG,EAE/B,IAAIC,EACJ,SAAS,uBAAwB,IAAM,CACrC,WAAW,IAAM,CACfD,EAAiB,UAAU,EAC3B,MAAME,EAAgB,CACpB,aAAcF,CAChB,EAEAC,EAAU,IAAIF,EAAqBG,CAAa,CAClD,CAAC,EAED,GAAG,gCAAiC,SAAY,CAC9CF,EAAiB,kBAAkB,CACjC,KAAM,YACN,QAAS,OACX,CAAC,EACD,OAAO,MAAMC,EAAQ,cAAc,CAAC,EAAE,KAAK,OAAO,CACpD,CAAC,CACH,CAAC",
6
6
  "names": ["GetDmkVersionUseCase", "getDmkConfigMock", "usecase", "configService"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Left as a}from"purify-ts";import{BehaviorSubject as c}from"rxjs";import{v4 as p}from"uuid";import{CommandUtils as d}from"../../../api/command/utils/CommandUtils";import{DeviceStatus as i}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 m}from"./DeviceSessionRefresher";class R{_id;_connectedDevice;_deviceState;_refresher;_managerApiService;constructor({connectedDevice:e,id:s=p()},r,t){this._id=s,this._connectedDevice=e,this._deviceState=new c({sessionStateType:v.Connected,deviceStatus:i.CONNECTED}),this._refresher=new m({refreshInterval:S,deviceStatus:i.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 s=this._deviceState.getValue();this._refresher.setDeviceStatus(e),this._deviceState.next({...s,deviceStatus:e})}async sendApdu(e,s={isPolling:!1,triggersDisconnection:!1}){return this._deviceState.getValue().deviceStatus===i.BUSY?a(new u):(s.isPolling||this.updateDeviceStatus(i.BUSY),(await this._connectedDevice.sendApdu(e,s.triggersDisconnection)).ifRight(o=>{d.isLockedDeviceResponse(o)?this.updateDeviceStatus(i.LOCKED):this.updateDeviceStatus(i.CONNECTED)}).ifLeft(()=>{this.updateDeviceStatus(i.CONNECTED)}))}async sendCommand(e){const s=e.getApdu();return(await this.sendApdu(s.getRawApdu(),{isPolling:!1,triggersDisconnection:e.triggersDisconnection??!1})).caseOf({Left:t=>{throw t},Right:t=>e.parseResponse(t,this._connectedDevice.deviceModel.id)})}executeDeviceAction(e){const{observable:s,cancel: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:s,cancel:r}}close(){this.updateDeviceStatus(i.NOT_CONNECTED),this._deviceState.complete(),this._refresher.stop()}toggleRefresher(e){e?this._refresher.start():this._refresher.stop()}}export{R as DeviceSession};
1
+ import{Left as a}from"purify-ts";import{BehaviorSubject as d}from"rxjs";import{v4 as p}from"uuid";import{CommandUtils as u}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 S}from"../../../api/Error";import{DEVICE_SESSION_REFRESH_INTERVAL as l}from"../../device-session/data/DeviceSessionRefresherConst";import{DeviceSessionRefresher as h}from"./DeviceSessionRefresher";class b{_id;_connectedDevice;_deviceState;_refresher;_managerApiService;_secureChannelService;constructor({connectedDevice:e,id:t=p()},r,i,n){this._id=t,this._connectedDevice=e,this._deviceState=new d({sessionStateType:v.Connected,deviceStatus:s.CONNECTED,deviceModelId:this._connectedDevice.deviceModel.id}),this._refresher=new h({refreshInterval:l,deviceStatus:s.CONNECTED,deviceModelId:this._connectedDevice.deviceModel.id,sendApduFn:o=>this.sendApdu(o,{isPolling:!0,triggersDisconnection:!1}),updateStateFn:o=>{const c=this._deviceState.getValue();this.setDeviceSessionState(o(c))}},r("device-session-refresher")),this._managerApiService=i,this._secureChannelService=n}get id(){return this._id}get connectedDevice(){return this._connectedDevice}get state(){return this._deviceState.asObservable()}setDeviceSessionState(e){this._deviceState.next(e)}updateDeviceStatus(e){const t=this._deviceState.getValue();this._refresher.setDeviceStatus(e),this._deviceState.next({...t,deviceStatus:e})}async sendApdu(e,t={isPolling:!1,triggersDisconnection:!1}){return t.isPolling||(this.toggleRefresher(!1),await this.waitUntilReady()),this._deviceState.getValue().deviceStatus===s.BUSY?a(new S):(this.updateDeviceStatus(s.BUSY),(await this._connectedDevice.sendApdu(e,t.triggersDisconnection)).ifRight(n=>{u.isLockedDeviceResponse(n)?this.updateDeviceStatus(s.LOCKED):this.updateDeviceStatus(s.CONNECTED),t.isPolling||this.toggleRefresher(!0)}).ifLeft(()=>{this.updateDeviceStatus(s.CONNECTED),t.isPolling||this.toggleRefresher(!0)}))}async waitUntilReady(){let e;await new Promise(t=>{e=this._deviceState.subscribe(r=>{r.deviceStatus===s.CONNECTED&&(e?.unsubscribe(),t())})})}async sendCommand(e){const t=e.getApdu();return(await this.sendApdu(t.getRawApdu(),{isPolling:!1,triggersDisconnection:e.triggersDisconnection??!1})).caseOf({Left:i=>{throw i},Right:i=>e.parseResponse(i,this._connectedDevice.deviceModel.id)})}executeDeviceAction(e){const{observable:t,cancel:r}=e._execute({sendApdu:async i=>this.sendApdu(i),sendCommand:async i=>this.sendCommand(i),getDeviceSessionState:()=>this._deviceState.getValue(),getDeviceSessionStateObservable:()=>this.state,setDeviceSessionState:i=>(this.setDeviceSessionState(i),this._deviceState.getValue()),getManagerApiService:()=>this._managerApiService,getSecureChannelService:()=>this._secureChannelService});return{observable:t,cancel:r}}close(){this.updateDeviceStatus(s.NOT_CONNECTED),this._deviceState.complete(),this._refresher.stop()}toggleRefresher(e){e?this._refresher.start():this._refresher.stop()}}export{b 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 { type Either, Left } from \"purify-ts\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { type Command } from \"@api/command/Command\";\nimport { type CommandResult } from \"@api/command/model/CommandResult\";\nimport { type ListAppsResponse } from \"@api/command/os/ListAppsCommand\";\nimport { CommandUtils } from \"@api/command/utils/CommandUtils\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport {\n type DeviceAction,\n type DeviceActionIntermediateValue,\n type ExecuteDeviceActionReturnType,\n} from \"@api/device-action/DeviceAction\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport {\n type DeviceSessionState,\n DeviceSessionStateType,\n} from \"@api/device-session/DeviceSessionState\";\nimport { type DeviceSessionId } from \"@api/device-session/types\";\nimport { DeviceBusyError, type DmkError } from \"@api/Error\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { type TransportConnectedDevice } from \"@api/transport/model/TransportConnectedDevice\";\nimport { DEVICE_SESSION_REFRESH_INTERVAL } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\n\nimport { DeviceSessionRefresher } from \"./DeviceSessionRefresher\";\n\nexport type SessionConstructorArgs = {\n connectedDevice: TransportConnectedDevice;\n id?: DeviceSessionId;\n};\n\n/**\n * Represents a session with a device.\n */\nexport class DeviceSession {\n private readonly _id: DeviceSessionId;\n private readonly _connectedDevice: TransportConnectedDevice;\n private readonly _deviceState: BehaviorSubject<DeviceSessionState>;\n private readonly _refresher: DeviceSessionRefresher;\n private readonly _managerApiService: ManagerApiService;\n\n constructor(\n { connectedDevice, id = uuidv4() }: SessionConstructorArgs,\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n managerApiService: ManagerApiService,\n ) {\n this._id = id;\n this._connectedDevice = connectedDevice;\n this._deviceState = new BehaviorSubject<DeviceSessionState>({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n });\n this._refresher = new DeviceSessionRefresher(\n {\n refreshInterval: DEVICE_SESSION_REFRESH_INTERVAL,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: this._connectedDevice.deviceModel.id,\n sendApduFn: (rawApdu: Uint8Array) =>\n this.sendApdu(rawApdu, {\n isPolling: true,\n triggersDisconnection: false,\n }),\n updateStateFn: (callback) => {\n const state = this._deviceState.getValue();\n this.setDeviceSessionState(callback(state));\n },\n },\n loggerModuleFactory(\"device-session-refresher\"),\n );\n this._managerApiService = managerApiService;\n }\n\n public get id() {\n return this._id;\n }\n\n public get connectedDevice() {\n return this._connectedDevice;\n }\n\n public get state() {\n return this._deviceState.asObservable();\n }\n\n public setDeviceSessionState(state: DeviceSessionState) {\n this._deviceState.next(state);\n }\n\n private updateDeviceStatus(deviceStatus: DeviceStatus) {\n const sessionState = this._deviceState.getValue();\n this._refresher.setDeviceStatus(deviceStatus);\n this._deviceState.next({\n ...sessionState,\n deviceStatus,\n });\n }\n\n async sendApdu(\n rawApdu: Uint8Array,\n options: {\n isPolling: boolean;\n triggersDisconnection: boolean;\n } = {\n isPolling: false,\n triggersDisconnection: false,\n },\n ): Promise<Either<DmkError, ApduResponse>> {\n const sessionState = this._deviceState.getValue();\n if (sessionState.deviceStatus === DeviceStatus.BUSY) {\n return Left(new DeviceBusyError());\n }\n\n if (!options.isPolling) this.updateDeviceStatus(DeviceStatus.BUSY);\n\n const errorOrResponse = await this._connectedDevice.sendApdu(\n rawApdu,\n options.triggersDisconnection,\n );\n\n return errorOrResponse\n .ifRight((response: ApduResponse) => {\n if (CommandUtils.isLockedDeviceResponse(response)) {\n this.updateDeviceStatus(DeviceStatus.LOCKED);\n } else {\n this.updateDeviceStatus(DeviceStatus.CONNECTED);\n }\n })\n .ifLeft(() => {\n this.updateDeviceStatus(DeviceStatus.CONNECTED);\n });\n }\n\n async sendCommand<Response, Args, ErrorStatusCodes>(\n command: Command<Response, Args, ErrorStatusCodes>,\n ): Promise<CommandResult<Response, ErrorStatusCodes>> {\n const apdu = command.getApdu();\n const response = await this.sendApdu(apdu.getRawApdu(), {\n isPolling: false,\n triggersDisconnection: command.triggersDisconnection ?? false,\n });\n\n return response.caseOf({\n Left: (err) => {\n throw err;\n },\n Right: (r) =>\n command.parseResponse(r, this._connectedDevice.deviceModel.id),\n });\n }\n\n executeDeviceAction<\n Output,\n Input,\n Error extends DmkError,\n IntermediateValue extends DeviceActionIntermediateValue,\n >(\n deviceAction: DeviceAction<Output, Input, Error, IntermediateValue>,\n ): ExecuteDeviceActionReturnType<Output, Error, IntermediateValue> {\n const { observable, cancel } = deviceAction._execute({\n sendCommand: async <Response, ErrorStatusCodes, Args>(\n command: Command<Response, ErrorStatusCodes, Args>,\n ) => this.sendCommand(command),\n getDeviceSessionState: () => this._deviceState.getValue(),\n getDeviceSessionStateObservable: () => this.state,\n setDeviceSessionState: (state: DeviceSessionState) => {\n this.setDeviceSessionState(state);\n return this._deviceState.getValue();\n },\n getMetadataForAppHashes: (apps: ListAppsResponse) =>\n this._managerApiService.getAppsByHash(apps),\n });\n\n return {\n observable,\n cancel,\n };\n }\n\n close() {\n this.updateDeviceStatus(DeviceStatus.NOT_CONNECTED);\n this._deviceState.complete();\n this._refresher.stop();\n }\n\n toggleRefresher(enabled: boolean) {\n if (enabled) {\n this._refresher.start();\n } else {\n this._refresher.stop();\n }\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["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", "apps", "enabled"]
4
+ "sourcesContent": ["import { type Either, Left } from \"purify-ts\";\nimport { BehaviorSubject, type Subscription } from \"rxjs\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { type Command } from \"@api/command/Command\";\nimport { type CommandResult } from \"@api/command/model/CommandResult\";\nimport { CommandUtils } from \"@api/command/utils/CommandUtils\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport {\n type DeviceAction,\n type DeviceActionIntermediateValue,\n type ExecuteDeviceActionReturnType,\n} from \"@api/device-action/DeviceAction\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport {\n type DeviceSessionState,\n DeviceSessionStateType,\n} from \"@api/device-session/DeviceSessionState\";\nimport { type DeviceSessionId } from \"@api/device-session/types\";\nimport { DeviceBusyError, type DmkError } from \"@api/Error\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { type TransportConnectedDevice } from \"@api/transport/model/TransportConnectedDevice\";\nimport { DEVICE_SESSION_REFRESH_INTERVAL } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\n\nimport { DeviceSessionRefresher } from \"./DeviceSessionRefresher\";\n\nexport type SessionConstructorArgs = {\n connectedDevice: TransportConnectedDevice;\n id?: DeviceSessionId;\n};\n\ntype SendApduOptions = {\n isPolling?: boolean;\n triggersDisconnection?: boolean;\n};\n\n/**\n * Represents a session with a device.\n */\nexport class DeviceSession {\n private readonly _id: DeviceSessionId;\n private readonly _connectedDevice: TransportConnectedDevice;\n private readonly _deviceState: BehaviorSubject<DeviceSessionState>;\n private readonly _refresher: DeviceSessionRefresher;\n private readonly _managerApiService: ManagerApiService;\n private readonly _secureChannelService: SecureChannelService;\n\n constructor(\n { connectedDevice, id = uuidv4() }: SessionConstructorArgs,\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n managerApiService: ManagerApiService,\n secureChannelService: SecureChannelService,\n ) {\n this._id = id;\n this._connectedDevice = connectedDevice;\n this._deviceState = new BehaviorSubject<DeviceSessionState>({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: this._connectedDevice.deviceModel.id,\n });\n this._refresher = new DeviceSessionRefresher(\n {\n refreshInterval: DEVICE_SESSION_REFRESH_INTERVAL,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: this._connectedDevice.deviceModel.id,\n sendApduFn: (rawApdu: Uint8Array) =>\n this.sendApdu(rawApdu, {\n isPolling: true,\n triggersDisconnection: false,\n }),\n updateStateFn: (callback) => {\n const state = this._deviceState.getValue();\n this.setDeviceSessionState(callback(state));\n },\n },\n loggerModuleFactory(\"device-session-refresher\"),\n );\n this._managerApiService = managerApiService;\n this._secureChannelService = secureChannelService;\n }\n\n public get id() {\n return this._id;\n }\n\n public get connectedDevice() {\n return this._connectedDevice;\n }\n\n public get state() {\n return this._deviceState.asObservable();\n }\n\n public setDeviceSessionState(state: DeviceSessionState) {\n this._deviceState.next(state);\n }\n\n private updateDeviceStatus(deviceStatus: DeviceStatus) {\n const sessionState = this._deviceState.getValue();\n this._refresher.setDeviceStatus(deviceStatus);\n this._deviceState.next({\n ...sessionState,\n deviceStatus,\n });\n }\n\n async sendApdu(\n rawApdu: Uint8Array,\n options: SendApduOptions = {\n isPolling: false,\n triggersDisconnection: false,\n },\n ): Promise<Either<DmkError, ApduResponse>> {\n if (!options.isPolling) {\n this.toggleRefresher(false);\n await this.waitUntilReady();\n }\n\n const sessionState = this._deviceState.getValue();\n if (sessionState.deviceStatus === DeviceStatus.BUSY) {\n return Left(new DeviceBusyError());\n }\n\n this.updateDeviceStatus(DeviceStatus.BUSY);\n\n const errorOrResponse = await this._connectedDevice.sendApdu(\n rawApdu,\n options.triggersDisconnection,\n );\n\n return errorOrResponse\n .ifRight((response: ApduResponse) => {\n if (CommandUtils.isLockedDeviceResponse(response)) {\n this.updateDeviceStatus(DeviceStatus.LOCKED);\n } else {\n this.updateDeviceStatus(DeviceStatus.CONNECTED);\n }\n\n if (!options.isPolling) {\n this.toggleRefresher(true);\n }\n })\n .ifLeft(() => {\n this.updateDeviceStatus(DeviceStatus.CONNECTED);\n\n if (!options.isPolling) {\n this.toggleRefresher(true);\n }\n });\n }\n\n async waitUntilReady() {\n let deviceStateSub: Subscription;\n\n await new Promise<void>((resolve) => {\n deviceStateSub = this._deviceState.subscribe((state) => {\n if (state.deviceStatus === DeviceStatus.CONNECTED) {\n deviceStateSub?.unsubscribe();\n resolve();\n }\n });\n });\n }\n\n async sendCommand<Response, Args, ErrorStatusCodes>(\n command: Command<Response, Args, ErrorStatusCodes>,\n ): Promise<CommandResult<Response, ErrorStatusCodes>> {\n const apdu = command.getApdu();\n const response = await this.sendApdu(apdu.getRawApdu(), {\n isPolling: false,\n triggersDisconnection: command.triggersDisconnection ?? false,\n });\n\n return response.caseOf({\n Left: (err) => {\n throw err;\n },\n Right: (r) =>\n command.parseResponse(r, this._connectedDevice.deviceModel.id),\n });\n }\n\n executeDeviceAction<\n Output,\n Input,\n Error extends DmkError,\n IntermediateValue extends DeviceActionIntermediateValue,\n >(\n deviceAction: DeviceAction<Output, Input, Error, IntermediateValue>,\n ): ExecuteDeviceActionReturnType<Output, Error, IntermediateValue> {\n const { observable, cancel } = deviceAction._execute({\n sendApdu: async (apdu: Uint8Array) => this.sendApdu(apdu),\n sendCommand: async <Response, ErrorStatusCodes, Args>(\n command: Command<Response, ErrorStatusCodes, Args>,\n ) => this.sendCommand(command),\n getDeviceSessionState: () => this._deviceState.getValue(),\n getDeviceSessionStateObservable: () => this.state,\n setDeviceSessionState: (state: DeviceSessionState) => {\n this.setDeviceSessionState(state);\n return this._deviceState.getValue();\n },\n getManagerApiService: () => this._managerApiService,\n getSecureChannelService: () => this._secureChannelService,\n });\n\n return {\n observable,\n cancel,\n };\n }\n\n close() {\n this.updateDeviceStatus(DeviceStatus.NOT_CONNECTED);\n this._deviceState.complete();\n this._refresher.stop();\n }\n\n toggleRefresher(enabled: boolean) {\n if (enabled) {\n this._refresher.start();\n } else {\n this._refresher.stop();\n }\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Left", "BehaviorSubject", "uuidv4", "CommandUtils", "DeviceStatus", "DeviceSessionStateType", "DeviceBusyError", "DEVICE_SESSION_REFRESH_INTERVAL", "DeviceSessionRefresher", "DeviceSession", "connectedDevice", "id", "loggerModuleFactory", "managerApiService", "secureChannelService", "rawApdu", "callback", "state", "deviceStatus", "sessionState", "options", "response", "deviceStateSub", "resolve", "command", "apdu", "err", "r", "deviceAction", "observable", "cancel", "enabled"]
7
7
  }
@@ -1,2 +1,2 @@
1
- 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};
1
+ import{connectedDeviceStubBuilder as n}from"../../../api/transport/model/TransportConnectedDevice.stub";import{DeviceSession as t}from"../../device-session/model/DeviceSession";const a=(e={},r,i,o)=>new t({connectedDevice:n(),id:"fakeSessionId",...e},r,i,o);export{a 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 { 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"]
4
+ "sourcesContent": ["import { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { connectedDeviceStubBuilder } from \"@api/transport/model/TransportConnectedDevice.stub\";\nimport {\n DeviceSession,\n type SessionConstructorArgs,\n} from \"@internal/device-session/model/DeviceSession\";\nimport type { ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\n\nexport const deviceSessionStubBuilder = (\n props: Partial<SessionConstructorArgs> = {},\n loggerFactory: (tag: string) => LoggerPublisherService,\n managerApi: ManagerApiService,\n secureChannel: SecureChannelService,\n) =>\n new DeviceSession(\n {\n connectedDevice: connectedDeviceStubBuilder(),\n id: \"fakeSessionId\",\n ...props,\n },\n loggerFactory,\n managerApi,\n secureChannel,\n );\n"],
5
+ "mappings": "AACA,OAAS,8BAAAA,MAAkC,qDAC3C,OACE,iBAAAC,MAEK,+CAIA,MAAMC,EAA2B,CACtCC,EAAyC,CAAC,EAC1CC,EACAC,EACAC,IAEA,IAAIL,EACF,CACE,gBAAiBD,EAA2B,EAC5C,GAAI,gBACJ,GAAGG,CACL,EACAC,EACAC,EACAC,CACF",
6
+ "names": ["connectedDeviceStubBuilder", "DeviceSession", "deviceSessionStubBuilder", "props", "loggerFactory", "managerApi", "secureChannel"]
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 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)})})});
1
+ import{Left as m,Right as v}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 n}from"../../../api/device/DeviceModel";import{DeviceStatus as i}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=vi.fn().mockResolvedValue(Promise.resolve(v({}))),a=vi.fn().mockImplementation(()=>{});vi.useFakeTimers();describe("DeviceSessionRefresher",()=>{let e,r;beforeEach(()=>{vi.spyOn(p.prototype,"parseResponse").mockReturnValueOnce(u({data:{name:"testAppName"}})),vi.spyOn(l.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:i.CONNECTED,sendApduFn:t,updateStateFn:a,deviceModelId:o[Math.floor(Math.random()*o.length)]},r)}),afterEach(()=>{e.stop(),vi.clearAllMocks()}),it("should poll by calling sendApduFn 2 times",()=>{vi.advanceTimersByTime(s*2),expect(t).toHaveBeenCalledTimes(2)}),it("should not poll when device is busy",()=>{e.setDeviceStatus(i.BUSY),vi.advanceTimersByTime(s),expect(t).not.toHaveBeenCalled()}),it("should not poll when device is disconnected",()=>{e.setDeviceStatus(i.NOT_CONNECTED),vi.advanceTimersByTime(s),expect(t).not.toHaveBeenCalled()}),it("should update device session state by calling updateStateFn",async()=>{vi.advanceTimersByTime(s),await expect(t()).resolves.toEqual(v({})),expect(t).toHaveBeenCalled(),expect(a).toHaveBeenCalled()}),it("should not update device session state with failed polling response",async()=>{t.mockResolvedValueOnce(Promise.resolve(m("error")));const o=vi.spyOn(r,"error");vi.advanceTimersByTime(s),await t(),await expect(a).not.toHaveBeenCalled(),expect(o).toHaveBeenCalled()}),it("should stop the refresher when device is disconnected",()=>{const o=vi.spyOn(e,"stop");e.setDeviceStatus(i.NOT_CONNECTED),expect(o).toHaveBeenCalledTimes(1)}),it("should not throw error if stop is called on a stopped refresher",()=>{e.stop(),expect(()=>e.stop()).not.toThrow()}),it("should not throw error if start is called on a started refresher",()=>{e.start(),expect(()=>e.start()).not.toThrow()})}),describe("With a NanoS device",()=>{afterEach(()=>{e.stop(),vi.clearAllMocks()}),it("should call sendApduFn 2 times and update state 1 time for a single interval",async()=>{e=new c({refreshInterval:s,deviceStatus:i.CONNECTED,sendApduFn:t,updateStateFn:a,deviceModelId:n.NANO_S},r),vi.advanceTimersByTime(s*2+100),await Promise.resolve(),expect(t).toHaveBeenNthCalledWith(1,new p().getApdu().getRawApdu()),await Promise.resolve(),expect(t).toHaveBeenLastCalledWith(new l().getApdu().getRawApdu()),await Promise.resolve(),expect(t).toHaveBeenCalledTimes(2),await Promise.resolve(),expect(a).toHaveBeenCalledTimes(1)}),it("should set device locked when get os version times out",async()=>{t.mockImplementation(o=>o.toString()===new l().getApdu().getRawApdu().toString()?new Promise(d=>setTimeout(()=>d(m("timeout")),s*10)):Promise.resolve(v({}))),a.mockImplementation(o=>{e.setDeviceStatus(o().deviceStatus)}),e=new c({refreshInterval:s,deviceStatus:i.CONNECTED,sendApduFn:t,updateStateFn:a,deviceModelId:n.NANO_S},r),vi.spyOn(e,"setDeviceStatus"),vi.advanceTimersByTime(s*5+100),await Promise.resolve(),expect(t).toHaveBeenNthCalledWith(1,new p().getApdu().getRawApdu()),await Promise.resolve(),expect(e.setDeviceStatus).toHaveBeenCalledWith(i.LOCKED)})})});
2
2
  //# sourceMappingURL=DeviceSessionRefresher.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/model/DeviceSessionRefresher.test.ts"],
4
- "sourcesContent": ["import { Left, Right } from \"purify-ts\";\n\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport {\n GetAppAndVersionCommand,\n type GetAppAndVersionResponse,\n} from \"@api/command/os/GetAppAndVersionCommand\";\nimport {\n GetOsVersionCommand,\n type GetOsVersionResponse,\n} from \"@api/command/os/GetOsVersionCommand\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { DEVICE_SESSION_REFRESH_INTERVAL } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\n\nimport { DeviceSessionRefresher } from \"./DeviceSessionRefresher\";\n\nconst mockSendApduFn = jest\n .fn()\n .mockResolvedValue(Promise.resolve(Right({} as ApduResponse)));\nconst mockUpdateStateFn = jest.fn().mockImplementation(() => undefined);\n\njest.useFakeTimers();\n\ndescribe(\"DeviceSessionRefresher\", () => {\n let deviceSessionRefresher: DeviceSessionRefresher;\n let logger: LoggerPublisherService;\n\n beforeEach(() => {\n jest\n .spyOn(GetAppAndVersionCommand.prototype, \"parseResponse\")\n .mockReturnValueOnce(\n CommandResultFactory({\n data: {\n name: \"testAppName\",\n } as GetAppAndVersionResponse,\n }),\n );\n jest\n .spyOn(GetOsVersionCommand.prototype, \"parseResponse\")\n .mockReturnValueOnce(\n CommandResultFactory({\n data: {} as GetOsVersionResponse,\n }),\n );\n logger = new DefaultLoggerPublisherService(\n [],\n \"DeviceSessionRefresherTest\",\n );\n });\n\n describe(\"With a modern device\", () => {\n beforeEach(() => {\n const deviceIds = Object.values(DeviceModelId).filter(\n (id) => id !== DeviceModelId.NANO_S,\n );\n deviceSessionRefresher = new DeviceSessionRefresher(\n {\n refreshInterval: DEVICE_SESSION_REFRESH_INTERVAL,\n deviceStatus: DeviceStatus.CONNECTED,\n sendApduFn: mockSendApduFn,\n updateStateFn: mockUpdateStateFn,\n deviceModelId:\n deviceIds[Math.floor(Math.random() * deviceIds.length)]!,\n },\n logger,\n );\n });\n\n afterEach(() => {\n deviceSessionRefresher.stop();\n jest.clearAllMocks();\n });\n\n it(\"should poll by calling sendApduFn 2 times\", () => {\n jest.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL * 2);\n expect(mockSendApduFn).toHaveBeenCalledTimes(2);\n });\n\n it(\"should not poll when device is busy\", () => {\n deviceSessionRefresher.setDeviceStatus(DeviceStatus.BUSY);\n\n jest.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL);\n\n expect(mockSendApduFn).not.toHaveBeenCalled();\n });\n\n it(\"should not poll when device is disconnected\", () => {\n deviceSessionRefresher.setDeviceStatus(DeviceStatus.NOT_CONNECTED);\n\n jest.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL);\n\n expect(mockSendApduFn).not.toHaveBeenCalled();\n });\n\n it(\"should update device session state by calling updateStateFn\", async () => {\n jest.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL);\n\n await expect(mockSendApduFn()).resolves.toEqual(Right({}));\n expect(mockSendApduFn).toHaveBeenCalled();\n expect(mockUpdateStateFn).toHaveBeenCalled();\n });\n\n it(\"should not update device session state with failed polling response\", async () => {\n mockSendApduFn.mockResolvedValueOnce(Promise.resolve(Left(\"error\")));\n const spy = jest.spyOn(logger, \"error\");\n\n jest.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL);\n await mockSendApduFn();\n\n await expect(mockUpdateStateFn).not.toHaveBeenCalled();\n expect(spy).toHaveBeenCalled();\n });\n\n it(\"should stop the refresher when device is disconnected\", () => {\n const spy = jest.spyOn(deviceSessionRefresher, \"stop\");\n deviceSessionRefresher.setDeviceStatus(DeviceStatus.NOT_CONNECTED);\n expect(spy).toHaveBeenCalledTimes(1);\n });\n\n it(\"should not throw error if stop is called on a stopped refresher\", () => {\n deviceSessionRefresher.stop();\n expect(() => deviceSessionRefresher.stop()).not.toThrow();\n });\n\n it(\"should not throw error if start is called on a started refresher\", () => {\n deviceSessionRefresher.start();\n expect(() => deviceSessionRefresher.start()).not.toThrow();\n });\n });\n\n describe(\"With a NanoS device\", () => {\n afterEach(() => {\n deviceSessionRefresher.stop();\n jest.clearAllMocks();\n });\n\n it(\"should call sendApduFn 2 times and update state 1 time for a single interval\", async () => {\n deviceSessionRefresher = new DeviceSessionRefresher(\n {\n refreshInterval: DEVICE_SESSION_REFRESH_INTERVAL,\n deviceStatus: DeviceStatus.CONNECTED,\n sendApduFn: mockSendApduFn,\n updateStateFn: mockUpdateStateFn,\n deviceModelId: DeviceModelId.NANO_S,\n },\n logger,\n );\n jest.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL * 2 + 100);\n\n await Promise.resolve();\n expect(mockSendApduFn).toHaveBeenNthCalledWith(\n 1,\n new GetAppAndVersionCommand().getApdu().getRawApdu(),\n );\n await Promise.resolve();\n expect(mockSendApduFn).toHaveBeenLastCalledWith(\n new GetOsVersionCommand().getApdu().getRawApdu(),\n );\n await Promise.resolve();\n expect(mockSendApduFn).toHaveBeenCalledTimes(2);\n await Promise.resolve();\n expect(mockUpdateStateFn).toHaveBeenCalledTimes(1);\n });\n\n it(\"should set device locked when get os version times out\", async () => {\n mockSendApduFn.mockImplementation((apdu) => {\n if (\n apdu.toString() ===\n new GetOsVersionCommand().getApdu().getRawApdu().toString()\n ) {\n return new Promise((resolve) =>\n setTimeout(\n () => resolve(Left(\"timeout\")),\n DEVICE_SESSION_REFRESH_INTERVAL * 10,\n ),\n );\n }\n return Promise.resolve(Right({}));\n });\n mockUpdateStateFn.mockImplementation(\n (getState: () => DeviceSessionState) => {\n deviceSessionRefresher.setDeviceStatus(getState().deviceStatus);\n },\n );\n deviceSessionRefresher = new DeviceSessionRefresher(\n {\n refreshInterval: DEVICE_SESSION_REFRESH_INTERVAL,\n deviceStatus: DeviceStatus.CONNECTED,\n sendApduFn: mockSendApduFn,\n updateStateFn: mockUpdateStateFn,\n deviceModelId: DeviceModelId.NANO_S,\n },\n logger,\n );\n jest.spyOn(deviceSessionRefresher, \"setDeviceStatus\");\n jest.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL * 5 + 100);\n await Promise.resolve();\n expect(mockSendApduFn).toHaveBeenNthCalledWith(\n 1,\n new GetAppAndVersionCommand().getApdu().getRawApdu(),\n );\n await Promise.resolve();\n expect(deviceSessionRefresher.setDeviceStatus).toHaveBeenCalledWith(\n DeviceStatus.LOCKED,\n );\n });\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Left, Right } from \"purify-ts\";\n\nimport { type Apdu } from \"@api/apdu/model/Apdu\";\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport {\n GetAppAndVersionCommand,\n type GetAppAndVersionResponse,\n} from \"@api/command/os/GetAppAndVersionCommand\";\nimport {\n GetOsVersionCommand,\n type GetOsVersionResponse,\n} from \"@api/command/os/GetOsVersionCommand\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { DEVICE_SESSION_REFRESH_INTERVAL } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\n\nimport { DeviceSessionRefresher } from \"./DeviceSessionRefresher\";\n\nconst mockSendApduFn = vi\n .fn()\n .mockResolvedValue(Promise.resolve(Right({} as ApduResponse)));\nconst mockUpdateStateFn = vi.fn().mockImplementation(() => undefined);\n\nvi.useFakeTimers();\n\ndescribe(\"DeviceSessionRefresher\", () => {\n let deviceSessionRefresher: DeviceSessionRefresher;\n let logger: LoggerPublisherService;\n\n beforeEach(() => {\n vi.spyOn(\n GetAppAndVersionCommand.prototype,\n \"parseResponse\",\n ).mockReturnValueOnce(\n CommandResultFactory({\n data: {\n name: \"testAppName\",\n } as GetAppAndVersionResponse,\n }),\n );\n vi.spyOn(\n GetOsVersionCommand.prototype,\n \"parseResponse\",\n ).mockReturnValueOnce(\n CommandResultFactory({\n data: {} as GetOsVersionResponse,\n }),\n );\n logger = new DefaultLoggerPublisherService(\n [],\n \"DeviceSessionRefresherTest\",\n );\n });\n\n describe(\"With a modern device\", () => {\n beforeEach(() => {\n const deviceIds = Object.values(DeviceModelId).filter(\n (id) => id !== DeviceModelId.NANO_S,\n );\n deviceSessionRefresher = new DeviceSessionRefresher(\n {\n refreshInterval: DEVICE_SESSION_REFRESH_INTERVAL,\n deviceStatus: DeviceStatus.CONNECTED,\n sendApduFn: mockSendApduFn,\n updateStateFn: mockUpdateStateFn,\n deviceModelId:\n deviceIds[Math.floor(Math.random() * deviceIds.length)]!,\n },\n logger,\n );\n });\n\n afterEach(() => {\n deviceSessionRefresher.stop();\n vi.clearAllMocks();\n });\n\n it(\"should poll by calling sendApduFn 2 times\", () => {\n vi.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL * 2);\n expect(mockSendApduFn).toHaveBeenCalledTimes(2);\n });\n\n it(\"should not poll when device is busy\", () => {\n deviceSessionRefresher.setDeviceStatus(DeviceStatus.BUSY);\n\n vi.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL);\n\n expect(mockSendApduFn).not.toHaveBeenCalled();\n });\n\n it(\"should not poll when device is disconnected\", () => {\n deviceSessionRefresher.setDeviceStatus(DeviceStatus.NOT_CONNECTED);\n\n vi.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL);\n\n expect(mockSendApduFn).not.toHaveBeenCalled();\n });\n\n it(\"should update device session state by calling updateStateFn\", async () => {\n vi.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL);\n\n await expect(mockSendApduFn()).resolves.toEqual(Right({}));\n expect(mockSendApduFn).toHaveBeenCalled();\n expect(mockUpdateStateFn).toHaveBeenCalled();\n });\n\n it(\"should not update device session state with failed polling response\", async () => {\n mockSendApduFn.mockResolvedValueOnce(Promise.resolve(Left(\"error\")));\n const spy = vi.spyOn(logger, \"error\");\n\n vi.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL);\n await mockSendApduFn();\n\n await expect(mockUpdateStateFn).not.toHaveBeenCalled();\n expect(spy).toHaveBeenCalled();\n });\n\n it(\"should stop the refresher when device is disconnected\", () => {\n const spy = vi.spyOn(deviceSessionRefresher, \"stop\");\n deviceSessionRefresher.setDeviceStatus(DeviceStatus.NOT_CONNECTED);\n expect(spy).toHaveBeenCalledTimes(1);\n });\n\n it(\"should not throw error if stop is called on a stopped refresher\", () => {\n deviceSessionRefresher.stop();\n expect(() => deviceSessionRefresher.stop()).not.toThrow();\n });\n\n it(\"should not throw error if start is called on a started refresher\", () => {\n deviceSessionRefresher.start();\n expect(() => deviceSessionRefresher.start()).not.toThrow();\n });\n });\n\n describe(\"With a NanoS device\", () => {\n afterEach(() => {\n deviceSessionRefresher.stop();\n vi.clearAllMocks();\n });\n\n it(\"should call sendApduFn 2 times and update state 1 time for a single interval\", async () => {\n deviceSessionRefresher = new DeviceSessionRefresher(\n {\n refreshInterval: DEVICE_SESSION_REFRESH_INTERVAL,\n deviceStatus: DeviceStatus.CONNECTED,\n sendApduFn: mockSendApduFn,\n updateStateFn: mockUpdateStateFn,\n deviceModelId: DeviceModelId.NANO_S,\n },\n logger,\n );\n vi.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL * 2 + 100);\n\n await Promise.resolve();\n expect(mockSendApduFn).toHaveBeenNthCalledWith(\n 1,\n new GetAppAndVersionCommand().getApdu().getRawApdu(),\n );\n await Promise.resolve();\n expect(mockSendApduFn).toHaveBeenLastCalledWith(\n new GetOsVersionCommand().getApdu().getRawApdu(),\n );\n await Promise.resolve();\n expect(mockSendApduFn).toHaveBeenCalledTimes(2);\n await Promise.resolve();\n expect(mockUpdateStateFn).toHaveBeenCalledTimes(1);\n });\n\n it(\"should set device locked when get os version times out\", async () => {\n mockSendApduFn.mockImplementation((apdu: Apdu) => {\n if (\n apdu.toString() ===\n new GetOsVersionCommand().getApdu().getRawApdu().toString()\n ) {\n return new Promise((resolve) =>\n setTimeout(\n () => resolve(Left(\"timeout\")),\n DEVICE_SESSION_REFRESH_INTERVAL * 10,\n ),\n );\n }\n return Promise.resolve(Right({}));\n });\n mockUpdateStateFn.mockImplementation(\n (getState: () => DeviceSessionState) => {\n deviceSessionRefresher.setDeviceStatus(getState().deviceStatus);\n },\n );\n deviceSessionRefresher = new DeviceSessionRefresher(\n {\n refreshInterval: DEVICE_SESSION_REFRESH_INTERVAL,\n deviceStatus: DeviceStatus.CONNECTED,\n sendApduFn: mockSendApduFn,\n updateStateFn: mockUpdateStateFn,\n deviceModelId: DeviceModelId.NANO_S,\n },\n logger,\n );\n vi.spyOn(deviceSessionRefresher, \"setDeviceStatus\");\n vi.advanceTimersByTime(DEVICE_SESSION_REFRESH_INTERVAL * 5 + 100);\n await Promise.resolve();\n expect(mockSendApduFn).toHaveBeenNthCalledWith(\n 1,\n new GetAppAndVersionCommand().getApdu().getRawApdu(),\n );\n await Promise.resolve();\n expect(deviceSessionRefresher.setDeviceStatus).toHaveBeenCalledWith(\n DeviceStatus.LOCKED,\n );\n });\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["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,2 +1,2 @@
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")))})})});
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";vi.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(()=>{vi.mock("uuid",()=>({v4:vi.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