@ledgerhq/device-management-kit 0.0.0-wrong-error-when-in-experimental-provider-20251021161219 → 0.0.0-z-intent-queue-7-20251204111630

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 (445) hide show
  1. package/lib/cjs/package.json +45 -40
  2. package/lib/cjs/src/api/DeviceManagementKit.js +1 -1
  3. package/lib/cjs/src/api/DeviceManagementKit.js.map +2 -2
  4. package/lib/cjs/src/api/DeviceManagementKit.test.js +1 -1
  5. package/lib/cjs/src/api/DeviceManagementKit.test.js.map +2 -2
  6. package/lib/cjs/src/api/command/Command.js +1 -1
  7. package/lib/cjs/src/api/command/Command.js.map +1 -1
  8. package/lib/cjs/src/api/command/Errors.js +1 -1
  9. package/lib/cjs/src/api/command/Errors.js.map +3 -3
  10. package/lib/cjs/src/api/command/model/CommandResult.js +1 -1
  11. package/lib/cjs/src/api/command/model/CommandResult.js.map +1 -1
  12. package/lib/cjs/src/api/command/os/CloseAppCommand.js +1 -1
  13. package/lib/cjs/src/api/command/os/CloseAppCommand.js.map +2 -2
  14. package/lib/cjs/src/api/command/os/CloseAppCommand.test.js +1 -1
  15. package/lib/cjs/src/api/command/os/CloseAppCommand.test.js.map +2 -2
  16. package/lib/cjs/src/api/command/os/GetAppAndVersionCommand.js +1 -1
  17. package/lib/cjs/src/api/command/os/GetAppAndVersionCommand.js.map +2 -2
  18. package/lib/cjs/src/api/command/os/GetAppAndVersionCommand.test.js +1 -1
  19. package/lib/cjs/src/api/command/os/GetAppAndVersionCommand.test.js.map +2 -2
  20. package/lib/cjs/src/api/command/os/GetBatteryStatusCommand.js +1 -1
  21. package/lib/cjs/src/api/command/os/GetBatteryStatusCommand.js.map +2 -2
  22. package/lib/cjs/src/api/command/os/GetBatteryStatusCommand.test.js +1 -1
  23. package/lib/cjs/src/api/command/os/GetBatteryStatusCommand.test.js.map +3 -3
  24. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.js +1 -1
  25. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.js.map +2 -2
  26. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.test.js +1 -1
  27. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.test.js.map +2 -2
  28. package/lib/cjs/src/api/command/os/GetOsVersionCommand.js +1 -1
  29. package/lib/cjs/src/api/command/os/GetOsVersionCommand.js.map +2 -2
  30. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js +1 -1
  31. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js.map +2 -2
  32. package/lib/cjs/src/api/command/os/ListAppsCommand.js +1 -1
  33. package/lib/cjs/src/api/command/os/ListAppsCommand.js.map +2 -2
  34. package/lib/cjs/src/api/command/os/ListAppsCommand.test.js +1 -1
  35. package/lib/cjs/src/api/command/os/ListAppsCommand.test.js.map +2 -2
  36. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.js +1 -1
  37. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.js.map +2 -2
  38. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.test.js +1 -1
  39. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.test.js.map +2 -2
  40. package/lib/cjs/src/api/command/os/LoadCertificateCommand.js +1 -1
  41. package/lib/cjs/src/api/command/os/LoadCertificateCommand.js.map +2 -2
  42. package/lib/cjs/src/api/command/os/LoadCertificateCommand.test.js +1 -1
  43. package/lib/cjs/src/api/command/os/LoadCertificateCommand.test.js.map +3 -3
  44. package/lib/cjs/src/api/command/os/OpenAppCommand.js +1 -1
  45. package/lib/cjs/src/api/command/os/OpenAppCommand.js.map +2 -2
  46. package/lib/cjs/src/api/command/os/OpenAppCommand.test.js +1 -1
  47. package/lib/cjs/src/api/command/os/OpenAppCommand.test.js.map +2 -2
  48. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
  49. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js.map +2 -2
  50. package/lib/cjs/src/api/device-action/DeviceAction.js +1 -1
  51. package/lib/cjs/src/api/device-action/DeviceAction.js.map +1 -1
  52. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  53. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  54. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +1 -1
  55. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +2 -2
  56. package/lib/cjs/src/api/device-action/os/Errors.js +1 -1
  57. package/lib/cjs/src/api/device-action/os/Errors.js.map +3 -3
  58. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +1 -1
  59. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +2 -2
  60. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js +1 -1
  61. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js.map +1 -1
  62. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +1 -1
  63. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +2 -2
  64. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js +1 -1
  65. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js.map +1 -1
  66. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +1 -1
  67. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +2 -2
  68. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js +1 -1
  69. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js.map +1 -1
  70. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  71. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +2 -2
  72. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.js +1 -1
  73. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.js.map +2 -2
  74. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +1 -1
  75. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +2 -2
  76. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.js +1 -1
  77. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.js.map +2 -2
  78. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js +1 -1
  79. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +2 -2
  80. package/lib/cjs/src/api/index.js +1 -1
  81. package/lib/cjs/src/api/index.js.map +2 -2
  82. package/lib/cjs/src/api/logger-subscriber/service/ConsoleLogger.js +1 -1
  83. package/lib/cjs/src/api/logger-subscriber/service/ConsoleLogger.js.map +3 -3
  84. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +1 -1
  85. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +2 -2
  86. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js +1 -1
  87. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +2 -2
  88. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/types.js.map +1 -1
  89. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +1 -1
  90. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +2 -2
  91. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/types.js.map +1 -1
  92. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js +1 -1
  93. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +2 -2
  94. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js +1 -1
  95. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +2 -2
  96. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +1 -1
  97. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +2 -2
  98. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/types.js.map +1 -1
  99. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js +1 -1
  100. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +3 -3
  101. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +1 -1
  102. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +3 -3
  103. package/lib/cjs/src/api/secure-channel/task/types.js +1 -1
  104. package/lib/cjs/src/api/secure-channel/task/types.js.map +2 -2
  105. package/lib/cjs/src/api/secure-channel/utils.js +1 -1
  106. package/lib/cjs/src/api/secure-channel/utils.js.map +3 -3
  107. package/lib/cjs/src/api/secure-channel/utils.test.js +1 -1
  108. package/lib/cjs/src/api/secure-channel/utils.test.js.map +3 -3
  109. package/lib/cjs/src/api/transport/model/ConnectedDevice.js +1 -1
  110. package/lib/cjs/src/api/transport/model/ConnectedDevice.js.map +3 -3
  111. package/lib/cjs/src/api/transport/model/Errors.js +1 -1
  112. package/lib/cjs/src/api/transport/model/Errors.js.map +3 -3
  113. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.js +1 -1
  114. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.js.map +3 -3
  115. package/lib/cjs/src/internal/crypto/CryptoService.js +2 -0
  116. package/lib/cjs/src/internal/crypto/CryptoService.js.map +7 -0
  117. package/lib/cjs/src/internal/crypto/NobleCryptoService.js +2 -0
  118. package/lib/cjs/src/internal/crypto/NobleCryptoService.js.map +7 -0
  119. package/lib/cjs/src/internal/crypto/NobleCryptoService.test.js +2 -0
  120. package/lib/cjs/src/internal/crypto/NobleCryptoService.test.js.map +7 -0
  121. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.js +1 -1
  122. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.js.map +3 -3
  123. package/lib/cjs/src/internal/device-session/di/deviceSessionTypes.js +1 -1
  124. package/lib/cjs/src/internal/device-session/di/deviceSessionTypes.js.map +2 -2
  125. package/lib/cjs/src/internal/device-session/model/DeviceSession.js +1 -1
  126. package/lib/cjs/src/internal/device-session/model/DeviceSession.js.map +3 -3
  127. package/lib/cjs/src/internal/device-session/model/DeviceSession.test.js +2 -0
  128. package/lib/cjs/src/internal/device-session/model/DeviceSession.test.js.map +7 -0
  129. package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.js +1 -1
  130. package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.js.map +2 -2
  131. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.js +1 -1
  132. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.js.map +3 -3
  133. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
  134. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +2 -2
  135. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.js +1 -1
  136. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.js.map +3 -3
  137. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js +1 -1
  138. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +2 -2
  139. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.js +1 -1
  140. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.js.map +3 -3
  141. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
  142. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +3 -3
  143. package/lib/cjs/src/internal/device-session/service/DeviceSessionService.js +1 -1
  144. package/lib/cjs/src/internal/device-session/service/DeviceSessionService.js.map +1 -1
  145. package/lib/cjs/src/internal/device-session/service/IntentQueueService.js +2 -0
  146. package/lib/cjs/src/internal/device-session/service/IntentQueueService.js.map +7 -0
  147. package/lib/cjs/src/internal/device-session/service/IntentQueueService.test.js +2 -0
  148. package/lib/cjs/src/internal/device-session/service/IntentQueueService.test.js.map +7 -0
  149. package/lib/cjs/src/internal/device-session/use-case/UnsafeBypassIntentQueueUseCase.js +2 -0
  150. package/lib/cjs/src/internal/device-session/use-case/UnsafeBypassIntentQueueUseCase.js.map +7 -0
  151. package/lib/cjs/src/internal/discovery/di/discoveryModule.js +1 -1
  152. package/lib/cjs/src/internal/discovery/di/discoveryModule.js.map +3 -3
  153. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js +1 -1
  154. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js.map +3 -3
  155. package/lib/cjs/src/internal/discovery/di/discoveryTypes.js +1 -1
  156. package/lib/cjs/src/internal/discovery/di/discoveryTypes.js.map +2 -2
  157. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js +1 -1
  158. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js.map +3 -3
  159. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  160. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js.map +3 -3
  161. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.js +1 -1
  162. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.js.map +3 -3
  163. package/lib/cjs/src/internal/discovery/use-case/ReconnectUseCase.js +2 -0
  164. package/lib/cjs/src/internal/discovery/use-case/ReconnectUseCase.js.map +7 -0
  165. package/lib/cjs/src/internal/discovery/use-case/ReconnectUseCase.test.js +2 -0
  166. package/lib/cjs/src/internal/discovery/use-case/ReconnectUseCase.test.js.map +7 -0
  167. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js.map +1 -1
  168. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js +1 -1
  169. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js.map +3 -3
  170. package/lib/esm/package.json +45 -40
  171. package/lib/esm/src/api/DeviceManagementKit.js +1 -1
  172. package/lib/esm/src/api/DeviceManagementKit.js.map +2 -2
  173. package/lib/esm/src/api/DeviceManagementKit.test.js +1 -1
  174. package/lib/esm/src/api/DeviceManagementKit.test.js.map +2 -2
  175. package/lib/esm/src/api/command/Errors.js +1 -1
  176. package/lib/esm/src/api/command/Errors.js.map +3 -3
  177. package/lib/esm/src/api/command/model/CommandResult.js +1 -1
  178. package/lib/esm/src/api/command/model/CommandResult.js.map +1 -1
  179. package/lib/esm/src/api/command/os/CloseAppCommand.js +1 -1
  180. package/lib/esm/src/api/command/os/CloseAppCommand.js.map +2 -2
  181. package/lib/esm/src/api/command/os/CloseAppCommand.test.js +1 -1
  182. package/lib/esm/src/api/command/os/CloseAppCommand.test.js.map +2 -2
  183. package/lib/esm/src/api/command/os/GetAppAndVersionCommand.js +1 -1
  184. package/lib/esm/src/api/command/os/GetAppAndVersionCommand.js.map +2 -2
  185. package/lib/esm/src/api/command/os/GetAppAndVersionCommand.test.js +1 -1
  186. package/lib/esm/src/api/command/os/GetAppAndVersionCommand.test.js.map +2 -2
  187. package/lib/esm/src/api/command/os/GetBatteryStatusCommand.js +1 -1
  188. package/lib/esm/src/api/command/os/GetBatteryStatusCommand.js.map +2 -2
  189. package/lib/esm/src/api/command/os/GetBatteryStatusCommand.test.js +1 -1
  190. package/lib/esm/src/api/command/os/GetBatteryStatusCommand.test.js.map +3 -3
  191. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.js +1 -1
  192. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.js.map +2 -2
  193. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.test.js +1 -1
  194. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.test.js.map +2 -2
  195. package/lib/esm/src/api/command/os/GetOsVersionCommand.js +1 -1
  196. package/lib/esm/src/api/command/os/GetOsVersionCommand.js.map +2 -2
  197. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js +1 -1
  198. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js.map +2 -2
  199. package/lib/esm/src/api/command/os/ListAppsCommand.js +1 -1
  200. package/lib/esm/src/api/command/os/ListAppsCommand.js.map +2 -2
  201. package/lib/esm/src/api/command/os/ListAppsCommand.test.js +1 -1
  202. package/lib/esm/src/api/command/os/ListAppsCommand.test.js.map +2 -2
  203. package/lib/esm/src/api/command/os/ListLanguagePackCommand.js +1 -1
  204. package/lib/esm/src/api/command/os/ListLanguagePackCommand.js.map +2 -2
  205. package/lib/esm/src/api/command/os/ListLanguagePackCommand.test.js +1 -1
  206. package/lib/esm/src/api/command/os/ListLanguagePackCommand.test.js.map +2 -2
  207. package/lib/esm/src/api/command/os/LoadCertificateCommand.js +1 -1
  208. package/lib/esm/src/api/command/os/LoadCertificateCommand.js.map +2 -2
  209. package/lib/esm/src/api/command/os/LoadCertificateCommand.test.js +1 -1
  210. package/lib/esm/src/api/command/os/LoadCertificateCommand.test.js.map +3 -3
  211. package/lib/esm/src/api/command/os/OpenAppCommand.js +1 -1
  212. package/lib/esm/src/api/command/os/OpenAppCommand.js.map +2 -2
  213. package/lib/esm/src/api/command/os/OpenAppCommand.test.js +1 -1
  214. package/lib/esm/src/api/command/os/OpenAppCommand.test.js.map +2 -2
  215. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
  216. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js.map +2 -2
  217. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  218. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  219. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +1 -1
  220. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +2 -2
  221. package/lib/esm/src/api/device-action/os/Errors.js +1 -1
  222. package/lib/esm/src/api/device-action/os/Errors.js.map +3 -3
  223. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +1 -1
  224. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +2 -2
  225. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +1 -1
  226. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +2 -2
  227. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +1 -1
  228. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +2 -2
  229. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  230. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +2 -2
  231. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.js +1 -1
  232. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.js.map +3 -3
  233. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +1 -1
  234. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +3 -3
  235. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.js +1 -1
  236. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.js.map +3 -3
  237. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js +1 -1
  238. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +3 -3
  239. package/lib/esm/src/api/index.js +1 -1
  240. package/lib/esm/src/api/index.js.map +3 -3
  241. package/lib/esm/src/api/logger-subscriber/service/ConsoleLogger.js +1 -1
  242. package/lib/esm/src/api/logger-subscriber/service/ConsoleLogger.js.map +3 -3
  243. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +1 -1
  244. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +3 -3
  245. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js +1 -1
  246. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +2 -2
  247. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +1 -1
  248. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +2 -2
  249. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js +1 -1
  250. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +2 -2
  251. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +2 -2
  252. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +1 -1
  253. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +2 -2
  254. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js +1 -1
  255. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +3 -3
  256. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +1 -1
  257. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +3 -3
  258. package/lib/esm/src/api/secure-channel/task/types.js +1 -1
  259. package/lib/esm/src/api/secure-channel/task/types.js.map +2 -2
  260. package/lib/esm/src/api/secure-channel/utils.js +1 -1
  261. package/lib/esm/src/api/secure-channel/utils.js.map +3 -3
  262. package/lib/esm/src/api/secure-channel/utils.test.js +1 -1
  263. package/lib/esm/src/api/secure-channel/utils.test.js.map +3 -3
  264. package/lib/esm/src/api/transport/model/ConnectedDevice.js +1 -1
  265. package/lib/esm/src/api/transport/model/ConnectedDevice.js.map +3 -3
  266. package/lib/esm/src/api/transport/model/Errors.js +1 -1
  267. package/lib/esm/src/api/transport/model/Errors.js.map +3 -3
  268. package/lib/esm/src/api/transport/model/TransportConnectedDevice.js +1 -1
  269. package/lib/esm/src/api/transport/model/TransportConnectedDevice.js.map +3 -3
  270. package/lib/esm/src/internal/crypto/CryptoService.js +1 -0
  271. package/lib/esm/src/internal/crypto/CryptoService.js.map +7 -0
  272. package/lib/esm/src/internal/crypto/NobleCryptoService.js +2 -0
  273. package/lib/esm/src/internal/crypto/NobleCryptoService.js.map +7 -0
  274. package/lib/esm/src/internal/crypto/NobleCryptoService.test.js +2 -0
  275. package/lib/esm/src/internal/crypto/NobleCryptoService.test.js.map +7 -0
  276. package/lib/esm/src/internal/device-session/di/deviceSessionModule.js +1 -1
  277. package/lib/esm/src/internal/device-session/di/deviceSessionModule.js.map +3 -3
  278. package/lib/esm/src/internal/device-session/di/deviceSessionTypes.js +1 -1
  279. package/lib/esm/src/internal/device-session/di/deviceSessionTypes.js.map +2 -2
  280. package/lib/esm/src/internal/device-session/model/DeviceSession.js +1 -1
  281. package/lib/esm/src/internal/device-session/model/DeviceSession.js.map +3 -3
  282. package/lib/esm/src/internal/device-session/model/DeviceSession.test.js +2 -0
  283. package/lib/esm/src/internal/device-session/model/DeviceSession.test.js.map +7 -0
  284. package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.js +1 -1
  285. package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.js.map +2 -2
  286. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.js +1 -1
  287. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.js.map +3 -3
  288. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
  289. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +2 -2
  290. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.js +1 -1
  291. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.js.map +3 -3
  292. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js +1 -1
  293. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +2 -2
  294. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.js +1 -1
  295. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.js.map +3 -3
  296. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
  297. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +3 -3
  298. package/lib/esm/src/internal/device-session/service/IntentQueueService.js +2 -0
  299. package/lib/esm/src/internal/device-session/service/IntentQueueService.js.map +7 -0
  300. package/lib/esm/src/internal/device-session/service/IntentQueueService.test.js +2 -0
  301. package/lib/esm/src/internal/device-session/service/IntentQueueService.test.js.map +7 -0
  302. package/lib/esm/src/internal/device-session/use-case/UnsafeBypassIntentQueueUseCase.js +2 -0
  303. package/lib/esm/src/internal/device-session/use-case/UnsafeBypassIntentQueueUseCase.js.map +7 -0
  304. package/lib/esm/src/internal/discovery/di/discoveryModule.js +1 -1
  305. package/lib/esm/src/internal/discovery/di/discoveryModule.js.map +3 -3
  306. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js +1 -1
  307. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js.map +3 -3
  308. package/lib/esm/src/internal/discovery/di/discoveryTypes.js +1 -1
  309. package/lib/esm/src/internal/discovery/di/discoveryTypes.js.map +2 -2
  310. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.js +1 -1
  311. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.js.map +3 -3
  312. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  313. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js.map +3 -3
  314. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.js +1 -1
  315. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.js.map +3 -3
  316. package/lib/esm/src/internal/discovery/use-case/ReconnectUseCase.js +2 -0
  317. package/lib/esm/src/internal/discovery/use-case/ReconnectUseCase.js.map +7 -0
  318. package/lib/esm/src/internal/discovery/use-case/ReconnectUseCase.test.js +2 -0
  319. package/lib/esm/src/internal/discovery/use-case/ReconnectUseCase.test.js.map +7 -0
  320. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js +1 -1
  321. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js.map +3 -3
  322. package/lib/types/src/api/DeviceManagementKit.d.ts +22 -0
  323. package/lib/types/src/api/DeviceManagementKit.d.ts.map +1 -1
  324. package/lib/types/src/api/command/Command.d.ts +4 -0
  325. package/lib/types/src/api/command/Command.d.ts.map +1 -1
  326. package/lib/types/src/api/command/Errors.d.ts +2 -2
  327. package/lib/types/src/api/command/Errors.d.ts.map +1 -1
  328. package/lib/types/src/api/command/model/CommandResult.d.ts +3 -3
  329. package/lib/types/src/api/command/model/CommandResult.d.ts.map +1 -1
  330. package/lib/types/src/api/command/os/CloseAppCommand.d.ts +1 -0
  331. package/lib/types/src/api/command/os/CloseAppCommand.d.ts.map +1 -1
  332. package/lib/types/src/api/command/os/GetAppAndVersionCommand.d.ts +1 -0
  333. package/lib/types/src/api/command/os/GetAppAndVersionCommand.d.ts.map +1 -1
  334. package/lib/types/src/api/command/os/GetBatteryStatusCommand.d.ts +1 -0
  335. package/lib/types/src/api/command/os/GetBatteryStatusCommand.d.ts.map +1 -1
  336. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.d.ts +1 -0
  337. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.d.ts.map +1 -1
  338. package/lib/types/src/api/command/os/GetOsVersionCommand.d.ts +1 -0
  339. package/lib/types/src/api/command/os/GetOsVersionCommand.d.ts.map +1 -1
  340. package/lib/types/src/api/command/os/ListAppsCommand.d.ts +1 -0
  341. package/lib/types/src/api/command/os/ListAppsCommand.d.ts.map +1 -1
  342. package/lib/types/src/api/command/os/ListLanguagePackCommand.d.ts +1 -0
  343. package/lib/types/src/api/command/os/ListLanguagePackCommand.d.ts.map +1 -1
  344. package/lib/types/src/api/command/os/LoadCertificateCommand.d.ts +1 -0
  345. package/lib/types/src/api/command/os/LoadCertificateCommand.d.ts.map +1 -1
  346. package/lib/types/src/api/command/os/OpenAppCommand.d.ts +1 -0
  347. package/lib/types/src/api/command/os/OpenAppCommand.d.ts.map +1 -1
  348. package/lib/types/src/api/device-action/DeviceAction.d.ts +0 -1
  349. package/lib/types/src/api/device-action/DeviceAction.d.ts.map +1 -1
  350. package/lib/types/src/api/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  351. package/lib/types/src/api/device-action/os/Errors.d.ts +5 -0
  352. package/lib/types/src/api/device-action/os/Errors.d.ts.map +1 -1
  353. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.d.ts.map +1 -1
  354. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts +1 -0
  355. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts.map +1 -1
  356. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.d.ts.map +1 -1
  357. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts +3 -2
  358. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts.map +1 -1
  359. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.d.ts.map +1 -1
  360. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts +1 -0
  361. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts.map +1 -1
  362. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.d.ts +2 -2
  363. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.d.ts.map +1 -1
  364. package/lib/types/src/api/index.d.ts +1 -1
  365. package/lib/types/src/api/index.d.ts.map +1 -1
  366. package/lib/types/src/api/logger-subscriber/service/ConsoleLogger.d.ts +1 -0
  367. package/lib/types/src/api/logger-subscriber/service/ConsoleLogger.d.ts.map +1 -1
  368. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.d.ts.map +1 -1
  369. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/types.d.ts +1 -0
  370. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/types.d.ts.map +1 -1
  371. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.d.ts.map +1 -1
  372. package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts +1 -0
  373. package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts.map +1 -1
  374. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.d.ts.map +1 -1
  375. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts +1 -0
  376. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts.map +1 -1
  377. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.d.ts.map +1 -1
  378. package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts +1 -0
  379. package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts.map +1 -1
  380. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.d.ts +4 -0
  381. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.d.ts.map +1 -1
  382. package/lib/types/src/api/secure-channel/task/types.d.ts +7 -0
  383. package/lib/types/src/api/secure-channel/task/types.d.ts.map +1 -1
  384. package/lib/types/src/api/secure-channel/utils.d.ts +18 -1
  385. package/lib/types/src/api/secure-channel/utils.d.ts.map +1 -1
  386. package/lib/types/src/api/transport/model/ConnectedDevice.d.ts +3 -2
  387. package/lib/types/src/api/transport/model/ConnectedDevice.d.ts.map +1 -1
  388. package/lib/types/src/api/transport/model/Errors.d.ts +5 -0
  389. package/lib/types/src/api/transport/model/Errors.d.ts.map +1 -1
  390. package/lib/types/src/api/transport/model/TransportConnectedDevice.d.ts +3 -1
  391. package/lib/types/src/api/transport/model/TransportConnectedDevice.d.ts.map +1 -1
  392. package/lib/types/src/internal/crypto/CryptoService.d.ts +12 -0
  393. package/lib/types/src/internal/crypto/CryptoService.d.ts.map +1 -0
  394. package/lib/types/src/internal/crypto/NobleCryptoService.d.ts +8 -0
  395. package/lib/types/src/internal/crypto/NobleCryptoService.d.ts.map +1 -0
  396. package/lib/types/src/internal/crypto/NobleCryptoService.test.d.ts +2 -0
  397. package/lib/types/src/internal/crypto/NobleCryptoService.test.d.ts.map +1 -0
  398. package/lib/types/src/internal/device-session/di/deviceSessionModule.d.ts.map +1 -1
  399. package/lib/types/src/internal/device-session/di/deviceSessionTypes.d.ts +1 -0
  400. package/lib/types/src/internal/device-session/di/deviceSessionTypes.d.ts.map +1 -1
  401. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts +12 -2
  402. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts.map +1 -1
  403. package/lib/types/src/internal/device-session/model/DeviceSession.test.d.ts +2 -0
  404. package/lib/types/src/internal/device-session/model/DeviceSession.test.d.ts.map +1 -0
  405. package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.d.ts +3 -1
  406. package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.d.ts.map +1 -1
  407. package/lib/types/src/internal/device-session/model/DeviceSessionRefresher.d.ts +0 -1
  408. package/lib/types/src/internal/device-session/model/DeviceSessionRefresher.d.ts.map +1 -1
  409. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.d.ts +1 -0
  410. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.d.ts.map +1 -1
  411. package/lib/types/src/internal/device-session/service/DefaultDeviceSessionService.d.ts +7 -5
  412. package/lib/types/src/internal/device-session/service/DefaultDeviceSessionService.d.ts.map +1 -1
  413. package/lib/types/src/internal/device-session/service/DeviceSessionService.d.ts +28 -1
  414. package/lib/types/src/internal/device-session/service/DeviceSessionService.d.ts.map +1 -1
  415. package/lib/types/src/internal/device-session/service/IntentQueueService.d.ts +101 -0
  416. package/lib/types/src/internal/device-session/service/IntentQueueService.d.ts.map +1 -0
  417. package/lib/types/src/internal/device-session/service/IntentQueueService.test.d.ts +2 -0
  418. package/lib/types/src/internal/device-session/service/IntentQueueService.test.d.ts.map +1 -0
  419. package/lib/types/src/internal/device-session/use-case/UnsafeBypassIntentQueueUseCase.d.ts +19 -0
  420. package/lib/types/src/internal/device-session/use-case/UnsafeBypassIntentQueueUseCase.d.ts.map +1 -0
  421. package/lib/types/src/internal/discovery/di/discoveryModule.d.ts.map +1 -1
  422. package/lib/types/src/internal/discovery/di/discoveryTypes.d.ts +1 -0
  423. package/lib/types/src/internal/discovery/di/discoveryTypes.d.ts.map +1 -1
  424. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts +3 -2
  425. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts.map +1 -1
  426. package/lib/types/src/internal/discovery/use-case/DisconnectUseCase.d.ts.map +1 -1
  427. package/lib/types/src/internal/discovery/use-case/ReconnectUseCase.d.ts +32 -0
  428. package/lib/types/src/internal/discovery/use-case/ReconnectUseCase.d.ts.map +1 -0
  429. package/lib/types/src/internal/discovery/use-case/ReconnectUseCase.test.d.ts +2 -0
  430. package/lib/types/src/internal/discovery/use-case/ReconnectUseCase.test.d.ts.map +1 -0
  431. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts +1 -1
  432. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  433. package/package.json +33 -28
  434. package/lib/cjs/src/internal/device-session/service/MutexService.js +0 -2
  435. package/lib/cjs/src/internal/device-session/service/MutexService.js.map +0 -7
  436. package/lib/cjs/src/internal/device-session/service/MutexService.test.js +0 -2
  437. package/lib/cjs/src/internal/device-session/service/MutexService.test.js.map +0 -7
  438. package/lib/esm/src/internal/device-session/service/MutexService.js +0 -2
  439. package/lib/esm/src/internal/device-session/service/MutexService.js.map +0 -7
  440. package/lib/esm/src/internal/device-session/service/MutexService.test.js +0 -2
  441. package/lib/esm/src/internal/device-session/service/MutexService.test.js.map +0 -7
  442. package/lib/types/src/internal/device-session/service/MutexService.d.ts +0 -6
  443. package/lib/types/src/internal/device-session/service/MutexService.d.ts.map +0 -1
  444. package/lib/types/src/internal/device-session/service/MutexService.test.d.ts +0 -2
  445. package/lib/types/src/internal/device-session/service/MutexService.test.d.ts.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";var r=require("purify-ts"),f=require("../../../api/transport/model/__mocks__/TransportMock"),s=require("../../../api/transport/model/Errors"),l=require("../../../api/transport/model/TransportConnectedDevice.stub"),D=require("../../device-session/service/DefaultDeviceSessionService"),g=require("../../logger-publisher/service/DefaultLoggerPublisherService"),d=require("../../manager-api/data/AxiosManagerApiDataSource"),y=require("../../manager-api/service/DefaultManagerApiService"),k=require("../../secure-channel/data/DefaultSecureChannelDataSource"),C=require("../../secure-channel/service/DefaultSecureChannelService"),w=require("../../transport/service/DefaultTransportService"),p=require("./ConnectUseCase");vi.mock("uuid",()=>({v4:vi.fn().mockReturnValue("fakeSessionId")}));vi.mock("@internal/manager-api/data/AxiosManagerApiDataSource");vi.mock("@internal/transport/service/DefaultTransportService");let o,t,n,e,a,S,u,c;const T="fakeSessionId";describe("ConnectUseCase",()=>{const m={id:"",deviceModel:{},transport:"USB",name:"TEST"},A=(0,l.connectedDeviceStubBuilder)({id:"1"}),h="logger-tag";beforeAll(()=>{n=new g.DefaultLoggerPublisherService([],h),o=new f.TransportMock,e=new D.DefaultDeviceSessionService(()=>n),S=new d.AxiosManagerApiDataSource({}),a=new y.DefaultManagerApiService(S),u=new k.DefaultSecureChannelDataSource({}),c=new C.DefaultSecureChannelService(u),t=new w.DefaultTransportService}),afterEach(()=>{for(const i of e.getDeviceSessions())e.removeDeviceSession(i.id)}),afterAll(()=>{vi.restoreAllMocks()}),test("If connect use case encounter an error, return it",async()=>{vi.spyOn(o,"connect").mockResolvedValue((0,r.Left)(new s.UnknownDeviceError)),vi.spyOn(t,"getTransport").mockReturnValue(r.Maybe.of(o));const i=new p.ConnectUseCase(t,e,()=>n,a,c);await expect(i.execute({device:m})).rejects.toBeInstanceOf(s.UnknownDeviceError)}),test("If connect is in success, return a deviceSession id",async()=>{vi.spyOn(o,"connect").mockResolvedValue((0,r.Right)(A)),vi.spyOn(t,"getTransport").mockReturnValue(r.Maybe.of(o)),vi.spyOn(e,"addDeviceSession").mockImplementation(M=>(M.setDeviceSessionState({}),e));const v=await new p.ConnectUseCase(t,e,()=>n,a,c).execute({device:m});expect(v).toBe(T),e.removeDeviceSession(v)})});
