@ledgerhq/device-management-kit 0.0.0-rn-hid-20250221115747 → 0.0.0-rn-ble-logs-20250416162013

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 (589) hide show
  1. package/README.md +58 -8
  2. package/lib/cjs/package.json +4 -4
  3. package/lib/cjs/src/api/DeviceManagementKit.js +1 -1
  4. package/lib/cjs/src/api/DeviceManagementKit.js.map +3 -3
  5. package/lib/cjs/src/api/DeviceManagementKit.test.js +1 -1
  6. package/lib/cjs/src/api/DeviceManagementKit.test.js.map +3 -3
  7. package/lib/cjs/src/api/DeviceManagementKitBuilder.js +1 -1
  8. package/lib/cjs/src/api/DeviceManagementKitBuilder.js.map +2 -2
  9. package/lib/cjs/src/api/DmkConfig.js +1 -1
  10. package/lib/cjs/src/api/DmkConfig.js.map +1 -1
  11. package/lib/cjs/src/api/command/os/GetOsVersionCommand.js +1 -1
  12. package/lib/cjs/src/api/command/os/GetOsVersionCommand.js.map +3 -3
  13. package/lib/cjs/src/api/command/os/SecureElementFlagsParser.js +2 -0
  14. package/lib/cjs/src/api/command/os/SecureElementFlagsParser.js.map +7 -0
  15. package/lib/cjs/src/api/command/os/SecureElementFlagsParser.test.js +2 -0
  16. package/lib/cjs/src/api/command/os/SecureElementFlagsParser.test.js.map +7 -0
  17. package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js +1 -1
  18. package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +2 -2
  19. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
  20. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js.map +3 -3
  21. package/lib/cjs/src/api/device/SecureElementFlags.js +2 -0
  22. package/lib/cjs/src/api/device/SecureElementFlags.js.map +7 -0
  23. package/lib/cjs/src/api/device-action/DeviceAction.js +1 -1
  24. package/lib/cjs/src/api/device-action/DeviceAction.js.map +1 -1
  25. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  26. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  27. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  28. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
  29. package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js +1 -1
  30. package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
  31. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  32. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +2 -2
  33. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  34. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +2 -2
  35. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +1 -1
  36. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +2 -2
  37. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js +1 -1
  38. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js.map +3 -3
  39. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +1 -1
  40. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +3 -3
  41. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  42. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +2 -2
  43. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.js.map +1 -1
  44. package/lib/cjs/src/api/device-session/DeviceSessionState.js +1 -1
  45. package/lib/cjs/src/api/device-session/DeviceSessionState.js.map +1 -1
  46. package/lib/cjs/src/api/device-session/use-case/DisableDeviceSessionRefresher.js +2 -0
  47. package/lib/cjs/src/api/device-session/use-case/DisableDeviceSessionRefresher.js.map +7 -0
  48. package/lib/cjs/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js +2 -0
  49. package/lib/cjs/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js.map +7 -0
  50. package/lib/cjs/src/api/index.js +1 -1
  51. package/lib/cjs/src/api/index.js.map +3 -3
  52. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +1 -1
  53. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +3 -3
  54. package/lib/cjs/src/api/secure-channel/constants.js +2 -0
  55. package/lib/cjs/src/api/secure-channel/constants.js.map +7 -0
  56. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js +2 -0
  57. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +7 -0
  58. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js +2 -0
  59. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js.map +7 -0
  60. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/types.js +2 -0
  61. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/types.js.map +7 -0
  62. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +2 -0
  63. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +7 -0
  64. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js +2 -0
  65. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js.map +7 -0
  66. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/types.js +2 -0
  67. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/types.js.map +7 -0
  68. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js +2 -0
  69. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +7 -0
  70. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js +2 -0
  71. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js.map +7 -0
  72. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js +2 -0
  73. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +7 -0
  74. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +2 -0
  75. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +7 -0
  76. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js +2 -0
  77. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js.map +7 -0
  78. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/types.js +2 -0
  79. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/types.js.map +7 -0
  80. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js +2 -0
  81. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +7 -0
  82. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +2 -0
  83. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +7 -0
  84. package/lib/cjs/src/api/secure-channel/task/types.js +2 -0
  85. package/lib/cjs/src/api/secure-channel/task/types.js.map +7 -0
  86. package/lib/cjs/src/api/secure-channel/types.js +2 -0
  87. package/lib/cjs/src/api/secure-channel/types.js.map +7 -0
  88. package/lib/cjs/src/api/secure-channel/utils.js +2 -0
  89. package/lib/cjs/src/api/secure-channel/utils.js.map +7 -0
  90. package/lib/cjs/src/api/secure-channel/utils.test.js +2 -0
  91. package/lib/cjs/src/api/secure-channel/utils.test.js.map +7 -0
  92. package/lib/cjs/src/api/transport/model/DeviceConnection.js +1 -1
  93. package/lib/cjs/src/api/transport/model/DeviceConnection.js.map +1 -1
  94. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js +1 -1
  95. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js.map +3 -3
  96. package/lib/cjs/src/api/transport/model/Errors.js +1 -1
  97. package/lib/cjs/src/api/transport/model/Errors.js.map +3 -3
  98. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.test.js +1 -1
  99. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.test.js.map +3 -3
  100. package/lib/cjs/src/api/types.js +1 -1
  101. package/lib/cjs/src/api/types.js.map +1 -1
  102. package/lib/cjs/src/di.js +1 -1
  103. package/lib/cjs/src/di.js.map +2 -2
  104. package/lib/cjs/src/internal/device-session/data/DeviceSessionRefresherConst.js +1 -1
  105. package/lib/cjs/src/internal/device-session/data/DeviceSessionRefresherConst.js.map +3 -3
  106. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.js +1 -1
  107. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.js.map +3 -3
  108. package/lib/cjs/src/internal/device-session/di/deviceSessionTypes.js +1 -1
  109. package/lib/cjs/src/internal/device-session/di/deviceSessionTypes.js.map +2 -2
  110. package/lib/cjs/src/internal/device-session/model/DevicePinger.js +2 -0
  111. package/lib/cjs/src/internal/device-session/model/DevicePinger.js.map +7 -0
  112. package/lib/cjs/src/internal/device-session/model/DevicePinger.test.js +2 -0
  113. package/lib/cjs/src/internal/device-session/model/DevicePinger.test.js.map +7 -0
  114. package/lib/cjs/src/internal/device-session/model/DeviceSession.js +1 -1
  115. package/lib/cjs/src/internal/device-session/model/DeviceSession.js.map +3 -3
  116. package/lib/cjs/src/internal/device-session/model/DeviceSession.stub.js +1 -1
  117. package/lib/cjs/src/internal/device-session/model/DeviceSession.stub.js.map +3 -3
  118. package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.js +2 -0
  119. package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.js.map +7 -0
  120. package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js +2 -0
  121. package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js.map +7 -0
  122. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.js +1 -1
  123. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.js.map +3 -3
  124. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
  125. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +3 -3
  126. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.js +2 -0
  127. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.js.map +7 -0
  128. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js +2 -0
  129. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +7 -0
  130. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.js +1 -1
  131. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.js.map +2 -2
  132. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
  133. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +3 -3
  134. package/lib/cjs/src/internal/device-session/service/MutexService.js +2 -0
  135. package/lib/cjs/src/internal/device-session/service/MutexService.js.map +7 -0
  136. package/lib/cjs/src/internal/device-session/service/MutexService.test.js +2 -0
  137. package/lib/cjs/src/internal/device-session/service/MutexService.test.js.map +7 -0
  138. package/lib/cjs/src/internal/device-session/service/RefresherService.js +2 -0
  139. package/lib/cjs/src/internal/device-session/service/RefresherService.js.map +7 -0
  140. package/lib/cjs/src/internal/device-session/service/RefresherService.test.js +2 -0
  141. package/lib/cjs/src/internal/device-session/service/RefresherService.test.js.map +7 -0
  142. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +1 -1
  143. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +3 -3
  144. package/lib/cjs/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js +1 -1
  145. package/lib/cjs/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js.map +3 -3
  146. package/lib/cjs/src/internal/device-session/utils/deviceSessionUtils.js +2 -0
  147. package/lib/cjs/src/internal/device-session/utils/deviceSessionUtils.js.map +7 -0
  148. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js +1 -1
  149. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js.map +3 -3
  150. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  151. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js.map +3 -3
  152. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
  153. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +3 -3
  154. package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js +1 -1
  155. package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js.map +3 -3
  156. package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js +1 -1
  157. package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js.map +3 -3
  158. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js +1 -1
  159. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js.map +3 -3
  160. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js +1 -1
  161. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js.map +3 -3
  162. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.js +1 -1
  163. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.js.map +3 -3
  164. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js +1 -1
  165. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js.map +3 -3
  166. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.js +1 -1
  167. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.js.map +2 -2
  168. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
  169. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.js.map +3 -3
  170. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
  171. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +3 -3
  172. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js +1 -1
  173. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js.map +1 -1
  174. package/lib/cjs/src/internal/manager-api/data/ManagerApiDto.js +1 -1
  175. package/lib/cjs/src/internal/manager-api/data/ManagerApiDto.js.map +1 -1
  176. package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
  177. package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
  178. package/lib/cjs/src/internal/manager-api/di/managerApiModule.js +1 -1
  179. package/lib/cjs/src/internal/manager-api/di/managerApiModule.js.map +3 -3
  180. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js +1 -1
  181. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
  182. package/lib/cjs/src/internal/manager-api/di/managerApiTypes.js +1 -1
  183. package/lib/cjs/src/internal/manager-api/di/managerApiTypes.js.map +2 -2
  184. package/lib/cjs/src/internal/manager-api/model/Application.js +1 -1
  185. package/lib/cjs/src/internal/manager-api/model/Application.js.map +1 -1
  186. package/lib/cjs/src/internal/manager-api/model/Const.js +1 -1
  187. package/lib/cjs/src/internal/manager-api/model/Const.js.map +3 -3
  188. package/lib/cjs/src/internal/manager-api/model/Params.js +2 -0
  189. package/lib/cjs/src/internal/manager-api/model/Params.js.map +7 -0
  190. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  191. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js.map +3 -3
  192. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  193. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  194. package/lib/cjs/src/internal/manager-api/service/ManagerApiService.js +1 -1
  195. package/lib/cjs/src/internal/manager-api/service/ManagerApiService.js.map +1 -1
  196. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.js +2 -0
  197. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.js.map +7 -0
  198. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.test.js +2 -0
  199. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.test.js.map +7 -0
  200. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js +1 -1
  201. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js.map +2 -2
  202. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +1 -1
  203. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +2 -2
  204. package/lib/cjs/src/internal/secure-channel/data/SecureChannelDataSource.js.map +1 -1
  205. package/lib/cjs/src/internal/secure-channel/model/Errors.js +1 -1
  206. package/lib/cjs/src/internal/secure-channel/model/Errors.js.map +3 -3
  207. package/lib/cjs/src/internal/secure-channel/model/Params.js +1 -1
  208. package/lib/cjs/src/internal/secure-channel/model/Params.js.map +1 -1
  209. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js +1 -1
  210. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +3 -3
  211. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +1 -1
  212. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +3 -3
  213. package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js +1 -1
  214. package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js.map +1 -1
  215. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.js +1 -1
  216. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.js.map +3 -3
  217. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js +1 -1
  218. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js.map +3 -3
  219. package/lib/cjs/src/internal/transport/di/transportModule.test.js +1 -1
  220. package/lib/cjs/src/internal/transport/di/transportModule.test.js.map +2 -2
  221. package/lib/esm/package.json +4 -4
  222. package/lib/esm/src/api/DeviceManagementKit.js +1 -1
  223. package/lib/esm/src/api/DeviceManagementKit.js.map +3 -3
  224. package/lib/esm/src/api/DeviceManagementKit.test.js +1 -1
  225. package/lib/esm/src/api/DeviceManagementKit.test.js.map +3 -3
  226. package/lib/esm/src/api/DeviceManagementKitBuilder.js +1 -1
  227. package/lib/esm/src/api/DeviceManagementKitBuilder.js.map +3 -3
  228. package/lib/esm/src/api/command/os/GetOsVersionCommand.js +1 -1
  229. package/lib/esm/src/api/command/os/GetOsVersionCommand.js.map +3 -3
  230. package/lib/esm/src/api/command/os/SecureElementFlagsParser.js +2 -0
  231. package/lib/esm/src/api/command/os/SecureElementFlagsParser.js.map +7 -0
  232. package/lib/esm/src/api/command/os/SecureElementFlagsParser.test.js +2 -0
  233. package/lib/esm/src/api/command/os/SecureElementFlagsParser.test.js.map +7 -0
  234. package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js +1 -1
  235. package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +2 -2
  236. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
  237. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js.map +3 -3
  238. package/lib/esm/src/api/device/SecureElementFlags.js +1 -0
  239. package/lib/esm/src/api/device/SecureElementFlags.js.map +7 -0
  240. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  241. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  242. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  243. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
  244. package/lib/esm/src/api/device-action/model/UserInteractionRequired.js +1 -1
  245. package/lib/esm/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
  246. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  247. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +2 -2
  248. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  249. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +2 -2
  250. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +1 -1
  251. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +2 -2
  252. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js +1 -1
  253. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js.map +3 -3
  254. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +1 -1
  255. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +3 -3
  256. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  257. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +2 -2
  258. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.js.map +1 -1
  259. package/lib/esm/src/api/device-session/DeviceSessionState.js.map +1 -1
  260. package/lib/esm/src/api/device-session/use-case/DisableDeviceSessionRefresher.js +2 -0
  261. package/lib/esm/src/api/device-session/use-case/DisableDeviceSessionRefresher.js.map +7 -0
  262. package/lib/esm/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js +2 -0
  263. package/lib/esm/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js.map +7 -0
  264. package/lib/esm/src/api/index.js +1 -1
  265. package/lib/esm/src/api/index.js.map +3 -3
  266. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +1 -1
  267. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +3 -3
  268. package/lib/esm/src/api/secure-channel/constants.js +2 -0
  269. package/lib/esm/src/api/secure-channel/constants.js.map +7 -0
  270. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js +2 -0
  271. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +7 -0
  272. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js +2 -0
  273. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js.map +7 -0
  274. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/types.js +1 -0
  275. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/types.js.map +7 -0
  276. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +2 -0
  277. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +7 -0
  278. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js +2 -0
  279. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js.map +7 -0
  280. package/lib/esm/src/api/secure-channel/device-action/InstallApp/types.js +1 -0
  281. package/lib/esm/src/api/secure-channel/device-action/InstallApp/types.js.map +7 -0
  282. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js +2 -0
  283. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +7 -0
  284. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js +2 -0
  285. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js.map +7 -0
  286. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/types.js +2 -0
  287. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +7 -0
  288. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +2 -0
  289. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +7 -0
  290. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js +2 -0
  291. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js.map +7 -0
  292. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/types.js +1 -0
  293. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/types.js.map +7 -0
  294. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js +2 -0
  295. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +7 -0
  296. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +2 -0
  297. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +7 -0
  298. package/lib/esm/src/api/secure-channel/task/types.js +2 -0
  299. package/lib/esm/src/api/secure-channel/task/types.js.map +7 -0
  300. package/lib/esm/src/api/secure-channel/types.js +1 -0
  301. package/lib/esm/src/api/secure-channel/types.js.map +7 -0
  302. package/lib/esm/src/api/secure-channel/utils.js +2 -0
  303. package/lib/esm/src/api/secure-channel/utils.js.map +7 -0
  304. package/lib/esm/src/api/secure-channel/utils.test.js +2 -0
  305. package/lib/esm/src/api/secure-channel/utils.test.js.map +7 -0
  306. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js +1 -1
  307. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js.map +3 -3
  308. package/lib/esm/src/api/transport/model/Errors.js +1 -1
  309. package/lib/esm/src/api/transport/model/Errors.js.map +3 -3
  310. package/lib/esm/src/api/transport/model/TransportConnectedDevice.test.js +1 -1
  311. package/lib/esm/src/api/transport/model/TransportConnectedDevice.test.js.map +3 -3
  312. package/lib/esm/src/di.js +1 -1
  313. package/lib/esm/src/di.js.map +3 -3
  314. package/lib/esm/src/internal/device-session/data/DeviceSessionRefresherConst.js +1 -1
  315. package/lib/esm/src/internal/device-session/data/DeviceSessionRefresherConst.js.map +3 -3
  316. package/lib/esm/src/internal/device-session/di/deviceSessionModule.js +1 -1
  317. package/lib/esm/src/internal/device-session/di/deviceSessionModule.js.map +3 -3
  318. package/lib/esm/src/internal/device-session/di/deviceSessionTypes.js +1 -1
  319. package/lib/esm/src/internal/device-session/di/deviceSessionTypes.js.map +2 -2
  320. package/lib/esm/src/internal/device-session/model/DevicePinger.js +2 -0
  321. package/lib/esm/src/internal/device-session/model/DevicePinger.js.map +7 -0
  322. package/lib/esm/src/internal/device-session/model/DevicePinger.test.js +2 -0
  323. package/lib/esm/src/internal/device-session/model/DevicePinger.test.js.map +7 -0
  324. package/lib/esm/src/internal/device-session/model/DeviceSession.js +1 -1
  325. package/lib/esm/src/internal/device-session/model/DeviceSession.js.map +3 -3
  326. package/lib/esm/src/internal/device-session/model/DeviceSession.stub.js +1 -1
  327. package/lib/esm/src/internal/device-session/model/DeviceSession.stub.js.map +3 -3
  328. package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.js +2 -0
  329. package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.js.map +7 -0
  330. package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js +2 -0
  331. package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js.map +7 -0
  332. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.js +1 -1
  333. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.js.map +3 -3
  334. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
  335. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +3 -3
  336. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.js +2 -0
  337. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.js.map +7 -0
  338. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js +2 -0
  339. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +7 -0
  340. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.js +1 -1
  341. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.js.map +2 -2
  342. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
  343. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +3 -3
  344. package/lib/esm/src/internal/device-session/service/MutexService.js +2 -0
  345. package/lib/esm/src/internal/device-session/service/MutexService.js.map +7 -0
  346. package/lib/esm/src/internal/device-session/service/MutexService.test.js +2 -0
  347. package/lib/esm/src/internal/device-session/service/MutexService.test.js.map +7 -0
  348. package/lib/esm/src/internal/device-session/service/RefresherService.js +2 -0
  349. package/lib/esm/src/internal/device-session/service/RefresherService.js.map +7 -0
  350. package/lib/esm/src/internal/device-session/service/RefresherService.test.js +2 -0
  351. package/lib/esm/src/internal/device-session/service/RefresherService.test.js.map +7 -0
  352. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +1 -1
  353. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +3 -3
  354. package/lib/esm/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js +1 -1
  355. package/lib/esm/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js.map +3 -3
  356. package/lib/esm/src/internal/device-session/utils/deviceSessionUtils.js +2 -0
  357. package/lib/esm/src/internal/device-session/utils/deviceSessionUtils.js.map +7 -0
  358. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.js +1 -1
  359. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.js.map +3 -3
  360. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  361. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js.map +3 -3
  362. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
  363. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +3 -3
  364. package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js +1 -1
  365. package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js.map +3 -3
  366. package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js +1 -1
  367. package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js.map +3 -3
  368. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js +1 -1
  369. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js.map +3 -3
  370. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js +1 -1
  371. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js.map +3 -3
  372. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.js +1 -1
  373. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.js.map +3 -3
  374. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js +1 -1
  375. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js.map +3 -3
  376. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.js +1 -1
  377. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.js.map +2 -2
  378. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
  379. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.js.map +3 -3
  380. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
  381. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +3 -3
  382. package/lib/esm/src/internal/manager-api/data/ManagerApiDto.js.map +1 -1
  383. package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
  384. package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
  385. package/lib/esm/src/internal/manager-api/di/managerApiModule.js +1 -1
  386. package/lib/esm/src/internal/manager-api/di/managerApiModule.js.map +3 -3
  387. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js +1 -1
  388. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
  389. package/lib/esm/src/internal/manager-api/di/managerApiTypes.js +1 -1
  390. package/lib/esm/src/internal/manager-api/di/managerApiTypes.js.map +2 -2
  391. package/lib/esm/src/internal/manager-api/model/Application.js.map +1 -1
  392. package/lib/esm/src/internal/manager-api/model/Const.js +1 -1
  393. package/lib/esm/src/internal/manager-api/model/Const.js.map +3 -3
  394. package/lib/esm/src/internal/manager-api/model/Params.js +1 -0
  395. package/lib/esm/src/internal/manager-api/model/Params.js.map +7 -0
  396. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  397. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js.map +3 -3
  398. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  399. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  400. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.js +2 -0
  401. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.js.map +7 -0
  402. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.test.js +2 -0
  403. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.test.js.map +7 -0
  404. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js +1 -1
  405. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js.map +2 -2
  406. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +1 -1
  407. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +2 -2
  408. package/lib/esm/src/internal/secure-channel/model/Errors.js +1 -1
  409. package/lib/esm/src/internal/secure-channel/model/Errors.js.map +3 -3
  410. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.js +1 -1
  411. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +3 -3
  412. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +1 -1
  413. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +3 -3
  414. package/lib/esm/src/internal/send/use-case/SendApduUseCase.js +1 -1
  415. package/lib/esm/src/internal/send/use-case/SendApduUseCase.js.map +3 -3
  416. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js +1 -1
  417. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js.map +3 -3
  418. package/lib/esm/src/internal/transport/di/transportModule.test.js +1 -1
  419. package/lib/esm/src/internal/transport/di/transportModule.test.js.map +2 -2
  420. package/lib/types/src/api/DeviceManagementKit.d.ts +25 -9
  421. package/lib/types/src/api/DeviceManagementKit.d.ts.map +1 -1
  422. package/lib/types/src/api/DeviceManagementKitBuilder.d.ts.map +1 -1
  423. package/lib/types/src/api/DmkConfig.d.ts +1 -0
  424. package/lib/types/src/api/DmkConfig.d.ts.map +1 -1
  425. package/lib/types/src/api/command/os/GetOsVersionCommand.d.ts +8 -2
  426. package/lib/types/src/api/command/os/GetOsVersionCommand.d.ts.map +1 -1
  427. package/lib/types/src/api/command/os/SecureElementFlagsParser.d.ts +43 -0
  428. package/lib/types/src/api/command/os/SecureElementFlagsParser.d.ts.map +1 -0
  429. package/lib/types/src/api/command/os/SecureElementFlagsParser.test.d.ts +2 -0
  430. package/lib/types/src/api/command/os/SecureElementFlagsParser.test.d.ts.map +1 -0
  431. package/lib/types/src/api/command/os/__mocks__/GetOsVersionCommand.d.ts.map +1 -1
  432. package/lib/types/src/api/device/SecureElementFlags.d.ts +41 -0
  433. package/lib/types/src/api/device/SecureElementFlags.d.ts.map +1 -0
  434. package/lib/types/src/api/device-action/DeviceAction.d.ts +1 -0
  435. package/lib/types/src/api/device-action/DeviceAction.d.ts.map +1 -1
  436. package/lib/types/src/api/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  437. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts +4 -0
  438. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts.map +1 -1
  439. package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts +3 -2
  440. package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts.map +1 -1
  441. package/lib/types/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.d.ts.map +1 -1
  442. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.d.ts +1 -1
  443. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.d.ts.map +1 -1
  444. package/lib/types/src/api/device-session/DeviceSessionState.d.ts +4 -0
  445. package/lib/types/src/api/device-session/DeviceSessionState.d.ts.map +1 -1
  446. package/lib/types/src/api/device-session/use-case/{ToggleDeviceSessionRefresher.d.ts → DisableDeviceSessionRefresher.d.ts} +6 -6
  447. package/lib/types/src/api/device-session/use-case/DisableDeviceSessionRefresher.d.ts.map +1 -0
  448. package/lib/types/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.d.ts +2 -0
  449. package/lib/types/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.d.ts.map +1 -0
  450. package/lib/types/src/api/index.d.ts +5 -1
  451. package/lib/types/src/api/index.d.ts.map +1 -1
  452. package/lib/types/src/api/secure-channel/constants.d.ts +2 -0
  453. package/lib/types/src/api/secure-channel/constants.d.ts.map +1 -0
  454. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.d.ts +8 -0
  455. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.d.ts.map +1 -0
  456. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.d.ts +2 -0
  457. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.d.ts.map +1 -0
  458. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/types.d.ts +48 -0
  459. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/types.d.ts.map +1 -0
  460. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.d.ts +8 -0
  461. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.d.ts.map +1 -0
  462. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.d.ts +2 -0
  463. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.d.ts.map +1 -0
  464. package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts +44 -0
  465. package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts.map +1 -0
  466. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.d.ts +8 -0
  467. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.d.ts.map +1 -0
  468. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.d.ts +2 -0
  469. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.d.ts.map +1 -0
  470. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts +57 -0
  471. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts.map +1 -0
  472. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.d.ts +8 -0
  473. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.d.ts.map +1 -0
  474. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.d.ts +2 -0
  475. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.d.ts.map +1 -0
  476. package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts +41 -0
  477. package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts.map +1 -0
  478. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.d.ts +23 -0
  479. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.d.ts.map +1 -0
  480. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.test.d.ts +2 -0
  481. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.test.d.ts.map +1 -0
  482. package/lib/types/src/api/secure-channel/task/types.d.ts +105 -0
  483. package/lib/types/src/api/secure-channel/task/types.d.ts.map +1 -0
  484. package/lib/types/src/api/secure-channel/types.d.ts +4 -0
  485. package/lib/types/src/api/secure-channel/types.d.ts.map +1 -0
  486. package/lib/types/src/api/secure-channel/utils.d.ts +30 -0
  487. package/lib/types/src/api/secure-channel/utils.d.ts.map +1 -0
  488. package/lib/types/src/api/secure-channel/utils.test.d.ts +2 -0
  489. package/lib/types/src/api/secure-channel/utils.test.d.ts.map +1 -0
  490. package/lib/types/src/api/transport/model/DeviceConnection.d.ts +1 -1
  491. package/lib/types/src/api/transport/model/DeviceConnection.d.ts.map +1 -1
  492. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts +9 -7
  493. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts.map +1 -1
  494. package/lib/types/src/api/transport/model/Errors.d.ts +5 -0
  495. package/lib/types/src/api/transport/model/Errors.d.ts.map +1 -1
  496. package/lib/types/src/api/types.d.ts +4 -0
  497. package/lib/types/src/api/types.d.ts.map +1 -1
  498. package/lib/types/src/di.d.ts.map +1 -1
  499. package/lib/types/src/internal/device-session/data/DeviceSessionRefresherConst.d.ts +6 -1
  500. package/lib/types/src/internal/device-session/data/DeviceSessionRefresherConst.d.ts.map +1 -1
  501. package/lib/types/src/internal/device-session/di/deviceSessionTypes.d.ts +1 -1
  502. package/lib/types/src/internal/device-session/model/DevicePinger.d.ts +18 -0
  503. package/lib/types/src/internal/device-session/model/DevicePinger.d.ts.map +1 -0
  504. package/lib/types/src/internal/device-session/model/DevicePinger.test.d.ts +2 -0
  505. package/lib/types/src/internal/device-session/model/DevicePinger.test.d.ts.map +1 -0
  506. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts +20 -8
  507. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts.map +1 -1
  508. package/lib/types/src/internal/device-session/model/DeviceSession.stub.d.ts +2 -2
  509. package/lib/types/src/internal/device-session/model/DeviceSession.stub.d.ts.map +1 -1
  510. package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.d.ts +35 -0
  511. package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.d.ts.map +1 -0
  512. package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.test.d.ts +2 -0
  513. package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.test.d.ts.map +1 -0
  514. package/lib/types/src/internal/device-session/model/DeviceSessionRefresher.d.ts +17 -79
  515. package/lib/types/src/internal/device-session/model/DeviceSessionRefresher.d.ts.map +1 -1
  516. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.d.ts +20 -0
  517. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.d.ts.map +1 -0
  518. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.test.d.ts +2 -0
  519. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.test.d.ts.map +1 -0
  520. package/lib/types/src/internal/device-session/service/MutexService.d.ts +6 -0
  521. package/lib/types/src/internal/device-session/service/MutexService.d.ts.map +1 -0
  522. package/lib/types/src/internal/device-session/service/MutexService.test.d.ts +2 -0
  523. package/lib/types/src/internal/device-session/service/MutexService.test.d.ts.map +1 -0
  524. package/lib/types/src/internal/device-session/service/RefresherService.d.ts +15 -0
  525. package/lib/types/src/internal/device-session/service/RefresherService.d.ts.map +1 -0
  526. package/lib/types/src/internal/device-session/service/RefresherService.test.d.ts +2 -0
  527. package/lib/types/src/internal/device-session/service/RefresherService.test.d.ts.map +1 -0
  528. package/lib/types/src/internal/device-session/utils/deviceSessionUtils.d.ts +3 -0
  529. package/lib/types/src/internal/device-session/utils/deviceSessionUtils.d.ts.map +1 -0
  530. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts +8 -1
  531. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts.map +1 -1
  532. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.d.ts +14 -3
  533. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.d.ts.map +1 -1
  534. package/lib/types/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.d.ts +1 -1
  535. package/lib/types/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.d.ts.map +1 -1
  536. package/lib/types/src/internal/discovery/use-case/StartDiscoveringUseCase.d.ts +1 -1
  537. package/lib/types/src/internal/discovery/use-case/StartDiscoveringUseCase.d.ts.map +1 -1
  538. package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts +10 -6
  539. package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts.map +1 -1
  540. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts +24 -9
  541. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts.map +1 -1
  542. package/lib/types/src/internal/manager-api/data/ManagerApiDto.d.ts +4 -1
  543. package/lib/types/src/internal/manager-api/data/ManagerApiDto.d.ts.map +1 -1
  544. package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts +3 -0
  545. package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts.map +1 -1
  546. package/lib/types/src/internal/manager-api/di/managerApiModule.d.ts.map +1 -1
  547. package/lib/types/src/internal/manager-api/di/managerApiTypes.d.ts +1 -0
  548. package/lib/types/src/internal/manager-api/di/managerApiTypes.d.ts.map +1 -1
  549. package/lib/types/src/internal/manager-api/model/Application.d.ts +4 -1
  550. package/lib/types/src/internal/manager-api/model/Application.d.ts.map +1 -1
  551. package/lib/types/src/internal/manager-api/model/Const.d.ts +1 -0
  552. package/lib/types/src/internal/manager-api/model/Const.d.ts.map +1 -1
  553. package/lib/types/src/internal/manager-api/model/Params.d.ts +37 -0
  554. package/lib/types/src/internal/manager-api/model/Params.d.ts.map +1 -0
  555. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.d.ts +7 -7
  556. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.d.ts.map +1 -1
  557. package/lib/types/src/internal/manager-api/service/ManagerApiService.d.ts +32 -4
  558. package/lib/types/src/internal/manager-api/service/ManagerApiService.d.ts.map +1 -1
  559. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.d.ts +11 -0
  560. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.d.ts.map +1 -0
  561. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.test.d.ts +2 -0
  562. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.test.d.ts.map +1 -0
  563. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.d.ts +3 -3
  564. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.d.ts.map +1 -1
  565. package/lib/types/src/internal/secure-channel/data/SecureChannelDataSource.d.ts +13 -13
  566. package/lib/types/src/internal/secure-channel/data/SecureChannelDataSource.d.ts.map +1 -1
  567. package/lib/types/src/internal/secure-channel/model/Errors.d.ts +6 -0
  568. package/lib/types/src/internal/secure-channel/model/Errors.d.ts.map +1 -1
  569. package/lib/types/src/internal/secure-channel/model/Params.d.ts +3 -5
  570. package/lib/types/src/internal/secure-channel/model/Params.d.ts.map +1 -1
  571. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts +7 -7
  572. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts.map +1 -1
  573. package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts +39 -4
  574. package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts.map +1 -1
  575. package/lib/types/src/internal/send/use-case/SendApduUseCase.d.ts +5 -1
  576. package/lib/types/src/internal/send/use-case/SendApduUseCase.d.ts.map +1 -1
  577. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  578. package/package.json +4 -4
  579. package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.js +0 -2
  580. package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.js.map +0 -7
  581. package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js +0 -2
  582. package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js.map +0 -7
  583. package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.js +0 -2
  584. package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.js.map +0 -7
  585. package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js +0 -2
  586. package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js.map +0 -7
  587. package/lib/types/src/api/device-session/use-case/ToggleDeviceSessionRefresher.d.ts.map +0 -1
  588. package/lib/types/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.d.ts +0 -2
  589. package/lib/types/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/api/transport/model/DeviceConnectionStateMachine.ts"],