1
+ "use strict";var t=require("purify-ts"),p=require("../../../api/transport/model/Errors"),D=require("../../../api/transport/model/TransportConnectedDevice.stub"),k=require("../../logger-publisher/service/DefaultLoggerPublisherService"),v=require("./ConnectUseCase");vi.mock("uuid",()=>({v4:vi.fn().mockReturnValue("fakeSessionId")}));let o,e,r,n,a,d;const f="fakeSessionId",u="fakeSessionIdConnectedDevice";describe("ConnectUseCase",()=>{const i={id:"device-id",deviceModel:{},transport:"USB",name:"TEST"},l=(0,D.connectedDeviceStubBuilder)({id:"1"}),S={...l,sessionId:u,modelId:"model-id",name:"device-name",type:"MOCK"},g="logger-tag";beforeEach(()=>{r=new k.DefaultLoggerPublisherService([],g),o={connect:vi.fn()},e={getTransport:vi.fn()},n={addDeviceSession:vi.fn(),removeDeviceSession:vi.fn(),getDeviceSessionByDeviceId:vi.fn()},a={},d={}}),afterAll(()=>{vi.restoreAllMocks()}),test("should throw an error when transport connection fails",async()=>{const c=new p.UnknownDeviceError;vi.mocked(e.getTransport).mockReturnValue(t.Maybe.of(o)),vi.mocked(o.connect).mockResolvedValue((0,t.Left)(c));const s=new v.ConnectUseCase(e,n,()=>r,a,d);await expect(s.execute({device:i})).rejects.toBe(c),expect(e.getTransport).toHaveBeenCalledWith("USB"),expect(o.connect).toHaveBeenCalledWith({deviceId:i.id,onDisconnect:expect.any(Function)})}),test("should successfully connect and return a deviceSession id",async()=>{vi.mocked(e.getTransport).mockReturnValue(t.Maybe.of(o)),vi.mocked(o.connect).mockResolvedValue((0,t.Right)(l)),vi.mocked(n.addDeviceSession).mockImplementation(m=>(vi.spyOn(m,"initialiseSession").mockResolvedValue(void 0),n));const s=await new v.ConnectUseCase(e,n,()=>r,a,d).execute({device:i});expect(s).toBe(f),expect(e.getTransport).toHaveBeenCalledWith("USB"),expect(o.connect).toHaveBeenCalledWith({deviceId:i.id,onDisconnect:expect.any(Function)}),expect(n.addDeviceSession).toHaveBeenCalledWith(expect.objectContaining({id:f}))}),test("should reconnect with existing sessionId when connecting to a ConnectedDevice",async()=>{vi.mocked(e.getTransport).mockReturnValue(t.Maybe.of(o)),vi.mocked(o.connect).mockResolvedValue((0,t.Right)(l)),vi.mocked(n.addDeviceSession).mockImplementation(m=>(vi.spyOn(m,"initialiseSession").mockResolvedValue(void 0),n));const s=await new v.ConnectUseCase(e,n,()=>r,a,d).execute({device:S});expect(s).toBe(u),expect(e.getTransport).toHaveBeenCalledWith("USB"),expect(o.connect).toHaveBeenCalledWith({deviceId:S.id,onDisconnect:expect.any(Function)}),expect(n.addDeviceSession).toHaveBeenCalledWith(expect.objectContaining({id:u}))}),test("should throw an error when transport is not supported",async()=>{vi.mocked(e.getTransport).mockReturnValue(t.Maybe.empty());const c=new v.ConnectUseCase(e,n,()=>r,a,d);await expect(c.execute({device:i})).rejects.toBeInstanceOf(p.TransportNotSupportedError),expect(e.getTransport).toHaveBeenCalledWith("USB")})});
2
2
  //# sourceMappingURL=ConnectUseCase.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/discovery/use-case/ConnectUseCase.test.ts"],