4
- "sourcesContent": ["// import { createBrowserInspector } from \"@statelyai/inspect\";\nimport { type Either, Left, Maybe, Nothing, Right } from \"purify-ts\";\nimport { type Actor, assign, createActor, emit, setup } from \"xstate\";\n\nimport { CommandUtils } from \"@api/command/utils/CommandUtils\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type DmkError, UnknownDeviceExchangeError } from \"@api/Error\";\nimport { type DeviceId } from \"@api/types\";\n\nimport { type DeviceApduSender } from \"./DeviceApduSender\";\nimport {\n AlreadySendingApduError,\n DeviceDisconnectedBeforeSendingApdu,\n DeviceDisconnectedWhileSendingError,\n} from \"./Errors\";\n\n// const { inspect } = createBrowserInspector();\n\ntype DeviceDetachedEvent = {\n type: \"DeviceDetached\";\n};\n\ntype DeviceAttachedEvent = {\n type: \"DeviceAttached\";\n};\n\ntype ApduResponseReceived = {\n type: \"ApduResponseReceived\";\n apduResponse: ApduResponse;\n};\n\ntype ApduSendingError = {\n type: \"ApduSendingError\";\n error: DmkError;\n};\n\ntype SendApduCalled = {\n type: \"SendApduCalled\";\n apdu: Uint8Array;\n triggersDisconnection: boolean;\n responseCallback: (response: Either<DmkError, ApduResponse>) => void;\n};\n\ntype ReconnectionTimedOut = {\n type: \"ReconnectionTimedOut\";\n};\n\ntype CloseConnectionCalled = {\n type: \"CloseConnectionCalled\";\n};\n\nexport type DeviceConnectionEvent =\n | DeviceDetachedEvent\n | DeviceAttachedEvent\n | ApduResponseReceived\n | ApduSendingError\n | SendApduCalled\n | CloseConnectionCalled\n | ReconnectionTimedOut;\n\nexport class DeviceConnectionStateMachine<Dependencies> {\n private deviceId: DeviceId;\n private deviceAdpuSender: DeviceApduSender<Dependencies>;\n\n private machineActor: Actor<ReturnType<typeof makeStateMachine>>;\n\n private timeoutDuration: number;\n private timeout: ReturnType<typeof setTimeout> | null = null;\n\n startReconnectionTimeout() {\n this.timeout = setTimeout(() => {\n this.machineActor.send({ type: \"ReconnectionTimedOut\" });\n }, this.timeoutDuration);\n }\n\n constructor(params: {\n deviceId: DeviceId;\n deviceApduSender: DeviceApduSender<Dependencies>;\n timeoutDuration: number;\n onTerminated: () => void;\n }) {\n this.deviceId = params.deviceId;\n this.deviceAdpuSender = params.deviceApduSender;\n this.timeoutDuration = params.timeoutDuration;\n this.machineActor = createActor(\n makeStateMachine({\n sendApduFn: (apdu, triggersDisconnection) =>\n this.sendApduToDeviceConnection(apdu, triggersDisconnection),\n startReconnectionTimeout: () => this.startReconnectionTimeout(),\n cancelReconnectionTimeout: () => {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n },\n onTerminated: params.onTerminated,\n closeConnection: () => {\n this.deviceAdpuSender.closeConnection();\n },\n }),\n // {\n // // inspect,\n // },\n );\n this.machineActor.start();\n }\n\n private sendApduToDeviceConnection(\n apdu: Uint8Array,\n triggersDisconnection?: boolean,\n ) {\n console.log(\n \"[sendApduToDeviceConnection] called\",\n apdu,\n triggersDisconnection,\n );\n this.deviceAdpuSender\n .sendApdu(apdu, triggersDisconnection)\n .then((response) => {\n response.caseOf({\n Left: (error) => {\n console.log(\n \"[sendApduToDeviceConnection] got error response\",\n error,\n );\n this.machineActor.send({ type: \"ApduSendingError\", error });\n },\n Right: (apduResponse) => {\n console.log(\n \"[sendApduToDeviceConnection] got successful response\",\n apduResponse,\n );\n this.machineActor.send({\n type: \"ApduResponseReceived\",\n apduResponse,\n });\n },\n });\n })\n .catch((error) => {\n console.log(\"[sendApduToDeviceConnection] caught error\", error);\n this.machineActor.send({\n type: \"ApduSendingError\",\n error: new UnknownDeviceExchangeError(error),\n });\n });\n }\n\n /**\n * Called by the transport\n */\n\n public getDependencies(): Dependencies {\n return this.deviceAdpuSender.getDependencies();\n }\n\n public setDependencies(dependencies: Dependencies) {\n this.deviceAdpuSender.setDependencies(dependencies);\n }\n\n public getDeviceId() {\n return this.deviceId;\n }\n\n public sendApdu(\n apdu: Uint8Array,\n triggersDisconnection?: boolean,\n ): Promise<Either<DmkError, ApduResponse>> {\n return new Promise((responseCallback) => {\n this.machineActor.send({\n type: \"SendApduCalled\",\n apdu,\n triggersDisconnection: !!triggersDisconnection,\n responseCallback,\n });\n });\n }\n\n public async setupConnection() {\n await this.deviceAdpuSender.setupConnection();\n }\n\n // State Machine Events\n\n public eventDeviceAttached() {\n this.machineActor.send({ type: \"DeviceAttached\" });\n }\n\n public eventDeviceDetached() {\n this.machineActor.send({ type: \"DeviceDetached\" });\n }\n\n public closeConnection() {\n this.machineActor.send({ type: \"CloseConnectionCalled\" });\n }\n}\n\nfunction makeStateMachine({\n sendApduFn,\n startReconnectionTimeout,\n cancelReconnectionTimeout,\n onTerminated,\n closeConnection,\n}: {\n sendApduFn: (apdu: Uint8Array, triggersDisconnection: boolean) => void;\n startReconnectionTimeout: () => void;\n cancelReconnectionTimeout: () => void;\n onTerminated: () => void;\n closeConnection: () => void;\n}) {\n return setup({\n types: {} as {\n context: {\n apduInProgress: Maybe<{\n apdu: Uint8Array;\n triggersDisconnection: boolean;\n responseCallback: (response: Either<DmkError, ApduResponse>) => void;\n }>;\n };\n events: DeviceConnectionEvent;\n },\n actions: {\n // event transitions\n startTimer: () => {\n startReconnectionTimeout();\n },\n cancelTimer: () => {\n cancelReconnectionTimeout();\n },\n reconnectionTimeoutEvent: emit({ type: \"ReconnectionTimedOut\" }),\n sendApdu: ({ context }) => {\n context.apduInProgress.caseOf({\n Just: ({ apdu }) => {\n sendApduFn(apdu, false);\n },\n Nothing: () => {\n console.error(\"sendApdu called while no apdu in progress\");\n },\n });\n },\n sendApduResponse: (\n { context },\n params: { response: Either<DmkError, ApduResponse> },\n ) => {\n context.apduInProgress.caseOf({\n Just: ({ responseCallback }) => {\n responseCallback(params.response);\n },\n Nothing: () => {\n console.error(\"sendApduResponse called while no apdu in progress\");\n },\n });\n },\n cleanupContext: assign({ apduInProgress: Nothing }),\n signalTermination: () => {\n onTerminated();\n },\n closeConnection: async () => {\n try {\n await closeConnection(); // ASK: how do we handle errors ?\n } catch (e) {\n console.error(\"Error closing connection\", e);\n }\n },\n },\n guards: {\n isApduThatTriggersDisconnection: (\n { context },\n params: { apduResponse: ApduResponse },\n ) => {\n return context.apduInProgress.caseOf({\n Just: ({ triggersDisconnection, apdu }) => {\n const res =\n (triggersDisconnection ||\n CommandUtils.isApduThatTriggersDisconnection(apdu)) &&\n CommandUtils.isSuccessResponse(params.apduResponse);\n console.log(\"isApduThatTriggersDisconnection\", res, apdu);\n return res;\n },\n Nothing: () => false,\n });\n },\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QTANwJYGMwGED2AdgWJgC7qEB0+RJpkAxACJpZgukCGmAFpANoAGALqJQABzyx05QmJAAPRAA4A7AGZKywQEYAnAFYATMoAsBg6fUA2ADQgAnolUnKBjUdXXVpnUb0aAL6B9igY2DTEZBQE1IRR9BAMAMpgBBAAguIQAK44nAA2BQIi8pLSsgTySgjW6oKU6uo61kbWyh06Vsr2TgjqAZR6HUaWXcrqBmrBoawR8XQxcbRkjDgFUrgL0YT5RSWiSCDlMjHVKnrWjaO6ev6qlnp6vYim1qaN9YLqGuPKOjpVDMQGE2JFFlRUul0AQoFlcgx4TkAEpwSQEWBgVHYdCoA5lKSnORHGpNVSUPwGXQDQSmNTDF4IZTWPRDJotUw+HwAnTA0HzFaVShQiAwuHZHKIiWo2DozHYsC4gQ6Q4SQmVc79TxDIzqG6eJq+VSM94NPQ6CYuUzmQGCax8uZbQVLEVipFS3Ku2EAUQATr68L6hKrjuqziTEJNNHrTG1dIIDE8jLTGVTlJQboI2i56QZeSEQY7wTtYl7xQiWOF2GAuLx8UcThqIwh-OmdBZPF0qQCBoydIJlAZKK0jP4bHntBaHVXi0Ky+71ptZzE9sUIMGCRVw6Aau2dJQ6WZlMM-D9+89HIh++mbndVHpdNYLAnp2DtnO0qLYe6RUjV-W1S3Ykd0QABac1KFpbx3kHCxumNS9ak5SDTHNax0NUDRfFMV8BQSJYAHVOFOWEADFA2xd8YmYR0MlIWs+HXUoGzDYDFEQQx90mVozABJ9BAvPo6iuFpRgtQRdDUWNcKdfCqCIkioHI31KOdQgUk-P9CjXDcWKAqpmx0dR-gpCTaXNUxvh7RkvCHWlaWM9RfC6dCZOXeTiPIMiKJIKj1NUuSCAAFXQABbSAAHkclIXTAKJAyQIQLpBHJAEXB8AS1HvdRGT0a0D2ZZpBxjSc3L82IFK8pSfMwcqGEXTF3IIf8mJDRtt3YpLLPJZMWkmTtzJyxD+1UBofifVQOm8YyWjKtSKs8sVlICiECAImQeAARRyMAdogX8JRoqs6IYgDQ30zUjJ8CkWQmYZbOsFLGWzUyzE5bssx8ObAsoSqlpq8r1tILadr2g6ERWksQvCiAopi5i4qbRKjH7Bo4N1dsvFjOxEIeIwUPQ9o9AGSYvG+1bfsW7yVN8+agZB3bIHByUGtk1aWti874s1FGJOHYy6gTLo3lMVN7wPBNVAtbRRg0IEC35NmS0pxTltpwL6e2xn9s0w7mY5hGuaRzrAWZIYBJpc0pd1E18tNMZLOMAwnOCAsCDwFB4CORWms3bnm1AozWSgrHYMsYyEL6FGKXcDleMMO5rXJ5XZ0gP3jZqB4evaLwXEeqwnJNKYDypWlzHePwcIVotyuFT83QldOOpqWNU30A8rEmrMjPcAJk6FP7qch432rY3dxnN1onlaZ9idy5NILuCxl+UEwrH7wiqeqmnarpjatbB3Xcibser3eckfmd3xOkrnpce0DMjHMeoAgLjeqCCsBfVCmFOESE+EqdSfnmNwLJjBPBSs0QwuV3CQWPN3AwT4LTtldoEIAA */\n id: \"deviceConnection\",\n initial: \"Connected\",\n context: {\n apduInProgress: Nothing,\n },\n states: {\n Connected: {\n on: {\n DeviceDetached: {\n target: \"WaitingForReconnection\",\n },\n SendApduCalled: {\n target: \"SendingApdu\",\n actions: assign({\n apduInProgress: ({ event }) => {\n return Maybe.of({\n apdu: event.apdu,\n triggersDisconnection: event.triggersDisconnection,\n responseCallback: event.responseCallback,\n });\n },\n }),\n },\n CloseConnectionCalled: {\n target: \"Terminated\",\n },\n },\n },\n SendingApdu: {\n entry: \"sendApdu\",\n on: {\n ApduResponseReceived: [\n {\n guard: {\n type: \"isApduThatTriggersDisconnection\",\n params: ({ event }) => ({ apduResponse: event.apduResponse }),\n },\n target: \"WaitingForReconnection\",\n actions: [\n {\n type: \"sendApduResponse\",\n // https://stately.ai/docs/actions#dynamic-action-parameters\n params: ({ event }) => {\n return {\n response: Right(event.apduResponse),\n };\n },\n },\n { type: \"cleanupContext\" },\n ],\n },\n {\n target: \"Connected\",\n actions: [\n {\n type: \"sendApduResponse\",\n // https://stately.ai/docs/actions#dynamic-action-parameters\n params: ({ event }) => {\n return {\n response: Right(event.apduResponse),\n };\n },\n },\n { type: \"cleanupContext\" },\n ],\n },\n ],\n ApduSendingError: {\n target: \"Connected\",\n actions: [\n {\n type: \"sendApduResponse\",\n // https://stately.ai/docs/actions#dynamic-action-parameters\n params: ({ event }) => {\n return {\n response: Left(event.error),\n };\n },\n },\n \"cleanupContext\",\n ],\n },\n DeviceDetached: {\n target: \"WaitingForReconnection\",\n actions: [\n {\n type: \"sendApduResponse\",\n params: {\n response: Left(new DeviceDisconnectedWhileSendingError()),\n },\n },\n \"cleanupContext\",\n ],\n },\n CloseConnectionCalled: {\n target: \"Terminated\",\n actions: [\n {\n type: \"sendApduResponse\",\n params: {\n response: Left(new DeviceDisconnectedWhileSendingError()),\n },\n },\n \"cleanupContext\",\n ],\n },\n SendApduCalled: {\n actions: ({ event }) => {\n console.log(\n \"EXTRA SendApduCalled while in state: SendingApdu state\",\n );\n event.responseCallback(Left(new AlreadySendingApduError()));\n },\n },\n },\n },\n WaitingForReconnection: {\n entry: \"startTimer\",\n on: {\n DeviceAttached: {\n target: \"Connected\",\n actions: \"cancelTimer\",\n },\n SendApduCalled: {\n target: \"WaitingForReconnectionWithQueuedSendApdu\",\n actions: assign({\n apduInProgress: ({ event }) => {\n return Maybe.of({\n apdu: event.apdu,\n triggersDisconnection: event.triggersDisconnection,\n responseCallback: event.responseCallback,\n });\n },\n }),\n },\n ReconnectionTimedOut: {\n target: \"Terminated\",\n },\n CloseConnectionCalled: {\n target: \"Terminated\",\n },\n },\n },\n WaitingForReconnectionWithQueuedSendApdu: {\n on: {\n DeviceAttached: {\n target: \"SendingApdu\",\n actions: \"cancelTimer\",\n },\n ReconnectionTimedOut: {\n target: \"Terminated\",\n actions: [\n {\n type: \"sendApduResponse\",\n params: {\n response: Left(new DeviceDisconnectedBeforeSendingApdu()),\n },\n },\n {\n type: \"cleanupContext\",\n },\n ],\n },\n CloseConnectionCalled: {\n target: \"Terminated\",\n actions: [\n {\n type: \"sendApduResponse\",\n params: {\n response: Left(new DeviceDisconnectedWhileSendingError()),\n },\n },\n \"cleanupContext\",\n ],\n },\n SendApduCalled: {\n actions: ({ event }) => {\n console.log(\n \"EXTRA SendApduCalled while in state:WaitingForReconnectionWithQueuedSendApdu\",\n );\n event.responseCallback(Left(new AlreadySendingApduError()));\n },\n },\n },\n },\n // TODO: ADD INACTIVE STATE\n Terminated: {\n entry: [\"signalTermination\", \"closeConnection\"],\n type: \"final\",\n },\n },\n });\n}\n"],
5
- "mappings": "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",
6
- "names": ["Left", "Maybe", "Nothing", "Right", "assign", "createActor", "emit", "setup", "CommandUtils", "UnknownDeviceExchangeError", "AlreadySendingApduError", "DeviceDisconnectedBeforeSendingApdu", "DeviceDisconnectedWhileSendingError", "DeviceConnectionStateMachine", "params", "makeStateMachine", "apdu", "triggersDisconnection", "response", "error", "apduResponse", "dependencies", "responseCallback", "sendApduFn", "startReconnectionTimeout", "cancelReconnectionTimeout", "onTerminated", "closeConnection", "context", "res", "event"]
4
+ "sourcesContent": ["// import { createBrowserInspector } from \"@statelyai/inspect\";\nimport { type Either, Left, Maybe, Nothing, Right } from \"purify-ts\";\nimport { type Actor, assign, createActor, emit, setup } from \"xstate\";\n\nimport { CommandUtils } from \"@api/command/utils/CommandUtils\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type DmkError, UnknownDeviceExchangeError } from \"@api/Error\";\nimport { type DeviceId } from \"@api/types\";\n\nimport { type DeviceApduSender } from \"./DeviceApduSender\";\nimport {\n AlreadySendingApduError,\n DeviceDisconnectedBeforeSendingApdu,\n DeviceDisconnectedWhileSendingError,\n} from \"./Errors\";\n\n// const { inspect } = createBrowserInspector();\n\ntype DeviceDetachedEvent = {\n type: \"DeviceDetached\";\n};\n\ntype DeviceAttachedEvent = {\n type: \"DeviceAttached\";\n};\n\ntype ApduResponseReceived = {\n type: \"ApduResponseReceived\";\n apduResponse: ApduResponse;\n};\n\ntype ApduSendingError = {\n type: \"ApduSendingError\";\n error: DmkError;\n};\n\ntype SendApduCalled = {\n type: \"SendApduCalled\";\n apdu: Uint8Array;\n triggersDisconnection: boolean;\n abortTimeout?: number;\n responseCallback: (response: Either<DmkError, ApduResponse>) => void;\n};\n\ntype ReconnectionTimedOut = {\n type: \"ReconnectionTimedOut\";\n};\n\ntype CloseConnectionCalled = {\n type: \"CloseConnectionCalled\";\n};\n\nexport type DeviceConnectionEvent =\n | DeviceDetachedEvent\n | DeviceAttachedEvent\n | ApduResponseReceived\n | ApduSendingError\n | SendApduCalled\n | CloseConnectionCalled\n | ReconnectionTimedOut;\n\nexport type DeviceConnectionStateMachineParams<Dependencies> = {\n deviceId: DeviceId;\n deviceApduSender: DeviceApduSender<Dependencies>;\n timeoutDuration: number;\n onTerminated: () => void;\n};\n\nexport class DeviceConnectionStateMachine<Dependencies> {\n private deviceId: DeviceId;\n private deviceAdpuSender: DeviceApduSender<Dependencies>;\n\n private machineActor: Actor<ReturnType<typeof makeStateMachine>>;\n\n private timeoutDuration: number;\n private timeout: ReturnType<typeof setTimeout> | null = null;\n\n startReconnectionTimeout() {\n this.timeout = setTimeout(() => {\n this.machineActor.send({ type: \"ReconnectionTimedOut\" });\n }, this.timeoutDuration);\n }\n\n constructor(params: DeviceConnectionStateMachineParams<Dependencies>) {\n this.deviceId = params.deviceId;\n this.deviceAdpuSender = params.deviceApduSender;\n this.timeoutDuration = params.timeoutDuration;\n this.machineActor = createActor(\n makeStateMachine({\n sendApduFn: (apdu, triggersDisconnection) =>\n this.sendApduToDeviceConnection(apdu, triggersDisconnection),\n startReconnectionTimeout: () => this.startReconnectionTimeout(),\n cancelReconnectionTimeout: () => {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n },\n onTerminated: params.onTerminated,\n closeConnection: () => {\n this.deviceAdpuSender.closeConnection();\n },\n }),\n // {\n // // inspect,\n // },\n );\n this.machineActor.start();\n }\n\n private sendApduToDeviceConnection(\n apdu: Uint8Array,\n triggersDisconnection?: boolean,\n ) {\n this.deviceAdpuSender\n .sendApdu(apdu, triggersDisconnection)\n .then((response) => {\n response.caseOf({\n Left: (error) => {\n this.machineActor.send({ type: \"ApduSendingError\", error });\n },\n Right: (apduResponse) => {\n this.machineActor.send({\n type: \"ApduResponseReceived\",\n apduResponse,\n });\n },\n });\n })\n .catch((error) => {\n this.machineActor.send({\n type: \"ApduSendingError\",\n error: new UnknownDeviceExchangeError(error),\n });\n });\n }\n\n /**\n * Called by the transport\n */\n\n public getDependencies(): Dependencies {\n return this.deviceAdpuSender.getDependencies();\n }\n\n public setDependencies(dependencies: Dependencies) {\n this.deviceAdpuSender.setDependencies(dependencies);\n }\n\n public getDeviceId() {\n return this.deviceId;\n }\n\n public sendApdu(\n apdu: Uint8Array,\n triggersDisconnection?: boolean,\n abortTimeout?: number,\n ): Promise<Either<DmkError, ApduResponse>> {\n return new Promise((responseCallback) => {\n this.machineActor.send({\n type: \"SendApduCalled\",\n apdu,\n triggersDisconnection: !!triggersDisconnection,\n abortTimeout,\n responseCallback,\n });\n });\n }\n\n public async setupConnection() {\n await this.deviceAdpuSender.setupConnection();\n }\n\n // State Machine Events\n\n public eventDeviceAttached() {\n this.machineActor.send({ type: \"DeviceAttached\" });\n }\n\n public eventDeviceDetached() {\n this.machineActor.send({ type: \"DeviceDetached\" });\n }\n\n public closeConnection() {\n this.machineActor.send({ type: \"CloseConnectionCalled\" });\n }\n}\n\nfunction makeStateMachine({\n sendApduFn,\n startReconnectionTimeout,\n cancelReconnectionTimeout,\n onTerminated,\n closeConnection,\n}: {\n sendApduFn: (\n apdu: Uint8Array,\n triggersDisconnection: boolean,\n abortTimeout?: number,\n ) => void;\n startReconnectionTimeout: () => void;\n cancelReconnectionTimeout: () => void;\n onTerminated: () => void;\n closeConnection: () => void;\n}) {\n return setup({\n types: {} as {\n context: {\n apduInProgress: Maybe<{\n apdu: Uint8Array;\n triggersDisconnection: boolean;\n abortTimeout?: number;\n responseCallback: (response: Either<DmkError, ApduResponse>) => void;\n }>;\n };\n events: DeviceConnectionEvent;\n },\n actions: {\n // event transitions\n startTimer: () => {\n startReconnectionTimeout();\n },\n cancelTimer: () => {\n cancelReconnectionTimeout();\n },\n reconnectionTimeoutEvent: emit({ type: \"ReconnectionTimedOut\" }),\n sendApdu: ({ context }) => {\n context.apduInProgress.map(({ apdu, abortTimeout }) => {\n sendApduFn(apdu, false, abortTimeout);\n });\n },\n sendApduResponse: (\n { context },\n params: { response: Either<DmkError, ApduResponse> },\n ) => {\n context.apduInProgress.map(({ responseCallback }) =>\n responseCallback(params.response),\n );\n },\n cleanupContext: assign({ apduInProgress: Nothing }),\n signalTermination: () => {\n onTerminated();\n },\n closeConnection: () => {\n closeConnection(); // ASK: how do we handle errors ?\n },\n },\n guards: {\n isApduThatTriggersDisconnection: (\n { context },\n params: { apduResponse: ApduResponse },\n ) => {\n return context.apduInProgress.caseOf({\n Just: ({ triggersDisconnection, apdu }) => {\n const res =\n (triggersDisconnection ||\n CommandUtils.isApduThatTriggersDisconnection(apdu)) &&\n CommandUtils.isSuccessResponse(params.apduResponse);\n return res;\n },\n Nothing: () => false,\n });\n },\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QTANwJYGMwGED2AdgWJgC7qEB0+RJpkAxACJpZgukCGmAFpANoAGALqJQABzyx05QmJAAPRAA4A7AGZKywQEYAnAFYATMoAsBg6fUA2ADQgAnolUnKBjUdXXVpnUb0aAL6B9igY2DTEZBQE1IRR9BAMAMpgBBAAguIQAK44nAA2BQIi8pLSsgTySgjW6oKU6uo61kbWyh06Vsr2TgjqAZR6HUaWXcrqBmrBoawR8XQxcbRkjDgFUrgL0YT5RSWiSCDlMjHVKnrWjaO6ev6qlnp6vYim1qaN9YLqGuPKOjpVDMQGE2JFFlRUul0AQoFlcgx4TkAEpwSQEWBgVHYdCoA5lKSnORHGpNVSUPwGXQDQSmNTDF4IZTWPRDJotUw+HwAnTA0HzFaVShQiAwuHZHKIiWo2DozHYsC4gQ6Q4SQmVc79TxDIzqG6eJq+VSM94NPQ6CYuUzmQGCax8uZbQVLEVipFS3Ku2EAUQATr68L6hKrjuqziTEJNNHrTG1dIIDE8jLTGVTlJQboI2i56QZeSEQY7wTtYl7xQiWOF2GAuLx8UcThqIwh-OmdBZPF0qQCBoydIJlAZKK0jP4bHntBaHVXi0Ky+71ptZzE9sUIMGCRVw6Aau2dJQ6WZlMM-D9+89HIh++mbndVHpdNYLAnp2DtnO0qLYe6RUjV-W1S3Ykd0QABac1KFpbx3kHCxumNS9ak5SDTHNax0NUDRfFMV8BQSJYAHVOFOWEADFA2xd8YmYR0MlIWs+HXUoGzDYDFEQQx90mVozABJ9BAvPo6iuFpRgtQRdDUWNcKdfCqCIkioHI31KOdQgUk-P9CjXDcWKAqpmx0dR-gpCTaXNUxvh7RkvCHWlaWM9RfC6dCZOXeTiPIMiKJIKj1NUuSCAAFXQABbSAAHkclIXTAKJAyQIQLpBHJAEXB8AS1HvdRGT0a0D2ZZpBxjSc3L82IFK8pSfMwcqGEXTF3IIf8mJDRtt3YpLLPJZMWkmTtzJyxD+1UBofifVQOm8YyWjKtSKs8sVlICiECAImQeAARRyMAdogX8JRoqs6IYgDQ30zUjJ8CkWQmYZbOsFLGWzUyzE5bssx8ObAsoSqlpq8r1tILadr2g6ERWksQvCiAopi5i4qbRKjH7Bo4N1dsvFjOxEIeIwUPQ9o9AGSYvG+1bfsW7yVN8+agZB3bIHByUGtk1aWti874s1FGJOHYy6gTLo3lMVN7wPBNVAtbRRg0IEC35NmS0pxTltpwL6e2xn9s0w7mY5hGuaRzrAWZIYBJpc0pd1E18tNMZLOMAwnOCAsCDwFB4CORWms3bnm1AozWSgrHYMsYyEL6FGKXcDleMMO5rXJ5XZ0gP3jZqB4evaLwXEeqwnJNKYDypWlzHePwcIVotyuFT83QldOOpqWNU30A8rEmrMjPcAJk6FP7qch432rY3dxnN1onlaZ9idy5NILuCxl+UEwrH7wiqeqmnarpjatbB3Xcibser3eckfmd3xOkrnpce0DMjHMeoAgLjeqCCsBfVCmFOESE+EqdSfnmNwLJjBPBSs0QwuV3CQWPN3AwT4LTtldoEIAA */\n id: \"deviceConnection\",\n initial: \"Connected\",\n context: {\n apduInProgress: Nothing,\n },\n states: {\n Connected: {\n on: {\n DeviceDetached: {\n target: \"WaitingForReconnection\",\n },\n SendApduCalled: {\n target: \"SendingApdu\",\n actions: assign({\n apduInProgress: ({ event }) => {\n return Maybe.of({\n apdu: event.apdu,\n triggersDisconnection: event.triggersDisconnection,\n abortTimeout: event.abortTimeout,\n responseCallback: event.responseCallback,\n });\n },\n }),\n },\n CloseConnectionCalled: {\n target: \"Terminated\",\n },\n },\n },\n SendingApdu: {\n entry: \"sendApdu\",\n on: {\n ApduResponseReceived: [\n {\n guard: {\n type: \"isApduThatTriggersDisconnection\",\n params: ({ event }) => ({ apduResponse: event.apduResponse }),\n },\n target: \"WaitingForReconnection\",\n actions: [\n {\n type: \"sendApduResponse\",\n // https://stately.ai/docs/actions#dynamic-action-parameters\n params: ({ event }) => {\n return {\n response: Right(event.apduResponse),\n };\n },\n },\n { type: \"cleanupContext\" },\n ],\n },\n {\n target: \"Connected\",\n actions: [\n {\n type: \"sendApduResponse\",\n // https://stately.ai/docs/actions#dynamic-action-parameters\n params: ({ event }) => {\n return {\n response: Right(event.apduResponse),\n };\n },\n },\n { type: \"cleanupContext\" },\n ],\n },\n ],\n ApduSendingError: {\n target: \"Connected\",\n actions: [\n {\n type: \"sendApduResponse\",\n // https://stately.ai/docs/actions#dynamic-action-parameters\n params: ({ event }) => {\n return {\n response: Left(event.error),\n };\n },\n },\n \"cleanupContext\",\n ],\n },\n DeviceDetached: {\n target: \"WaitingForReconnection\",\n actions: [\n {\n type: \"sendApduResponse\",\n params: {\n response: Left(new DeviceDisconnectedWhileSendingError()),\n },\n },\n \"cleanupContext\",\n ],\n },\n CloseConnectionCalled: {\n target: \"Terminated\",\n actions: [\n {\n type: \"sendApduResponse\",\n params: {\n response: Left(new DeviceDisconnectedWhileSendingError()),\n },\n },\n \"cleanupContext\",\n ],\n },\n SendApduCalled: {\n actions: ({ event }) => {\n event.responseCallback(Left(new AlreadySendingApduError()));\n },\n },\n },\n },\n WaitingForReconnection: {\n entry: \"startTimer\",\n on: {\n DeviceAttached: {\n target: \"Connected\",\n actions: \"cancelTimer\",\n },\n SendApduCalled: {\n target: \"WaitingForReconnectionWithQueuedSendApdu\",\n actions: assign({\n apduInProgress: ({ event }) => {\n return Maybe.of({\n apdu: event.apdu,\n triggersDisconnection: event.triggersDisconnection,\n abortTimeout: event.abortTimeout,\n responseCallback: event.responseCallback,\n });\n },\n }),\n },\n ReconnectionTimedOut: {\n target: \"Terminated\",\n },\n CloseConnectionCalled: {\n target: \"Terminated\",\n },\n },\n },\n WaitingForReconnectionWithQueuedSendApdu: {\n on: {\n DeviceAttached: {\n target: \"SendingApdu\",\n actions: \"cancelTimer\",\n },\n ReconnectionTimedOut: {\n target: \"Terminated\",\n actions: [\n {\n type: \"sendApduResponse\",\n params: {\n response: Left(new DeviceDisconnectedBeforeSendingApdu()),\n },\n },\n {\n type: \"cleanupContext\",\n },\n ],\n },\n CloseConnectionCalled: {\n target: \"Terminated\",\n actions: [\n {\n type: \"sendApduResponse\",\n params: {\n response: Left(new DeviceDisconnectedWhileSendingError()),\n },\n },\n \"cleanupContext\",\n ],\n },\n SendApduCalled: {\n actions: ({ event }) => {\n event.responseCallback(Left(new AlreadySendingApduError()));\n },\n },\n },\n },\n // TODO: ADD INACTIVE STATE\n Terminated: {\n entry: [\"signalTermination\", \"closeConnection\"],\n type: \"final\",\n },\n },\n });\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Left", "Maybe", "Nothing", "Right", "assign", "createActor", "emit", "setup", "CommandUtils", "UnknownDeviceExchangeError", "AlreadySendingApduError", "DeviceDisconnectedBeforeSendingApdu", "DeviceDisconnectedWhileSendingError", "DeviceConnectionStateMachine", "params", "makeStateMachine", "apdu", "triggersDisconnection", "response", "error", "apduResponse", "dependencies", "abortTimeout", "responseCallback", "sendApduFn", "startReconnectionTimeout", "cancelReconnectionTimeout", "onTerminated", "closeConnection", "context", "event"]
7
7
  }
@@ -1,2 +1,2 @@
1
- class n{_tag="GeneralDmkError";originalError;constructor(e){e instanceof Error?this.originalError=e:e!==void 0&&(this.originalError=new Error(String(e)))}}class t extends n{constructor(r){super(r);this.err=r}_tag="DeviceAlreadyDiscoveredError"}class s extends n{constructor(r){super(r);this.err=r}_tag="DeviceNotRecognizedError"}class d extends n{constructor(r){super(r);this.err=r}_tag="NoAccessibleDeviceError"}class c extends n{constructor(r){super(r);this.err=r}_tag="ConnectionOpeningError"}class a extends n{constructor(r){super(r);this.err=r}_tag="UnknownDeviceError"}class i extends n{constructor(r){super(r);this.err=r}_tag="TransportNotSupportedError"}class l extends n{constructor(r){super(r);this.err=r}_tag="SendApduConcurrencyError"}class u extends n{constructor(r){super(r);this.err=r}_tag="DisconnectError"}class p extends n{constructor(r){super(r);this.err=r}_tag="ReconnectionFailedError"}class E extends n{constructor(r){super(r);this.err=r}_tag="DeviceNotInitializedError"}class y extends n{constructor(r){super(r);this.err=r}_tag="NoTransportsProvidedError"}class v extends n{constructor(r){super(r);this.err=r}_tag="TransportAlreadyExistsError"}class x extends n{constructor(r){super(r);this.err=r}_tag="DeviceDisconnectedWhileSendingError"}class g extends n{constructor(r){super(r);this.err=r}_tag="AlreadySendingApduError"}class D extends n{constructor(r){super(r);this.err=r}_tag="DeviceDisconnectedBeforeSendingApdu"}class k extends n{constructor(r){super(r);this.err=r}_tag="NoTransportProvidedError"}export{g as AlreadySendingApduError,t as DeviceAlreadyConnectedError,D as DeviceDisconnectedBeforeSendingApdu,x as DeviceDisconnectedWhileSendingError,E as DeviceNotInitializedError,s as DeviceNotRecognizedError,u as DisconnectError,n as GeneralDmkError,d as NoAccessibleDeviceError,k as NoTransportProvidedError,y as NoTransportsProvidedError,c as OpeningConnectionError,p as ReconnectionFailedError,l as SendApduConcurrencyError,v as TransportAlreadyExistsError,i as TransportNotSupportedError,a as UnknownDeviceError};
1
+ class n{_tag="GeneralDmkError";originalError;constructor(e){e instanceof Error?this.originalError=e:e!==void 0&&(this.originalError=new Error(String(e)))}}class t extends n{constructor(r){super(r);this.err=r}_tag="DeviceAlreadyDiscoveredError"}class d extends n{constructor(r){super(r);this.err=r}_tag="DeviceNotRecognizedError"}class s extends n{constructor(r){super(r);this.err=r}_tag="NoAccessibleDeviceError"}class c extends n{constructor(r){super(r);this.err=r}_tag="ConnectionOpeningError"}class a extends n{constructor(r){super(r);this.err=r}_tag="UnknownDeviceError"}class i extends n{constructor(r){super(r);this.err=r}_tag="TransportNotSupportedError"}class l extends n{constructor(r){super(r);this.err=r}_tag="SendApduConcurrencyError"}class u extends n{constructor(r){super(r);this.err=r}_tag="SendApduTimeoutError"}class p extends n{constructor(r){super(r);this.err=r}_tag="DisconnectError"}class E extends n{constructor(r){super(r);this.err=r}_tag="ReconnectionFailedError"}class y extends n{constructor(r){super(r);this.err=r}_tag="DeviceNotInitializedError"}class v extends n{constructor(r){super(r);this.err=r}_tag="NoTransportsProvidedError"}class x extends n{constructor(r){super(r);this.err=r}_tag="TransportAlreadyExistsError"}class g extends n{constructor(r){super(r);this.err=r}_tag="DeviceDisconnectedWhileSendingError"}class D extends n{constructor(r){super(r);this.err=r}_tag="AlreadySendingApduError"}class k extends n{constructor(r){super(r);this.err=r}_tag="DeviceDisconnectedBeforeSendingApdu"}class w extends n{constructor(r){super(r);this.err=r}_tag="NoTransportProvidedError"}export{D as AlreadySendingApduError,t as DeviceAlreadyConnectedError,k as DeviceDisconnectedBeforeSendingApdu,g as DeviceDisconnectedWhileSendingError,y as DeviceNotInitializedError,d as DeviceNotRecognizedError,p as DisconnectError,n as GeneralDmkError,s as NoAccessibleDeviceError,w as NoTransportProvidedError,v as NoTransportsProvidedError,c as OpeningConnectionError,E as ReconnectionFailedError,l as SendApduConcurrencyError,u as SendApduTimeoutError,x as TransportAlreadyExistsError,i as TransportNotSupportedError,a as UnknownDeviceError};
2
2
  //# sourceMappingURL=Errors.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/api/transport/model/Errors.ts"],