4
- "sourcesContent": ["import { Left, Maybe, Right } from \"purify-ts\";\n\nimport { type DeviceModel } from \"@api/device/DeviceModel\";\nimport { type DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { TransportMock } from \"@api/transport/model/__mocks__/TransportMock\";\nimport { type DiscoveredDevice } from \"@api/transport/model/DiscoveredDevice\";\nimport { UnknownDeviceError } from \"@api/transport/model/Errors\";\nimport { connectedDeviceStubBuilder } from \"@api/transport/model/TransportConnectedDevice.stub\";\nimport type { DmkConfig, Transport } from \"@api/types\";\nimport { DefaultDeviceSessionService } from \"@internal/device-session/service/DefaultDeviceSessionService\";\nimport { type DeviceSessionService } from \"@internal/device-session/service/DeviceSessionService\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\nimport { AxiosManagerApiDataSource } from \"@internal/manager-api/data/AxiosManagerApiDataSource\";\nimport { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\nimport { DefaultManagerApiService } from \"@internal/manager-api/service/DefaultManagerApiService\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { type SecureChannelDataSource } from \"@internal/secure-channel/data/SecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\nimport { DefaultTransportService } from \"@internal/transport/service/DefaultTransportService\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\n\nimport { ConnectUseCase } from \"./ConnectUseCase\";\n\nvi.mock(\"uuid\", () => ({\n v4: vi.fn().mockReturnValue(\"fakeSessionId\"),\n}));\n\nvi.mock(\"@internal/manager-api/data/AxiosManagerApiDataSource\");\nvi.mock(\"@internal/transport/service/DefaultTransportService\");\n\n// TODO test several transports\n// let transports: WebUsbHidTransport[];\nlet transport: Transport;\nlet transportService: TransportService;\nlet logger: LoggerPublisherService;\nlet sessionService: DeviceSessionService;\nlet managerApi: ManagerApiService;\nlet managerApiDataSource: ManagerApiDataSource;\nlet secureChannelDataSource: SecureChannelDataSource;\nlet secureChannel: SecureChannelService;\nconst fakeSessionId = \"fakeSessionId\";\n\ndescribe(\"ConnectUseCase\", () => {\n const stubDiscoveredDevice: DiscoveredDevice = {\n id: \"\",\n deviceModel: {} as DeviceModel,\n transport: \"USB\",\n name: \"TEST\",\n };\n const stubConnectedDevice = connectedDeviceStubBuilder({ id: \"1\" });\n const tag = \"logger-tag\";\n\n beforeAll(() => {\n logger = new DefaultLoggerPublisherService([], tag);\n transport = new TransportMock();\n sessionService = new DefaultDeviceSessionService(() => logger);\n managerApiDataSource = new AxiosManagerApiDataSource({} as DmkConfig);\n managerApi = new DefaultManagerApiService(managerApiDataSource);\n secureChannelDataSource = new DefaultSecureChannelDataSource(\n {} as DmkConfig,\n );\n secureChannel = new DefaultSecureChannelService(secureChannelDataSource);\n // @ts-expect-error mock\n transportService = new DefaultTransportService();\n });\n\n afterEach(() => {\n for (const session of sessionService.getDeviceSessions()) {\n sessionService.removeDeviceSession(session.id);\n }\n });\n\n afterAll(() => {\n vi.restoreAllMocks();\n });\n\n test(\"If connect use case encounter an error, return it\", async () => {\n vi.spyOn(transport, \"connect\").mockResolvedValue(\n Left(new UnknownDeviceError()),\n );\n\n vi.spyOn(transportService, \"getTransport\").mockReturnValue(\n Maybe.of(transport),\n );\n\n const usecase = new ConnectUseCase(\n transportService,\n sessionService,\n () => logger,\n managerApi,\n secureChannel,\n );\n\n await expect(\n usecase.execute({ device: stubDiscoveredDevice }),\n ).rejects.toBeInstanceOf(UnknownDeviceError);\n });\n\n test(\"If connect is in success, return a deviceSession id\", async () => {\n vi.spyOn(transport, \"connect\").mockResolvedValue(\n Right(stubConnectedDevice),\n );\n vi.spyOn(transportService, \"getTransport\").mockReturnValue(\n Maybe.of(transport),\n );\n vi.spyOn(sessionService, \"addDeviceSession\").mockImplementation(\n (deviceSession) => {\n deviceSession.setDeviceSessionState({} as DeviceSessionState);\n return sessionService;\n },\n );\n\n const usecase = new ConnectUseCase(\n transportService,\n sessionService,\n () => logger,\n managerApi,\n secureChannel,\n );\n\n const sessionId = await usecase.execute({\n device: stubDiscoveredDevice,\n });\n expect(sessionId).toBe(fakeSessionId);\n sessionService.removeDeviceSession(sessionId);\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAAmC,qBAKnCC,EAA8B,wDAE9BC,EAAmC,uCACnCC,EAA2C,8DAE3CC,EAA4C,wEAE5CC,EAA8C,4EAC9CC,EAA0C,gEAE1CC,EAAyC,kEAEzCC,EAA+C,wEAE/CC,EAA4C,wEAE5CC,EAAwC,+DAGxCC,EAA+B,4BAE/B,GAAG,KAAK,OAAQ,KAAO,CACrB,GAAI,GAAG,GAAG,EAAE,gBAAgB,eAAe,CAC7C,EAAE,EAEF,GAAG,KAAK,sDAAsD,EAC9D,GAAG,KAAK,qDAAqD,EAI7D,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACJ,MAAMC,EAAgB,gBAEtB,SAAS,iBAAkB,IAAM,CAC/B,MAAMC,EAAyC,CAC7C,GAAI,GACJ,YAAa,CAAC,EACd,UAAW,MACX,KAAM,MACR,EACMC,KAAsB,8BAA2B,CAAE,GAAI,GAAI,CAAC,EAC5DC,EAAM,aAEZ,UAAU,IAAM,CACdT,EAAS,IAAI,gCAA8B,CAAC,EAAGS,CAAG,EAClDX,EAAY,IAAI,gBAChBG,EAAiB,IAAI,8BAA4B,IAAMD,CAAM,EAC7DG,EAAuB,IAAI,4BAA0B,CAAC,CAAc,EACpED,EAAa,IAAI,2BAAyBC,CAAoB,EAC9DC,EAA0B,IAAI,iCAC5B,CAAC,CACH,EACAC,EAAgB,IAAI,8BAA4BD,CAAuB,EAEvEL,EAAmB,IAAI,yBACzB,CAAC,EAED,UAAU,IAAM,CACd,UAAWW,KAAWT,EAAe,kBAAkB,EACrDA,EAAe,oBAAoBS,EAAQ,EAAE,CAEjD,CAAC,EAED,SAAS,IAAM,CACb,GAAG,gBAAgB,CACrB,CAAC,EAED,KAAK,oDAAqD,SAAY,CACpE,GAAG,MAAMZ,EAAW,SAAS,EAAE,qBAC7B,QAAK,IAAI,oBAAoB,CAC/B,EAEA,GAAG,MAAMC,EAAkB,cAAc,EAAE,gBACzC,QAAM,GAAGD,CAAS,CACpB,EAEA,MAAMa,EAAU,IAAI,iBAClBZ,EACAE,EACA,IAAMD,EACNE,EACAG,CACF,EAEA,MAAM,OACJM,EAAQ,QAAQ,CAAE,OAAQJ,CAAqB,CAAC,CAClD,EAAE,QAAQ,eAAe,oBAAkB,CAC7C,CAAC,EAED,KAAK,sDAAuD,SAAY,CACtE,GAAG,MAAMT,EAAW,SAAS,EAAE,qBAC7B,SAAMU,CAAmB,CAC3B,EACA,GAAG,MAAMT,EAAkB,cAAc,EAAE,gBACzC,QAAM,GAAGD,CAAS,CACpB,EACA,GAAG,MAAMG,EAAgB,kBAAkB,EAAE,mBAC1CW,IACCA,EAAc,sBAAsB,CAAC,CAAuB,EACrDX,EAEX,EAUA,MAAMY,EAAY,MARF,IAAI,iBAClBd,EACAE,EACA,IAAMD,EACNE,EACAG,CACF,EAEgC,QAAQ,CACtC,OAAQE,CACV,CAAC,EACD,OAAOM,CAAS,EAAE,KAAKP,CAAa,EACpCL,EAAe,oBAAoBY,CAAS,CAC9C,CAAC,CACH,CAAC",
6
- "names": ["import_purify_ts", "import_TransportMock", "import_Errors", "import_TransportConnectedDevice", "import_DefaultDeviceSessionService", "import_DefaultLoggerPublisherService", "import_AxiosManagerApiDataSource", "import_DefaultManagerApiService", "import_DefaultSecureChannelDataSource", "import_DefaultSecureChannelService", "import_DefaultTransportService", "import_ConnectUseCase", "transport", "transportService", "logger", "sessionService", "managerApi", "managerApiDataSource", "secureChannelDataSource", "secureChannel", "fakeSessionId", "stubDiscoveredDevice", "stubConnectedDevice", "tag", "session", "usecase", "deviceSession", "sessionId"]
4
+ "sourcesContent": ["import { Left, Maybe, Right } from \"purify-ts\";\n\nimport { type DeviceModel, type DeviceModelId } from \"@api/device/DeviceModel\";\nimport { type ConnectionType } from \"@api/discovery/ConnectionType\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { type ConnectedDevice } from \"@api/transport/model/ConnectedDevice\";\nimport { type DiscoveredDevice } from \"@api/transport/model/DiscoveredDevice\";\nimport {\n TransportNotSupportedError,\n UnknownDeviceError,\n} from \"@api/transport/model/Errors\";\nimport { type Transport } from \"@api/transport/model/Transport\";\nimport { connectedDeviceStubBuilder } from \"@api/transport/model/TransportConnectedDevice.stub\";\nimport { type DeviceSessionService } from \"@internal/device-session/service/DeviceSessionService\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\n\nimport { ConnectUseCase } from \"./ConnectUseCase\";\n\nvi.mock(\"uuid\", () => ({\n v4: vi.fn().mockReturnValue(\"fakeSessionId\"),\n}));\n\nlet transport: Transport;\nlet transportService: TransportService;\nlet logger: LoggerPublisherService;\nlet sessionService: DeviceSessionService;\nlet managerApi: ManagerApiService;\nlet secureChannel: SecureChannelService;\nconst fakeSessionId = \"fakeSessionId\";\nconst fakeSessionIdConnectedDevice = \"fakeSessionIdConnectedDevice\";\n\ndescribe(\"ConnectUseCase\", () => {\n const stubDiscoveredDevice: DiscoveredDevice = {\n id: \"device-id\",\n deviceModel: {} as DeviceModel,\n transport: \"USB\",\n name: \"TEST\",\n };\n const stubTransportConnectedDevice = connectedDeviceStubBuilder({ id: \"1\" });\n const stubConnectedDevice: ConnectedDevice = {\n ...stubTransportConnectedDevice,\n sessionId: fakeSessionIdConnectedDevice,\n modelId: \"model-id\" as DeviceModelId,\n name: \"device-name\",\n type: \"MOCK\" as ConnectionType,\n };\n const tag = \"logger-tag\";\n\n beforeEach(() => {\n logger = new DefaultLoggerPublisherService([], tag);\n\n // Mock Transport\n transport = {\n connect: vi.fn(),\n } as unknown as Transport;\n\n // Mock TransportService\n transportService = {\n getTransport: vi.fn(),\n } as unknown as TransportService;\n\n // Mock DeviceSessionService\n sessionService = {\n addDeviceSession: vi.fn(),\n removeDeviceSession: vi.fn(),\n getDeviceSessionByDeviceId: vi.fn(),\n } as unknown as DeviceSessionService;\n\n // Mock ManagerApiService\n managerApi = {} as ManagerApiService;\n\n // Mock SecureChannelService\n secureChannel = {} as SecureChannelService;\n });\n\n afterAll(() => {\n vi.restoreAllMocks();\n });\n\n test(\"should throw an error when transport connection fails\", async () => {\n // given\n const connectionError = new UnknownDeviceError();\n vi.mocked(transportService.getTransport).mockReturnValue(\n Maybe.of(transport),\n );\n vi.mocked(transport.connect).mockResolvedValue(Left(connectionError));\n\n const usecase = new ConnectUseCase(\n transportService,\n sessionService,\n () => logger,\n managerApi,\n secureChannel,\n );\n\n // when/then\n await expect(\n usecase.execute({ device: stubDiscoveredDevice }),\n ).rejects.toBe(connectionError);\n\n expect(transportService.getTransport).toHaveBeenCalledWith(\"USB\");\n expect(transport.connect).toHaveBeenCalledWith({\n deviceId: stubDiscoveredDevice.id,\n onDisconnect: expect.any(Function),\n });\n });\n\n test(\"should successfully connect and return a deviceSession id\", async () => {\n // given\n vi.mocked(transportService.getTransport).mockReturnValue(\n Maybe.of(transport),\n );\n vi.mocked(transport.connect).mockResolvedValue(\n Right(stubTransportConnectedDevice),\n );\n\n // Spy on addDeviceSession to capture the created session and mock its behavior\n vi.mocked(sessionService.addDeviceSession).mockImplementation(\n (deviceSession) => {\n // Mock the initialiseSession to avoid real initialization\n vi.spyOn(deviceSession, \"initialiseSession\").mockResolvedValue(\n undefined,\n );\n return sessionService;\n },\n );\n\n const usecase = new ConnectUseCase(\n transportService,\n sessionService,\n () => logger,\n managerApi,\n secureChannel,\n );\n\n // when\n const sessionId = await usecase.execute({\n device: stubDiscoveredDevice,\n });\n\n // then\n expect(sessionId).toBe(fakeSessionId);\n expect(transportService.getTransport).toHaveBeenCalledWith(\"USB\");\n expect(transport.connect).toHaveBeenCalledWith({\n deviceId: stubDiscoveredDevice.id,\n onDisconnect: expect.any(Function),\n });\n expect(sessionService.addDeviceSession).toHaveBeenCalledWith(\n expect.objectContaining({\n id: fakeSessionId,\n }),\n );\n });\n\n test(\"should reconnect with existing sessionId when connecting to a ConnectedDevice\", async () => {\n // given\n vi.mocked(transportService.getTransport).mockReturnValue(\n Maybe.of(transport),\n );\n vi.mocked(transport.connect).mockResolvedValue(\n Right(stubTransportConnectedDevice),\n );\n\n // Spy on addDeviceSession to capture the created session and mock its behavior\n vi.mocked(sessionService.addDeviceSession).mockImplementation(\n (deviceSession) => {\n // Mock the initialiseSession to avoid real initialization\n vi.spyOn(deviceSession, \"initialiseSession\").mockResolvedValue(\n undefined,\n );\n return sessionService;\n },\n );\n\n const usecase = new ConnectUseCase(\n transportService,\n sessionService,\n () => logger,\n managerApi,\n secureChannel,\n );\n\n // when\n const sessionId = await usecase.execute({\n device: stubConnectedDevice,\n });\n\n // then\n expect(sessionId).toBe(fakeSessionIdConnectedDevice);\n expect(transportService.getTransport).toHaveBeenCalledWith(\"USB\");\n expect(transport.connect).toHaveBeenCalledWith({\n deviceId: stubConnectedDevice.id,\n onDisconnect: expect.any(Function),\n });\n expect(sessionService.addDeviceSession).toHaveBeenCalledWith(\n expect.objectContaining({\n id: fakeSessionIdConnectedDevice,\n }),\n );\n });\n\n test(\"should throw an error when transport is not supported\", async () => {\n // given\n vi.mocked(transportService.getTransport).mockReturnValue(Maybe.empty());\n\n const usecase = new ConnectUseCase(\n transportService,\n sessionService,\n () => logger,\n managerApi,\n secureChannel,\n );\n\n // when/then\n await expect(\n usecase.execute({ device: stubDiscoveredDevice }),\n ).rejects.toBeInstanceOf(TransportNotSupportedError);\n\n expect(transportService.getTransport).toHaveBeenCalledWith(\"USB\");\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAAmC,qBAOnCC,EAGO,uCAEPC,EAA2C,8DAE3CC,EAA8C,4EAK9CC,EAA+B,4BAE/B,GAAG,KAAK,OAAQ,KAAO,CACrB,GAAI,GAAG,GAAG,EAAE,gBAAgB,eAAe,CAC7C,EAAE,EAEF,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACJ,MAAMC,EAAgB,gBAChBC,EAA+B,+BAErC,SAAS,iBAAkB,IAAM,CAC/B,MAAMC,EAAyC,CAC7C,GAAI,YACJ,YAAa,CAAC,EACd,UAAW,MACX,KAAM,MACR,EACMC,KAA+B,8BAA2B,CAAE,GAAI,GAAI,CAAC,EACrEC,EAAuC,CAC3C,GAAGD,EACH,UAAWF,EACX,QAAS,WACT,KAAM,cACN,KAAM,MACR,EACMI,EAAM,aAEZ,WAAW,IAAM,CACfT,EAAS,IAAI,gCAA8B,CAAC,EAAGS,CAAG,EAGlDX,EAAY,CACV,QAAS,GAAG,GAAG,CACjB,EAGAC,EAAmB,CACjB,aAAc,GAAG,GAAG,CACtB,EAGAE,EAAiB,CACf,iBAAkB,GAAG,GAAG,EACxB,oBAAqB,GAAG,GAAG,EAC3B,2BAA4B,GAAG,GAAG,CACpC,EAGAC,EAAa,CAAC,EAGdC,EAAgB,CAAC,CACnB,CAAC,EAED,SAAS,IAAM,CACb,GAAG,gBAAgB,CACrB,CAAC,EAED,KAAK,wDAAyD,SAAY,CAExE,MAAMO,EAAkB,IAAI,qBAC5B,GAAG,OAAOX,EAAiB,YAAY,EAAE,gBACvC,QAAM,GAAGD,CAAS,CACpB,EACA,GAAG,OAAOA,EAAU,OAAO,EAAE,qBAAkB,QAAKY,CAAe,CAAC,EAEpE,MAAMC,EAAU,IAAI,iBAClBZ,EACAE,EACA,IAAMD,EACNE,EACAC,CACF,EAGA,MAAM,OACJQ,EAAQ,QAAQ,CAAE,OAAQL,CAAqB,CAAC,CAClD,EAAE,QAAQ,KAAKI,CAAe,EAE9B,OAAOX,EAAiB,YAAY,EAAE,qBAAqB,KAAK,EAChE,OAAOD,EAAU,OAAO,EAAE,qBAAqB,CAC7C,SAAUQ,EAAqB,GAC/B,aAAc,OAAO,IAAI,QAAQ,CACnC,CAAC,CACH,CAAC,EAED,KAAK,4DAA6D,SAAY,CAE5E,GAAG,OAAOP,EAAiB,YAAY,EAAE,gBACvC,QAAM,GAAGD,CAAS,CACpB,EACA,GAAG,OAAOA,EAAU,OAAO,EAAE,qBAC3B,SAAMS,CAA4B,CACpC,EAGA,GAAG,OAAON,EAAe,gBAAgB,EAAE,mBACxCW,IAEC,GAAG,MAAMA,EAAe,mBAAmB,EAAE,kBAC3C,MACF,EACOX,EAEX,EAWA,MAAMY,EAAY,MATF,IAAI,iBAClBd,EACAE,EACA,IAAMD,EACNE,EACAC,CACF,EAGgC,QAAQ,CACtC,OAAQG,CACV,CAAC,EAGD,OAAOO,CAAS,EAAE,KAAKT,CAAa,EACpC,OAAOL,EAAiB,YAAY,EAAE,qBAAqB,KAAK,EAChE,OAAOD,EAAU,OAAO,EAAE,qBAAqB,CAC7C,SAAUQ,EAAqB,GAC/B,aAAc,OAAO,IAAI,QAAQ,CACnC,CAAC,EACD,OAAOL,EAAe,gBAAgB,EAAE,qBACtC,OAAO,iBAAiB,CACtB,GAAIG,CACN,CAAC,CACH,CACF,CAAC,EAED,KAAK,gFAAiF,SAAY,CAEhG,GAAG,OAAOL,EAAiB,YAAY,EAAE,gBACvC,QAAM,GAAGD,CAAS,CACpB,EACA,GAAG,OAAOA,EAAU,OAAO,EAAE,qBAC3B,SAAMS,CAA4B,CACpC,EAGA,GAAG,OAAON,EAAe,gBAAgB,EAAE,mBACxCW,IAEC,GAAG,MAAMA,EAAe,mBAAmB,EAAE,kBAC3C,MACF,EACOX,EAEX,EAWA,MAAMY,EAAY,MATF,IAAI,iBAClBd,EACAE,EACA,IAAMD,EACNE,EACAC,CACF,EAGgC,QAAQ,CACtC,OAAQK,CACV,CAAC,EAGD,OAAOK,CAAS,EAAE,KAAKR,CAA4B,EACnD,OAAON,EAAiB,YAAY,EAAE,qBAAqB,KAAK,EAChE,OAAOD,EAAU,OAAO,EAAE,qBAAqB,CAC7C,SAAUU,EAAoB,GAC9B,aAAc,OAAO,IAAI,QAAQ,CACnC,CAAC,EACD,OAAOP,EAAe,gBAAgB,EAAE,qBACtC,OAAO,iBAAiB,CACtB,GAAII,CACN,CAAC,CACH,CACF,CAAC,EAED,KAAK,wDAAyD,SAAY,CAExE,GAAG,OAAON,EAAiB,YAAY,EAAE,gBAAgB,QAAM,MAAM,CAAC,EAEtE,MAAMY,EAAU,IAAI,iBAClBZ,EACAE,EACA,IAAMD,EACNE,EACAC,CACF,EAGA,MAAM,OACJQ,EAAQ,QAAQ,CAAE,OAAQL,CAAqB,CAAC,CAClD,EAAE,QAAQ,eAAe,4BAA0B,EAEnD,OAAOP,EAAiB,YAAY,EAAE,qBAAqB,KAAK,CAClE,CAAC,CACH,CAAC",
6
+ "names": ["import_purify_ts", "import_Errors", "import_TransportConnectedDevice", "import_DefaultLoggerPublisherService", "import_ConnectUseCase", "transport", "transportService", "logger", "sessionService", "managerApi", "secureChannel", "fakeSessionId", "fakeSessionIdConnectedDevice", "stubDiscoveredDevice", "stubTransportConnectedDevice", "stubConnectedDevice", "tag", "connectionError", "usecase", "deviceSession", "sessionId"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var p=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var D=Object.prototype.hasOwnProperty;var _=(s,e)=>{for(var r in e)p(s,r,{get:e[r],enumerable:!0})},u=(s,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of l(e))!D.call(s,o)&&o!==r&&p(s,o,{get:()=>e[o],enumerable:!(i=S(e,o))||i.enumerable});return s};var T=s=>u(p({},"__esModule",{value:!0}),s),g=(s,e,r,i)=>{for(var o=i>1?void 0:i?S(e,r):e,n=s.length-1,c;n>=0;n--)(c=s[n])&&(o=(i?c(e,r,o):c(o))||o);return i&&o&&p(e,r,o),o},a=(s,e)=>(r,i)=>e(r,i,s);var w={};_(w,{DisconnectUseCase:()=>v});module.exports=T(w);var t=require("inversify"),m=require("purify-ts"),d=require("../../../api/transport/model/Errors"),f=require("../../device-session/di/deviceSessionTypes"),y=require("../../logger-publisher/di/loggerTypes"),h=require("../../transport/di/transportDiTypes");let v=class{_transportService;_sessionService;_logger;constructor(e,r,i){this._sessionService=r,this._transportService=e,this._logger=i("DisconnectUseCase")}async execute({sessionId:e}){return(0,m.EitherAsync)(async({liftEither:r})=>{const i=await r(this._sessionService.getDeviceSessionById(e).ifLeft(c=>{this._logger.error("Device session not found",{data:{sessionId:e,error:c}})})),o=i.connectedDevice.transport,n=await r(this._transportService.getTransport(o).toEither(new d.TransportNotSupportedError(new Error("Unknown transport"))));i.close(),this._sessionService.removeDeviceSession(e),await n.disconnect({connectedDevice:i.connectedDevice})}).caseOf({Left:r=>{throw this._logger.error("Error disconnecting from device",{data:{error:r}}),r},Right:()=>{}})}};v=g([(0,t.injectable)(),a(0,(0,t.inject)(h.transportDiTypes.TransportService)),a(1,(0,t.inject)(f.deviceSessionTypes.DeviceSessionService)),a(2,(0,t.inject)(y.loggerTypes.LoggerPublisherServiceFactory))],v);0&&(module.exports={DisconnectUseCase});
1
+ "use strict";var a=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var D=Object.prototype.hasOwnProperty;var _=(s,e)=>{for(var r in e)a(s,r,{get:e[r],enumerable:!0})},u=(s,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of y(e))!D.call(s,o)&&o!==r&&a(s,o,{get:()=>e[o],enumerable:!(i=S(e,o))||i.enumerable});return s};var T=s=>u(a({},"__esModule",{value:!0}),s),g=(s,e,r,i)=>{for(var o=i>1?void 0:i?S(e,r):e,n=s.length-1,c;n>=0;n--)(c=s[n])&&(o=(i?c(e,r,o):c(o))||o);return i&&o&&a(e,r,o),o},p=(s,e)=>(r,i)=>e(r,i,s);var w={};_(w,{DisconnectUseCase:()=>v});module.exports=T(w);var t=require("inversify"),m=require("purify-ts"),d=require("../../../api/transport/model/Errors"),f=require("../../device-session/di/deviceSessionTypes"),h=require("../../logger-publisher/di/loggerTypes"),l=require("../../transport/di/transportDiTypes");let v=class{_transportService;_sessionService;_logger;constructor(e,r,i){this._sessionService=r,this._transportService=e,this._logger=i("DisconnectUseCase")}async execute({sessionId:e}){return this._logger.debug("Disconnecting from device",{data:{test:this._sessionService.getDeviceSessions().map(r=>r.id)}}),(0,m.EitherAsync)(async({liftEither:r})=>{const i=await r(this._sessionService.getDeviceSessionById(e).ifLeft(c=>{this._logger.error("Device session not found",{data:{sessionId:e,error:c}})})),o=i.connectedDevice.transport,n=await r(this._transportService.getTransport(o).toEither(new d.TransportNotSupportedError(new Error("Unknown transport"))));i.close(),this._sessionService.removeDeviceSession(e),await n.disconnect({connectedDevice:i.connectedDevice})}).caseOf({Left:r=>{throw this._logger.error("Error disconnecting from device",{data:{error:r}}),r},Right:()=>{}})}};v=g([(0,t.injectable)(),p(0,(0,t.inject)(l.transportDiTypes.TransportService)),p(1,(0,t.inject)(f.deviceSessionTypes.DeviceSessionService)),p(2,(0,t.inject)(h.loggerTypes.LoggerPublisherServiceFactory))],v);0&&(module.exports={DisconnectUseCase});
2
2
  //# sourceMappingURL=DisconnectUseCase.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/discovery/use-case/DisconnectUseCase.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { EitherAsync } from \"purify-ts\";\n\nimport { LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { TransportNotSupportedError } from \"@api/transport/model/Errors\";\nimport type { DeviceSessionId } from \"@api/types\";\nimport { deviceSessionTypes } from \"@internal/device-session/di/deviceSessionTypes\";\nimport type { DeviceSessionService } from \"@internal/device-session/service/DeviceSessionService\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport { transportDiTypes } from \"@internal/transport/di/transportDiTypes\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\n\n/**\n * The arguments for the DisconnectUseCase.\n */\nexport type DisconnectUseCaseArgs = {\n /**\n * Device session identifier from `DeviceManagementKit.connect`.\n */\n sessionId: DeviceSessionId;\n};\n\n/**\n * Disconnects to a discovered device.\n */\n@injectable()\nexport class DisconnectUseCase {\n private readonly _transportService: TransportService;\n private readonly _sessionService: DeviceSessionService;\n private readonly _logger: LoggerPublisherService;\n\n constructor(\n @inject(transportDiTypes.TransportService)\n transportService: TransportService,\n @inject(deviceSessionTypes.DeviceSessionService)\n sessionService: DeviceSessionService,\n @inject(loggerTypes.LoggerPublisherServiceFactory)\n loggerFactory: (tag: string) => LoggerPublisherService,\n ) {\n this._sessionService = sessionService;\n this._transportService = transportService;\n this._logger = loggerFactory(\"DisconnectUseCase\");\n }\n\n async execute({ sessionId }: DisconnectUseCaseArgs): Promise<void> {\n return EitherAsync(async ({ liftEither }) => {\n const session = await liftEither(\n this._sessionService.getDeviceSessionById(sessionId).ifLeft((error) => {\n this._logger.error(\"Device session not found\", {\n data: { sessionId, error },\n });\n }),\n );\n\n const transportIdentifier = session.connectedDevice.transport;\n const transport = await liftEither(\n this._transportService\n .getTransport(transportIdentifier)\n .toEither(\n new TransportNotSupportedError(new Error(\"Unknown transport\")),\n ),\n );\n\n session.close();\n this._sessionService.removeDeviceSession(sessionId);\n\n await transport.disconnect({\n connectedDevice: session.connectedDevice,\n });\n }).caseOf({\n Left: (error) => {\n this._logger.error(\"Error disconnecting from device\", {\n data: { error },\n });\n throw error;\n },\n Right: () => {},\n });\n }\n}\n"],
5
- "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBACnCC,EAA4B,qBAG5BC,EAA2C,uCAE3CC,EAAmC,0DAEnCC,EAA4B,qDAC5BC,EAAiC,mDAiB1B,IAAMC,EAAN,KAAwB,CACZ,kBACA,gBACA,QAEjB,YAEEC,EAEAC,EAEAC,EACA,CACA,KAAK,gBAAkBD,EACvB,KAAK,kBAAoBD,EACzB,KAAK,QAAUE,EAAc,mBAAmB,CAClD,CAEA,MAAM,QAAQ,CAAE,UAAAC,CAAU,EAAyC,CACjE,SAAO,eAAY,MAAO,CAAE,WAAAC,CAAW,IAAM,CAC3C,MAAMC,EAAU,MAAMD,EACpB,KAAK,gBAAgB,qBAAqBD,CAAS,EAAE,OAAQG,GAAU,CACrE,KAAK,QAAQ,MAAM,2BAA4B,CAC7C,KAAM,CAAE,UAAAH,EAAW,MAAAG,CAAM,CAC3B,CAAC,CACH,CAAC,CACH,EAEMC,EAAsBF,EAAQ,gBAAgB,UAC9CG,EAAY,MAAMJ,EACtB,KAAK,kBACF,aAAaG,CAAmB,EAChC,SACC,IAAI,6BAA2B,IAAI,MAAM,mBAAmB,CAAC,CAC/D,CACJ,EAEAF,EAAQ,MAAM,EACd,KAAK,gBAAgB,oBAAoBF,CAAS,EAElD,MAAMK,EAAU,WAAW,CACzB,gBAAiBH,EAAQ,eAC3B,CAAC,CACH,CAAC,EAAE,OAAO,CACR,KAAOC,GAAU,CACf,WAAK,QAAQ,MAAM,kCAAmC,CACpD,KAAM,CAAE,MAAAA,CAAM,CAChB,CAAC,EACKA,CACR,EACA,MAAO,IAAM,CAAC,CAChB,CAAC,CACH,CACF,EArDaP,EAANU,EAAA,IADN,cAAW,EAOPC,EAAA,eAAO,mBAAiB,gBAAgB,GAExCA,EAAA,eAAO,qBAAmB,oBAAoB,GAE9CA,EAAA,eAAO,cAAY,6BAA6B,IAVxCX",
6
- "names": ["DisconnectUseCase_exports", "__export", "DisconnectUseCase", "__toCommonJS", "import_inversify", "import_purify_ts", "import_Errors", "import_deviceSessionTypes", "import_loggerTypes", "import_transportDiTypes", "DisconnectUseCase", "transportService", "sessionService", "loggerFactory", "sessionId", "liftEither", "session", "error", "transportIdentifier", "transport", "__decorateClass", "__decorateParam"]
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { EitherAsync } from \"purify-ts\";\n\nimport { LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { TransportNotSupportedError } from \"@api/transport/model/Errors\";\nimport type { DeviceSessionId } from \"@api/types\";\nimport { deviceSessionTypes } from \"@internal/device-session/di/deviceSessionTypes\";\nimport type { DeviceSessionService } from \"@internal/device-session/service/DeviceSessionService\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport { transportDiTypes } from \"@internal/transport/di/transportDiTypes\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\n\n/**\n * The arguments for the DisconnectUseCase.\n */\nexport type DisconnectUseCaseArgs = {\n /**\n * Device session identifier from `DeviceManagementKit.connect`.\n */\n sessionId: DeviceSessionId;\n};\n\n/**\n * Disconnects to a discovered device.\n */\n@injectable()\nexport class DisconnectUseCase {\n private readonly _transportService: TransportService;\n private readonly _sessionService: DeviceSessionService;\n private readonly _logger: LoggerPublisherService;\n\n constructor(\n @inject(transportDiTypes.TransportService)\n transportService: TransportService,\n @inject(deviceSessionTypes.DeviceSessionService)\n sessionService: DeviceSessionService,\n @inject(loggerTypes.LoggerPublisherServiceFactory)\n loggerFactory: (tag: string) => LoggerPublisherService,\n ) {\n this._sessionService = sessionService;\n this._transportService = transportService;\n this._logger = loggerFactory(\"DisconnectUseCase\");\n }\n\n async execute({ sessionId }: DisconnectUseCaseArgs): Promise<void> {\n this._logger.debug(\"Disconnecting from device\", {\n data: {\n test: this._sessionService\n .getDeviceSessions()\n .map((session) => session.id),\n },\n });\n return EitherAsync(async ({ liftEither }) => {\n const session = await liftEither(\n this._sessionService.getDeviceSessionById(sessionId).ifLeft((error) => {\n this._logger.error(\"Device session not found\", {\n data: { sessionId, error },\n });\n }),\n );\n\n const transportIdentifier = session.connectedDevice.transport;\n const transport = await liftEither(\n this._transportService\n .getTransport(transportIdentifier)\n .toEither(\n new TransportNotSupportedError(new Error(\"Unknown transport\")),\n ),\n );\n\n session.close();\n this._sessionService.removeDeviceSession(sessionId);\n\n await transport.disconnect({\n connectedDevice: session.connectedDevice,\n });\n }).caseOf({\n Left: (error) => {\n this._logger.error(\"Error disconnecting from device\", {\n data: { error },\n });\n throw error;\n },\n Right: () => {},\n });\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBACnCC,EAA4B,qBAG5BC,EAA2C,uCAE3CC,EAAmC,0DAEnCC,EAA4B,qDAC5BC,EAAiC,mDAiB1B,IAAMC,EAAN,KAAwB,CACZ,kBACA,gBACA,QAEjB,YAEEC,EAEAC,EAEAC,EACA,CACA,KAAK,gBAAkBD,EACvB,KAAK,kBAAoBD,EACzB,KAAK,QAAUE,EAAc,mBAAmB,CAClD,CAEA,MAAM,QAAQ,CAAE,UAAAC,CAAU,EAAyC,CACjE,YAAK,QAAQ,MAAM,4BAA6B,CAC9C,KAAM,CACJ,KAAM,KAAK,gBACR,kBAAkB,EAClB,IAAKC,GAAYA,EAAQ,EAAE,CAChC,CACF,CAAC,KACM,eAAY,MAAO,CAAE,WAAAC,CAAW,IAAM,CAC3C,MAAMD,EAAU,MAAMC,EACpB,KAAK,gBAAgB,qBAAqBF,CAAS,EAAE,OAAQG,GAAU,CACrE,KAAK,QAAQ,MAAM,2BAA4B,CAC7C,KAAM,CAAE,UAAAH,EAAW,MAAAG,CAAM,CAC3B,CAAC,CACH,CAAC,CACH,EAEMC,EAAsBH,EAAQ,gBAAgB,UAC9CI,EAAY,MAAMH,EACtB,KAAK,kBACF,aAAaE,CAAmB,EAChC,SACC,IAAI,6BAA2B,IAAI,MAAM,mBAAmB,CAAC,CAC/D,CACJ,EAEAH,EAAQ,MAAM,EACd,KAAK,gBAAgB,oBAAoBD,CAAS,EAElD,MAAMK,EAAU,WAAW,CACzB,gBAAiBJ,EAAQ,eAC3B,CAAC,CACH,CAAC,EAAE,OAAO,CACR,KAAOE,GAAU,CACf,WAAK,QAAQ,MAAM,kCAAmC,CACpD,KAAM,CAAE,MAAAA,CAAM,CAChB,CAAC,EACKA,CACR,EACA,MAAO,IAAM,CAAC,CAChB,CAAC,CACH,CACF,EA5DaP,EAANU,EAAA,IADN,cAAW,EAOPC,EAAA,eAAO,mBAAiB,gBAAgB,GAExCA,EAAA,eAAO,qBAAmB,oBAAoB,GAE9CA,EAAA,eAAO,cAAY,6BAA6B,IAVxCX",
6
+ "names": ["DisconnectUseCase_exports", "__export", "DisconnectUseCase", "__toCommonJS", "import_inversify", "import_purify_ts", "import_Errors", "import_deviceSessionTypes", "import_loggerTypes", "import_transportDiTypes", "DisconnectUseCase", "transportService", "sessionService", "loggerFactory", "sessionId", "session", "liftEither", "error", "transportIdentifier", "transport", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var c=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var h=(s,e)=>{for(var o in e)c(s,o,{get:e[o],enumerable:!0})},u=(s,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of l(e))!f.call(s,r)&&r!==o&&c(s,r,{get:()=>e[r],enumerable:!(i=d(e,r))||i.enumerable});return s};var U=s=>u(c({},"__esModule",{value:!0}),s),C=(s,e,o,i)=>{for(var r=i>1?void 0:i?d(e,o):e,g=s.length-1,p;g>=0;g--)(p=s[g])&&(r=(i?p(e,o,r):p(r))||r);return i&&r&&c(e,o,r),r},a=(s,e)=>(o,i)=>e(o,i,s);var y={};h(y,{ReconnectUseCase:()=>n});module.exports=U(y);var t=require("inversify"),m=require("../../discovery/di/discoveryTypes"),v=require("../../logger-publisher/di/loggerTypes");let n=class{constructor(e,o,i){this.connectUseCase=e;this.disconnectUseCase=o;this._logger=i("ReconnectUseCase")}_logger;async execute({device:e,sessionRefresherOptions:o}){return this._logger.debug("Reconnecting device session",{data:{deviceId:e.id,transport:e.transport}}),await this.disconnectUseCase.execute({sessionId:e.sessionId}),this.connectUseCase.execute({device:e,sessionRefresherOptions:o})}};n=C([(0,t.injectable)(),a(0,(0,t.inject)(m.discoveryTypes.ConnectUseCase)),a(1,(0,t.inject)(m.discoveryTypes.DisconnectUseCase)),a(2,(0,t.inject)(v.loggerTypes.LoggerPublisherServiceFactory))],n);0&&(module.exports={ReconnectUseCase});
2
+ //# sourceMappingURL=ReconnectUseCase.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/internal/discovery/use-case/ReconnectUseCase.ts"],
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { DeviceSessionId } from \"@api/device-session/types\";\nimport { ConnectedDevice } from \"@api/index\";\nimport { LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { DeviceSessionRefresherOptions } from \"@internal/device-session/model/DeviceSession\";\nimport { discoveryTypes } from \"@internal/discovery/di/discoveryTypes\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\n\nimport { ConnectUseCase } from \"./ConnectUseCase\";\nimport { DisconnectUseCase } from \"./DisconnectUseCase\";\n\n/**\n * The arguments for the ReconnectUseCase.\n */\nexport type ReconnectUseCaseArgs = {\n /**\n * Connected device\n */\n device: ConnectedDevice;\n\n /**\n * sessionRefresherOptions - optional\n * isRefresherDisabled - whether the refresher is disabled\n * pollingInterval - optional - the refresh interval in milliseconds\n */\n sessionRefresherOptions?: DeviceSessionRefresherOptions;\n};\n\n/**\n * Reconnects a device session by disconnecting and reconnecting to the device.\n */\n@injectable()\nexport class ReconnectUseCase {\n private readonly _logger: LoggerPublisherService;\n\n constructor(\n @inject(discoveryTypes.ConnectUseCase)\n private readonly connectUseCase: ConnectUseCase,\n @inject(discoveryTypes.DisconnectUseCase)\n private readonly disconnectUseCase: DisconnectUseCase,\n @inject(loggerTypes.LoggerPublisherServiceFactory)\n loggerFactory: (tag: string) => LoggerPublisherService,\n ) {\n this._logger = loggerFactory(\"ReconnectUseCase\");\n }\n\n async execute({\n device,\n sessionRefresherOptions,\n }: ReconnectUseCaseArgs): Promise<DeviceSessionId> {\n this._logger.debug(\"Reconnecting device session\", {\n data: { deviceId: device.id, transport: device.transport },\n });\n await this.disconnectUseCase.execute({ sessionId: device.sessionId });\n\n return this.connectUseCase.execute({\n device,\n sessionRefresherOptions,\n });\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBAMnCC,EAA+B,iDAC/BC,EAA4B,qDA0BrB,IAAMC,EAAN,KAAuB,CAG5B,YAEmBC,EAEAC,EAEjBC,EACA,CALiB,oBAAAF,EAEA,uBAAAC,EAIjB,KAAK,QAAUC,EAAc,kBAAkB,CACjD,CAXiB,QAajB,MAAM,QAAQ,CACZ,OAAAC,EACA,wBAAAC,CACF,EAAmD,CACjD,YAAK,QAAQ,MAAM,8BAA+B,CAChD,KAAM,CAAE,SAAUD,EAAO,GAAI,UAAWA,EAAO,SAAU,CAC3D,CAAC,EACD,MAAM,KAAK,kBAAkB,QAAQ,CAAE,UAAWA,EAAO,SAAU,CAAC,EAE7D,KAAK,eAAe,QAAQ,CACjC,OAAAA,EACA,wBAAAC,CACF,CAAC,CACH,CACF,EA5BaL,EAANM,EAAA,IADN,cAAW,EAKPC,EAAA,eAAO,iBAAe,cAAc,GAEpCA,EAAA,eAAO,iBAAe,iBAAiB,GAEvCA,EAAA,eAAO,cAAY,6BAA6B,IARxCP",
6
+ "names": ["ReconnectUseCase_exports", "__export", "ReconnectUseCase", "__toCommonJS", "import_inversify", "import_discoveryTypes", "import_loggerTypes", "ReconnectUseCase", "connectUseCase", "disconnectUseCase", "loggerFactory", "device", "sessionRefresherOptions", "__decorateClass", "__decorateParam"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var r=require("../../logger-publisher/service/DefaultLoggerPublisherService"),i=require("./ReconnectUseCase");vi.mock("uuid",()=>({v4:vi.fn().mockReturnValue("newSessionId")}));let s,e,n;const a="newSessionId";describe("ReconnectUseCase",()=>{const c={sessionId:"session-id",id:"device-id",transport:"USB",type:"MOCK",modelId:"model-id",name:"device-name"},d="logger-tag";beforeAll(()=>{s=new r.DefaultLoggerPublisherService([],d),e={},n={}}),afterAll(()=>{vi.restoreAllMocks()}),test("Should successfully reconnect device session (disconnect then connect)",async()=>{e.execute=vi.fn().mockResolvedValue(a),n.execute=vi.fn().mockResolvedValue(void 0);const o=await new i.ReconnectUseCase(e,n,()=>s).execute({device:c});expect(n.execute).toHaveBeenCalledWith({sessionId:c.sessionId}),expect(e.execute).toHaveBeenCalledWith({device:c,sessionRefresherOptions:void 0}),expect(o).toBe(a)}),test("Should throw an error when disconnect fails",async()=>{const t=new Error("Disconnect failed");n.execute=vi.fn().mockRejectedValue(t),e.execute=vi.fn();const o=new i.ReconnectUseCase(e,n,()=>s);await expect(o.execute({device:c})).rejects.toThrow(t),expect(n.execute).toHaveBeenCalled(),expect(e.execute).not.toHaveBeenCalled()}),test("Should throw an error when connect fails after successful disconnect",async()=>{const t=new Error("Connect failed");n.execute=vi.fn().mockResolvedValue(void 0),e.execute=vi.fn().mockRejectedValue(t);const o=new i.ReconnectUseCase(e,n,()=>s);await expect(o.execute({device:c})).rejects.toThrow(t),expect(n.execute).toHaveBeenCalled(),expect(e.execute).toHaveBeenCalled()})});
2
+ //# sourceMappingURL=ReconnectUseCase.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/internal/discovery/use-case/ReconnectUseCase.test.ts"],
4
+ "sourcesContent": ["import { type DeviceModelId } from \"@api/device/DeviceModel\";\nimport { type ConnectionType } from \"@api/discovery/ConnectionType\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { type ConnectedDevice } from \"@api/transport/model/ConnectedDevice\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\n\nimport { type ConnectUseCase } from \"./ConnectUseCase\";\nimport { type DisconnectUseCase } from \"./DisconnectUseCase\";\nimport { ReconnectUseCase } from \"./ReconnectUseCase\";\n\nvi.mock(\"uuid\", () => ({\n v4: vi.fn().mockReturnValue(\"newSessionId\"),\n}));\n\nlet logger: LoggerPublisherService;\nlet connectUseCase: ConnectUseCase;\nlet disconnectUseCase: DisconnectUseCase;\n\nconst newSessionId = \"newSessionId\";\n\ndescribe(\"ReconnectUseCase\", () => {\n const stubConnectedDevice = {\n sessionId: \"session-id\",\n id: \"device-id\",\n transport: \"USB\",\n type: \"MOCK\" as unknown as ConnectionType,\n modelId: \"model-id\" as unknown as DeviceModelId,\n name: \"device-name\",\n };\n const tag = \"logger-tag\";\n\n beforeAll(() => {\n logger = new DefaultLoggerPublisherService([], tag);\n connectUseCase = {} as ConnectUseCase;\n disconnectUseCase = {} as DisconnectUseCase;\n });\n\n afterAll(() => {\n vi.restoreAllMocks();\n });\n\n test(\"Should successfully reconnect device session (disconnect then connect)\", async () => {\n // Given\n connectUseCase.execute = vi.fn().mockResolvedValue(newSessionId);\n disconnectUseCase.execute = vi.fn().mockResolvedValue(undefined);\n\n const usecase = new ReconnectUseCase(\n connectUseCase,\n disconnectUseCase,\n () => logger,\n );\n\n // When\n const sessionId = await usecase.execute({\n device: stubConnectedDevice,\n });\n\n // Then\n expect(disconnectUseCase.execute).toHaveBeenCalledWith({\n sessionId: stubConnectedDevice.sessionId,\n });\n expect(connectUseCase.execute).toHaveBeenCalledWith({\n device: stubConnectedDevice,\n sessionRefresherOptions: undefined,\n });\n expect(sessionId).toBe(newSessionId);\n });\n\n test(\"Should throw an error when disconnect fails\", async () => {\n // Given\n const disconnectError = new Error(\"Disconnect failed\");\n disconnectUseCase.execute = vi.fn().mockRejectedValue(disconnectError);\n connectUseCase.execute = vi.fn();\n\n const usecase = new ReconnectUseCase(\n connectUseCase,\n disconnectUseCase,\n () => logger,\n );\n\n // When / Then\n await expect(\n usecase.execute({\n device: stubConnectedDevice as unknown as ConnectedDevice,\n }),\n ).rejects.toThrow(disconnectError);\n expect(disconnectUseCase.execute).toHaveBeenCalled();\n expect(connectUseCase.execute).not.toHaveBeenCalled();\n });\n\n test(\"Should throw an error when connect fails after successful disconnect\", async () => {\n // Given\n const connectError = new Error(\"Connect failed\");\n disconnectUseCase.execute = vi.fn().mockResolvedValue(undefined);\n connectUseCase.execute = vi.fn().mockRejectedValue(connectError);\n\n const usecase = new ReconnectUseCase(\n connectUseCase,\n disconnectUseCase,\n () => logger,\n );\n\n // When / Then\n await expect(\n usecase.execute({\n device: stubConnectedDevice as unknown as ConnectedDevice,\n }),\n ).rejects.toThrow(connectError);\n expect(disconnectUseCase.execute).toHaveBeenCalled();\n expect(connectUseCase.execute).toHaveBeenCalled();\n });\n});\n"],
5
+ "mappings": "aAIA,IAAAA,EAA8C,4EAI9CC,EAAiC,8BAEjC,GAAG,KAAK,OAAQ,KAAO,CACrB,GAAI,GAAG,GAAG,EAAE,gBAAgB,cAAc,CAC5C,EAAE,EAEF,IAAIC,EACAC,EACAC,EAEJ,MAAMC,EAAe,eAErB,SAAS,mBAAoB,IAAM,CACjC,MAAMC,EAAsB,CAC1B,UAAW,aACX,GAAI,YACJ,UAAW,MACX,KAAM,OACN,QAAS,WACT,KAAM,aACR,EACMC,EAAM,aAEZ,UAAU,IAAM,CACdL,EAAS,IAAI,gCAA8B,CAAC,EAAGK,CAAG,EAClDJ,EAAiB,CAAC,EAClBC,EAAoB,CAAC,CACvB,CAAC,EAED,SAAS,IAAM,CACb,GAAG,gBAAgB,CACrB,CAAC,EAED,KAAK,yEAA0E,SAAY,CAEzFD,EAAe,QAAU,GAAG,GAAG,EAAE,kBAAkBE,CAAY,EAC/DD,EAAkB,QAAU,GAAG,GAAG,EAAE,kBAAkB,MAAS,EAS/D,MAAMI,EAAY,MAPF,IAAI,mBAClBL,EACAC,EACA,IAAMF,CACR,EAGgC,QAAQ,CACtC,OAAQI,CACV,CAAC,EAGD,OAAOF,EAAkB,OAAO,EAAE,qBAAqB,CACrD,UAAWE,EAAoB,SACjC,CAAC,EACD,OAAOH,EAAe,OAAO,EAAE,qBAAqB,CAClD,OAAQG,EACR,wBAAyB,MAC3B,CAAC,EACD,OAAOE,CAAS,EAAE,KAAKH,CAAY,CACrC,CAAC,EAED,KAAK,8CAA+C,SAAY,CAE9D,MAAMI,EAAkB,IAAI,MAAM,mBAAmB,EACrDL,EAAkB,QAAU,GAAG,GAAG,EAAE,kBAAkBK,CAAe,EACrEN,EAAe,QAAU,GAAG,GAAG,EAE/B,MAAMO,EAAU,IAAI,mBAClBP,EACAC,EACA,IAAMF,CACR,EAGA,MAAM,OACJQ,EAAQ,QAAQ,CACd,OAAQJ,CACV,CAAC,CACH,EAAE,QAAQ,QAAQG,CAAe,EACjC,OAAOL,EAAkB,OAAO,EAAE,iBAAiB,EACnD,OAAOD,EAAe,OAAO,EAAE,IAAI,iBAAiB,CACtD,CAAC,EAED,KAAK,uEAAwE,SAAY,CAEvF,MAAMQ,EAAe,IAAI,MAAM,gBAAgB,EAC/CP,EAAkB,QAAU,GAAG,GAAG,EAAE,kBAAkB,MAAS,EAC/DD,EAAe,QAAU,GAAG,GAAG,EAAE,kBAAkBQ,CAAY,EAE/D,MAAMD,EAAU,IAAI,mBAClBP,EACAC,EACA,IAAMF,CACR,EAGA,MAAM,OACJQ,EAAQ,QAAQ,CACd,OAAQJ,CACV,CAAC,CACH,EAAE,QAAQ,QAAQK,CAAY,EAC9B,OAAOP,EAAkB,OAAO,EAAE,iBAAiB,EACnD,OAAOD,EAAe,OAAO,EAAE,iBAAiB,CAClD,CAAC,CACH,CAAC",
6
+ "names": ["import_DefaultLoggerPublisherService", "import_ReconnectUseCase", "logger", "connectUseCase", "disconnectUseCase", "newSessionId", "stubConnectedDevice", "tag", "sessionId", "disconnectError", "usecase", "connectError"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/manager-api/data/ManagerApiDataSource.ts"],
4
- "sourcesContent": ["import { type EitherAsync } from \"purify-ts\";\n\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport { type HttpFetchApiError } from \"@internal/manager-api/model/Errors\";\nimport {\n type FinalFirmware,\n type McuFirmware,\n type OsuFirmware,\n} from \"@internal/manager-api/model/Firmware\";\nimport { type LanguagePackage } from \"@internal/manager-api/model/Language\";\nimport {\n type GetAppByHashParams,\n type GetAppListParams,\n type GetDeviceVersionParams,\n type GetFirmwareVersionParams,\n type GetLanguagePackagesParams,\n type GetLatestFirmwareVersionParams,\n} from \"@internal/manager-api/model/Params\";\n\n/**\n * Interface representing a data source for the Manager API.\n */\nexport interface ManagerApiDataSource {\n /**\n * Retrieves the list of applications for a given target ID, and firmware version.\n *\n * @param params - The parameters for getting the application list.\n * @returns EitherAsync containing an array of applications or an HttpFetchApiError.\n */\n getAppList(\n params: GetAppListParams,\n ): EitherAsync<HttpFetchApiError, Array<Application>>;\n\n /**\n * Retrieves applications by their hashes.\n *\n * @param hashes - An array of application hashes, can be got from the response of the ListAppsCommand.\n * @returns EitherAsync containing an array of applications or null values, or an HttpFetchApiError.\n */\n getAppsByHash(\n params: GetAppByHashParams,\n ): EitherAsync<HttpFetchApiError, Array<Application | null>>;\n\n /**\n * Retrieves the device version for a given target ID.\n *\n * @param params - The parameters for getting the device version.\n * @returns EitherAsync containing the device version or an HttpFetchApiError.\n */\n getDeviceVersion(\n params: GetDeviceVersionParams,\n ): EitherAsync<HttpFetchApiError, DeviceVersion>;\n\n /**\n * Retrieves the firmware version for a given version, device ID.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing the final firmware or an HttpFetchApiError.\n */\n getFirmwareVersion(\n params: GetFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, FinalFirmware>;\n\n /**\n * Sets the provider identifier.\n *\n * @param provider - The provider identifier.\n */\n setProvider(provider: number): void;\n\n /**\n * Returns the current provider.\n */\n getProvider(): number;\n\n /**\n * Retrieves a firmware version from a final firmware ID.\n *\n * @param finalFirmwareId - The ID of the final firmware to retrieve.\n * @returns EitherAsync containing the final firmware or an HttpFetchApiError.\n */\n getFirmwareVersionById(\n finalFirmwareId: number,\n ): EitherAsync<HttpFetchApiError, FinalFirmware>;\n\n /**\n * Retrieves the an OSU firmware version for a given version, device ID.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing the OSU firmware or an HttpFetchApiError.\n */\n getOsuFirmwareVersion(\n params: GetFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, OsuFirmware>;\n\n /**\n * Retrieves the latest firmware available for a given current firmware, device ID.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing the OSU firmware or an HttpFetchApiError.\n */\n getLatestFirmwareVersion(\n params: GetLatestFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, OsuFirmware>;\n\n /**\n * Retrieves the available language packages for a device.\n *\n * @param params - The parameters for getting the language packages.\n * @returns EitherAsync containing the list of language packages or an HttpFetchApiError.\n */\n getLanguagePackages(\n params: GetLanguagePackagesParams,\n ): EitherAsync<HttpFetchApiError, Array<LanguagePackage>>;\n\n /**\n * Retrieves the list of available MCU firmwares.\n *\n * @returns EitherAsync containing an array of mcu firmwares or an HttpFetchApiError.\n */\n getMcuList(): EitherAsync<HttpFetchApiError, Array<McuFirmware>>;\n}\n"],
4
+ "sourcesContent": ["import { type EitherAsync } from \"purify-ts\";\n\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport { type HttpFetchApiError } from \"@internal/manager-api/model/Errors\";\nimport {\n type FinalFirmware,\n type McuFirmware,\n type OsuFirmware,\n} from \"@internal/manager-api/model/Firmware\";\nimport { type LanguagePackage } from \"@internal/manager-api/model/Language\";\nimport {\n type GetAppByHashParams,\n type GetAppListParams,\n type GetDeviceVersionParams,\n type GetFirmwareVersionParams,\n type GetLanguagePackagesParams,\n type GetLatestFirmwareVersionParams,\n} from \"@internal/manager-api/model/Params\";\n\n/**\n * Interface representing a data source for the Manager API.\n */\nexport interface ManagerApiDataSource {\n /**\n * Retrieves the list of applications for a given target ID and firmware version.\n *\n * @param params - The parameters for getting the application list.\n * @returns EitherAsync containing an array of applications or an HttpFetchApiError.\n */\n getAppList(\n params: GetAppListParams,\n ): EitherAsync<HttpFetchApiError, Array<Application>>;\n\n /**\n * Retrieves applications by their hashes.\n *\n * @param hashes - An array of application hashes, can be got from the response of the ListAppsCommand.\n * @returns EitherAsync containing an array of applications or null values, or an HttpFetchApiError.\n */\n getAppsByHash(\n params: GetAppByHashParams,\n ): EitherAsync<HttpFetchApiError, Array<Application | null>>;\n\n /**\n * Retrieves the device version for a given target ID.\n *\n * @param params - The parameters for getting the device version.\n * @returns EitherAsync containing the device version or an HttpFetchApiError.\n */\n getDeviceVersion(\n params: GetDeviceVersionParams,\n ): EitherAsync<HttpFetchApiError, DeviceVersion>;\n\n /**\n * Retrieves the firmware version for a given version, device ID.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing the final firmware or an HttpFetchApiError.\n */\n getFirmwareVersion(\n params: GetFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, FinalFirmware>;\n\n /**\n * Sets the provider identifier.\n *\n * @param provider - The provider identifier.\n */\n setProvider(provider: number): void;\n\n /**\n * Returns the current provider.\n */\n getProvider(): number;\n\n /**\n * Retrieves a firmware version from a final firmware ID.\n *\n * @param finalFirmwareId - The ID of the final firmware to retrieve.\n * @returns EitherAsync containing the final firmware or an HttpFetchApiError.\n */\n getFirmwareVersionById(\n finalFirmwareId: number,\n ): EitherAsync<HttpFetchApiError, FinalFirmware>;\n\n /**\n * Retrieves the an OSU firmware version for a given version, device ID.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing the OSU firmware or an HttpFetchApiError.\n */\n getOsuFirmwareVersion(\n params: GetFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, OsuFirmware>;\n\n /**\n * Retrieves the latest firmware available for a given current firmware, device ID.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing the OSU firmware or an HttpFetchApiError.\n */\n getLatestFirmwareVersion(\n params: GetLatestFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, OsuFirmware>;\n\n /**\n * Retrieves the available language packages for a device.\n *\n * @param params - The parameters for getting the language packages.\n * @returns EitherAsync containing the list of language packages or an HttpFetchApiError.\n */\n getLanguagePackages(\n params: GetLanguagePackagesParams,\n ): EitherAsync<HttpFetchApiError, Array<LanguagePackage>>;\n\n /**\n * Retrieves the list of available MCU firmwares.\n *\n * @returns EitherAsync containing an array of mcu firmwares or an HttpFetchApiError.\n */\n getMcuList(): EitherAsync<HttpFetchApiError, Array<McuFirmware>>;\n}\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["ManagerApiDataSource_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var f=require("purify-ts"),l=require("../../../api/transport/model/TransportConnectedDevice.stub"),u=require("../../device-session/data/DeviceSessionRefresherConst"),p=require("../../device-session/model/DeviceSession.stub"),i=require("../../device-session/model/Errors"),v=require("../../device-session/service/DefaultDeviceSessionService"),D=require("../../logger-publisher/service/DefaultLoggerPublisherService"),g=require("../../manager-api/data/AxiosManagerApiDataSource"),x=require("../../manager-api/service/DefaultManagerApiService"),A=require("../../secure-channel/data/DefaultSecureChannelDataSource"),C=require("../../secure-channel/service/DefaultSecureChannelService"),s=require("../../send/use-case/SendApduUseCase");vi.mock("@internal/manager-api/data/AxiosManagerApiDataSource");let e,o,m,a,d,t;const c="fakeSessionId";describe("SendApduUseCase",()=>{beforeEach(()=>{e=new D.DefaultLoggerPublisherService([],"send-apdu-use-case"),o=new v.DefaultDeviceSessionService(()=>e),m=new g.AxiosManagerApiDataSource({}),a=new x.DefaultManagerApiService(m),d=new A.DefaultSecureChannelDataSource({}),t=new C.DefaultSecureChannelService(d)}),it("should send an APDU to a connected device",async()=>{const r=(0,p.deviceSessionStubBuilder)({},()=>e,a,t,u.DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS);o.addDeviceSession(r);const S=await new s.SendApduUseCase(o,()=>e).execute({sessionId:c,apdu:new Uint8Array([0,1,2,3])});r.close(),expect(r.connectedDevice.sendApdu).toHaveBeenCalledTimes(1),expect(S).toBeDefined()}),it("should throw an error if the deviceSession is not found",async()=>{const n=new s.SendApduUseCase(o,()=>e).execute({sessionId:c,apdu:new Uint8Array([0,1,2,3])});await expect(n).rejects.toBeInstanceOf(i.DeviceSessionNotFound)}),it("should throw an error if the apdu receiver failed",async()=>{const r=(0,l.connectedDeviceStubBuilder)({sendApdu:vi.fn(async()=>Promise.resolve((0,f.Left)(new i.ReceiverApduError)))}),n=(0,p.deviceSessionStubBuilder)({connectedDevice:r},()=>e,a,t,u.DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS);o.addDeviceSession(n);const h=new s.SendApduUseCase(o,()=>e).execute({sessionId:c,apdu:new Uint8Array([0,1,2,3])});n.close(),await expect(h).rejects.toBeInstanceOf(i.ReceiverApduError)})});
1
+ "use strict";var n=require("purify-ts"),v=require("../../../api/device-session/ApduResponse"),d=require("../../device-session/model/Errors"),p=require("../../logger-publisher/service/DefaultLoggerPublisherService"),c=require("../../send/use-case/SendApduUseCase");let r,e,o;const t="fakeSessionId";describe("SendApduUseCase",()=>{beforeEach(()=>{r=new p.DefaultLoggerPublisherService([],"send-apdu-use-case"),o={sendApdu:vi.fn()},e={getDeviceSessionById:vi.fn()}}),it("should send an APDU to a connected device",async()=>{const s=new Uint8Array([0,1,2,3]),i=new v.ApduResponse({statusCode:new Uint8Array([144,0]),data:new Uint8Array([])});vi.mocked(e.getDeviceSessionById).mockReturnValue((0,n.Right)(o)),vi.mocked(o.sendApdu).mockResolvedValue((0,n.Right)(i));const u=await new c.SendApduUseCase(e,()=>r).execute({sessionId:t,apdu:s});expect(e.getDeviceSessionById).toHaveBeenCalledWith(t),expect(o.sendApdu).toHaveBeenCalledWith(s,{abortTimeout:void 0,triggersDisconnection:void 0}),expect(u).toBe(i)}),it("should throw an error if the deviceSession is not found",async()=>{const s=new d.DeviceSessionNotFound;vi.mocked(e.getDeviceSessionById).mockReturnValue((0,n.Left)(s));const a=new c.SendApduUseCase(e,()=>r).execute({sessionId:t,apdu:new Uint8Array([0,1,2,3])});await expect(a).rejects.toBe(s),expect(e.getDeviceSessionById).toHaveBeenCalledWith(t)}),it("should throw an error if the apdu receiver failed",async()=>{const s=new Uint8Array([0,1,2,3]),i=new d.ReceiverApduError;vi.mocked(e.getDeviceSessionById).mockReturnValue((0,n.Right)(o)),vi.mocked(o.sendApdu).mockResolvedValue((0,n.Left)(i));const u=new c.SendApduUseCase(e,()=>r).execute({sessionId:t,apdu:s});await expect(u).rejects.toBe(i),expect(e.getDeviceSessionById).toHaveBeenCalledWith(t),expect(o.sendApdu).toHaveBeenCalledWith(s,{abortTimeout:void 0,triggersDisconnection:void 0})})});
2
2
  //# sourceMappingURL=SendApduUseCase.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/send/use-case/SendApduUseCase.test.ts"],
4
- "sourcesContent": ["import { Left } from \"purify-ts\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { connectedDeviceStubBuilder } from \"@api/transport/model/TransportConnectedDevice.stub\";\nimport { DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { deviceSessionStubBuilder } from \"@internal/device-session/model/DeviceSession.stub\";\nimport {\n DeviceSessionNotFound,\n ReceiverApduError,\n} from \"@internal/device-session/model/Errors\";\nimport { DefaultDeviceSessionService } from \"@internal/device-session/service/DefaultDeviceSessionService\";\nimport { type DeviceSessionService } from \"@internal/device-session/service/DeviceSessionService\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\nimport { AxiosManagerApiDataSource } from \"@internal/manager-api/data/AxiosManagerApiDataSource\";\nimport { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\nimport { DefaultManagerApiService } from \"@internal/manager-api/service/DefaultManagerApiService\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { type SecureChannelDataSource } from \"@internal/secure-channel/data/SecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\nimport { SendApduUseCase } from \"@internal/send/use-case/SendApduUseCase\";\n\nvi.mock(\"@internal/manager-api/data/AxiosManagerApiDataSource\");\n\nlet logger: LoggerPublisherService;\nlet sessionService: DeviceSessionService;\nlet managerApiDataSource: ManagerApiDataSource;\nlet managerApi: ManagerApiService;\nlet secureChannelDataSource: SecureChannelDataSource;\nlet secureChannel: SecureChannelService;\nconst fakeSessionId = \"fakeSessionId\";\n\ndescribe(\"SendApduUseCase\", () => {\n beforeEach(() => {\n logger = new DefaultLoggerPublisherService([], \"send-apdu-use-case\");\n sessionService = new DefaultDeviceSessionService(() => logger);\n managerApiDataSource = new AxiosManagerApiDataSource({} as DmkConfig);\n managerApi = new DefaultManagerApiService(managerApiDataSource);\n secureChannelDataSource = new DefaultSecureChannelDataSource(\n {} as DmkConfig,\n );\n secureChannel = new DefaultSecureChannelService(secureChannelDataSource);\n });\n\n it(\"should send an APDU to a connected device\", async () => {\n // given\n const deviceSession = deviceSessionStubBuilder(\n {},\n () => logger,\n managerApi,\n secureChannel,\n DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS,\n );\n sessionService.addDeviceSession(deviceSession);\n const useCase = new SendApduUseCase(sessionService, () => logger);\n\n // when\n const response = await useCase.execute({\n sessionId: fakeSessionId,\n apdu: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n });\n\n deviceSession.close();\n // then\n expect(deviceSession.connectedDevice.sendApdu).toHaveBeenCalledTimes(1);\n expect(response).toBeDefined();\n });\n\n it(\"should throw an error if the deviceSession is not found\", async () => {\n // given\n const useCase = new SendApduUseCase(sessionService, () => logger);\n\n // when\n const response = useCase.execute({\n sessionId: fakeSessionId,\n apdu: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n });\n\n // then\n await expect(response).rejects.toBeInstanceOf(DeviceSessionNotFound);\n });\n\n it(\"should throw an error if the apdu receiver failed\", async () => {\n // given\n const connectedDevice = connectedDeviceStubBuilder({\n sendApdu: vi.fn(async () =>\n Promise.resolve(Left(new ReceiverApduError())),\n ),\n });\n const deviceSession = deviceSessionStubBuilder(\n { connectedDevice },\n () => logger,\n managerApi,\n secureChannel,\n DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS,\n );\n sessionService.addDeviceSession(deviceSession);\n const useCase = new SendApduUseCase(sessionService, () => logger);\n\n // when\n const response = useCase.execute({\n sessionId: fakeSessionId,\n apdu: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n });\n\n deviceSession.close();\n\n // then\n await expect(response).rejects.toBeInstanceOf(ReceiverApduError);\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAAqB,qBAIrBC,EAA2C,8DAC3CC,EAAyD,qEACzDC,EAAyC,6DACzCC,EAGO,iDACPC,EAA4C,wEAE5CC,EAA8C,4EAC9CC,EAA0C,gEAE1CC,EAAyC,kEAEzCC,EAA+C,wEAE/CC,EAA4C,wEAE5CC,EAAgC,mDAEhC,GAAG,KAAK,sDAAsD,EAE9D,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACJ,MAAMC,EAAgB,gBAEtB,SAAS,kBAAmB,IAAM,CAChC,WAAW,IAAM,CACfN,EAAS,IAAI,gCAA8B,CAAC,EAAG,oBAAoB,EACnEC,EAAiB,IAAI,8BAA4B,IAAMD,CAAM,EAC7DE,EAAuB,IAAI,4BAA0B,CAAC,CAAc,EACpEC,EAAa,IAAI,2BAAyBD,CAAoB,EAC9DE,EAA0B,IAAI,iCAC5B,CAAC,CACH,EACAC,EAAgB,IAAI,8BAA4BD,CAAuB,CACzE,CAAC,EAED,GAAG,4CAA6C,SAAY,CAE1D,MAAMG,KAAgB,4BACpB,CAAC,EACD,IAAMP,EACNG,EACAE,EACA,0CACF,EACAJ,EAAe,iBAAiBM,CAAa,EAI7C,MAAMC,EAAW,MAHD,IAAI,kBAAgBP,EAAgB,IAAMD,CAAM,EAGjC,QAAQ,CACrC,UAAWM,EACX,KAAM,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,CAC/C,CAAC,EAEDC,EAAc,MAAM,EAEpB,OAAOA,EAAc,gBAAgB,QAAQ,EAAE,sBAAsB,CAAC,EACtE,OAAOC,CAAQ,EAAE,YAAY,CAC/B,CAAC,EAED,GAAG,0DAA2D,SAAY,CAKxE,MAAMA,EAHU,IAAI,kBAAgBP,EAAgB,IAAMD,CAAM,EAGvC,QAAQ,CAC/B,UAAWM,EACX,KAAM,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,CAC/C,CAAC,EAGD,MAAM,OAAOE,CAAQ,EAAE,QAAQ,eAAe,uBAAqB,CACrE,CAAC,EAED,GAAG,oDAAqD,SAAY,CAElE,MAAMC,KAAkB,8BAA2B,CACjD,SAAU,GAAG,GAAG,SACd,QAAQ,WAAQ,QAAK,IAAI,mBAAmB,CAAC,CAC/C,CACF,CAAC,EACKF,KAAgB,4BACpB,CAAE,gBAAAE,CAAgB,EAClB,IAAMT,EACNG,EACAE,EACA,0CACF,EACAJ,EAAe,iBAAiBM,CAAa,EAI7C,MAAMC,EAHU,IAAI,kBAAgBP,EAAgB,IAAMD,CAAM,EAGvC,QAAQ,CAC/B,UAAWM,EACX,KAAM,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,CAC/C,CAAC,EAEDC,EAAc,MAAM,EAGpB,MAAM,OAAOC,CAAQ,EAAE,QAAQ,eAAe,mBAAiB,CACjE,CAAC,CACH,CAAC",
6
- "names": ["import_purify_ts", "import_TransportConnectedDevice", "import_DeviceSessionRefresherConst", "import_DeviceSession", "import_Errors", "import_DefaultDeviceSessionService", "import_DefaultLoggerPublisherService", "import_AxiosManagerApiDataSource", "import_DefaultManagerApiService", "import_DefaultSecureChannelDataSource", "import_DefaultSecureChannelService", "import_SendApduUseCase", "logger", "sessionService", "managerApiDataSource", "managerApi", "secureChannelDataSource", "secureChannel", "fakeSessionId", "deviceSession", "response", "connectedDevice"]
4
+ "sourcesContent": ["import { Left, Right } from \"purify-ts\";\n\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { type DeviceSession } from \"@internal/device-session/model/DeviceSession\";\nimport {\n DeviceSessionNotFound,\n ReceiverApduError,\n} from \"@internal/device-session/model/Errors\";\nimport { type DeviceSessionService } from \"@internal/device-session/service/DeviceSessionService\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\nimport { SendApduUseCase } from \"@internal/send/use-case/SendApduUseCase\";\n\nlet logger: LoggerPublisherService;\nlet sessionService: DeviceSessionService;\nlet mockDeviceSession: DeviceSession;\nconst fakeSessionId = \"fakeSessionId\";\n\ndescribe(\"SendApduUseCase\", () => {\n beforeEach(() => {\n logger = new DefaultLoggerPublisherService([], \"send-apdu-use-case\");\n\n // Mock DeviceSession with sendApdu method\n mockDeviceSession = {\n sendApdu: vi.fn(),\n } as unknown as DeviceSession;\n\n // Mock DeviceSessionService\n sessionService = {\n getDeviceSessionById: vi.fn(),\n } as unknown as DeviceSessionService;\n });\n\n it(\"should send an APDU to a connected device\", async () => {\n // given\n const apdu = new Uint8Array([0x00, 0x01, 0x02, 0x03]);\n const expectedResponse = new ApduResponse({\n statusCode: new Uint8Array([0x90, 0x00]),\n data: new Uint8Array([]),\n });\n\n vi.mocked(sessionService.getDeviceSessionById).mockReturnValue(\n Right(mockDeviceSession),\n );\n vi.mocked(mockDeviceSession.sendApdu).mockResolvedValue(\n Right(expectedResponse),\n );\n\n const useCase = new SendApduUseCase(sessionService, () => logger);\n\n // when\n const response = await useCase.execute({\n sessionId: fakeSessionId,\n apdu,\n });\n\n // then\n expect(sessionService.getDeviceSessionById).toHaveBeenCalledWith(\n fakeSessionId,\n );\n expect(mockDeviceSession.sendApdu).toHaveBeenCalledWith(apdu, {\n abortTimeout: undefined,\n triggersDisconnection: undefined,\n });\n expect(response).toBe(expectedResponse);\n });\n\n it(\"should throw an error if the deviceSession is not found\", async () => {\n // given\n const notFoundError = new DeviceSessionNotFound();\n vi.mocked(sessionService.getDeviceSessionById).mockReturnValue(\n Left(notFoundError),\n );\n\n const useCase = new SendApduUseCase(sessionService, () => logger);\n\n // when\n const response = useCase.execute({\n sessionId: fakeSessionId,\n apdu: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n });\n\n // then\n await expect(response).rejects.toBe(notFoundError);\n expect(sessionService.getDeviceSessionById).toHaveBeenCalledWith(\n fakeSessionId,\n );\n });\n\n it(\"should throw an error if the apdu receiver failed\", async () => {\n // given\n const apdu = new Uint8Array([0x00, 0x01, 0x02, 0x03]);\n const receiverError = new ReceiverApduError();\n\n vi.mocked(sessionService.getDeviceSessionById).mockReturnValue(\n Right(mockDeviceSession),\n );\n vi.mocked(mockDeviceSession.sendApdu).mockResolvedValue(\n Left(receiverError),\n );\n\n const useCase = new SendApduUseCase(sessionService, () => logger);\n\n // when\n const response = useCase.execute({\n sessionId: fakeSessionId,\n apdu,\n });\n\n // then\n await expect(response).rejects.toBe(receiverError);\n expect(sessionService.getDeviceSessionById).toHaveBeenCalledWith(\n fakeSessionId,\n );\n expect(mockDeviceSession.sendApdu).toHaveBeenCalledWith(apdu, {\n abortTimeout: undefined,\n triggersDisconnection: undefined,\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAA4B,qBAE5BC,EAA6B,4CAG7BC,EAGO,iDAEPC,EAA8C,4EAC9CC,EAAgC,mDAEhC,IAAIC,EACAC,EACAC,EACJ,MAAMC,EAAgB,gBAEtB,SAAS,kBAAmB,IAAM,CAChC,WAAW,IAAM,CACfH,EAAS,IAAI,gCAA8B,CAAC,EAAG,oBAAoB,EAGnEE,EAAoB,CAClB,SAAU,GAAG,GAAG,CAClB,EAGAD,EAAiB,CACf,qBAAsB,GAAG,GAAG,CAC9B,CACF,CAAC,EAED,GAAG,4CAA6C,SAAY,CAE1D,MAAMG,EAAO,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,EAC9CC,EAAmB,IAAI,eAAa,CACxC,WAAY,IAAI,WAAW,CAAC,IAAM,CAAI,CAAC,EACvC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAED,GAAG,OAAOJ,EAAe,oBAAoB,EAAE,mBAC7C,SAAMC,CAAiB,CACzB,EACA,GAAG,OAAOA,EAAkB,QAAQ,EAAE,qBACpC,SAAMG,CAAgB,CACxB,EAKA,MAAMC,EAAW,MAHD,IAAI,kBAAgBL,EAAgB,IAAMD,CAAM,EAGjC,QAAQ,CACrC,UAAWG,EACX,KAAAC,CACF,CAAC,EAGD,OAAOH,EAAe,oBAAoB,EAAE,qBAC1CE,CACF,EACA,OAAOD,EAAkB,QAAQ,EAAE,qBAAqBE,EAAM,CAC5D,aAAc,OACd,sBAAuB,MACzB,CAAC,EACD,OAAOE,CAAQ,EAAE,KAAKD,CAAgB,CACxC,CAAC,EAED,GAAG,0DAA2D,SAAY,CAExE,MAAME,EAAgB,IAAI,wBAC1B,GAAG,OAAON,EAAe,oBAAoB,EAAE,mBAC7C,QAAKM,CAAa,CACpB,EAKA,MAAMD,EAHU,IAAI,kBAAgBL,EAAgB,IAAMD,CAAM,EAGvC,QAAQ,CAC/B,UAAWG,EACX,KAAM,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,CAC/C,CAAC,EAGD,MAAM,OAAOG,CAAQ,EAAE,QAAQ,KAAKC,CAAa,EACjD,OAAON,EAAe,oBAAoB,EAAE,qBAC1CE,CACF,CACF,CAAC,EAED,GAAG,oDAAqD,SAAY,CAElE,MAAMC,EAAO,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,EAC9CI,EAAgB,IAAI,oBAE1B,GAAG,OAAOP,EAAe,oBAAoB,EAAE,mBAC7C,SAAMC,CAAiB,CACzB,EACA,GAAG,OAAOA,EAAkB,QAAQ,EAAE,qBACpC,QAAKM,CAAa,CACpB,EAKA,MAAMF,EAHU,IAAI,kBAAgBL,EAAgB,IAAMD,CAAM,EAGvC,QAAQ,CAC/B,UAAWG,EACX,KAAAC,CACF,CAAC,EAGD,MAAM,OAAOE,CAAQ,EAAE,QAAQ,KAAKE,CAAa,EACjD,OAAOP,EAAe,oBAAoB,EAAE,qBAC1CE,CACF,EACA,OAAOD,EAAkB,QAAQ,EAAE,qBAAqBE,EAAM,CAC5D,aAAc,OACd,sBAAuB,MACzB,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_purify_ts", "import_ApduResponse", "import_Errors", "import_DefaultLoggerPublisherService", "import_SendApduUseCase", "logger", "sessionService", "mockDeviceSession", "fakeSessionId", "apdu", "expectedResponse", "response", "notFoundError", "receiverError"]
7
7
  }
@@ -1,63 +1,68 @@
1
1
  {
2
- "name": "@ledgerhq/device-management-kit",
3
- "version": "0.9.1",
4
- "private": false,
5
- "license": "Apache-2.0",
2
+ "dependencies": {
3
+ "@noble/hashes": "^1.8.0",
4
+ "@sentry/minimal": "catalog:",
5
+ "axios": "catalog:",
6
+ "inversify": "catalog:",
7
+ "isomorphic-ws": "catalog:",
8
+ "purify-ts": "catalog:",
9
+ "reflect-metadata": "catalog:",
10
+ "semver": "catalog:",
11
+ "url": "catalog:",
12
+ "uuid": "catalog:",
13
+ "ws": "catalog:",
14
+ "xstate": "catalog:"
15
+ },
16
+ "devDependencies": {
17
+ "@ledgerhq/eslint-config-dsdk": "workspace:^",
18
+ "@ledgerhq/ldmk-tool": "workspace:^",
19
+ "@ledgerhq/prettier-config-dsdk": "workspace:^",
20
+ "@ledgerhq/tsconfig-dsdk": "workspace:^",
21
+ "@ledgerhq/vitest-config-dmk": "workspace:^",
22
+ "@statelyai/inspect": "catalog:",
23
+ "@types/semver": "catalog:",
24
+ "@types/uuid": "catalog:",
25
+ "@types/ws": "catalog:",
26
+ "rxjs": "catalog:",
27
+ "ts-node": "catalog:"
28
+ },
6
29
  "exports": {
7
30
  ".": {
8
- "types": "./lib/types/index.d.ts",
9
31
  "import": "./lib/esm/index.js",
10
- "require": "./lib/cjs/index.js"
32
+ "require": "./lib/cjs/index.js",
33
+ "types": "./lib/types/index.d.ts"
11
34
  }
12
35
  },
13
36
  "files": [
14
37
  "./lib",
15
38
  "package.json"
16
39
  ],
40
+ "license": "Apache-2.0",
41
+ "name": "@ledgerhq/device-management-kit",
42
+ "peerDependencies": {
43
+ "rxjs": "catalog:"
44
+ },
45
+ "private": false,
46
+ "repository": {
47
+ "type": "git",
48
+ "url": "https://github.com/LedgerHQ/device-sdk-ts.git"
49
+ },
17
50
  "scripts": {
18
- "prebuild": "rimraf lib",
19
51
  "build": "pnpm ldmk-tool build --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
20
52
  "dev": "concurrently \"pnpm watch:builds\" \"pnpm watch:types\"",
21
- "watch:builds": "pnpm ldmk-tool watch --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
22
- "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\"",
23
53
  "lint": "eslint",
24
54
  "lint:fix": "pnpm lint --fix",
55
+ "module:create": "pnpm hygen core-module with-prompt",
25
56
  "postpack": "find . -name '*.tgz' -exec cp {} ../../dist/ \\; ",
57
+ "prebuild": "rimraf lib",
26
58
  "prettier": "prettier . --check",
27
59
  "prettier:fix": "prettier . --write",
28
60
  "test": "vitest run",
29
- "test:watch": "vitest",
30
61
  "test:coverage": "vitest run --coverage",
62
+ "test:watch": "vitest",
31
63
  "typecheck": "tsc --noEmit",
32
- "module:create": "pnpm hygen core-module with-prompt"
33
- },
34
- "dependencies": {
35
- "@sentry/minimal": "catalog:",
36
- "axios": "catalog:",
37
- "inversify": "catalog:",
38
- "isomorphic-ws": "catalog:",
39
- "purify-ts": "catalog:",
40
- "reflect-metadata": "catalog:",
41
- "semver": "catalog:",
42
- "url": "catalog:",
43
- "uuid": "catalog:",
44
- "ws": "catalog:",
45
- "xstate": "catalog:"
46
- },
47
- "peerDependencies": {
48
- "rxjs": "catalog:"
64
+ "watch:builds": "pnpm ldmk-tool watch --entryPoints index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
65
+ "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\""
49
66
  },
50
- "devDependencies": {
51
- "@ledgerhq/ldmk-tool": "workspace:*",
52
- "@ledgerhq/eslint-config-dsdk": "workspace:*",
53
- "@ledgerhq/prettier-config-dsdk": "workspace:*",
54
- "@ledgerhq/tsconfig-dsdk": "workspace:*",
55
- "@ledgerhq/vitest-config-dmk": "workspace:*",
56
- "@statelyai/inspect": "catalog:",
57
- "@types/semver": "catalog:",
58
- "@types/uuid": "catalog:",
59
- "@types/ws": "catalog:",
60
- "rxjs": "catalog:",
61
- "ts-node": "catalog:"
62
- }
67
+ "version": "0.0.0-z-intent-queue-7-20251204111630"
63
68
  }
@@ -1,2 +1,2 @@
1
- import{commandTypes as c}from"./command/di/commandTypes";import{configTypes as a}from"../internal/config/di/configTypes";import{deviceSessionTypes as t}from"../internal/device-session/di/deviceSessionTypes";import{discoveryTypes as s}from"../internal/discovery/di/discoveryTypes";import{managerApiTypes as r}from"../internal/manager-api/di/managerApiTypes";import{sendTypes as p}from"../internal/send/di/sendTypes";import{transportDiTypes as m}from"../internal/transport/di/transportDiTypes";import{makeContainer as C}from"../../src/di";import{deviceActionTypes as v}from"./device-action/di/deviceActionTypes";class x{container;constructor({stub:e,transports:i,loggers:o,config:n}={}){this.container=C({stub:e,transports:i,loggers:o,config:n})}getVersion(){return this.container.get(a.GetDmkVersionUseCase).getDmkVersion()}startDiscovering(e){return this.container.get(s.StartDiscoveringUseCase).execute(e)}stopDiscovering(){return this.container.get(s.StopDiscoveringUseCase).execute()}listenToAvailableDevices(e){return this.container.get(s.ListenToAvailableDevicesUseCase).execute(e)}connect(e){return this.container.get(s.ConnectUseCase).execute(e)}disconnect(e){return this.container.get(s.DisconnectUseCase).execute(e)}sendApdu(e){return this.container.get(p.SendApduUseCase).execute(e)}sendCommand(e){return this.container.get(c.SendCommandUseCase).execute(e)}executeDeviceAction(e){return this.container.get(v.ExecuteDeviceActionUseCase).execute(e)}getConnectedDevice(e){return this.container.get(s.GetConnectedDeviceUseCase).execute(e)}getDeviceSessionState(e){return this.container.get(t.GetDeviceSessionStateUseCase).execute(e)}close(){return this.container.get(t.CloseSessionsUseCase).execute()}listConnectedDevices(){return this.container.get(s.ListConnectedDevicesUseCase).execute()}listenToConnectedDevice(){return this.container.get(s.ListenToConnectedDeviceUseCase).execute()}disableDeviceSessionRefresher(e){return this.container.get(t.DisableDeviceSessionRefresherUseCase).execute(e)}setProvider(e){return this.container.get(r.SetProviderUseCase).execute(e)}getProvider(){return this.container.get(r.ManagerApiDataSource).getProvider()}isEnvironmentSupported(){return this.container.get(m.TransportService).getAllTransports().some(e=>e.isSupported())}}export{x as DeviceManagementKit};
1
+ import{commandTypes as a}from"./command/di/commandTypes";import{configTypes as c}from"../internal/config/di/configTypes";import{deviceSessionTypes as t}from"../internal/device-session/di/deviceSessionTypes";import{discoveryTypes as s}from"../internal/discovery/di/discoveryTypes";import{managerApiTypes as r}from"../internal/manager-api/di/managerApiTypes";import{sendTypes as p}from"../internal/send/di/sendTypes";import{transportDiTypes as m}from"../internal/transport/di/transportDiTypes";import{makeContainer as C}from"../../src/di";import{deviceActionTypes as v}from"./device-action/di/deviceActionTypes";class x{container;constructor({stub:e,transports:n,loggers:i,config:o}={}){this.container=C({stub:e,transports:n,loggers:i,config:o})}getVersion(){return this.container.get(c.GetDmkVersionUseCase).getDmkVersion()}startDiscovering(e){return this.container.get(s.StartDiscoveringUseCase).execute(e)}stopDiscovering(){return this.container.get(s.StopDiscoveringUseCase).execute()}listenToAvailableDevices(e){return this.container.get(s.ListenToAvailableDevicesUseCase).execute(e)}async reconnect(e){return this.container.get(s.ReconnectUseCase).execute(e)}connect(e){return this.container.get(s.ConnectUseCase).execute(e)}disconnect(e){return this.container.get(s.DisconnectUseCase).execute(e)}sendApdu(e){return this.container.get(p.SendApduUseCase).execute(e)}sendCommand(e){return this.container.get(a.SendCommandUseCase).execute(e)}executeDeviceAction(e){return this.container.get(v.ExecuteDeviceActionUseCase).execute(e)}getConnectedDevice(e){return this.container.get(s.GetConnectedDeviceUseCase).execute(e)}getDeviceSessionState(e){return this.container.get(t.GetDeviceSessionStateUseCase).execute(e)}close(){return this.container.get(t.CloseSessionsUseCase).execute()}listConnectedDevices(){return this.container.get(s.ListConnectedDevicesUseCase).execute()}listenToConnectedDevice(){return this.container.get(s.ListenToConnectedDeviceUseCase).execute()}disableDeviceSessionRefresher(e){return this.container.get(t.DisableDeviceSessionRefresherUseCase).execute(e)}_unsafeBypassIntentQueue(e){return this.container.get(t.UnsafeBypassIntentQueueUseCase).execute(e)}setProvider(e){return this.container.get(r.SetProviderUseCase).execute(e)}getProvider(){return this.container.get(r.ManagerApiDataSource).getProvider()}isEnvironmentSupported(){return this.container.get(m.TransportService).getAllTransports().some(e=>e.isSupported())}}export{x as DeviceManagementKit};
2
2
  //# sourceMappingURL=DeviceManagementKit.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/DeviceManagementKit.ts"],
4
- "sourcesContent": ["import { type Container } from \"inversify\";\nimport { type Observable } from \"rxjs\";\n\nimport { commandTypes } from \"@api/command/di/commandTypes\";\nimport { type CommandResult } from \"@api/command/model/CommandResult\";\nimport {\n type SendCommandUseCase,\n type SendCommandUseCaseArgs,\n} from \"@api/command/use-case/SendCommandUseCase\";\nimport {\n type ExecuteDeviceActionUseCase,\n type ExecuteDeviceActionUseCaseArgs,\n} from \"@api/device-action/use-case/ExecuteDeviceActionUseCase\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport { type DeviceSessionId } from \"@api/device-session/types\";\nimport { type ConnectedDevice } from \"@api/transport/model/ConnectedDevice\";\nimport {\n type ConnectUseCaseArgs,\n type DisconnectUseCaseArgs,\n type DiscoveredDevice,\n type GetConnectedDeviceUseCaseArgs,\n type SendApduUseCaseArgs,\n type StartDiscoveringUseCaseArgs,\n} from \"@api/types\";\nimport { configTypes } from \"@internal/config/di/configTypes\";\nimport { type GetDmkVersionUseCase } from \"@internal/config/use-case/GetDmkVersionUseCase\";\nimport { deviceSessionTypes } from \"@internal/device-session/di/deviceSessionTypes\";\nimport { type CloseSessionsUseCase } from \"@internal/device-session/use-case/CloseSessionsUseCase\";\nimport { type GetDeviceSessionStateUseCase } from \"@internal/device-session/use-case/GetDeviceSessionStateUseCase\";\nimport { discoveryTypes } from \"@internal/discovery/di/discoveryTypes\";\nimport { type ConnectUseCase } from \"@internal/discovery/use-case/ConnectUseCase\";\nimport { type DisconnectUseCase } from \"@internal/discovery/use-case/DisconnectUseCase\";\nimport { type GetConnectedDeviceUseCase } from \"@internal/discovery/use-case/GetConnectedDeviceUseCase\";\nimport { type ListConnectedDevicesUseCase } from \"@internal/discovery/use-case/ListConnectedDevicesUseCase\";\nimport {\n type ListenToAvailableDevicesUseCase,\n type ListenToAvailableDevicesUseCaseArgs,\n} from \"@internal/discovery/use-case/ListenToAvailableDevicesUseCase\";\nimport { type ListenToConnectedDeviceUseCase } from \"@internal/discovery/use-case/ListenToConnectedDeviceUseCase\";\nimport type { StartDiscoveringUseCase } from \"@internal/discovery/use-case/StartDiscoveringUseCase\";\nimport type { StopDiscoveringUseCase } from \"@internal/discovery/use-case/StopDiscoveringUseCase\";\nimport { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\nimport { managerApiTypes } from \"@internal/manager-api/di/managerApiTypes\";\nimport { type SetProviderUseCase } from \"@internal/manager-api/use-case/SetProviderUseCase\";\nimport { sendTypes } from \"@internal/send/di/sendTypes\";\nimport { type SendApduUseCase } from \"@internal/send/use-case/SendApduUseCase\";\nimport { transportDiTypes } from \"@internal/transport/di/transportDiTypes\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\nimport { makeContainer, type MakeContainerProps } from \"@root/src/di\";\n\nimport {\n type DeviceActionIntermediateValue,\n type ExecuteDeviceActionReturnType,\n} from \"./device-action/DeviceAction\";\nimport { deviceActionTypes } from \"./device-action/di/deviceActionTypes\";\nimport { type DisableDeviceSessionRefresherUseCase } from \"./device-session/use-case/DisableDeviceSessionRefresher\";\nimport { type DmkError } from \"./Error\";\n\n/**\n * The main class to interact with the Device Management Kit.\n *\n * NB: do not instantiate this class directly, instead, use `LedgerDMKBuilder`.\n */\nexport class DeviceManagementKit {\n readonly container: Container;\n /** @internal */\n constructor({\n stub,\n transports,\n loggers,\n config,\n }: Partial<MakeContainerProps> = {}) {\n // NOTE: MakeContainerProps might not be the exact type here\n // For the init of the project this is sufficient, but we might need to\n // update the constructor arguments as we go (we might have more than just the container config)\n this.container = makeContainer({\n stub,\n transports,\n loggers,\n config,\n });\n }\n\n /**\n * Returns a promise resolving to the version of the SDK.\n */\n getVersion(): Promise<string> {\n return this.container\n .get<GetDmkVersionUseCase>(configTypes.GetDmkVersionUseCase)\n .getDmkVersion();\n }\n\n /**\n * Starts discovering devices connected.\n *\n * For the WeHID implementation, this use-case needs to be called as a result\n * of an user interaction (button \"click\" event for ex).\n *\n * @param {StartDiscoveringUseCaseArgs} args - The transport to use for discover, or undefined to discover from all transports.\n * @returns {Observable<DiscoveredDevice>} An observable of discovered devices.\n */\n startDiscovering(\n args: StartDiscoveringUseCaseArgs,\n ): Observable<DiscoveredDevice> {\n return this.container\n .get<StartDiscoveringUseCase>(discoveryTypes.StartDiscoveringUseCase)\n .execute(args);\n }\n\n /**\n * Stops discovering devices connected.\n */\n stopDiscovering() {\n return this.container\n .get<StopDiscoveringUseCase>(discoveryTypes.StopDiscoveringUseCase)\n .execute();\n }\n\n /**\n * Listen to list of known discovered devices (and later BLE).\n * @param {ListenToAvailableDevicesUseCaseArgs} args - The transport to use for discover, or undefined to discover from all transports.\n * @returns {Observable<DiscoveredDevice[]>} An observable of known discovered devices.\n */\n listenToAvailableDevices(\n args: ListenToAvailableDevicesUseCaseArgs,\n ): Observable<DiscoveredDevice[]> {\n return this.container\n .get<ListenToAvailableDevicesUseCase>(\n discoveryTypes.ListenToAvailableDevicesUseCase,\n )\n .execute(args);\n }\n\n /**\n * Connects to a device previously discovered with `DeviceManagementKit.startDiscovering`.\n * Creates a new device session which:\n * - Represents the connection to the device.\n * - Is terminated upon disconnection of the device.\n * - Exposes the device state through an observable (see `DeviceManagementKit.getDeviceSessionState`)\n * - Should be used for all subsequent communication with the device.\n *\n * @param {ConnectUseCaseArgs} args - The arguments for connecting to the device.\n * - `device`: The discovered device obtained from `StartDiscoveringUseCase`.\n * - `sessionRefresherOptions` (optional): Configuration for session refreshing.\n * - `isRefresherDisabled`: Whether the refresher is disabled.\n * - `pollingInterval`: The refresh interval in milliseconds\n * @returns The session ID to use for further communication with the device.\n */\n connect(args: ConnectUseCaseArgs): Promise<DeviceSessionId> {\n return this.container\n .get<ConnectUseCase>(discoveryTypes.ConnectUseCase)\n .execute(args);\n }\n\n /**\n * Disconnects to a discovered device.\n *\n * @param {DisconnectUseCaseArgs} args - The session ID to disconnect.\n */\n disconnect(args: DisconnectUseCaseArgs): Promise<void> {\n return this.container\n .get<DisconnectUseCase>(discoveryTypes.DisconnectUseCase)\n .execute(args);\n }\n\n /**\n * Sends an APDU command to a device through a device session.\n *\n * @param {SendApduUseCaseArgs} args - The device session ID and APDU command to send.\n */\n sendApdu(args: SendApduUseCaseArgs): Promise<ApduResponse> {\n return this.container\n .get<SendApduUseCase>(sendTypes.SendApduUseCase)\n .execute(args);\n }\n\n /**\n * Sends a command to a device through a device session.\n *\n * @param {SendCommandUseCaseArgs<Response, Args, ErrorCodes>} args - The device session ID, command, command error codes and command parameters to send.\n * @returns A promise resolving with the response from the command.\n */\n sendCommand<Response, Args, ErrorCodes>(\n args: SendCommandUseCaseArgs<Response, Args, ErrorCodes>,\n ): Promise<CommandResult<Response, ErrorCodes>> {\n return this.container\n .get<SendCommandUseCase>(commandTypes.SendCommandUseCase)\n .execute(args);\n }\n\n executeDeviceAction<\n Output,\n Input,\n Error extends DmkError,\n IntermediateValue extends DeviceActionIntermediateValue,\n >(\n args: ExecuteDeviceActionUseCaseArgs<\n Output,\n Input,\n Error,\n IntermediateValue\n >,\n ): ExecuteDeviceActionReturnType<Output, Error, IntermediateValue> {\n return this.container\n .get<ExecuteDeviceActionUseCase>(\n deviceActionTypes.ExecuteDeviceActionUseCase,\n )\n .execute(args);\n }\n\n /**\n * Gets the connected from its device session ID.\n *\n * @param {GetConnectedDeviceUseCaseArgs} args - The device session ID.\n * @returns {ConnectedDevice} The connected device.\n */\n getConnectedDevice(args: GetConnectedDeviceUseCaseArgs): ConnectedDevice {\n return this.container\n .get<GetConnectedDeviceUseCase>(discoveryTypes.GetConnectedDeviceUseCase)\n .execute(args);\n }\n\n /**\n * Gets the device state of a session.\n *\n * @param {{ sessionId: DeviceSessionId }} args - The device session ID.\n * @returns {Observable<DeviceSessionState>} An observable of the session device state.\n */\n getDeviceSessionState(args: {\n sessionId: DeviceSessionId;\n }): Observable<DeviceSessionState> {\n return this.container\n .get<GetDeviceSessionStateUseCase>(\n deviceSessionTypes.GetDeviceSessionStateUseCase,\n )\n .execute(args);\n }\n\n /**\n * Close the Device Management kit.\n *\n */\n close() {\n return this.container\n .get<CloseSessionsUseCase>(deviceSessionTypes.CloseSessionsUseCase)\n .execute();\n }\n\n /**\n * Lists all connected devices.\n *\n * @returns {ConnectedDevice[]} The list of device sessions.\n */\n listConnectedDevices(): ConnectedDevice[] {\n return this.container\n .get<ListConnectedDevicesUseCase>(\n discoveryTypes.ListConnectedDevicesUseCase,\n )\n .execute();\n }\n\n /**\n * Listen to connected device.\n *\n * @returns {Observable<ConnectedDevice>} An observable of connected device.\n */\n listenToConnectedDevice(): Observable<ConnectedDevice> {\n return this.container\n .get<ListenToConnectedDeviceUseCase>(\n discoveryTypes.ListenToConnectedDeviceUseCase,\n )\n .execute();\n }\n\n /**\n * Disable the device session refresher.\n *\n * @param {DisableDeviceSessionRefresherUseCaseArgs} args - The device session ID and a string to identify the blocker.\n * @returns {() => void} A function to reenable the device session refresher.\n */\n disableDeviceSessionRefresher(args: {\n sessionId: DeviceSessionId;\n blockerId: string;\n }): () => void {\n return this.container\n .get<DisableDeviceSessionRefresherUseCase>(\n deviceSessionTypes.DisableDeviceSessionRefresherUseCase,\n )\n .execute(args);\n }\n /**\n * Sets the provider for the manager API.\n *\n * @param {number} provider - The provider to set.\n */\n setProvider(provider: number): void {\n return this.container\n .get<SetProviderUseCase>(managerApiTypes.SetProviderUseCase)\n .execute(provider);\n }\n\n /**\n * Returns the current provider value from the manager API data source.\n */\n getProvider(): number {\n return this.container\n .get<ManagerApiDataSource>(managerApiTypes.ManagerApiDataSource)\n .getProvider();\n }\n\n /**\n * Check if the current environment is supported by any transport.\n */\n isEnvironmentSupported(): boolean {\n return this.container\n .get<TransportService>(transportDiTypes.TransportService)\n .getAllTransports()\n .some((transport) => transport.isSupported());\n }\n}\n"],
5
- "mappings": "AAGA,OAAS,gBAAAA,MAAoB,+BAsB7B,OAAS,eAAAC,MAAmB,kCAE5B,OAAS,sBAAAC,MAA0B,iDAGnC,OAAS,kBAAAC,MAAsB,wCAa/B,OAAS,mBAAAC,MAAuB,2CAEhC,OAAS,aAAAC,MAAiB,8BAE1B,OAAS,oBAAAC,MAAwB,0CAEjC,OAAS,iBAAAC,MAA8C,eAMvD,OAAS,qBAAAC,MAAyB,uCAS3B,MAAMC,CAAoB,CACtB,UAET,YAAY,CACV,KAAAC,EACA,WAAAC,EACA,QAAAC,EACA,OAAAC,CACF,EAAiC,CAAC,EAAG,CAInC,KAAK,UAAYN,EAAc,CAC7B,KAAAG,EACA,WAAAC,EACA,QAAAC,EACA,OAAAC,CACF,CAAC,CACH,CAKA,YAA8B,CAC5B,OAAO,KAAK,UACT,IAA0BZ,EAAY,oBAAoB,EAC1D,cAAc,CACnB,CAWA,iBACEa,EAC8B,CAC9B,OAAO,KAAK,UACT,IAA6BX,EAAe,uBAAuB,EACnE,QAAQW,CAAI,CACjB,CAKA,iBAAkB,CAChB,OAAO,KAAK,UACT,IAA4BX,EAAe,sBAAsB,EACjE,QAAQ,CACb,CAOA,yBACEW,EACgC,CAChC,OAAO,KAAK,UACT,IACCX,EAAe,+BACjB,EACC,QAAQW,CAAI,CACjB,CAiBA,QAAQA,EAAoD,CAC1D,OAAO,KAAK,UACT,IAAoBX,EAAe,cAAc,EACjD,QAAQW,CAAI,CACjB,CAOA,WAAWA,EAA4C,CACrD,OAAO,KAAK,UACT,IAAuBX,EAAe,iBAAiB,EACvD,QAAQW,CAAI,CACjB,CAOA,SAASA,EAAkD,CACzD,OAAO,KAAK,UACT,IAAqBT,EAAU,eAAe,EAC9C,QAAQS,CAAI,CACjB,CAQA,YACEA,EAC8C,CAC9C,OAAO,KAAK,UACT,IAAwBd,EAAa,kBAAkB,EACvD,QAAQc,CAAI,CACjB,CAEA,oBAMEA,EAMiE,CACjE,OAAO,KAAK,UACT,IACCN,EAAkB,0BACpB,EACC,QAAQM,CAAI,CACjB,CAQA,mBAAmBA,EAAsD,CACvE,OAAO,KAAK,UACT,IAA+BX,EAAe,yBAAyB,EACvE,QAAQW,CAAI,CACjB,CAQA,sBAAsBA,EAEa,CACjC,OAAO,KAAK,UACT,IACCZ,EAAmB,4BACrB,EACC,QAAQY,CAAI,CACjB,CAMA,OAAQ,CACN,OAAO,KAAK,UACT,IAA0BZ,EAAmB,oBAAoB,EACjE,QAAQ,CACb,CAOA,sBAA0C,CACxC,OAAO,KAAK,UACT,IACCC,EAAe,2BACjB,EACC,QAAQ,CACb,CAOA,yBAAuD,CACrD,OAAO,KAAK,UACT,IACCA,EAAe,8BACjB,EACC,QAAQ,CACb,CAQA,8BAA8BW,EAGf,CACb,OAAO,KAAK,UACT,IACCZ,EAAmB,oCACrB,EACC,QAAQY,CAAI,CACjB,CAMA,YAAYC,EAAwB,CAClC,OAAO,KAAK,UACT,IAAwBX,EAAgB,kBAAkB,EAC1D,QAAQW,CAAQ,CACrB,CAKA,aAAsB,CACpB,OAAO,KAAK,UACT,IAA0BX,EAAgB,oBAAoB,EAC9D,YAAY,CACjB,CAKA,wBAAkC,CAChC,OAAO,KAAK,UACT,IAAsBE,EAAiB,gBAAgB,EACvD,iBAAiB,EACjB,KAAMU,GAAcA,EAAU,YAAY,CAAC,CAChD,CACF",
4
+ "sourcesContent": ["import { type Container } from \"inversify\";\nimport { type Observable } from \"rxjs\";\n\nimport { commandTypes } from \"@api/command/di/commandTypes\";\nimport { type CommandResult } from \"@api/command/model/CommandResult\";\nimport {\n type SendCommandUseCase,\n type SendCommandUseCaseArgs,\n} from \"@api/command/use-case/SendCommandUseCase\";\nimport {\n type ExecuteDeviceActionUseCase,\n type ExecuteDeviceActionUseCaseArgs,\n} from \"@api/device-action/use-case/ExecuteDeviceActionUseCase\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport { type DeviceSessionId } from \"@api/device-session/types\";\nimport { type ConnectedDevice } from \"@api/transport/model/ConnectedDevice\";\nimport {\n type ConnectUseCaseArgs,\n type DisconnectUseCaseArgs,\n type DiscoveredDevice,\n type GetConnectedDeviceUseCaseArgs,\n type SendApduUseCaseArgs,\n type StartDiscoveringUseCaseArgs,\n} from \"@api/types\";\nimport { configTypes } from \"@internal/config/di/configTypes\";\nimport { type GetDmkVersionUseCase } from \"@internal/config/use-case/GetDmkVersionUseCase\";\nimport { deviceSessionTypes } from \"@internal/device-session/di/deviceSessionTypes\";\nimport { type CloseSessionsUseCase } from \"@internal/device-session/use-case/CloseSessionsUseCase\";\nimport { type GetDeviceSessionStateUseCase } from \"@internal/device-session/use-case/GetDeviceSessionStateUseCase\";\nimport {\n type UnsafeBypassIntentQueueUseCase,\n type UnsafeBypassIntentQueueUseCaseArgs,\n} from \"@internal/device-session/use-case/UnsafeBypassIntentQueueUseCase\";\nimport { discoveryTypes } from \"@internal/discovery/di/discoveryTypes\";\nimport { type ConnectUseCase } from \"@internal/discovery/use-case/ConnectUseCase\";\nimport { type DisconnectUseCase } from \"@internal/discovery/use-case/DisconnectUseCase\";\nimport { type GetConnectedDeviceUseCase } from \"@internal/discovery/use-case/GetConnectedDeviceUseCase\";\nimport { type ListConnectedDevicesUseCase } from \"@internal/discovery/use-case/ListConnectedDevicesUseCase\";\nimport {\n type ListenToAvailableDevicesUseCase,\n type ListenToAvailableDevicesUseCaseArgs,\n} from \"@internal/discovery/use-case/ListenToAvailableDevicesUseCase\";\nimport { type ListenToConnectedDeviceUseCase } from \"@internal/discovery/use-case/ListenToConnectedDeviceUseCase\";\nimport {\n type ReconnectUseCase,\n type ReconnectUseCaseArgs,\n} from \"@internal/discovery/use-case/ReconnectUseCase\";\nimport type { StartDiscoveringUseCase } from \"@internal/discovery/use-case/StartDiscoveringUseCase\";\nimport type { StopDiscoveringUseCase } from \"@internal/discovery/use-case/StopDiscoveringUseCase\";\nimport { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\nimport { managerApiTypes } from \"@internal/manager-api/di/managerApiTypes\";\nimport { type SetProviderUseCase } from \"@internal/manager-api/use-case/SetProviderUseCase\";\nimport { sendTypes } from \"@internal/send/di/sendTypes\";\nimport { type SendApduUseCase } from \"@internal/send/use-case/SendApduUseCase\";\nimport { transportDiTypes } from \"@internal/transport/di/transportDiTypes\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\nimport { makeContainer, type MakeContainerProps } from \"@root/src/di\";\n\nimport {\n type DeviceActionIntermediateValue,\n type ExecuteDeviceActionReturnType,\n} from \"./device-action/DeviceAction\";\nimport { deviceActionTypes } from \"./device-action/di/deviceActionTypes\";\nimport { type DisableDeviceSessionRefresherUseCase } from \"./device-session/use-case/DisableDeviceSessionRefresher\";\nimport { type DmkError } from \"./Error\";\n\n/**\n * The main class to interact with the Device Management Kit.\n *\n * NB: do not instantiate this class directly, instead, use `LedgerDMKBuilder`.\n */\nexport class DeviceManagementKit {\n readonly container: Container;\n /** @internal */\n constructor({\n stub,\n transports,\n loggers,\n config,\n }: Partial<MakeContainerProps> = {}) {\n // NOTE: MakeContainerProps might not be the exact type here\n // For the init of the project this is sufficient, but we might need to\n // update the constructor arguments as we go (we might have more than just the container config)\n this.container = makeContainer({\n stub,\n transports,\n loggers,\n config,\n });\n }\n\n /**\n * Returns a promise resolving to the version of the SDK.\n */\n getVersion(): Promise<string> {\n return this.container\n .get<GetDmkVersionUseCase>(configTypes.GetDmkVersionUseCase)\n .getDmkVersion();\n }\n\n /**\n * Starts discovering devices connected.\n *\n * For the WeHID implementation, this use-case needs to be called as a result\n * of an user interaction (button \"click\" event for ex).\n *\n * @param {StartDiscoveringUseCaseArgs} args - The transport to use for discover, or undefined to discover from all transports.\n * @returns {Observable<DiscoveredDevice>} An observable of discovered devices.\n */\n startDiscovering(\n args: StartDiscoveringUseCaseArgs,\n ): Observable<DiscoveredDevice> {\n return this.container\n .get<StartDiscoveringUseCase>(discoveryTypes.StartDiscoveringUseCase)\n .execute(args);\n }\n\n /**\n * Stops discovering devices connected.\n */\n stopDiscovering() {\n return this.container\n .get<StopDiscoveringUseCase>(discoveryTypes.StopDiscoveringUseCase)\n .execute();\n }\n\n /**\n * Listen to list of known discovered devices (and later BLE).\n * @param {ListenToAvailableDevicesUseCaseArgs} args - The transport to use for discover, or undefined to discover from all transports.\n * @returns {Observable<DiscoveredDevice[]>} An observable of known discovered devices.\n */\n listenToAvailableDevices(\n args: ListenToAvailableDevicesUseCaseArgs,\n ): Observable<DiscoveredDevice[]> {\n return this.container\n .get<ListenToAvailableDevicesUseCase>(\n discoveryTypes.ListenToAvailableDevicesUseCase,\n )\n .execute(args);\n }\n\n /**\n * Reconnects a device session by disconnecting and reconnecting to the device.\n *\n * @param args - The arguments for reconnecting the device session.\n * - `device`: The connected device.\n * - `sessionRefresherOptions` (optional): Configuration for session refreshing.\n * - `isRefresherDisabled`: Whether the refresher is disabled.\n * - `pollingInterval`: The refresh interval in milliseconds\n * @returns The session ID to use for further communication with the device.\n */\n async reconnect(args: ReconnectUseCaseArgs): Promise<DeviceSessionId> {\n return this.container\n .get<ReconnectUseCase>(discoveryTypes.ReconnectUseCase)\n .execute(args);\n }\n\n /**\n * Connects to a device previously discovered with `DeviceManagementKit.startDiscovering`.\n * Creates a new device session which:\n * - Represents the connection to the device.\n * - Is terminated upon disconnection of the device.\n * - Exposes the device state through an observable (see `DeviceManagementKit.getDeviceSessionState`)\n * - Should be used for all subsequent communication with the device.\n *\n * @param {ConnectUseCaseArgs} args - The arguments for connecting to the device.\n * - `device`: The discovered device obtained from `StartDiscoveringUseCase`.\n * - `sessionRefresherOptions` (optional): Configuration for session refreshing.\n * - `isRefresherDisabled`: Whether the refresher is disabled.\n * - `pollingInterval`: The refresh interval in milliseconds\n * @returns The session ID to use for further communication with the device.\n */\n connect(args: ConnectUseCaseArgs): Promise<DeviceSessionId> {\n return this.container\n .get<ConnectUseCase>(discoveryTypes.ConnectUseCase)\n .execute(args);\n }\n\n /**\n * Disconnects to a discovered device.\n *\n * @param {DisconnectUseCaseArgs} args - The session ID to disconnect.\n */\n disconnect(args: DisconnectUseCaseArgs): Promise<void> {\n return this.container\n .get<DisconnectUseCase>(discoveryTypes.DisconnectUseCase)\n .execute(args);\n }\n\n /**\n * Sends an APDU command to a device through a device session.\n *\n * @param {SendApduUseCaseArgs} args - The device session ID and APDU command to send.\n */\n sendApdu(args: SendApduUseCaseArgs): Promise<ApduResponse> {\n return this.container\n .get<SendApduUseCase>(sendTypes.SendApduUseCase)\n .execute(args);\n }\n\n /**\n * Sends a command to a device through a device session.\n *\n * @param {SendCommandUseCaseArgs<Response, Args, ErrorCodes>} args - The device session ID, command, command error codes and command parameters to send.\n * @returns A promise resolving with the response from the command.\n */\n sendCommand<Response, Args, ErrorCodes>(\n args: SendCommandUseCaseArgs<Response, Args, ErrorCodes>,\n ): Promise<CommandResult<Response, ErrorCodes>> {\n return this.container\n .get<SendCommandUseCase>(commandTypes.SendCommandUseCase)\n .execute(args);\n }\n\n executeDeviceAction<\n Output,\n Input,\n Error extends DmkError,\n IntermediateValue extends DeviceActionIntermediateValue,\n >(\n args: ExecuteDeviceActionUseCaseArgs<\n Output,\n Input,\n Error,\n IntermediateValue\n >,\n ): ExecuteDeviceActionReturnType<Output, Error, IntermediateValue> {\n return this.container\n .get<ExecuteDeviceActionUseCase>(\n deviceActionTypes.ExecuteDeviceActionUseCase,\n )\n .execute(args);\n }\n\n /**\n * Gets the connected from its device session ID.\n *\n * @param {GetConnectedDeviceUseCaseArgs} args - The device session ID.\n * @returns {ConnectedDevice} The connected device.\n */\n getConnectedDevice(args: GetConnectedDeviceUseCaseArgs): ConnectedDevice {\n return this.container\n .get<GetConnectedDeviceUseCase>(discoveryTypes.GetConnectedDeviceUseCase)\n .execute(args);\n }\n\n /**\n * Gets the device state of a session.\n *\n * @param {{ sessionId: DeviceSessionId }} args - The device session ID.\n * @returns {Observable<DeviceSessionState>} An observable of the session device state.\n */\n getDeviceSessionState(args: {\n sessionId: DeviceSessionId;\n }): Observable<DeviceSessionState> {\n return this.container\n .get<GetDeviceSessionStateUseCase>(\n deviceSessionTypes.GetDeviceSessionStateUseCase,\n )\n .execute(args);\n }\n\n /**\n * Close the Device Management kit.\n *\n */\n close() {\n return this.container\n .get<CloseSessionsUseCase>(deviceSessionTypes.CloseSessionsUseCase)\n .execute();\n }\n\n /**\n * Lists all connected devices.\n *\n * @returns {ConnectedDevice[]} The list of device sessions.\n */\n listConnectedDevices(): ConnectedDevice[] {\n return this.container\n .get<ListConnectedDevicesUseCase>(\n discoveryTypes.ListConnectedDevicesUseCase,\n )\n .execute();\n }\n\n /**\n * Listen to connected device.\n *\n * @returns {Observable<ConnectedDevice>} An observable of connected device.\n */\n listenToConnectedDevice(): Observable<ConnectedDevice> {\n return this.container\n .get<ListenToConnectedDeviceUseCase>(\n discoveryTypes.ListenToConnectedDeviceUseCase,\n )\n .execute();\n }\n\n /**\n * Disable the device session refresher.\n *\n * @param {DisableDeviceSessionRefresherUseCaseArgs} args - The device session ID and a string to identify the blocker.\n * @returns {() => void} A function to reenable the device session refresher.\n */\n disableDeviceSessionRefresher(args: {\n sessionId: DeviceSessionId;\n blockerId: string;\n }): () => void {\n return this.container\n .get<DisableDeviceSessionRefresherUseCase>(\n deviceSessionTypes.DisableDeviceSessionRefresherUseCase,\n )\n .execute(args);\n }\n\n /**\n * UNSAFE: Bypasses the intent queue for a device session.\n * This allows all intents (sendApdu, sendCommand, executeDeviceAction) to execute\n * directly without being queued. Use with extreme caution as this can lead to\n * race conditions and concurrent execution issues.\n *\n * @param {UnsafeBypassIntentQueueUseCaseArgs} args - The device session ID and bypass flag.\n */\n _unsafeBypassIntentQueue(args: UnsafeBypassIntentQueueUseCaseArgs): void {\n return this.container\n .get<UnsafeBypassIntentQueueUseCase>(\n deviceSessionTypes.UnsafeBypassIntentQueueUseCase,\n )\n .execute(args);\n }\n /**\n * Sets the provider for the manager API.\n *\n * @param {number} provider - The provider to set.\n */\n setProvider(provider: number): void {\n return this.container\n .get<SetProviderUseCase>(managerApiTypes.SetProviderUseCase)\n .execute(provider);\n }\n\n /**\n * Returns the current provider value from the manager API data source.\n */\n getProvider(): number {\n return this.container\n .get<ManagerApiDataSource>(managerApiTypes.ManagerApiDataSource)\n .getProvider();\n }\n\n /**\n * Check if the current environment is supported by any transport.\n */\n isEnvironmentSupported(): boolean {\n return this.container\n .get<TransportService>(transportDiTypes.TransportService)\n .getAllTransports()\n .some((transport) => transport.isSupported());\n }\n}\n"],
5
+ "mappings": "AAGA,OAAS,gBAAAA,MAAoB,+BAsB7B,OAAS,eAAAC,MAAmB,kCAE5B,OAAS,sBAAAC,MAA0B,iDAOnC,OAAS,kBAAAC,MAAsB,wCAiB/B,OAAS,mBAAAC,MAAuB,2CAEhC,OAAS,aAAAC,MAAiB,8BAE1B,OAAS,oBAAAC,MAAwB,0CAEjC,OAAS,iBAAAC,MAA8C,eAMvD,OAAS,qBAAAC,MAAyB,uCAS3B,MAAMC,CAAoB,CACtB,UAET,YAAY,CACV,KAAAC,EACA,WAAAC,EACA,QAAAC,EACA,OAAAC,CACF,EAAiC,CAAC,EAAG,CAInC,KAAK,UAAYN,EAAc,CAC7B,KAAAG,EACA,WAAAC,EACA,QAAAC,EACA,OAAAC,CACF,CAAC,CACH,CAKA,YAA8B,CAC5B,OAAO,KAAK,UACT,IAA0BZ,EAAY,oBAAoB,EAC1D,cAAc,CACnB,CAWA,iBACEa,EAC8B,CAC9B,OAAO,KAAK,UACT,IAA6BX,EAAe,uBAAuB,EACnE,QAAQW,CAAI,CACjB,CAKA,iBAAkB,CAChB,OAAO,KAAK,UACT,IAA4BX,EAAe,sBAAsB,EACjE,QAAQ,CACb,CAOA,yBACEW,EACgC,CAChC,OAAO,KAAK,UACT,IACCX,EAAe,+BACjB,EACC,QAAQW,CAAI,CACjB,CAYA,MAAM,UAAUA,EAAsD,CACpE,OAAO,KAAK,UACT,IAAsBX,EAAe,gBAAgB,EACrD,QAAQW,CAAI,CACjB,CAiBA,QAAQA,EAAoD,CAC1D,OAAO,KAAK,UACT,IAAoBX,EAAe,cAAc,EACjD,QAAQW,CAAI,CACjB,CAOA,WAAWA,EAA4C,CACrD,OAAO,KAAK,UACT,IAAuBX,EAAe,iBAAiB,EACvD,QAAQW,CAAI,CACjB,CAOA,SAASA,EAAkD,CACzD,OAAO,KAAK,UACT,IAAqBT,EAAU,eAAe,EAC9C,QAAQS,CAAI,CACjB,CAQA,YACEA,EAC8C,CAC9C,OAAO,KAAK,UACT,IAAwBd,EAAa,kBAAkB,EACvD,QAAQc,CAAI,CACjB,CAEA,oBAMEA,EAMiE,CACjE,OAAO,KAAK,UACT,IACCN,EAAkB,0BACpB,EACC,QAAQM,CAAI,CACjB,CAQA,mBAAmBA,EAAsD,CACvE,OAAO,KAAK,UACT,IAA+BX,EAAe,yBAAyB,EACvE,QAAQW,CAAI,CACjB,CAQA,sBAAsBA,EAEa,CACjC,OAAO,KAAK,UACT,IACCZ,EAAmB,4BACrB,EACC,QAAQY,CAAI,CACjB,CAMA,OAAQ,CACN,OAAO,KAAK,UACT,IAA0BZ,EAAmB,oBAAoB,EACjE,QAAQ,CACb,CAOA,sBAA0C,CACxC,OAAO,KAAK,UACT,IACCC,EAAe,2BACjB,EACC,QAAQ,CACb,CAOA,yBAAuD,CACrD,OAAO,KAAK,UACT,IACCA,EAAe,8BACjB,EACC,QAAQ,CACb,CAQA,8BAA8BW,EAGf,CACb,OAAO,KAAK,UACT,IACCZ,EAAmB,oCACrB,EACC,QAAQY,CAAI,CACjB,CAUA,yBAAyBA,EAAgD,CACvE,OAAO,KAAK,UACT,IACCZ,EAAmB,8BACrB,EACC,QAAQY,CAAI,CACjB,CAMA,YAAYC,EAAwB,CAClC,OAAO,KAAK,UACT,IAAwBX,EAAgB,kBAAkB,EAC1D,QAAQW,CAAQ,CACrB,CAKA,aAAsB,CACpB,OAAO,KAAK,UACT,IAA0BX,EAAgB,oBAAoB,EAC9D,YAAY,CACjB,CAKA,wBAAkC,CAChC,OAAO,KAAK,UACT,IAAsBE,EAAiB,gBAAgB,EACvD,iBAAiB,EACjB,KAAMU,GAAcA,EAAU,YAAY,CAAC,CAChD,CACF",
6
6
  "names": ["commandTypes", "configTypes", "deviceSessionTypes", "discoveryTypes", "managerApiTypes", "sendTypes", "transportDiTypes", "makeContainer", "deviceActionTypes", "DeviceManagementKit", "stub", "transports", "loggers", "config", "args", "provider", "transport"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{StubLocalConfigDataSource as c}from"../internal/config/data/LocalConfigDataSource.stub";import{configTypes as p}from"../internal/config/di/configTypes";import{deviceSessionTypes as d}from"../internal/device-session/di/deviceSessionTypes";import{discoveryTypes as n}from"../internal/discovery/di/discoveryTypes";import{managerApiTypes as l}from"../internal/manager-api/di/managerApiTypes";import{sendTypes as u}from"../internal/send/di/sendTypes";import m from"../../package.json";import{StubUseCase as v}from"../../src/di.stub";import{commandTypes as f}from"./command/di/commandTypes";import{ConsoleLogger as h}from"./logger-subscriber/service/ConsoleLogger";import{DeviceManagementKit as r}from"./DeviceManagementKit";vi.mock("./logger-subscriber/service/ConsoleLogger");let e,a;describe("DeviceManagementKit",()=>{describe("clean",()=>{beforeEach(()=>{a=new h,e=new r({stub:!1,loggers:[a],config:{managerApiUrl:"http://fake.url",mockUrl:"http://fake-mock.url",webSocketUrl:"http://fake-websocket.url",firmwareDistributionSalt:"salt"}})}),it("should create an instance",()=>{expect(e).toBeDefined(),expect(e).toBeInstanceOf(r)}),it("should return a clean `version`",async()=>{expect(await e.getVersion()).toBe(m.version)}),it("should have startDiscovery method",()=>{expect(e.startDiscovering).toBeDefined()}),it("should have stopDiscovery method",()=>{expect(e.stopDiscovering).toBeDefined()}),it("should have connect method",()=>{expect(e.connect).toBeDefined()}),it("should have sendApdu method",()=>{expect(e.sendApdu).toBeDefined()}),it("should have getConnectedDevice method",()=>{expect(e.getConnectedDevice).toBeDefined()}),it("should have sendCommand method",()=>{expect(e.sendCommand).toBeDefined()}),it("should have listConnectedDevices method",()=>{expect(e.listConnectedDevices).toBeDefined()}),it("should have listenToConnectedDevice method",()=>{expect(e.listenToConnectedDevice).toBeDefined()}),it("should have disableDeviceSessionRefresher method",()=>{expect(e.disableDeviceSessionRefresher).toBeDefined()}),it("should have setProvider method",()=>{expect(e.setProvider).toBeDefined()}),it("should have isEnvironmentSupported method",()=>{expect(e.isEnvironmentSupported).toBeDefined()}),describe("isEnvironmentSupported",()=>{it("should return true when at least one transport is supported",()=>{const t={isSupported:vi.fn().mockReturnValue(!1)},o={isSupported:vi.fn().mockReturnValue(!0)},s={getAllTransports:vi.fn().mockReturnValue([t,o])};vi.spyOn(e.container,"get").mockReturnValue(s);const i=e.isEnvironmentSupported();expect(i).toBe(!0),expect(s.getAllTransports).toHaveBeenCalled(),expect(t.isSupported).toHaveBeenCalled(),expect(o.isSupported).toHaveBeenCalled()}),it("should return false when no transports are supported",()=>{const t={isSupported:vi.fn().mockReturnValue(!1)},o={isSupported:vi.fn().mockReturnValue(!1)},s={getAllTransports:vi.fn().mockReturnValue([t,o])};vi.spyOn(e.container,"get").mockReturnValue(s);const i=e.isEnvironmentSupported();expect(i).toBe(!1),expect(s.getAllTransports).toHaveBeenCalled(),expect(t.isSupported).toHaveBeenCalled(),expect(o.isSupported).toHaveBeenCalled()}),it("should return false when no transports are available",()=>{const t={getAllTransports:vi.fn().mockReturnValue([])};vi.spyOn(e.container,"get").mockReturnValue(t);const o=e.isEnvironmentSupported();expect(o).toBe(!1),expect(t.getAllTransports).toHaveBeenCalled()})})}),describe("stubbed",()=>{beforeEach(()=>{e=new r({stub:!0,loggers:[],config:{managerApiUrl:"http://fake.url",mockUrl:"http://fake-mock.url",webSocketUrl:"http://fake-websocket.url",firmwareDistributionSalt:"salt"}})}),it("should create a stubbed dmk",()=>{expect(e).toBeDefined(),expect(e).toBeInstanceOf(r)}),it("should return a stubbed config",()=>{expect(e.container.get(p.LocalConfigDataSource)).toBeInstanceOf(c)}),it("should return a stubbed version",async()=>{expect(await e.getVersion()).toBe("0.0.0-stub.1")}),it.each([[n.StartDiscoveringUseCase],[n.StopDiscoveringUseCase],[n.ConnectUseCase],[u.SendApduUseCase],[f.SendCommandUseCase],[n.GetConnectedDeviceUseCase],[n.DisconnectUseCase],[d.GetDeviceSessionStateUseCase],[n.ListConnectedDevicesUseCase],[n.ListenToConnectedDeviceUseCase],[l.SetProviderUseCase]])("should have %s use case",t=>{const o=e.container.get(t);expect(o).toBeInstanceOf(v),expect(o.execute()).toBe("stub")})})});
1
+ import{StubLocalConfigDataSource as c}from"../internal/config/data/LocalConfigDataSource.stub";import{configTypes as p}from"../internal/config/di/configTypes";import{deviceSessionTypes as d}from"../internal/device-session/di/deviceSessionTypes";import{discoveryTypes as n}from"../internal/discovery/di/discoveryTypes";import{managerApiTypes as l}from"../internal/manager-api/di/managerApiTypes";import{sendTypes as u}from"../internal/send/di/sendTypes";import m from"../../package.json";import{StubUseCase as v}from"../../src/di.stub";import{commandTypes as f}from"./command/di/commandTypes";import{ConsoleLogger as h}from"./logger-subscriber/service/ConsoleLogger";import{DeviceManagementKit as r}from"./DeviceManagementKit";vi.mock("./logger-subscriber/service/ConsoleLogger");let e,a;describe("DeviceManagementKit",()=>{describe("clean",()=>{beforeEach(()=>{a=new h,e=new r({stub:!1,loggers:[a],config:{managerApiUrl:"http://fake.url",mockUrl:"http://fake-mock.url",webSocketUrl:"http://fake-websocket.url",firmwareDistributionSalt:"salt"}})}),it("should create an instance",()=>{expect(e).toBeDefined(),expect(e).toBeInstanceOf(r)}),it("should return a clean `version`",async()=>{expect(await e.getVersion()).toBe(m.version)}),it("should have startDiscovery method",()=>{expect(e.startDiscovering).toBeDefined()}),it("should have stopDiscovery method",()=>{expect(e.stopDiscovering).toBeDefined()}),it("should have connect method",()=>{expect(e.connect).toBeDefined()}),it("should have reconnect method",()=>{expect(e.reconnect).toBeDefined()}),it("should have sendApdu method",()=>{expect(e.sendApdu).toBeDefined()}),it("should have getConnectedDevice method",()=>{expect(e.getConnectedDevice).toBeDefined()}),it("should have sendCommand method",()=>{expect(e.sendCommand).toBeDefined()}),it("should have listConnectedDevices method",()=>{expect(e.listConnectedDevices).toBeDefined()}),it("should have listenToConnectedDevice method",()=>{expect(e.listenToConnectedDevice).toBeDefined()}),it("should have disableDeviceSessionRefresher method",()=>{expect(e.disableDeviceSessionRefresher).toBeDefined()}),it("should have setProvider method",()=>{expect(e.setProvider).toBeDefined()}),it("should have isEnvironmentSupported method",()=>{expect(e.isEnvironmentSupported).toBeDefined()}),describe("isEnvironmentSupported",()=>{it("should return true when at least one transport is supported",()=>{const t={isSupported:vi.fn().mockReturnValue(!1)},o={isSupported:vi.fn().mockReturnValue(!0)},s={getAllTransports:vi.fn().mockReturnValue([t,o])};vi.spyOn(e.container,"get").mockReturnValue(s);const i=e.isEnvironmentSupported();expect(i).toBe(!0),expect(s.getAllTransports).toHaveBeenCalled(),expect(t.isSupported).toHaveBeenCalled(),expect(o.isSupported).toHaveBeenCalled()}),it("should return false when no transports are supported",()=>{const t={isSupported:vi.fn().mockReturnValue(!1)},o={isSupported:vi.fn().mockReturnValue(!1)},s={getAllTransports:vi.fn().mockReturnValue([t,o])};vi.spyOn(e.container,"get").mockReturnValue(s);const i=e.isEnvironmentSupported();expect(i).toBe(!1),expect(s.getAllTransports).toHaveBeenCalled(),expect(t.isSupported).toHaveBeenCalled(),expect(o.isSupported).toHaveBeenCalled()}),it("should return false when no transports are available",()=>{const t={getAllTransports:vi.fn().mockReturnValue([])};vi.spyOn(e.container,"get").mockReturnValue(t);const o=e.isEnvironmentSupported();expect(o).toBe(!1),expect(t.getAllTransports).toHaveBeenCalled()})})}),describe("stubbed",()=>{beforeEach(()=>{e=new r({stub:!0,loggers:[],config:{managerApiUrl:"http://fake.url",mockUrl:"http://fake-mock.url",webSocketUrl:"http://fake-websocket.url",firmwareDistributionSalt:"salt"}})}),it("should create a stubbed dmk",()=>{expect(e).toBeDefined(),expect(e).toBeInstanceOf(r)}),it("should return a stubbed config",()=>{expect(e.container.get(p.LocalConfigDataSource)).toBeInstanceOf(c)}),it("should return a stubbed version",async()=>{expect(await e.getVersion()).toBe("0.0.0-stub.1")}),it.each([[n.StartDiscoveringUseCase],[n.StopDiscoveringUseCase],[n.ConnectUseCase],[u.SendApduUseCase],[f.SendCommandUseCase],[n.GetConnectedDeviceUseCase],[n.DisconnectUseCase],[d.GetDeviceSessionStateUseCase],[n.ListConnectedDevicesUseCase],[n.ListenToConnectedDeviceUseCase],[l.SetProviderUseCase]])("should have %s use case",t=>{const o=e.container.get(t);expect(o).toBeInstanceOf(v),expect(o.execute()).toBe("stub")})})});
2
2
  //# sourceMappingURL=DeviceManagementKit.test.js.map