4
- "sourcesContent": ["import { type DmkError } from \"@api/Error\";\n\nexport type ConnectError =\n | UnknownDeviceError\n | OpeningConnectionError\n | DeviceAlreadyConnectedError;\n\nexport class GeneralDmkError implements DmkError {\n _tag = \"GeneralDmkError\";\n originalError?: unknown;\n constructor(err?: unknown) {\n if (err instanceof Error) {\n this.originalError = err;\n } else if (err !== undefined) {\n this.originalError = new Error(String(err));\n }\n }\n}\n\nexport class DeviceAlreadyConnectedError extends GeneralDmkError {\n override readonly _tag = \"DeviceAlreadyDiscoveredError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class DeviceNotRecognizedError extends GeneralDmkError {\n override readonly _tag = \"DeviceNotRecognizedError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class NoAccessibleDeviceError extends GeneralDmkError {\n override readonly _tag = \"NoAccessibleDeviceError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class OpeningConnectionError extends GeneralDmkError {\n override readonly _tag = \"ConnectionOpeningError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class UnknownDeviceError extends GeneralDmkError {\n override readonly _tag = \"UnknownDeviceError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class TransportNotSupportedError extends GeneralDmkError {\n override readonly _tag = \"TransportNotSupportedError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class SendApduConcurrencyError extends GeneralDmkError {\n override readonly _tag = \"SendApduConcurrencyError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class DisconnectError extends GeneralDmkError {\n override readonly _tag = \"DisconnectError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class ReconnectionFailedError extends GeneralDmkError {\n override readonly _tag = \"ReconnectionFailedError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class DeviceNotInitializedError extends GeneralDmkError {\n override readonly _tag = \"DeviceNotInitializedError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class NoTransportsProvidedError extends GeneralDmkError {\n override readonly _tag = \"NoTransportsProvidedError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class TransportAlreadyExistsError extends GeneralDmkError {\n override readonly _tag = \"TransportAlreadyExistsError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class DeviceDisconnectedWhileSendingError extends GeneralDmkError {\n override readonly _tag = \"DeviceDisconnectedWhileSendingError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class AlreadySendingApduError extends GeneralDmkError {\n override readonly _tag = \"AlreadySendingApduError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class DeviceDisconnectedBeforeSendingApdu extends GeneralDmkError {\n override readonly _tag = \"DeviceDisconnectedBeforeSendingApdu\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class NoTransportProvidedError extends GeneralDmkError {\n override readonly _tag = \"NoTransportProvidedError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n"],
5
- "mappings": "AAOO,MAAMA,CAAoC,CAC/C,KAAO,kBACP,cACA,YAAYC,EAAe,CACrBA,aAAe,MACjB,KAAK,cAAgBA,EACZA,IAAQ,SACjB,KAAK,cAAgB,IAAI,MAAM,OAAOA,CAAG,CAAC,EAE9C,CACF,CAEO,MAAMC,UAAoCF,CAAgB,CAE/D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,8BAI3B,CAEO,MAAME,UAAiCH,CAAgB,CAE5D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,0BAI3B,CAEO,MAAMG,UAAgCJ,CAAgB,CAE3D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,yBAI3B,CAEO,MAAMI,UAA+BL,CAAgB,CAE1D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,wBAI3B,CAEO,MAAMK,UAA2BN,CAAgB,CAEtD,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,oBAI3B,CAEO,MAAMM,UAAmCP,CAAgB,CAE9D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,4BAI3B,CAEO,MAAMO,UAAiCR,CAAgB,CAE5D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,0BAI3B,CAEO,MAAMQ,UAAwBT,CAAgB,CAEnD,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,iBAI3B,CAEO,MAAMS,UAAgCV,CAAgB,CAE3D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,yBAI3B,CAEO,MAAMU,UAAkCX,CAAgB,CAE7D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,2BAI3B,CAEO,MAAMW,UAAkCZ,CAAgB,CAE7D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,2BAI3B,CAEO,MAAMY,UAAoCb,CAAgB,CAE/D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,6BAI3B,CAEO,MAAMa,UAA4Cd,CAAgB,CAEvE,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,qCAI3B,CAEO,MAAMc,UAAgCf,CAAgB,CAE3D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,yBAI3B,CAEO,MAAMe,UAA4ChB,CAAgB,CAEvE,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,qCAI3B,CAEO,MAAMgB,UAAiCjB,CAAgB,CAE5D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,0BAI3B",
6
- "names": ["GeneralDmkError", "err", "DeviceAlreadyConnectedError", "DeviceNotRecognizedError", "NoAccessibleDeviceError", "OpeningConnectionError", "UnknownDeviceError", "TransportNotSupportedError", "SendApduConcurrencyError", "DisconnectError", "ReconnectionFailedError", "DeviceNotInitializedError", "NoTransportsProvidedError", "TransportAlreadyExistsError", "DeviceDisconnectedWhileSendingError", "AlreadySendingApduError", "DeviceDisconnectedBeforeSendingApdu", "NoTransportProvidedError"]
4
+ "sourcesContent": ["import { type DmkError } from \"@api/Error\";\n\nexport type ConnectError =\n | UnknownDeviceError\n | OpeningConnectionError\n | DeviceAlreadyConnectedError;\n\nexport class GeneralDmkError implements DmkError {\n _tag = \"GeneralDmkError\";\n originalError?: unknown;\n constructor(err?: unknown) {\n if (err instanceof Error) {\n this.originalError = err;\n } else if (err !== undefined) {\n this.originalError = new Error(String(err));\n }\n }\n}\n\nexport class DeviceAlreadyConnectedError extends GeneralDmkError {\n override readonly _tag = \"DeviceAlreadyDiscoveredError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class DeviceNotRecognizedError extends GeneralDmkError {\n override readonly _tag = \"DeviceNotRecognizedError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class NoAccessibleDeviceError extends GeneralDmkError {\n override readonly _tag = \"NoAccessibleDeviceError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class OpeningConnectionError extends GeneralDmkError {\n override readonly _tag = \"ConnectionOpeningError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class UnknownDeviceError extends GeneralDmkError {\n override readonly _tag = \"UnknownDeviceError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class TransportNotSupportedError extends GeneralDmkError {\n override readonly _tag = \"TransportNotSupportedError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\nexport class SendApduConcurrencyError extends GeneralDmkError {\n override readonly _tag = \"SendApduConcurrencyError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class SendApduTimeoutError extends GeneralDmkError {\n override readonly _tag = \"SendApduTimeoutError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\nexport class DisconnectError extends GeneralDmkError {\n override readonly _tag = \"DisconnectError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class ReconnectionFailedError extends GeneralDmkError {\n override readonly _tag = \"ReconnectionFailedError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class DeviceNotInitializedError extends GeneralDmkError {\n override readonly _tag = \"DeviceNotInitializedError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class NoTransportsProvidedError extends GeneralDmkError {\n override readonly _tag = \"NoTransportsProvidedError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class TransportAlreadyExistsError extends GeneralDmkError {\n override readonly _tag = \"TransportAlreadyExistsError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class DeviceDisconnectedWhileSendingError extends GeneralDmkError {\n override readonly _tag = \"DeviceDisconnectedWhileSendingError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class AlreadySendingApduError extends GeneralDmkError {\n override readonly _tag = \"AlreadySendingApduError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class DeviceDisconnectedBeforeSendingApdu extends GeneralDmkError {\n override readonly _tag = \"DeviceDisconnectedBeforeSendingApdu\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n\nexport class NoTransportProvidedError extends GeneralDmkError {\n override readonly _tag = \"NoTransportProvidedError\";\n constructor(readonly err?: unknown) {\n super(err);\n }\n}\n"],
5
+ "mappings": "AAOO,MAAMA,CAAoC,CAC/C,KAAO,kBACP,cACA,YAAYC,EAAe,CACrBA,aAAe,MACjB,KAAK,cAAgBA,EACZA,IAAQ,SACjB,KAAK,cAAgB,IAAI,MAAM,OAAOA,CAAG,CAAC,EAE9C,CACF,CAEO,MAAMC,UAAoCF,CAAgB,CAE/D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,8BAI3B,CAEO,MAAME,UAAiCH,CAAgB,CAE5D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,0BAI3B,CAEO,MAAMG,UAAgCJ,CAAgB,CAE3D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,yBAI3B,CAEO,MAAMI,UAA+BL,CAAgB,CAE1D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,wBAI3B,CAEO,MAAMK,UAA2BN,CAAgB,CAEtD,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,oBAI3B,CAEO,MAAMM,UAAmCP,CAAgB,CAE9D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,4BAI3B,CACO,MAAMO,UAAiCR,CAAgB,CAE5D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,0BAI3B,CAEO,MAAMQ,UAA6BT,CAAgB,CAExD,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,sBAI3B,CACO,MAAMS,UAAwBV,CAAgB,CAEnD,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,iBAI3B,CAEO,MAAMU,UAAgCX,CAAgB,CAE3D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,yBAI3B,CAEO,MAAMW,UAAkCZ,CAAgB,CAE7D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,2BAI3B,CAEO,MAAMY,UAAkCb,CAAgB,CAE7D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,2BAI3B,CAEO,MAAMa,UAAoCd,CAAgB,CAE/D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,6BAI3B,CAEO,MAAMc,UAA4Cf,CAAgB,CAEvE,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,qCAI3B,CAEO,MAAMe,UAAgChB,CAAgB,CAE3D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,yBAI3B,CAEO,MAAMgB,UAA4CjB,CAAgB,CAEvE,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,qCAI3B,CAEO,MAAMiB,UAAiClB,CAAgB,CAE5D,YAAqBC,EAAe,CAClC,MAAMA,CAAG,EADU,SAAAA,CAErB,CAHkB,KAAO,0BAI3B",
6
+ "names": ["GeneralDmkError", "err", "DeviceAlreadyConnectedError", "DeviceNotRecognizedError", "NoAccessibleDeviceError", "OpeningConnectionError", "UnknownDeviceError", "TransportNotSupportedError", "SendApduConcurrencyError", "SendApduTimeoutError", "DisconnectError", "ReconnectionFailedError", "DeviceNotInitializedError", "NoTransportsProvidedError", "TransportAlreadyExistsError", "DeviceDisconnectedWhileSendingError", "AlreadySendingApduError", "DeviceDisconnectedBeforeSendingApdu", "NoTransportProvidedError"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Right as t}from"purify-ts";import{deviceModelStubBuilder as r}from"../../device-model/model/DeviceModel.stub";import{defaultApduResponseStubBuilder as o}from"../../device-session/ApduResponse.stub";import{TransportConnectedDevice as c}from"./TransportConnectedDevice";import{connectedDeviceStubBuilder as i}from"./TransportConnectedDevice.stub";describe("TransportConnectedDevice",()=>{let e;beforeEach(()=>{e=i()}),it("should create an instance",()=>{expect(e).toBeDefined(),expect(e).toBeInstanceOf(c)}),it("should return the correct id",()=>{expect(e.id).toEqual("42")}),it("should return the correct device model",()=>{expect(JSON.stringify(e.deviceModel)).toEqual(JSON.stringify(r()))}),it("should return the correct type",()=>{expect(e.type).toEqual("MOCK")}),it("should return the correct send apdu response",()=>{expect(e.sendApdu(new Uint8Array)).resolves.toMatchObject(t(o()))})});
1
+ import{Right as r}from"purify-ts";import{deviceModelStubBuilder as o}from"../../device-model/model/DeviceModel.stub";import{defaultApduResponseStubBuilder as c}from"../../device-session/ApduResponse.stub";import{TransportConnectedDevice as i}from"./TransportConnectedDevice";import{connectedDeviceStubBuilder as n}from"./TransportConnectedDevice.stub";describe("TransportConnectedDevice",()=>{let e;beforeEach(()=>{e=n()}),it("should create an instance",()=>{expect(e).toBeDefined(),expect(e).toBeInstanceOf(i)}),it("should return the correct id",()=>{expect(e.id).toEqual("42")}),it("should return the correct device model",()=>{expect(JSON.stringify(e.deviceModel)).toEqual(JSON.stringify(o()))}),it("should return the correct type",()=>{expect(e.type).toEqual("MOCK")}),it("should return the correct send apdu response",async()=>{const t=await e.sendApdu(new Uint8Array);expect(t).toMatchObject(r(c()))})});
2
2
  //# sourceMappingURL=TransportConnectedDevice.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/api/transport/model/TransportConnectedDevice.test.ts"],
4
- "sourcesContent": ["import { Right } from \"purify-ts\";\n\nimport { deviceModelStubBuilder } from \"@api/device-model/model/DeviceModel.stub\";\nimport { defaultApduResponseStubBuilder } from \"@api/device-session/ApduResponse.stub\";\n\nimport { TransportConnectedDevice } from \"./TransportConnectedDevice\";\nimport { connectedDeviceStubBuilder } from \"./TransportConnectedDevice.stub\";\n\ndescribe(\"TransportConnectedDevice\", () => {\n let connectedDevice: TransportConnectedDevice;\n\n beforeEach(() => {\n connectedDevice = connectedDeviceStubBuilder();\n });\n\n it(\"should create an instance\", () => {\n expect(connectedDevice).toBeDefined();\n expect(connectedDevice).toBeInstanceOf(TransportConnectedDevice);\n });\n\n it(\"should return the correct id\", () => {\n expect(connectedDevice.id).toEqual(\"42\");\n });\n\n it(\"should return the correct device model\", () => {\n expect(JSON.stringify(connectedDevice.deviceModel)).toEqual(\n JSON.stringify(deviceModelStubBuilder()),\n );\n });\n\n it(\"should return the correct type\", () => {\n expect(connectedDevice.type).toEqual(\"MOCK\");\n });\n\n it(\"should return the correct send apdu response\", () => {\n expect(connectedDevice.sendApdu(new Uint8Array())).resolves.toMatchObject(\n Right(defaultApduResponseStubBuilder()),\n );\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,SAAAA,MAAa,YAEtB,OAAS,0BAAAC,MAA8B,2CACvC,OAAS,kCAAAC,MAAsC,wCAE/C,OAAS,4BAAAC,MAAgC,6BACzC,OAAS,8BAAAC,MAAkC,kCAE3C,SAAS,2BAA4B,IAAM,CACzC,IAAIC,EAEJ,WAAW,IAAM,CACfA,EAAkBD,EAA2B,CAC/C,CAAC,EAED,GAAG,4BAA6B,IAAM,CACpC,OAAOC,CAAe,EAAE,YAAY,EACpC,OAAOA,CAAe,EAAE,eAAeF,CAAwB,CACjE,CAAC,EAED,GAAG,+BAAgC,IAAM,CACvC,OAAOE,EAAgB,EAAE,EAAE,QAAQ,IAAI,CACzC,CAAC,EAED,GAAG,yCAA0C,IAAM,CACjD,OAAO,KAAK,UAAUA,EAAgB,WAAW,CAAC,EAAE,QAClD,KAAK,UAAUJ,EAAuB,CAAC,CACzC,CACF,CAAC,EAED,GAAG,iCAAkC,IAAM,CACzC,OAAOI,EAAgB,IAAI,EAAE,QAAQ,MAAM,CAC7C,CAAC,EAED,GAAG,+CAAgD,IAAM,CACvD,OAAOA,EAAgB,SAAS,IAAI,UAAY,CAAC,EAAE,SAAS,cAC1DL,EAAME,EAA+B,CAAC,CACxC,CACF,CAAC,CACH,CAAC",
6
- "names": ["Right", "deviceModelStubBuilder", "defaultApduResponseStubBuilder", "TransportConnectedDevice", "connectedDeviceStubBuilder", "connectedDevice"]
4
+ "sourcesContent": ["import { Right } from \"purify-ts\";\n\nimport { deviceModelStubBuilder } from \"@api/device-model/model/DeviceModel.stub\";\nimport { defaultApduResponseStubBuilder } from \"@api/device-session/ApduResponse.stub\";\n\nimport { TransportConnectedDevice } from \"./TransportConnectedDevice\";\nimport { connectedDeviceStubBuilder } from \"./TransportConnectedDevice.stub\";\n\ndescribe(\"TransportConnectedDevice\", () => {\n let connectedDevice: TransportConnectedDevice;\n\n beforeEach(() => {\n connectedDevice = connectedDeviceStubBuilder();\n });\n\n it(\"should create an instance\", () => {\n expect(connectedDevice).toBeDefined();\n expect(connectedDevice).toBeInstanceOf(TransportConnectedDevice);\n });\n\n it(\"should return the correct id\", () => {\n expect(connectedDevice.id).toEqual(\"42\");\n });\n\n it(\"should return the correct device model\", () => {\n expect(JSON.stringify(connectedDevice.deviceModel)).toEqual(\n JSON.stringify(deviceModelStubBuilder()),\n );\n });\n\n it(\"should return the correct type\", () => {\n expect(connectedDevice.type).toEqual(\"MOCK\");\n });\n\n it(\"should return the correct send apdu response\", async () => {\n const res = await connectedDevice.sendApdu(new Uint8Array());\n expect(res).toMatchObject(Right(defaultApduResponseStubBuilder()));\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,SAAAA,MAAa,YAEtB,OAAS,0BAAAC,MAA8B,2CACvC,OAAS,kCAAAC,MAAsC,wCAE/C,OAAS,4BAAAC,MAAgC,6BACzC,OAAS,8BAAAC,MAAkC,kCAE3C,SAAS,2BAA4B,IAAM,CACzC,IAAIC,EAEJ,WAAW,IAAM,CACfA,EAAkBD,EAA2B,CAC/C,CAAC,EAED,GAAG,4BAA6B,IAAM,CACpC,OAAOC,CAAe,EAAE,YAAY,EACpC,OAAOA,CAAe,EAAE,eAAeF,CAAwB,CACjE,CAAC,EAED,GAAG,+BAAgC,IAAM,CACvC,OAAOE,EAAgB,EAAE,EAAE,QAAQ,IAAI,CACzC,CAAC,EAED,GAAG,yCAA0C,IAAM,CACjD,OAAO,KAAK,UAAUA,EAAgB,WAAW,CAAC,EAAE,QAClD,KAAK,UAAUJ,EAAuB,CAAC,CACzC,CACF,CAAC,EAED,GAAG,iCAAkC,IAAM,CACzC,OAAOI,EAAgB,IAAI,EAAE,QAAQ,MAAM,CAC7C,CAAC,EAED,GAAG,+CAAgD,SAAY,CAC7D,MAAMC,EAAM,MAAMD,EAAgB,SAAS,IAAI,UAAY,EAC3D,OAAOC,CAAG,EAAE,cAAcN,EAAME,EAA+B,CAAC,CAAC,CACnE,CAAC,CACH,CAAC",
6
+ "names": ["Right", "deviceModelStubBuilder", "defaultApduResponseStubBuilder", "TransportConnectedDevice", "connectedDeviceStubBuilder", "connectedDevice", "res"]
7
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 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};
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 d}from"./internal/discovery/di/discoveryModule";import{loggerModuleFactory as f}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,DEFAULT_PROVIDER as s}from"./internal/manager-api/model/Const";import{secureChannelModuleFactory as A}from"./internal/secure-channel/di/secureChannelModule";import{DEFAULT_WEB_SOCKET_BASE_URL as E}from"./internal/secure-channel/model/Const";import{sendModuleFactory as _}from"./internal/send/di/sendModule";import{transportModuleFactory as g}from"./internal/transport/di/transportModule";const x=({stub:o=!1,transports:t=[],loggers:m=[],config:r={mockUrl:M,managerApiUrl:F,webSocketUrl:E,provider:s}})=>{const e=new i;return e.load(c({stub:o}),n({stub:o}),g({stub:o,transports:t,config:r}),y({stub:o,config:r}),A({stub:o,config:r}),d({stub:o}),f({subscribers:m}),l({stub:o}),_({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 { 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"]
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 DEFAULT_PROVIDER,\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 provider: DEFAULT_PROVIDER,\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,EACA,oBAAAC,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,QAASV,EACT,cAAeD,EACf,aAAcI,EACd,SAAUF,CACZ,CACF,IAAmC,CACjC,MAAMU,EAAY,IAAIrB,EAKtB,OAAAqB,EAAU,KACRlB,EAAoB,CAAE,KAAAc,CAAK,CAAC,EAC5Bb,EAAyB,CAAE,KAAAa,CAAK,CAAC,EACjCF,EAAuB,CAAE,KAAAE,EAAM,WAAAC,EAAY,OAAAE,CAAO,CAAC,EACnDZ,EAAwB,CAAE,KAAAS,EAAM,OAAAG,CAAO,CAAC,EACxCR,EAA2B,CAAE,KAAAK,EAAM,OAAAG,CAAO,CAAC,EAC3Cd,EAAuB,CAAE,KAAAW,CAAK,CAAC,EAC/BV,EAAoB,CAAE,YAAaY,CAAQ,CAAC,EAC5Cd,EAA2B,CAAE,KAAAY,CAAK,CAAC,EACnCH,EAAkB,CAAE,KAAAG,CAAK,CAAC,EAC1BhB,EAAqB,CAAE,KAAAgB,CAAK,CAAC,EAC7Bf,EAA0B,CAAE,KAAAe,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", "DEFAULT_PROVIDER", "secureChannelModuleFactory", "DEFAULT_WEB_SOCKET_BASE_URL", "sendModuleFactory", "transportModuleFactory", "makeContainer", "stub", "transports", "loggers", "config", "container"]
7
7
  }
@@ -1,2 +1,2 @@
1
- const E=1e3;export{E as DEVICE_SESSION_REFRESH_INTERVAL};
1
+ const E=1e3,I=1e3,S={isRefresherDisabled:!1,pollingInterval:1e3};export{S as DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS,I as DEVICE_SESSION_REFRESHER_MINIMUM_POLLING_INTERVAL,E as DEVICE_SESSION_REFRESHER_POLLING_INTERVAL};
2
2
  //# sourceMappingURL=DeviceSessionRefresherConst.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/data/DeviceSessionRefresherConst.ts"],
4
- "sourcesContent": ["export const DEVICE_SESSION_REFRESH_INTERVAL = 1000;\n"],
5
- "mappings": "AAAO,MAAMA,EAAkC",
6
- "names": ["DEVICE_SESSION_REFRESH_INTERVAL"]
4
+ "sourcesContent": ["// used for default args\nexport const DEVICE_SESSION_REFRESHER_POLLING_INTERVAL = 1000;\n\n// used to set a minimum interval for the exposed refresher options\nexport const DEVICE_SESSION_REFRESHER_MINIMUM_POLLING_INTERVAL = 1000;\n\nexport const DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS = {\n isRefresherDisabled: false,\n pollingInterval: DEVICE_SESSION_REFRESHER_POLLING_INTERVAL,\n};\n"],
5
+ "mappings": "AACO,MAAMA,EAA4C,IAG5CC,EAAoD,IAEpDC,EAA2C,CACtD,oBAAqB,GACrB,gBAAiB,GACnB",
6
+ "names": ["DEVICE_SESSION_REFRESHER_POLLING_INTERVAL", "DEVICE_SESSION_REFRESHER_MINIMUM_POLLING_INTERVAL", "DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ContainerModule as a}from"inversify";import{ToggleDeviceSessionRefresherUseCase as p}from"../../../api/device-session/use-case/ToggleDeviceSessionRefresher";import{DefaultApduReceiverService as u}from"../../device-session/service/DefaultApduReceiverService";import{DefaultApduSenderService as v}from"../../device-session/service/DefaultApduSenderService";import{DefaultDeviceSessionService as g}from"../../device-session/service/DefaultDeviceSessionService";import{CloseSessionsUseCase as m}from"../../device-session/use-case/CloseSessionsUseCase";import{GetDeviceSessionStateUseCase as f}from"../../device-session/use-case/GetDeviceSessionStateUseCase";import{loggerTypes as c}from"../../logger-publisher/di/loggerTypes";import{StubUseCase as n}from"../../../../src/di.stub";import{deviceSessionTypes as e}from"./deviceSessionTypes";const M=({stub:S}={stub:!1})=>new a((r,l,d,i,A,y,C)=>{r(e.ApduSenderServiceFactory).toFactory(o=>{const t=o.container.get(c.LoggerPublisherServiceFactory);return s=>new v(s,t)}),r(e.ApduReceiverServiceFactory).toFactory(o=>{const t=o.container.get(c.LoggerPublisherServiceFactory);return(s={})=>new u(s,t)}),r(e.DeviceSessionService).to(g).inSingletonScope(),r(e.GetDeviceSessionStateUseCase).to(f),r(e.CloseSessionsUseCase).to(m),r(e.ToggleDeviceSessionRefresherUseCase).to(p),S&&(i(e.GetDeviceSessionStateUseCase).to(n),i(e.ToggleDeviceSessionRefresherUseCase).to(n))});export{M as deviceSessionModuleFactory};
1
+ import{ContainerModule as a}from"inversify";import{DisableDeviceSessionRefresherUseCase as p}from"../../../api/device-session/use-case/DisableDeviceSessionRefresher";import{DefaultApduReceiverService as u}from"../../device-session/service/DefaultApduReceiverService";import{DefaultApduSenderService as v}from"../../device-session/service/DefaultApduSenderService";import{DefaultDeviceSessionService as m}from"../../device-session/service/DefaultDeviceSessionService";import{CloseSessionsUseCase as g}from"../../device-session/use-case/CloseSessionsUseCase";import{GetDeviceSessionStateUseCase as f}from"../../device-session/use-case/GetDeviceSessionStateUseCase";import{loggerTypes as c}from"../../logger-publisher/di/loggerTypes";import{StubUseCase as n}from"../../../../src/di.stub";import{deviceSessionTypes as e}from"./deviceSessionTypes";const w=({stub:S}={stub:!1})=>new a((r,l,d,i,A,y,D)=>{r(e.ApduSenderServiceFactory).toFactory(o=>{const t=o.container.get(c.LoggerPublisherServiceFactory);return s=>new v(s,t)}),r(e.ApduReceiverServiceFactory).toFactory(o=>{const t=o.container.get(c.LoggerPublisherServiceFactory);return(s={})=>new u(s,t)}),r(e.DeviceSessionService).to(m).inSingletonScope(),r(e.GetDeviceSessionStateUseCase).to(f),r(e.CloseSessionsUseCase).to(g),r(e.DisableDeviceSessionRefresherUseCase).to(p),S&&(i(e.GetDeviceSessionStateUseCase).to(n),i(e.DisableDeviceSessionRefresherUseCase).to(n))});export{w as deviceSessionModuleFactory};
2
2
  //# sourceMappingURL=deviceSessionModule.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/di/deviceSessionModule.ts"],
4
- "sourcesContent": ["import { ContainerModule, type interfaces } from \"inversify\";\n\nimport { type ApduReceiverService } from \"@api/device-session/service/ApduReceiverService\";\nimport { type ApduReceiverConstructorArgs } from \"@api/device-session/service/ApduReceiverService\";\nimport { type ApduSenderService } from \"@api/device-session/service/ApduSenderService\";\nimport { type ApduSenderServiceConstructorArgs } from \"@api/device-session/service/ApduSenderService\";\nimport { ToggleDeviceSessionRefresherUseCase } from \"@api/device-session/use-case/ToggleDeviceSessionRefresher\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { DefaultApduReceiverService } from \"@internal/device-session/service/DefaultApduReceiverService\";\nimport { DefaultApduSenderService } from \"@internal/device-session/service/DefaultApduSenderService\";\nimport { DefaultDeviceSessionService } from \"@internal/device-session/service/DefaultDeviceSessionService\";\nimport { CloseSessionsUseCase } from \"@internal/device-session/use-case/CloseSessionsUseCase\";\nimport { GetDeviceSessionStateUseCase } from \"@internal/device-session/use-case/GetDeviceSessionStateUseCase\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { deviceSessionTypes } from \"./deviceSessionTypes\";\n\nexport type DeviceSessionModuleArgs = Partial<{\n stub: boolean;\n}>;\n\nexport const deviceSessionModuleFactory = (\n { stub }: DeviceSessionModuleArgs = { stub: false },\n) =>\n new ContainerModule(\n (\n bind,\n _unbind,\n _isBound,\n rebind,\n _unbindAsync,\n _onActivation,\n _onDeactivation,\n ) => {\n bind<interfaces.Factory<ApduSenderService>>(\n deviceSessionTypes.ApduSenderServiceFactory,\n ).toFactory((context) => {\n const logger = context.container.get<\n (name: string) => LoggerPublisherService\n >(loggerTypes.LoggerPublisherServiceFactory);\n\n return (args: ApduSenderServiceConstructorArgs) => {\n return new DefaultApduSenderService(args, logger);\n };\n });\n\n bind<interfaces.Factory<ApduReceiverService>>(\n deviceSessionTypes.ApduReceiverServiceFactory,\n ).toFactory((context) => {\n const logger = context.container.get<\n (name: string) => LoggerPublisherService\n >(loggerTypes.LoggerPublisherServiceFactory);\n\n return (args: ApduReceiverConstructorArgs = {}) => {\n return new DefaultApduReceiverService(args, logger);\n };\n });\n\n bind(deviceSessionTypes.DeviceSessionService)\n .to(DefaultDeviceSessionService)\n .inSingletonScope();\n\n bind(deviceSessionTypes.GetDeviceSessionStateUseCase).to(\n GetDeviceSessionStateUseCase,\n );\n bind(deviceSessionTypes.CloseSessionsUseCase).to(CloseSessionsUseCase);\n bind(deviceSessionTypes.ToggleDeviceSessionRefresherUseCase).to(\n ToggleDeviceSessionRefresherUseCase,\n );\n\n if (stub) {\n rebind(deviceSessionTypes.GetDeviceSessionStateUseCase).to(StubUseCase);\n rebind(deviceSessionTypes.ToggleDeviceSessionRefresherUseCase).to(\n StubUseCase,\n );\n }\n },\n );\n"],
5
- "mappings": "AAAA,OAAS,mBAAAA,MAAwC,YAMjD,OAAS,uCAAAC,MAA2C,4DAEpD,OAAS,8BAAAC,MAAkC,8DAC3C,OAAS,4BAAAC,MAAgC,4DACzC,OAAS,+BAAAC,MAAmC,+DAC5C,OAAS,wBAAAC,MAA4B,yDACrC,OAAS,gCAAAC,MAAoC,iEAC7C,OAAS,eAAAC,MAAmB,4CAC5B,OAAS,eAAAC,MAAmB,oBAE5B,OAAS,sBAAAC,MAA0B,uBAM5B,MAAMC,EAA6B,CACxC,CAAE,KAAAC,CAAK,EAA6B,CAAE,KAAM,EAAM,IAElD,IAAIX,EACF,CACEY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IACG,CACHN,EACEH,EAAmB,wBACrB,EAAE,UAAWU,GAAY,CACvB,MAAMC,EAASD,EAAQ,UAAU,IAE/BZ,EAAY,6BAA6B,EAE3C,OAAQc,GACC,IAAIlB,EAAyBkB,EAAMD,CAAM,CAEpD,CAAC,EAEDR,EACEH,EAAmB,0BACrB,EAAE,UAAWU,GAAY,CACvB,MAAMC,EAASD,EAAQ,UAAU,IAE/BZ,EAAY,6BAA6B,EAE3C,MAAO,CAACc,EAAoC,CAAC,IACpC,IAAInB,EAA2BmB,EAAMD,CAAM,CAEtD,CAAC,EAEDR,EAAKH,EAAmB,oBAAoB,EACzC,GAAGL,CAA2B,EAC9B,iBAAiB,EAEpBQ,EAAKH,EAAmB,4BAA4B,EAAE,GACpDH,CACF,EACAM,EAAKH,EAAmB,oBAAoB,EAAE,GAAGJ,CAAoB,EACrEO,EAAKH,EAAmB,mCAAmC,EAAE,GAC3DR,CACF,EAEIU,IACFI,EAAON,EAAmB,4BAA4B,EAAE,GAAGD,CAAW,EACtEO,EAAON,EAAmB,mCAAmC,EAAE,GAC7DD,CACF,EAEJ,CACF",
6
- "names": ["ContainerModule", "ToggleDeviceSessionRefresherUseCase", "DefaultApduReceiverService", "DefaultApduSenderService", "DefaultDeviceSessionService", "CloseSessionsUseCase", "GetDeviceSessionStateUseCase", "loggerTypes", "StubUseCase", "deviceSessionTypes", "deviceSessionModuleFactory", "stub", "bind", "_unbind", "_isBound", "rebind", "_unbindAsync", "_onActivation", "_onDeactivation", "context", "logger", "args"]
4
+ "sourcesContent": ["import { ContainerModule, type interfaces } from \"inversify\";\n\nimport { type ApduReceiverService } from \"@api/device-session/service/ApduReceiverService\";\nimport { type ApduReceiverConstructorArgs } from \"@api/device-session/service/ApduReceiverService\";\nimport { type ApduSenderService } from \"@api/device-session/service/ApduSenderService\";\nimport { type ApduSenderServiceConstructorArgs } from \"@api/device-session/service/ApduSenderService\";\nimport { DisableDeviceSessionRefresherUseCase } from \"@api/device-session/use-case/DisableDeviceSessionRefresher\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { DefaultApduReceiverService } from \"@internal/device-session/service/DefaultApduReceiverService\";\nimport { DefaultApduSenderService } from \"@internal/device-session/service/DefaultApduSenderService\";\nimport { DefaultDeviceSessionService } from \"@internal/device-session/service/DefaultDeviceSessionService\";\nimport { CloseSessionsUseCase } from \"@internal/device-session/use-case/CloseSessionsUseCase\";\nimport { GetDeviceSessionStateUseCase } from \"@internal/device-session/use-case/GetDeviceSessionStateUseCase\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { deviceSessionTypes } from \"./deviceSessionTypes\";\n\nexport type DeviceSessionModuleArgs = Partial<{\n stub: boolean;\n}>;\n\nexport const deviceSessionModuleFactory = (\n { stub }: DeviceSessionModuleArgs = { stub: false },\n) =>\n new ContainerModule(\n (\n bind,\n _unbind,\n _isBound,\n rebind,\n _unbindAsync,\n _onActivation,\n _onDeactivation,\n ) => {\n bind<interfaces.Factory<ApduSenderService>>(\n deviceSessionTypes.ApduSenderServiceFactory,\n ).toFactory((context) => {\n const logger = context.container.get<\n (name: string) => LoggerPublisherService\n >(loggerTypes.LoggerPublisherServiceFactory);\n\n return (args: ApduSenderServiceConstructorArgs) => {\n return new DefaultApduSenderService(args, logger);\n };\n });\n\n bind<interfaces.Factory<ApduReceiverService>>(\n deviceSessionTypes.ApduReceiverServiceFactory,\n ).toFactory((context) => {\n const logger = context.container.get<\n (name: string) => LoggerPublisherService\n >(loggerTypes.LoggerPublisherServiceFactory);\n\n return (args: ApduReceiverConstructorArgs = {}) => {\n return new DefaultApduReceiverService(args, logger);\n };\n });\n\n bind(deviceSessionTypes.DeviceSessionService)\n .to(DefaultDeviceSessionService)\n .inSingletonScope();\n\n bind(deviceSessionTypes.GetDeviceSessionStateUseCase).to(\n GetDeviceSessionStateUseCase,\n );\n bind(deviceSessionTypes.CloseSessionsUseCase).to(CloseSessionsUseCase);\n bind(deviceSessionTypes.DisableDeviceSessionRefresherUseCase).to(\n DisableDeviceSessionRefresherUseCase,\n );\n\n if (stub) {\n rebind(deviceSessionTypes.GetDeviceSessionStateUseCase).to(StubUseCase);\n rebind(deviceSessionTypes.DisableDeviceSessionRefresherUseCase).to(\n StubUseCase,\n );\n }\n },\n );\n"],
5
+ "mappings": "AAAA,OAAS,mBAAAA,MAAwC,YAMjD,OAAS,wCAAAC,MAA4C,6DAErD,OAAS,8BAAAC,MAAkC,8DAC3C,OAAS,4BAAAC,MAAgC,4DACzC,OAAS,+BAAAC,MAAmC,+DAC5C,OAAS,wBAAAC,MAA4B,yDACrC,OAAS,gCAAAC,MAAoC,iEAC7C,OAAS,eAAAC,MAAmB,4CAC5B,OAAS,eAAAC,MAAmB,oBAE5B,OAAS,sBAAAC,MAA0B,uBAM5B,MAAMC,EAA6B,CACxC,CAAE,KAAAC,CAAK,EAA6B,CAAE,KAAM,EAAM,IAElD,IAAIX,EACF,CACEY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IACG,CACHN,EACEH,EAAmB,wBACrB,EAAE,UAAWU,GAAY,CACvB,MAAMC,EAASD,EAAQ,UAAU,IAE/BZ,EAAY,6BAA6B,EAE3C,OAAQc,GACC,IAAIlB,EAAyBkB,EAAMD,CAAM,CAEpD,CAAC,EAEDR,EACEH,EAAmB,0BACrB,EAAE,UAAWU,GAAY,CACvB,MAAMC,EAASD,EAAQ,UAAU,IAE/BZ,EAAY,6BAA6B,EAE3C,MAAO,CAACc,EAAoC,CAAC,IACpC,IAAInB,EAA2BmB,EAAMD,CAAM,CAEtD,CAAC,EAEDR,EAAKH,EAAmB,oBAAoB,EACzC,GAAGL,CAA2B,EAC9B,iBAAiB,EAEpBQ,EAAKH,EAAmB,4BAA4B,EAAE,GACpDH,CACF,EACAM,EAAKH,EAAmB,oBAAoB,EAAE,GAAGJ,CAAoB,EACrEO,EAAKH,EAAmB,oCAAoC,EAAE,GAC5DR,CACF,EAEIU,IACFI,EAAON,EAAmB,4BAA4B,EAAE,GAAGD,CAAW,EACtEO,EAAON,EAAmB,oCAAoC,EAAE,GAC9DD,CACF,EAEJ,CACF",
6
+ "names": ["ContainerModule", "DisableDeviceSessionRefresherUseCase", "DefaultApduReceiverService", "DefaultApduSenderService", "DefaultDeviceSessionService", "CloseSessionsUseCase", "GetDeviceSessionStateUseCase", "loggerTypes", "StubUseCase", "deviceSessionTypes", "deviceSessionModuleFactory", "stub", "bind", "_unbind", "_isBound", "rebind", "_unbindAsync", "_onActivation", "_onDeactivation", "context", "logger", "args"]
7
7
  }
@@ -1,2 +1,2 @@
1
- const e={ApduSenderServiceFactory:Symbol.for("ApduSenderServiceFactory"),ApduReceiverServiceFactory:Symbol.for("ApduReceiverServiceFactory"),DeviceSessionService:Symbol.for("DeviceSessionService"),GetDeviceSessionStateUseCase:Symbol.for("GetDeviceSessionStateUseCase"),ToggleDeviceSessionRefresherUseCase:Symbol.for("ToggleDeviceSessionRefresherUseCase"),CloseSessionsUseCase:Symbol.for("CloseSessionsUseCase")};export{e as deviceSessionTypes};
1
+ const e={ApduSenderServiceFactory:Symbol.for("ApduSenderServiceFactory"),ApduReceiverServiceFactory:Symbol.for("ApduReceiverServiceFactory"),DeviceSessionService:Symbol.for("DeviceSessionService"),GetDeviceSessionStateUseCase:Symbol.for("GetDeviceSessionStateUseCase"),DisableDeviceSessionRefresherUseCase:Symbol.for("DisableDeviceSessionRefresherUseCase"),CloseSessionsUseCase:Symbol.for("CloseSessionsUseCase")};export{e as deviceSessionTypes};
2
2
  //# sourceMappingURL=deviceSessionTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/di/deviceSessionTypes.ts"],
4
- "sourcesContent": ["export const deviceSessionTypes = {\n ApduSenderServiceFactory: Symbol.for(\"ApduSenderServiceFactory\"),\n ApduReceiverServiceFactory: Symbol.for(\"ApduReceiverServiceFactory\"),\n DeviceSessionService: Symbol.for(\"DeviceSessionService\"),\n GetDeviceSessionStateUseCase: Symbol.for(\"GetDeviceSessionStateUseCase\"),\n ToggleDeviceSessionRefresherUseCase: Symbol.for(\n \"ToggleDeviceSessionRefresherUseCase\",\n ),\n CloseSessionsUseCase: Symbol.for(\"CloseSessionsUseCase\"),\n};\n"],
5
- "mappings": "AAAO,MAAMA,EAAqB,CAChC,yBAA0B,OAAO,IAAI,0BAA0B,EAC/D,2BAA4B,OAAO,IAAI,4BAA4B,EACnE,qBAAsB,OAAO,IAAI,sBAAsB,EACvD,6BAA8B,OAAO,IAAI,8BAA8B,EACvE,oCAAqC,OAAO,IAC1C,qCACF,EACA,qBAAsB,OAAO,IAAI,sBAAsB,CACzD",
4
+ "sourcesContent": ["export const deviceSessionTypes = {\n ApduSenderServiceFactory: Symbol.for(\"ApduSenderServiceFactory\"),\n ApduReceiverServiceFactory: Symbol.for(\"ApduReceiverServiceFactory\"),\n DeviceSessionService: Symbol.for(\"DeviceSessionService\"),\n GetDeviceSessionStateUseCase: Symbol.for(\"GetDeviceSessionStateUseCase\"),\n DisableDeviceSessionRefresherUseCase: Symbol.for(\n \"DisableDeviceSessionRefresherUseCase\",\n ),\n CloseSessionsUseCase: Symbol.for(\"CloseSessionsUseCase\"),\n};\n"],
5
+ "mappings": "AAAO,MAAMA,EAAqB,CAChC,yBAA0B,OAAO,IAAI,0BAA0B,EAC/D,2BAA4B,OAAO,IAAI,4BAA4B,EACnE,qBAAsB,OAAO,IAAI,sBAAsB,EACvD,6BAA8B,OAAO,IAAI,8BAA8B,EACvE,qCAAsC,OAAO,IAC3C,sCACF,EACA,qBAAsB,OAAO,IAAI,sBAAsB,CACzD",
6
6
  "names": ["deviceSessionTypes"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ import{DeviceModelId as a}from"../../../api/device/DeviceModel";import{GetAppAndVersionCommand as r,GetOsVersionCommand as c}from"../../../api/index";import{DEVICE_SESSION_REFRESHER_POLLING_INTERVAL as p}from"../../device-session/data/DeviceSessionRefresherConst";import{SessionEvents as i}from"../../device-session/model/DeviceSessionEventDispatcher";class l{constructor(e,t,o,n){this.connectedDevice=t;this._sessionEventDispatcher=o;this._sendCommandFunction=n,this._logger=e("device-pinger"),this._subscription=this._sessionEventDispatcher.listen().subscribe(async s=>await this.mapEventAction(s))}_sendCommandFunction;_subscription;_logger;async ping(){try{return await this.mapDevicePingAction(this.connectedDevice.deviceModel.id)}catch(e){throw this._logger.error("Error while pinging device",{data:{error:e}}),e}}mapEventAction=async e=>{switch(e.eventName){case i.REFRESH_NEEDED:return await this.ping();default:return null}};async mapDevicePingAction(e){switch(e){case a.NANO_S:{const t=(async()=>{const s=await this._sendCommandFunction(new r);return this._sendCommandFunction(new c),s})(),o=new Promise(s=>{setTimeout(()=>s(null),p*2+100)}),n=await Promise.race([t,o]);return n?this._sessionEventDispatcher.dispatch({eventName:i.COMMAND_SUCCEEDED,eventData:n}):this._sessionEventDispatcher.dispatch({eventName:i.DEVICE_STATE_UPDATE_LOCKED}),n}default:{const t=await this._sendCommandFunction(new r);return this._sessionEventDispatcher.dispatch({eventName:i.COMMAND_SUCCEEDED,eventData:t}),t}}}unsubscribe(){this._subscription.unsubscribe()}}export{l as DevicePinger};
2
+ //# sourceMappingURL=DevicePinger.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/internal/device-session/model/DevicePinger.ts"],
4
+ "sourcesContent": ["import { type Subscription } from \"rxjs\";\n\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport {\n GetAppAndVersionCommand,\n type GetAppAndVersionResponse,\n GetOsVersionCommand,\n type TransportConnectedDevice,\n} from \"@api/index\";\nimport {\n type Command,\n type CommandResult,\n type LoggerPublisherService,\n} from \"@api/types\";\nimport { DEVICE_SESSION_REFRESHER_POLLING_INTERVAL } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport {\n type DeviceSessionEventDispatcher,\n type NewEvent,\n SessionEvents,\n} from \"@internal/device-session/model/DeviceSessionEventDispatcher\";\n\ntype SendCommandFunction = <Response, Args, ErrorStatusCodes>(\n command: Command<Response, Args, ErrorStatusCodes>,\n) => Promise<CommandResult<Response, ErrorStatusCodes>>;\n\nexport class DevicePinger {\n private readonly _sendCommandFunction: SendCommandFunction;\n private _subscription: Subscription;\n private _logger: LoggerPublisherService;\n\n constructor(\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n private connectedDevice: TransportConnectedDevice,\n private _sessionEventDispatcher: DeviceSessionEventDispatcher,\n sendCommandFunction: SendCommandFunction,\n ) {\n this._sendCommandFunction = sendCommandFunction;\n this._logger = loggerModuleFactory(\"device-pinger\");\n this._subscription = this._sessionEventDispatcher\n .listen()\n .subscribe(async (event) => await this.mapEventAction(event));\n }\n\n public async ping(): Promise<CommandResult<GetAppAndVersionResponse> | null> {\n try {\n const result = await this.mapDevicePingAction(\n this.connectedDevice.deviceModel.id,\n );\n return result;\n } catch (error) {\n this._logger.error(\"Error while pinging device\", {\n data: {\n error,\n },\n });\n throw error;\n }\n }\n\n private mapEventAction = async (event: NewEvent) => {\n switch (event.eventName) {\n case SessionEvents.REFRESH_NEEDED:\n return await this.ping();\n default:\n return null;\n }\n };\n\n private async mapDevicePingAction(deviceModelId: DeviceModelId) {\n switch (deviceModelId) {\n case DeviceModelId.NANO_S: {\n const chainPromise: Promise<CommandResult<GetAppAndVersionResponse>> =\n (async () => {\n const appVersionResult = await this._sendCommandFunction(\n new GetAppAndVersionCommand(),\n );\n\n this._sendCommandFunction(new GetOsVersionCommand());\n return appVersionResult;\n })();\n\n const timeoutPromise: Promise<null> = new Promise((resolve) => {\n setTimeout(\n () => resolve(null),\n DEVICE_SESSION_REFRESHER_POLLING_INTERVAL * 2 + 100,\n );\n });\n\n const resultOrTimeout: CommandResult<GetAppAndVersionResponse> | null =\n await Promise.race([chainPromise, timeoutPromise]);\n\n if (!resultOrTimeout) {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_LOCKED,\n });\n } else {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.COMMAND_SUCCEEDED,\n eventData: resultOrTimeout,\n });\n }\n return resultOrTimeout;\n }\n default: {\n const result = await this._sendCommandFunction(\n new GetAppAndVersionCommand(),\n );\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.COMMAND_SUCCEEDED,\n eventData: result,\n });\n return result;\n }\n }\n }\n\n public unsubscribe(): void {\n this._subscription.unsubscribe();\n }\n}\n"],
5
+ "mappings": "AAEA,OAAS,iBAAAA,MAAqB,0BAC9B,OACE,2BAAAC,EAEA,uBAAAC,MAEK,aAMP,OAAS,6CAAAC,MAAiD,4DAC1D,OAGE,iBAAAC,MACK,8DAMA,MAAMC,CAAa,CAKxB,YACEC,EACQC,EACAC,EACRC,EACA,CAHQ,qBAAAF,EACA,6BAAAC,EAGR,KAAK,qBAAuBC,EAC5B,KAAK,QAAUH,EAAoB,eAAe,EAClD,KAAK,cAAgB,KAAK,wBACvB,OAAO,EACP,UAAU,MAAOI,GAAU,MAAM,KAAK,eAAeA,CAAK,CAAC,CAChE,CAfiB,qBACT,cACA,QAeR,MAAa,MAAgE,CAC3E,GAAI,CAIF,OAHe,MAAM,KAAK,oBACxB,KAAK,gBAAgB,YAAY,EACnC,CAEF,OAASC,EAAO,CACd,WAAK,QAAQ,MAAM,6BAA8B,CAC/C,KAAM,CACJ,MAAAA,CACF,CACF,CAAC,EACKA,CACR,CACF,CAEQ,eAAiB,MAAOD,GAAoB,CAClD,OAAQA,EAAM,UAAW,CACvB,KAAKN,EAAc,eACjB,OAAO,MAAM,KAAK,KAAK,EACzB,QACE,OAAO,IACX,CACF,EAEA,MAAc,oBAAoBQ,EAA8B,CAC9D,OAAQA,EAAe,CACrB,KAAKZ,EAAc,OAAQ,CACzB,MAAMa,GACH,SAAY,CACX,MAAMC,EAAmB,MAAM,KAAK,qBAClC,IAAIb,CACN,EAEA,YAAK,qBAAqB,IAAIC,CAAqB,EAC5CY,CACT,GAAG,EAECC,EAAgC,IAAI,QAASC,GAAY,CAC7D,WACE,IAAMA,EAAQ,IAAI,EAClBb,EAA4C,EAAI,GAClD,CACF,CAAC,EAEKc,EACJ,MAAM,QAAQ,KAAK,CAACJ,EAAcE,CAAc,CAAC,EAEnD,OAAKE,EAKH,KAAK,wBAAwB,SAAS,CACpC,UAAWb,EAAc,kBACzB,UAAWa,CACb,CAAC,EAPD,KAAK,wBAAwB,SAAS,CACpC,UAAWb,EAAc,0BAC3B,CAAC,EAOIa,CACT,CACA,QAAS,CACP,MAAMC,EAAS,MAAM,KAAK,qBACxB,IAAIjB,CACN,EACA,YAAK,wBAAwB,SAAS,CACpC,UAAWG,EAAc,kBACzB,UAAWc,CACb,CAAC,EACMA,CACT,CACF,CACF,CAEO,aAAoB,CACzB,KAAK,cAAc,YAAY,CACjC,CACF",
6
+ "names": ["DeviceModelId", "GetAppAndVersionCommand", "GetOsVersionCommand", "DEVICE_SESSION_REFRESHER_POLLING_INTERVAL", "SessionEvents", "DevicePinger", "loggerModuleFactory", "connectedDevice", "_sessionEventDispatcher", "sendCommandFunction", "event", "error", "deviceModelId", "chainPromise", "appVersionResult", "timeoutPromise", "resolve", "resultOrTimeout", "result"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{Subject as D}from"rxjs";import{afterEach as f,beforeEach as C,describe as N,expect as n,it as r,vi as t}from"vitest";import{DeviceModelId as E}from"../../../api/device/DeviceModel";import{GetAppAndVersionCommand as S}from"../../../api/index";import{DEVICE_SESSION_REFRESHER_POLLING_INTERVAL as g}from"../../device-session/data/DeviceSessionRefresherConst";import{SessionEvents as i}from"../../device-session/model/DeviceSessionEventDispatcher";import{DevicePinger as p}from"./DevicePinger";N("DevicePinger",()=>{let e,u;const v=t.fn(()=>u);let c,a,l,s;C(()=>{c=new D,a={listen:()=>c.asObservable(),dispatch:t.fn()},e=t.fn(),u={info:t.fn(),warn:t.fn(),error:t.fn(),debug:t.fn(),subscribers:[]},l={deviceModel:{id:E.NANO_X}},s=new p(v,l,a,e)}),f(()=>{s.unsubscribe(),t.restoreAllMocks()}),r("should call sendCommandFunction and dispatch COMMAND_SUCCEEDED event on successful ping for non-NANO_S",async()=>{const o={status:"success",data:{foo:"bar"}};e.mockResolvedValue(o);const d=await s.ping();n(e).toHaveBeenCalledTimes(1);const m=e.mock.calls[0][0];n(m).toBeInstanceOf(S),n(a.dispatch).toHaveBeenCalledWith({eventName:i.COMMAND_SUCCEEDED,eventData:o}),n(d).toEqual(o)}),r("should log error and throw error on ping failure",async()=>{const o=new Error("ping failed");e.mockRejectedValue(o),await n(s.ping()).rejects.toThrow("ping failed"),n(e).toHaveBeenCalledTimes(1)}),r("should dispatch DEVICE_STATE_UPDATE_LOCKED and return null on timeout for NANO_S",async()=>{l.deviceModel.id=E.NANO_S,s.unsubscribe(),s=new p(v,l,a,e);const o=new Promise(()=>{});e.mockReturnValueOnce(o),t.useFakeTimers();const d=s.ping();t.advanceTimersByTime(g*4);const m=await d;n(m).toBeNull(),n(a.dispatch).toHaveBeenCalledWith({eventName:i.DEVICE_STATE_UPDATE_LOCKED}),n(e).toHaveBeenCalledTimes(1),t.useRealTimers()}),r("should call ping on REFRESH_NEEDED event",async()=>{const o={status:"success",data:{foo:"bar"}};e.mockResolvedValue(o),c.next({eventName:i.REFRESH_NEEDED,eventData:void 0}),await Promise.resolve(),n(e).toHaveBeenCalled(),n(a.dispatch).toHaveBeenCalledWith({eventName:i.COMMAND_SUCCEEDED,eventData:o})}),r("should not process events after unsubscribe is called",async()=>{s.unsubscribe(),e.mockClear(),c.next({eventName:i.REFRESH_NEEDED,eventData:void 0}),await Promise.resolve(),n(e).not.toHaveBeenCalled()})});
2
+ //# sourceMappingURL=DevicePinger.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/internal/device-session/model/DevicePinger.test.ts"],
4
+ "sourcesContent": ["import { Subject } from \"rxjs\";\nimport { afterEach, beforeEach, describe, expect, it, vi } from \"vitest\";\n\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport {\n GetAppAndVersionCommand,\n type TransportConnectedDevice,\n} from \"@api/index\";\nimport type { LoggerPublisherService } from \"@api/types\";\nimport { DEVICE_SESSION_REFRESHER_POLLING_INTERVAL } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport {\n type DeviceSessionEventDispatcher,\n type NewEvent,\n SessionEvents,\n} from \"@internal/device-session/model/DeviceSessionEventDispatcher\";\n\nimport { DevicePinger } from \"./DevicePinger\";\n\ndescribe(\"DevicePinger\", () => {\n let dummySendCommandFunction: ReturnType<typeof vi.fn>;\n let mockLogger: LoggerPublisherService & {\n info: ReturnType<typeof vi.fn>;\n warn: ReturnType<typeof vi.fn>;\n error: ReturnType<typeof vi.fn>;\n };\n const mockedLoggerModuleFactory = vi.fn(() => mockLogger);\n let eventSubject: Subject<NewEvent>;\n let mockSessionEventDispatcher: DeviceSessionEventDispatcher;\n let dummyConnectedDevice: TransportConnectedDevice;\n let devicePinger: DevicePinger;\n\n beforeEach(() => {\n eventSubject = new Subject<NewEvent>();\n mockSessionEventDispatcher = {\n listen: () => eventSubject.asObservable(),\n dispatch: vi.fn(),\n } as unknown as DeviceSessionEventDispatcher;\n\n dummySendCommandFunction = vi.fn();\n mockLogger = {\n info: vi.fn(),\n warn: vi.fn(),\n error: vi.fn(),\n debug: vi.fn(),\n subscribers: [],\n };\n\n dummyConnectedDevice = {\n deviceModel: {\n id: DeviceModelId.NANO_X,\n },\n } as unknown as TransportConnectedDevice;\n\n devicePinger = new DevicePinger(\n mockedLoggerModuleFactory,\n dummyConnectedDevice,\n mockSessionEventDispatcher,\n dummySendCommandFunction,\n );\n });\n\n afterEach(() => {\n devicePinger.unsubscribe();\n vi.restoreAllMocks();\n });\n\n it(\"should call sendCommandFunction and dispatch COMMAND_SUCCEEDED event on successful ping for non-NANO_S\", async () => {\n // given\n const dummyResult = {\n status: \"success\",\n data: { foo: \"bar\" },\n };\n dummySendCommandFunction.mockResolvedValue(dummyResult);\n\n // when\n const result = await devicePinger.ping();\n\n // then\n expect(dummySendCommandFunction).toHaveBeenCalledTimes(1);\n const commandArg = dummySendCommandFunction.mock\n .calls[0]![0] as GetAppAndVersionCommand;\n expect(commandArg).toBeInstanceOf(GetAppAndVersionCommand);\n expect(mockSessionEventDispatcher.dispatch).toHaveBeenCalledWith({\n eventName: SessionEvents.COMMAND_SUCCEEDED,\n eventData: dummyResult,\n });\n expect(result).toEqual(dummyResult);\n });\n\n it(\"should log error and throw error on ping failure\", async () => {\n // given\n const dummyError = new Error(\"ping failed\");\n dummySendCommandFunction.mockRejectedValue(dummyError);\n\n // then\n await expect(devicePinger.ping()).rejects.toThrow(\"ping failed\");\n expect(dummySendCommandFunction).toHaveBeenCalledTimes(1);\n });\n\n it(\"should dispatch DEVICE_STATE_UPDATE_LOCKED and return null on timeout for NANO_S\", async () => {\n // given\n dummyConnectedDevice.deviceModel.id = DeviceModelId.NANO_S;\n devicePinger.unsubscribe();\n devicePinger = new DevicePinger(\n mockedLoggerModuleFactory,\n dummyConnectedDevice,\n mockSessionEventDispatcher,\n dummySendCommandFunction,\n );\n const neverResolvingPromise = new Promise(() => {});\n dummySendCommandFunction.mockReturnValueOnce(neverResolvingPromise);\n vi.useFakeTimers();\n\n // when\n const pingPromise = devicePinger.ping();\n vi.advanceTimersByTime(DEVICE_SESSION_REFRESHER_POLLING_INTERVAL * 4);\n\n const result = await pingPromise;\n\n // then\n expect(result).toBeNull();\n expect(mockSessionEventDispatcher.dispatch).toHaveBeenCalledWith({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_LOCKED,\n });\n expect(dummySendCommandFunction).toHaveBeenCalledTimes(1);\n\n vi.useRealTimers();\n });\n\n it(\"should call ping on REFRESH_NEEDED event\", async () => {\n // given\n const dummyResult = {\n status: \"success\",\n data: { foo: \"bar\" },\n };\n dummySendCommandFunction.mockResolvedValue(dummyResult);\n\n // when\n eventSubject.next({\n eventName: SessionEvents.REFRESH_NEEDED,\n eventData: undefined,\n });\n await Promise.resolve();\n\n // then\n expect(dummySendCommandFunction).toHaveBeenCalled();\n expect(mockSessionEventDispatcher.dispatch).toHaveBeenCalledWith({\n eventName: SessionEvents.COMMAND_SUCCEEDED,\n eventData: dummyResult,\n });\n });\n\n it(\"should not process events after unsubscribe is called\", async () => {\n // given\n devicePinger.unsubscribe();\n dummySendCommandFunction.mockClear();\n\n // when\n eventSubject.next({\n eventName: SessionEvents.REFRESH_NEEDED,\n eventData: undefined,\n });\n await Promise.resolve();\n\n // then\n expect(dummySendCommandFunction).not.toHaveBeenCalled();\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["Subject", "afterEach", "beforeEach", "describe", "expect", "it", "vi", "DeviceModelId", "GetAppAndVersionCommand", "DEVICE_SESSION_REFRESHER_POLLING_INTERVAL", "SessionEvents", "DevicePinger", "dummySendCommandFunction", "mockLogger", "mockedLoggerModuleFactory", "eventSubject", "mockSessionEventDispatcher", "dummyConnectedDevice", "devicePinger", "dummyResult", "result", "commandArg", "dummyError", "neverResolvingPromise", "pingPromise"]
7
+ }
@@ -1,2 +1,2 @@
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};
1
+ import{BehaviorSubject as p}from"rxjs";import{v4 as v}from"uuid";import{CommandUtils as d}from"../../../api/command/utils/CommandUtils";import{DeviceStatus as c}from"../../../api/device/DeviceStatus";import{DeviceSessionStateType as h}from"../../../api/device-session/DeviceSessionState";import{DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS as S}from"../../device-session/data/DeviceSessionRefresherConst";import{MutexService as u}from"../../device-session/service/MutexService";import{RefresherService as m}from"../../device-session/service/RefresherService";import{DevicePinger as D}from"./DevicePinger";import{DeviceSessionEventDispatcher as l,SessionEvents as r}from"./DeviceSessionEventDispatcher";import{DeviceSessionRefresher as _}from"./DeviceSessionRefresher";import{DeviceSessionStateHandler as f}from"./DeviceSessionStateHandler";class x{_id;_connectedDevice;_deviceState;_managerApiService;_secureChannelService;_logger;_refresherOptions;_pinger;_deviceSessionRefresher;_refresherService;_commandMutex=new u;_sessionEventDispatcher=new l;constructor({connectedDevice:e,id:t=v()},s,i,n,a){this._id=t,this._connectedDevice=e,this._logger=s("device-session"),this._managerApiService=i,this._secureChannelService=n,this._refresherOptions={...S,...a},this._deviceState=new p({sessionStateType:h.Connected,deviceStatus:c.CONNECTED,deviceModelId:this._connectedDevice.deviceModel.id}),this._pinger=new D(s,e,this._sessionEventDispatcher,o=>this.sendCommand(o)),this._deviceSessionRefresher=new _(s,this._refresherOptions,this._sessionEventDispatcher,this._connectedDevice),new f(s,this._sessionEventDispatcher,this._connectedDevice,this._deviceState,o=>this.setDeviceSessionState(o)),this._refresherService=new m(s,{start:()=>this._deviceSessionRefresher.restartRefresher(),stop:()=>this._deviceSessionRefresher.stopRefresher()})}async initialiseSession(){try{await this._pinger.ping()}catch(e){throw this._logger.error("Error while initialising session",{data:{error:e}}),e}finally{this._refresherOptions.isRefresherDisabled||this._deviceSessionRefresher.startRefresher()}}get id(){return this._id}get connectedDevice(){return this._connectedDevice}get state(){return this._deviceState.asObservable()}setDeviceSessionState(e){this._deviceState.next(e)}async sendApdu(e,t={isPolling:!1,triggersDisconnection:!1,abortTimeout:void 0}){const s=await this._commandMutex.lock();try{this._sessionEventDispatcher.dispatch({eventName:r.DEVICE_STATE_UPDATE_BUSY});const i=await this._connectedDevice.sendApdu(e,t.triggersDisconnection,t.abortTimeout);return i.ifRight(n=>{d.isLockedDeviceResponse(n)?this._sessionEventDispatcher.dispatch({eventName:r.DEVICE_STATE_UPDATE_LOCKED}):this._sessionEventDispatcher.dispatch({eventName:r.DEVICE_STATE_UPDATE_CONNECTED})}).ifLeft(()=>{this._sessionEventDispatcher.dispatch({eventName:r.DEVICE_STATE_UPDATE_CONNECTED})}),i}finally{s()}}async sendCommand(e){const t=e.getApdu();return(await this.sendApdu(t.getRawApdu(),{isPolling:!1,triggersDisconnection:e.triggersDisconnection??!1})).caseOf({Left:i=>{throw i},Right:i=>e.parseResponse(i,this._connectedDevice.deviceModel.id)})}executeDeviceAction(e){const{observable:t,cancel:s}=e._execute({sendApdu:async i=>this.sendApdu(i),sendCommand:async i=>this.sendCommand(i),getDeviceSessionState:()=>this._deviceState.getValue(),getDeviceSessionStateObservable:()=>this.state,setDeviceSessionState:i=>(this.setDeviceSessionState(i),this._deviceState.getValue()),disableRefresher:i=>this._refresherService.disableRefresher(i),getManagerApiService:()=>this._managerApiService,getSecureChannelService:()=>this._secureChannelService});return{observable:t,cancel:s}}close(){this._updateDeviceStatus(c.NOT_CONNECTED),this._deviceState.complete(),this._deviceSessionRefresher.stopRefresher()}disableRefresher(e){return this._refresherService.disableRefresher(e)}_updateDeviceStatus(e){const t=this._deviceState.getValue();this._deviceState.next({...t,deviceStatus:e})}}export{x 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, 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": "AAAA,OAAsB,QAAAA,MAAY,YAClC,OAAS,mBAAAC,MAA0C,OACnD,OAAS,MAAMC,MAAc,OAI7B,OAAS,gBAAAC,MAAoB,kCAC7B,OAAS,gBAAAC,MAAoB,2BAO7B,OAEE,0BAAAC,MACK,yCAEP,OAAS,mBAAAC,MAAsC,aAG/C,OAAS,mCAAAC,MAAuC,4DAIhD,OAAS,0BAAAC,MAA8B,2BAehC,MAAMC,CAAc,CACR,IACA,iBACA,aACA,WACA,mBACA,sBAEjB,YACE,CAAE,gBAAAC,EAAiB,GAAAC,EAAKT,EAAO,CAAE,EACjCU,EACAC,EACAC,EACA,CACA,KAAK,IAAMH,EACX,KAAK,iBAAmBD,EACxB,KAAK,aAAe,IAAIT,EAAoC,CAC1D,iBAAkBI,EAAuB,UACzC,aAAcD,EAAa,UAC3B,cAAe,KAAK,iBAAiB,YAAY,EACnD,CAAC,EACD,KAAK,WAAa,IAAII,EACpB,CACE,gBAAiBD,EACjB,aAAcH,EAAa,UAC3B,cAAe,KAAK,iBAAiB,YAAY,GACjD,WAAaW,GACX,KAAK,SAASA,EAAS,CACrB,UAAW,GACX,sBAAuB,EACzB,CAAC,EACH,cAAgBC,GAAa,CAC3B,MAAMC,EAAQ,KAAK,aAAa,SAAS,EACzC,KAAK,sBAAsBD,EAASC,CAAK,CAAC,CAC5C,CACF,EACAL,EAAoB,0BAA0B,CAChD,EACA,KAAK,mBAAqBC,EAC1B,KAAK,sBAAwBC,CAC/B,CAEA,IAAW,IAAK,CACd,OAAO,KAAK,GACd,CAEA,IAAW,iBAAkB,CAC3B,OAAO,KAAK,gBACd,CAEA,IAAW,OAAQ,CACjB,OAAO,KAAK,aAAa,aAAa,CACxC,CAEO,sBAAsBG,EAA2B,CACtD,KAAK,aAAa,KAAKA,CAAK,CAC9B,CAEQ,mBAAmBC,EAA4B,CACrD,MAAMC,EAAe,KAAK,aAAa,SAAS,EAChD,KAAK,WAAW,gBAAgBD,CAAY,EAC5C,KAAK,aAAa,KAAK,CACrB,GAAGC,EACH,aAAAD,CACF,CAAC,CACH,CAEA,MAAM,SACJH,EACAK,EAA2B,CACzB,UAAW,GACX,sBAAuB,EACzB,EACyC,CAOzC,OANKA,EAAQ,YACX,KAAK,gBAAgB,EAAK,EAC1B,MAAM,KAAK,eAAe,GAGP,KAAK,aAAa,SAAS,EAC/B,eAAiBhB,EAAa,KACtCJ,EAAK,IAAIM,CAAiB,GAGnC,KAAK,mBAAmBF,EAAa,IAAI,GAEjB,MAAM,KAAK,iBAAiB,SAClDW,EACAK,EAAQ,qBACV,GAGG,QAASC,GAA2B,CAC/BlB,EAAa,uBAAuBkB,CAAQ,EAC9C,KAAK,mBAAmBjB,EAAa,MAAM,EAE3C,KAAK,mBAAmBA,EAAa,SAAS,EAG3CgB,EAAQ,WACX,KAAK,gBAAgB,EAAI,CAE7B,CAAC,EACA,OAAO,IAAM,CACZ,KAAK,mBAAmBhB,EAAa,SAAS,EAEzCgB,EAAQ,WACX,KAAK,gBAAgB,EAAI,CAE7B,CAAC,EACL,CAEA,MAAM,gBAAiB,CACrB,IAAIE,EAEJ,MAAM,IAAI,QAAeC,GAAY,CACnCD,EAAiB,KAAK,aAAa,UAAWL,GAAU,CAClDA,EAAM,eAAiBb,EAAa,YACtCkB,GAAgB,YAAY,EAC5BC,EAAQ,EAEZ,CAAC,CACH,CAAC,CACH,CAEA,MAAM,YACJC,EACoD,CACpD,MAAMC,EAAOD,EAAQ,QAAQ,EAM7B,OALiB,MAAM,KAAK,SAASC,EAAK,WAAW,EAAG,CACtD,UAAW,GACX,sBAAuBD,EAAQ,uBAAyB,EAC1D,CAAC,GAEe,OAAO,CACrB,KAAOE,GAAQ,CACb,MAAMA,CACR,EACA,MAAQC,GACNH,EAAQ,cAAcG,EAAG,KAAK,iBAAiB,YAAY,EAAE,CACjE,CAAC,CACH,CAEA,oBAMEC,EACiE,CACjE,KAAM,CAAE,WAAAC,EAAY,OAAAC,CAAO,EAAIF,EAAa,SAAS,CACnD,SAAU,MAAOH,GAAqB,KAAK,SAASA,CAAI,EACxD,YAAa,MACXD,GACG,KAAK,YAAYA,CAAO,EAC7B,sBAAuB,IAAM,KAAK,aAAa,SAAS,EACxD,gCAAiC,IAAM,KAAK,MAC5C,sBAAwBP,IACtB,KAAK,sBAAsBA,CAAK,EACzB,KAAK,aAAa,SAAS,GAEpC,qBAAsB,IAAM,KAAK,mBACjC,wBAAyB,IAAM,KAAK,qBACtC,CAAC,EAED,MAAO,CACL,WAAAY,EACA,OAAAC,CACF,CACF,CAEA,OAAQ,CACN,KAAK,mBAAmB1B,EAAa,aAAa,EAClD,KAAK,aAAa,SAAS,EAC3B,KAAK,WAAW,KAAK,CACvB,CAEA,gBAAgB2B,EAAkB,CAC5BA,EACF,KAAK,WAAW,MAAM,EAEtB,KAAK,WAAW,KAAK,CAEzB,CACF",
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"]
4
+ "sourcesContent": ["import { type Either } from \"purify-ts\";\nimport { BehaviorSubject, type Observable } 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 { 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_REFRESHER_DEFAULT_OPTIONS } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { MutexService } from \"@internal/device-session/service/MutexService\";\nimport { RefresherService } from \"@internal/device-session/service/RefresherService\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\n\nimport { DevicePinger } from \"./DevicePinger\";\nimport {\n DeviceSessionEventDispatcher,\n SessionEvents,\n} from \"./DeviceSessionEventDispatcher\";\nimport { DeviceSessionRefresher } from \"./DeviceSessionRefresher\";\nimport { DeviceSessionStateHandler } from \"./DeviceSessionStateHandler\";\n\nexport type SessionConstructorArgs = {\n connectedDevice: TransportConnectedDevice;\n id?: DeviceSessionId;\n};\n\nexport type DeviceSessionRefresherOptions = {\n isRefresherDisabled: boolean;\n pollingInterval?: number;\n};\n\ntype SendApduOptions = {\n isPolling?: boolean;\n triggersDisconnection?: boolean;\n abortTimeout?: number;\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 _managerApiService: ManagerApiService;\n private readonly _secureChannelService: SecureChannelService;\n private readonly _logger: LoggerPublisherService;\n private readonly _refresherOptions: DeviceSessionRefresherOptions;\n private _pinger: DevicePinger;\n private _deviceSessionRefresher: DeviceSessionRefresher;\n private readonly _refresherService: RefresherService;\n private _commandMutex = new MutexService();\n private _sessionEventDispatcher = new DeviceSessionEventDispatcher();\n\n constructor(\n { connectedDevice, id = uuidv4() }: SessionConstructorArgs,\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n managerApiService: ManagerApiService,\n secureChannelService: SecureChannelService,\n deviceSessionRefresherOptions: DeviceSessionRefresherOptions | undefined,\n ) {\n this._id = id;\n this._connectedDevice = connectedDevice;\n this._logger = loggerModuleFactory(\"device-session\");\n this._managerApiService = managerApiService;\n this._secureChannelService = secureChannelService;\n this._refresherOptions = {\n ...DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS,\n ...deviceSessionRefresherOptions,\n };\n this._deviceState = new BehaviorSubject<DeviceSessionState>({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: this._connectedDevice.deviceModel.id,\n });\n\n this._pinger = new DevicePinger(\n loggerModuleFactory,\n connectedDevice,\n this._sessionEventDispatcher,\n (command) => this.sendCommand(command),\n );\n this._deviceSessionRefresher = new DeviceSessionRefresher(\n loggerModuleFactory,\n this._refresherOptions,\n this._sessionEventDispatcher,\n this._connectedDevice,\n );\n new DeviceSessionStateHandler(\n loggerModuleFactory,\n this._sessionEventDispatcher,\n this._connectedDevice,\n this._deviceState,\n (state) => this.setDeviceSessionState(state),\n );\n\n this._refresherService = new RefresherService(loggerModuleFactory, {\n start: () => this._deviceSessionRefresher.restartRefresher(),\n stop: () => this._deviceSessionRefresher.stopRefresher(),\n });\n }\n\n public async initialiseSession(): Promise<void> {\n try {\n await this._pinger.ping();\n } catch (error) {\n this._logger.error(\"Error while initialising session\", {\n data: { error },\n });\n throw error;\n } finally {\n if (!this._refresherOptions.isRefresherDisabled) {\n this._deviceSessionRefresher.startRefresher();\n }\n }\n }\n\n public get id(): DeviceSessionId {\n return this._id;\n }\n\n public get connectedDevice(): TransportConnectedDevice {\n return this._connectedDevice;\n }\n\n public get state(): Observable<DeviceSessionState> {\n return this._deviceState.asObservable();\n }\n\n public setDeviceSessionState(state: DeviceSessionState): void {\n this._deviceState.next(state);\n }\n\n public async sendApdu(\n rawApdu: Uint8Array,\n options: SendApduOptions = {\n isPolling: false,\n triggersDisconnection: false,\n abortTimeout: undefined,\n },\n ): Promise<Either<DmkError, ApduResponse>> {\n const release = await this._commandMutex.lock();\n\n try {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_BUSY,\n });\n const result = await this._connectedDevice.sendApdu(\n rawApdu,\n options.triggersDisconnection,\n options.abortTimeout,\n );\n\n result\n .ifRight((response: ApduResponse) => {\n if (CommandUtils.isLockedDeviceResponse(response)) {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_LOCKED,\n });\n } else {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_CONNECTED,\n });\n }\n })\n .ifLeft(() => {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_CONNECTED,\n });\n });\n return result;\n } finally {\n release();\n }\n }\n\n public async sendCommand<Response, Args, ErrorStatusCodes>(\n command: Command<Response, Args, ErrorStatusCodes>,\n ): Promise<CommandResult<Response, ErrorStatusCodes>> {\n const apdu = command.getApdu();\n\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 public executeDeviceAction<\n Output,\n Input,\n E extends DmkError,\n IntermediateValue extends DeviceActionIntermediateValue,\n >(\n deviceAction: DeviceAction<Output, Input, E, IntermediateValue>,\n ): ExecuteDeviceActionReturnType<Output, E, 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 disableRefresher: (blockerId: string) =>\n this._refresherService.disableRefresher(blockerId),\n getManagerApiService: () => this._managerApiService,\n getSecureChannelService: () => this._secureChannelService,\n });\n return { observable, cancel };\n }\n\n public close(): void {\n this._updateDeviceStatus(DeviceStatus.NOT_CONNECTED);\n this._deviceState.complete();\n this._deviceSessionRefresher.stopRefresher();\n }\n\n public disableRefresher(id: string): () => void {\n return this._refresherService.disableRefresher(id);\n }\n\n private _updateDeviceStatus(deviceStatus: DeviceStatus): void {\n const state = this._deviceState.getValue();\n this._deviceState.next({ ...state, deviceStatus });\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["BehaviorSubject", "uuidv4", "CommandUtils", "DeviceStatus", "DeviceSessionStateType", "DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS", "MutexService", "RefresherService", "DevicePinger", "DeviceSessionEventDispatcher", "SessionEvents", "DeviceSessionRefresher", "DeviceSessionStateHandler", "DeviceSession", "connectedDevice", "id", "loggerModuleFactory", "managerApiService", "secureChannelService", "deviceSessionRefresherOptions", "command", "state", "error", "rawApdu", "options", "release", "result", "response", "apdu", "err", "r", "deviceAction", "observable", "cancel", "blockerId", "deviceStatus"]
7
7
  }
@@ -1,2 +1,2 @@
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};
1
+ import{connectedDeviceStubBuilder as s}from"../../../api/transport/model/TransportConnectedDevice.stub";import{DeviceSession as t}from"../../device-session/model/DeviceSession";const p=(e={},r,i,o,n)=>new t({connectedDevice:s(),id:"fakeSessionId",...e},r,i,o,n);export{p 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\";\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"]
4
+ "sourcesContent": ["import { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { connectedDeviceStubBuilder } from \"@api/transport/model/TransportConnectedDevice.stub\";\nimport {\n DeviceSession,\n type DeviceSessionRefresherOptions,\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 deviceSessionRefresherOptions: DeviceSessionRefresherOptions,\n) =>\n new DeviceSession(\n {\n connectedDevice: connectedDeviceStubBuilder(),\n id: \"fakeSessionId\",\n ...props,\n },\n loggerFactory,\n managerApi,\n secureChannel,\n deviceSessionRefresherOptions,\n );\n"],
5
+ "mappings": "AACA,OAAS,8BAAAA,MAAkC,qDAC3C,OACE,iBAAAC,MAGK,+CAIA,MAAMC,EAA2B,CACtCC,EAAyC,CAAC,EAC1CC,EACAC,EACAC,EACAC,IAEA,IAAIN,EACF,CACE,gBAAiBD,EAA2B,EAC5C,GAAI,gBACJ,GAAGG,CACL,EACAC,EACAC,EACAC,EACAC,CACF",
6
+ "names": ["connectedDeviceStubBuilder", "DeviceSession", "deviceSessionStubBuilder", "props", "loggerFactory", "managerApi", "secureChannel", "deviceSessionRefresherOptions"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ import{Subject as n}from"rxjs";var t=(e=>(e.NEW_STATE="NEW_STATE",e.REFRESH_NEEDED="REFRESH_NEEDED",e.COMMAND_SUCCEEDED="COMMAND_SUCCEEDED",e.DEVICE_STATE_UPDATE_BUSY="DEVICE_STATE_UPDATE_BUSY",e.DEVICE_STATE_UPDATE_LOCKED="DEVICE_STATE_UPDATE_LOCKED",e.DEVICE_STATE_UPDATE_CONNECTED="DEVICE_STATE_UPDATE_CONNECTED",e))(t||{});class s{_eventEmitter=new n;listen(){return this._eventEmitter.asObservable()}dispatch(E){this._eventEmitter.next(E)}}export{s as DeviceSessionEventDispatcher,t as SessionEvents};
2
+ //# sourceMappingURL=DeviceSessionEventDispatcher.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/internal/device-session/model/DeviceSessionEventDispatcher.ts"],
4
+ "sourcesContent": ["import { type Observable, Subject } from \"rxjs\";\n\nimport { type GetAppAndVersionResponse } from \"@api/index\";\nimport { type CommandResult } from \"@api/types\";\n\nexport enum SessionEvents {\n NEW_STATE = \"NEW_STATE\",\n REFRESH_NEEDED = \"REFRESH_NEEDED\",\n COMMAND_SUCCEEDED = \"COMMAND_SUCCEEDED\",\n DEVICE_STATE_UPDATE_BUSY = \"DEVICE_STATE_UPDATE_BUSY\",\n DEVICE_STATE_UPDATE_LOCKED = \"DEVICE_STATE_UPDATE_LOCKED\",\n DEVICE_STATE_UPDATE_CONNECTED = \"DEVICE_STATE_UPDATE_CONNECTED\",\n}\n\ninterface SessionEventPayloads {\n [SessionEvents.NEW_STATE]: undefined;\n [SessionEvents.REFRESH_NEEDED]: undefined;\n [SessionEvents.DEVICE_STATE_UPDATE_BUSY]: undefined;\n [SessionEvents.DEVICE_STATE_UPDATE_LOCKED]: undefined;\n [SessionEvents.DEVICE_STATE_UPDATE_CONNECTED]: undefined;\n [SessionEvents.COMMAND_SUCCEEDED]: CommandResult<GetAppAndVersionResponse>;\n}\n\nexport type NewEvent = {\n [K in SessionEvents]: SessionEventPayloads[K] extends undefined\n ? { eventName: K; eventData?: undefined }\n : { eventName: K; eventData: SessionEventPayloads[K] };\n}[SessionEvents];\n\nexport class DeviceSessionEventDispatcher {\n private _eventEmitter: Subject<NewEvent> = new Subject();\n\n public listen(): Observable<NewEvent> {\n return this._eventEmitter.asObservable();\n }\n\n public dispatch(event: NewEvent): void {\n this._eventEmitter.next(event);\n }\n}\n"],
5
+ "mappings": "AAAA,OAA0B,WAAAA,MAAe,OAKlC,IAAKC,OACVA,EAAA,UAAY,YACZA,EAAA,eAAiB,iBACjBA,EAAA,kBAAoB,oBACpBA,EAAA,yBAA2B,2BAC3BA,EAAA,2BAA6B,6BAC7BA,EAAA,8BAAgC,gCANtBA,OAAA,IAwBL,MAAMC,CAA6B,CAChC,cAAmC,IAAIF,EAExC,QAA+B,CACpC,OAAO,KAAK,cAAc,aAAa,CACzC,CAEO,SAASG,EAAuB,CACrC,KAAK,cAAc,KAAKA,CAAK,CAC/B,CACF",
6
+ "names": ["Subject", "SessionEvents", "DeviceSessionEventDispatcher", "event"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{describe as u,expect as E,it as d}from"vitest";import{DeviceSessionEventDispatcher as p,SessionEvents as c}from"./DeviceSessionEventDispatcher";u("DeviceSessionEventDispatcher",()=>{let s;beforeEach(()=>{s=new p}),d("should dispatch and receive an event without payload",()=>new Promise((i,a)=>{const e={eventName:c.REFRESH_NEEDED,eventData:void 0},t=s.listen().subscribe(o=>{try{E(o).toEqual(e),i(void 0)}catch(n){a(n)}finally{t.unsubscribe()}});s.dispatch(e)})),d("should dispatch and receive a COMMAND_SUCCEEDED event with payload",()=>new Promise((i,a)=>{const e={status:"success",data:{someField:"dummyValue"}},t={eventName:c.COMMAND_SUCCEEDED,eventData:e},o=s.listen().subscribe(n=>{if(n.eventName===c.COMMAND_SUCCEEDED)try{E(n).toEqual(t),i(void 0)}catch(r){a(r)}finally{o.unsubscribe()}});s.dispatch(t)})),d("should dispatch multiple events",()=>new Promise((i,a)=>{const e=[{eventName:c.DEVICE_STATE_UPDATE_BUSY,eventData:void 0},{eventName:c.DEVICE_STATE_UPDATE_CONNECTED,eventData:void 0}],t=[],o=s.listen().subscribe(n=>{if(t.push(n),t.length===e.length)try{E(t).toEqual(e),i(void 0)}catch(r){a(r)}finally{o.unsubscribe()}});e.forEach(n=>s.dispatch(n))}))});
2
+ //# sourceMappingURL=DeviceSessionEventDispatcher.test.js.map