@ledgerhq/device-management-kit 0.0.0-legacy-speculos-datasource-20250820121907 → 0.0.0-lifi-with-logger-20251208144248

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 (424) hide show
  1. package/README.md +3 -3
  2. package/lib/cjs/package.json +42 -37
  3. package/lib/cjs/src/api/DeviceManagementKit.js +1 -1
  4. package/lib/cjs/src/api/DeviceManagementKit.js.map +3 -3
  5. package/lib/cjs/src/api/DeviceManagementKit.test.js +1 -1
  6. package/lib/cjs/src/api/DeviceManagementKit.test.js.map +3 -3
  7. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.js +1 -1
  8. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.js.map +2 -2
  9. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.test.js +1 -1
  10. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.test.js.map +2 -2
  11. package/lib/cjs/src/api/command/Command.js +1 -1
  12. package/lib/cjs/src/api/command/Command.js.map +1 -1
  13. package/lib/cjs/src/api/command/Errors.js +1 -1
  14. package/lib/cjs/src/api/command/Errors.js.map +3 -3
  15. package/lib/cjs/src/api/command/model/CommandResult.js +1 -1
  16. package/lib/cjs/src/api/command/model/CommandResult.js.map +2 -2
  17. package/lib/cjs/src/api/command/os/CloseAppCommand.js +1 -1
  18. package/lib/cjs/src/api/command/os/CloseAppCommand.js.map +2 -2
  19. package/lib/cjs/src/api/command/os/CloseAppCommand.test.js +1 -1
  20. package/lib/cjs/src/api/command/os/CloseAppCommand.test.js.map +2 -2
  21. package/lib/cjs/src/api/command/os/GetAppAndVersionCommand.js +1 -1
  22. package/lib/cjs/src/api/command/os/GetAppAndVersionCommand.js.map +2 -2
  23. package/lib/cjs/src/api/command/os/GetAppAndVersionCommand.test.js +1 -1
  24. package/lib/cjs/src/api/command/os/GetAppAndVersionCommand.test.js.map +2 -2
  25. package/lib/cjs/src/api/command/os/GetBatteryStatusCommand.js +1 -1
  26. package/lib/cjs/src/api/command/os/GetBatteryStatusCommand.js.map +2 -2
  27. package/lib/cjs/src/api/command/os/GetBatteryStatusCommand.test.js +1 -1
  28. package/lib/cjs/src/api/command/os/GetBatteryStatusCommand.test.js.map +3 -3
  29. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.js +1 -1
  30. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.js.map +2 -2
  31. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.test.js +1 -1
  32. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.test.js.map +2 -2
  33. package/lib/cjs/src/api/command/os/GetOsVersionCommand.js +1 -1
  34. package/lib/cjs/src/api/command/os/GetOsVersionCommand.js.map +2 -2
  35. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js +1 -1
  36. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js.map +2 -2
  37. package/lib/cjs/src/api/command/os/ListAppsCommand.js +1 -1
  38. package/lib/cjs/src/api/command/os/ListAppsCommand.js.map +2 -2
  39. package/lib/cjs/src/api/command/os/ListAppsCommand.test.js +1 -1
  40. package/lib/cjs/src/api/command/os/ListAppsCommand.test.js.map +2 -2
  41. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.js +1 -1
  42. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.js.map +2 -2
  43. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.test.js +1 -1
  44. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.test.js.map +2 -2
  45. package/lib/cjs/src/api/command/os/LoadCertificateCommand.js +1 -1
  46. package/lib/cjs/src/api/command/os/LoadCertificateCommand.js.map +2 -2
  47. package/lib/cjs/src/api/command/os/LoadCertificateCommand.test.js +1 -1
  48. package/lib/cjs/src/api/command/os/LoadCertificateCommand.test.js.map +3 -3
  49. package/lib/cjs/src/api/command/os/OpenAppCommand.js +1 -1
  50. package/lib/cjs/src/api/command/os/OpenAppCommand.js.map +2 -2
  51. package/lib/cjs/src/api/command/os/OpenAppCommand.test.js +1 -1
  52. package/lib/cjs/src/api/command/os/OpenAppCommand.test.js.map +2 -2
  53. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
  54. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js.map +2 -2
  55. package/lib/cjs/src/api/device/DeviceModel.js +1 -1
  56. package/lib/cjs/src/api/device/DeviceModel.js.map +2 -2
  57. package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js +1 -1
  58. package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
  59. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +1 -1
  60. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +2 -2
  61. package/lib/cjs/src/api/device-action/os/Errors.js +1 -1
  62. package/lib/cjs/src/api/device-action/os/Errors.js.map +3 -3
  63. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +1 -1
  64. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +2 -2
  65. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js +1 -1
  66. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js.map +1 -1
  67. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  68. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +3 -3
  69. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  70. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +2 -2
  71. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +1 -1
  72. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +2 -2
  73. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js +1 -1
  74. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js.map +1 -1
  75. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +1 -1
  76. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +2 -2
  77. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js +1 -1
  78. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js.map +1 -1
  79. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  80. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +2 -2
  81. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.js +1 -1
  82. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.js.map +2 -2
  83. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +1 -1
  84. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +2 -2
  85. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.js +1 -1
  86. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.js.map +2 -2
  87. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js +1 -1
  88. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +2 -2
  89. package/lib/cjs/src/api/device-action/xstate-utils/XStateDeviceAction.js +1 -1
  90. package/lib/cjs/src/api/device-action/xstate-utils/XStateDeviceAction.js.map +2 -2
  91. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.js +1 -1
  92. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.js.map +2 -2
  93. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.test.js +1 -1
  94. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.test.js.map +2 -2
  95. package/lib/cjs/src/api/index.js +1 -1
  96. package/lib/cjs/src/api/index.js.map +2 -2
  97. package/lib/cjs/src/api/logger-subscriber/service/ConsoleLogger.js +1 -1
  98. package/lib/cjs/src/api/logger-subscriber/service/ConsoleLogger.js.map +3 -3
  99. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js +1 -1
  100. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +2 -2
  101. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/types.js.map +1 -1
  102. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +1 -1
  103. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +2 -2
  104. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/types.js.map +1 -1
  105. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js +1 -1
  106. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +2 -2
  107. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js +1 -1
  108. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +2 -2
  109. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +1 -1
  110. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +2 -2
  111. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/types.js.map +1 -1
  112. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js +1 -1
  113. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +3 -3
  114. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +1 -1
  115. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +3 -3
  116. package/lib/cjs/src/api/secure-channel/task/types.js +1 -1
  117. package/lib/cjs/src/api/secure-channel/task/types.js.map +2 -2
  118. package/lib/cjs/src/api/secure-channel/utils.js +1 -1
  119. package/lib/cjs/src/api/secure-channel/utils.js.map +3 -3
  120. package/lib/cjs/src/api/secure-channel/utils.test.js +1 -1
  121. package/lib/cjs/src/api/secure-channel/utils.test.js.map +3 -3
  122. package/lib/cjs/src/api/transport/model/ConnectedDevice.js +1 -1
  123. package/lib/cjs/src/api/transport/model/ConnectedDevice.js.map +3 -3
  124. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js +1 -1
  125. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js.map +2 -2
  126. package/lib/cjs/src/api/transport/model/Errors.js +1 -1
  127. package/lib/cjs/src/api/transport/model/Errors.js.map +3 -3
  128. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.js +1 -1
  129. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.js.map +3 -3
  130. package/lib/cjs/src/api/utils/HexaString.js +1 -1
  131. package/lib/cjs/src/api/utils/HexaString.js.map +3 -3
  132. package/lib/cjs/src/api/utils/HexaString.test.js +1 -1
  133. package/lib/cjs/src/api/utils/HexaString.test.js.map +2 -2
  134. package/lib/cjs/src/internal/crypto/CryptoService.js +2 -0
  135. package/lib/cjs/src/internal/crypto/CryptoService.js.map +7 -0
  136. package/lib/cjs/src/internal/crypto/NobleCryptoService.js +2 -0
  137. package/lib/cjs/src/internal/crypto/NobleCryptoService.js.map +7 -0
  138. package/lib/cjs/src/internal/crypto/NobleCryptoService.test.js +2 -0
  139. package/lib/cjs/src/internal/crypto/NobleCryptoService.test.js.map +7 -0
  140. package/lib/cjs/src/internal/device-session/model/DeviceSession.js +1 -1
  141. package/lib/cjs/src/internal/device-session/model/DeviceSession.js.map +3 -3
  142. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.js +1 -1
  143. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.js.map +2 -2
  144. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.js +1 -1
  145. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.js.map +2 -2
  146. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.js +1 -1
  147. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.js.map +3 -3
  148. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
  149. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +3 -3
  150. package/lib/cjs/src/internal/device-session/service/DeviceSessionService.js +1 -1
  151. package/lib/cjs/src/internal/device-session/service/DeviceSessionService.js.map +1 -1
  152. package/lib/cjs/src/internal/discovery/di/discoveryModule.js +1 -1
  153. package/lib/cjs/src/internal/discovery/di/discoveryModule.js.map +3 -3
  154. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js +1 -1
  155. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js.map +3 -3
  156. package/lib/cjs/src/internal/discovery/di/discoveryTypes.js +1 -1
  157. package/lib/cjs/src/internal/discovery/di/discoveryTypes.js.map +2 -2
  158. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js +1 -1
  159. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js.map +3 -3
  160. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
  161. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js.map +3 -3
  162. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.js +1 -1
  163. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.js.map +3 -3
  164. package/lib/cjs/src/internal/discovery/use-case/ReconnectUseCase.js +2 -0
  165. package/lib/cjs/src/internal/discovery/use-case/ReconnectUseCase.js.map +7 -0
  166. package/lib/cjs/src/internal/discovery/use-case/ReconnectUseCase.test.js +2 -0
  167. package/lib/cjs/src/internal/discovery/use-case/ReconnectUseCase.test.js.map +7 -0
  168. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js.map +1 -1
  169. package/lib/esm/package.json +42 -37
  170. package/lib/esm/src/api/DeviceManagementKit.js +1 -1
  171. package/lib/esm/src/api/DeviceManagementKit.js.map +3 -3
  172. package/lib/esm/src/api/DeviceManagementKit.test.js +1 -1
  173. package/lib/esm/src/api/DeviceManagementKit.test.js.map +3 -3
  174. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.js +1 -1
  175. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.js.map +3 -3
  176. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.test.js +1 -1
  177. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.test.js.map +2 -2
  178. package/lib/esm/src/api/command/Errors.js +1 -1
  179. package/lib/esm/src/api/command/Errors.js.map +3 -3
  180. package/lib/esm/src/api/command/model/CommandResult.js.map +2 -2
  181. package/lib/esm/src/api/command/os/CloseAppCommand.js +1 -1
  182. package/lib/esm/src/api/command/os/CloseAppCommand.js.map +2 -2
  183. package/lib/esm/src/api/command/os/CloseAppCommand.test.js +1 -1
  184. package/lib/esm/src/api/command/os/CloseAppCommand.test.js.map +2 -2
  185. package/lib/esm/src/api/command/os/GetAppAndVersionCommand.js +1 -1
  186. package/lib/esm/src/api/command/os/GetAppAndVersionCommand.js.map +2 -2
  187. package/lib/esm/src/api/command/os/GetAppAndVersionCommand.test.js +1 -1
  188. package/lib/esm/src/api/command/os/GetAppAndVersionCommand.test.js.map +2 -2
  189. package/lib/esm/src/api/command/os/GetBatteryStatusCommand.js +1 -1
  190. package/lib/esm/src/api/command/os/GetBatteryStatusCommand.js.map +2 -2
  191. package/lib/esm/src/api/command/os/GetBatteryStatusCommand.test.js +1 -1
  192. package/lib/esm/src/api/command/os/GetBatteryStatusCommand.test.js.map +3 -3
  193. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.js +1 -1
  194. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.js.map +2 -2
  195. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.test.js +1 -1
  196. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.test.js.map +2 -2
  197. package/lib/esm/src/api/command/os/GetOsVersionCommand.js +1 -1
  198. package/lib/esm/src/api/command/os/GetOsVersionCommand.js.map +2 -2
  199. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js +1 -1
  200. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js.map +2 -2
  201. package/lib/esm/src/api/command/os/ListAppsCommand.js +1 -1
  202. package/lib/esm/src/api/command/os/ListAppsCommand.js.map +2 -2
  203. package/lib/esm/src/api/command/os/ListAppsCommand.test.js +1 -1
  204. package/lib/esm/src/api/command/os/ListAppsCommand.test.js.map +2 -2
  205. package/lib/esm/src/api/command/os/ListLanguagePackCommand.js +1 -1
  206. package/lib/esm/src/api/command/os/ListLanguagePackCommand.js.map +2 -2
  207. package/lib/esm/src/api/command/os/ListLanguagePackCommand.test.js +1 -1
  208. package/lib/esm/src/api/command/os/ListLanguagePackCommand.test.js.map +2 -2
  209. package/lib/esm/src/api/command/os/LoadCertificateCommand.js +1 -1
  210. package/lib/esm/src/api/command/os/LoadCertificateCommand.js.map +2 -2
  211. package/lib/esm/src/api/command/os/LoadCertificateCommand.test.js +1 -1
  212. package/lib/esm/src/api/command/os/LoadCertificateCommand.test.js.map +3 -3
  213. package/lib/esm/src/api/command/os/OpenAppCommand.js +1 -1
  214. package/lib/esm/src/api/command/os/OpenAppCommand.js.map +2 -2
  215. package/lib/esm/src/api/command/os/OpenAppCommand.test.js +1 -1
  216. package/lib/esm/src/api/command/os/OpenAppCommand.test.js.map +2 -2
  217. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
  218. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js.map +2 -2
  219. package/lib/esm/src/api/device/DeviceModel.js +1 -1
  220. package/lib/esm/src/api/device/DeviceModel.js.map +2 -2
  221. package/lib/esm/src/api/device-action/model/UserInteractionRequired.js +1 -1
  222. package/lib/esm/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
  223. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +1 -1
  224. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +2 -2
  225. package/lib/esm/src/api/device-action/os/Errors.js +1 -1
  226. package/lib/esm/src/api/device-action/os/Errors.js.map +3 -3
  227. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +1 -1
  228. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +2 -2
  229. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  230. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +3 -3
  231. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  232. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +2 -2
  233. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +1 -1
  234. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +2 -2
  235. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +1 -1
  236. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +2 -2
  237. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  238. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +2 -2
  239. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.js +1 -1
  240. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.js.map +3 -3
  241. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +1 -1
  242. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +3 -3
  243. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.js +1 -1
  244. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.js.map +3 -3
  245. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js +1 -1
  246. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +3 -3
  247. package/lib/esm/src/api/device-action/xstate-utils/XStateDeviceAction.js +1 -1
  248. package/lib/esm/src/api/device-action/xstate-utils/XStateDeviceAction.js.map +2 -2
  249. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.js +1 -1
  250. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.js.map +2 -2
  251. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.test.js +1 -1
  252. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.test.js.map +2 -2
  253. package/lib/esm/src/api/index.js +1 -1
  254. package/lib/esm/src/api/index.js.map +3 -3
  255. package/lib/esm/src/api/logger-subscriber/service/ConsoleLogger.js +1 -1
  256. package/lib/esm/src/api/logger-subscriber/service/ConsoleLogger.js.map +3 -3
  257. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js +1 -1
  258. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +2 -2
  259. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +1 -1
  260. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +2 -2
  261. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js +1 -1
  262. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +2 -2
  263. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +2 -2
  264. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +1 -1
  265. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +2 -2
  266. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js +1 -1
  267. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +3 -3
  268. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +1 -1
  269. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +3 -3
  270. package/lib/esm/src/api/secure-channel/task/types.js +1 -1
  271. package/lib/esm/src/api/secure-channel/task/types.js.map +2 -2
  272. package/lib/esm/src/api/secure-channel/utils.js +1 -1
  273. package/lib/esm/src/api/secure-channel/utils.js.map +3 -3
  274. package/lib/esm/src/api/secure-channel/utils.test.js +1 -1
  275. package/lib/esm/src/api/secure-channel/utils.test.js.map +3 -3
  276. package/lib/esm/src/api/transport/model/ConnectedDevice.js +1 -1
  277. package/lib/esm/src/api/transport/model/ConnectedDevice.js.map +3 -3
  278. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js +1 -1
  279. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js.map +2 -2
  280. package/lib/esm/src/api/transport/model/Errors.js +1 -1
  281. package/lib/esm/src/api/transport/model/Errors.js.map +3 -3
  282. package/lib/esm/src/api/transport/model/TransportConnectedDevice.js +1 -1
  283. package/lib/esm/src/api/transport/model/TransportConnectedDevice.js.map +3 -3
  284. package/lib/esm/src/api/utils/HexaString.js +1 -1
  285. package/lib/esm/src/api/utils/HexaString.js.map +3 -3
  286. package/lib/esm/src/api/utils/HexaString.test.js +1 -1
  287. package/lib/esm/src/api/utils/HexaString.test.js.map +2 -2
  288. package/lib/esm/src/internal/crypto/CryptoService.js +1 -0
  289. package/lib/esm/src/internal/crypto/CryptoService.js.map +7 -0
  290. package/lib/esm/src/internal/crypto/NobleCryptoService.js +2 -0
  291. package/lib/esm/src/internal/crypto/NobleCryptoService.js.map +7 -0
  292. package/lib/esm/src/internal/crypto/NobleCryptoService.test.js +2 -0
  293. package/lib/esm/src/internal/crypto/NobleCryptoService.test.js.map +7 -0
  294. package/lib/esm/src/internal/device-session/model/DeviceSession.js +1 -1
  295. package/lib/esm/src/internal/device-session/model/DeviceSession.js.map +3 -3
  296. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.js +1 -1
  297. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.js.map +2 -2
  298. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.js +1 -1
  299. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.js.map +2 -2
  300. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.js +1 -1
  301. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.js.map +3 -3
  302. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
  303. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +3 -3
  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/types/src/api/DeviceManagementKit.d.ts +24 -1
  321. package/lib/types/src/api/DeviceManagementKit.d.ts.map +1 -1
  322. package/lib/types/src/api/apdu/utils/ByteArrayBuilder.d.ts +38 -0
  323. package/lib/types/src/api/apdu/utils/ByteArrayBuilder.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 +5 -0
  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/DeviceModel.d.ts +1 -1
  349. package/lib/types/src/api/device/DeviceModel.d.ts.map +1 -1
  350. package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts +2 -1
  351. package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts.map +1 -1
  352. package/lib/types/src/api/device-action/os/Errors.d.ts +5 -0
  353. package/lib/types/src/api/device-action/os/Errors.d.ts.map +1 -1
  354. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.d.ts.map +1 -1
  355. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts +1 -0
  356. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts.map +1 -1
  357. package/lib/types/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.d.ts +1 -1
  358. package/lib/types/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.d.ts.map +1 -1
  359. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.d.ts.map +1 -1
  360. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts +3 -2
  361. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts.map +1 -1
  362. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.d.ts.map +1 -1
  363. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts +1 -0
  364. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts.map +1 -1
  365. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.d.ts +2 -2
  366. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.d.ts.map +1 -1
  367. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.d.ts.map +1 -1
  368. package/lib/types/src/api/device-action/xstate-utils/XStateDeviceAction.d.ts +1 -0
  369. package/lib/types/src/api/device-action/xstate-utils/XStateDeviceAction.d.ts.map +1 -1
  370. package/lib/types/src/api/index.d.ts +1 -1
  371. package/lib/types/src/api/index.d.ts.map +1 -1
  372. package/lib/types/src/api/logger-subscriber/service/ConsoleLogger.d.ts +1 -0
  373. package/lib/types/src/api/logger-subscriber/service/ConsoleLogger.d.ts.map +1 -1
  374. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.d.ts.map +1 -1
  375. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/types.d.ts +1 -0
  376. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/types.d.ts.map +1 -1
  377. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.d.ts.map +1 -1
  378. package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts +1 -0
  379. package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts.map +1 -1
  380. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.d.ts.map +1 -1
  381. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts +1 -0
  382. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts.map +1 -1
  383. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.d.ts.map +1 -1
  384. package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts +1 -0
  385. package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts.map +1 -1
  386. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.d.ts +4 -0
  387. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.d.ts.map +1 -1
  388. package/lib/types/src/api/secure-channel/task/types.d.ts +7 -0
  389. package/lib/types/src/api/secure-channel/task/types.d.ts.map +1 -1
  390. package/lib/types/src/api/secure-channel/utils.d.ts +18 -1
  391. package/lib/types/src/api/secure-channel/utils.d.ts.map +1 -1
  392. package/lib/types/src/api/transport/model/ConnectedDevice.d.ts +3 -2
  393. package/lib/types/src/api/transport/model/ConnectedDevice.d.ts.map +1 -1
  394. package/lib/types/src/api/transport/model/Errors.d.ts +5 -0
  395. package/lib/types/src/api/transport/model/Errors.d.ts.map +1 -1
  396. package/lib/types/src/api/transport/model/TransportConnectedDevice.d.ts +3 -1
  397. package/lib/types/src/api/transport/model/TransportConnectedDevice.d.ts.map +1 -1
  398. package/lib/types/src/api/utils/HexaString.d.ts +4 -3
  399. package/lib/types/src/api/utils/HexaString.d.ts.map +1 -1
  400. package/lib/types/src/internal/crypto/CryptoService.d.ts +12 -0
  401. package/lib/types/src/internal/crypto/CryptoService.d.ts.map +1 -0
  402. package/lib/types/src/internal/crypto/NobleCryptoService.d.ts +8 -0
  403. package/lib/types/src/internal/crypto/NobleCryptoService.d.ts.map +1 -0
  404. package/lib/types/src/internal/crypto/NobleCryptoService.test.d.ts +2 -0
  405. package/lib/types/src/internal/crypto/NobleCryptoService.test.d.ts.map +1 -0
  406. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts.map +1 -1
  407. package/lib/types/src/internal/device-session/service/DefaultApduReceiverService.d.ts.map +1 -1
  408. package/lib/types/src/internal/device-session/service/DefaultDeviceSessionService.d.ts +7 -5
  409. package/lib/types/src/internal/device-session/service/DefaultDeviceSessionService.d.ts.map +1 -1
  410. package/lib/types/src/internal/device-session/service/DeviceSessionService.d.ts +28 -1
  411. package/lib/types/src/internal/device-session/service/DeviceSessionService.d.ts.map +1 -1
  412. package/lib/types/src/internal/discovery/di/discoveryModule.d.ts.map +1 -1
  413. package/lib/types/src/internal/discovery/di/discoveryTypes.d.ts +1 -0
  414. package/lib/types/src/internal/discovery/di/discoveryTypes.d.ts.map +1 -1
  415. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts +3 -2
  416. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts.map +1 -1
  417. package/lib/types/src/internal/discovery/use-case/DisconnectUseCase.d.ts.map +1 -1
  418. package/lib/types/src/internal/discovery/use-case/ReconnectUseCase.d.ts +32 -0
  419. package/lib/types/src/internal/discovery/use-case/ReconnectUseCase.d.ts.map +1 -0
  420. package/lib/types/src/internal/discovery/use-case/ReconnectUseCase.test.d.ts +2 -0
  421. package/lib/types/src/internal/discovery/use-case/ReconnectUseCase.test.d.ts.map +1 -0
  422. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts +1 -1
  423. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  424. package/package.json +34 -29
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/service/DefaultApduSenderService.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { Either, Left, Maybe, Right } from \"purify-ts\";\nimport { v4 } from \"uuid\";\n\nimport {\n APDU_DATA_LENGTH_LENGTH,\n CHANNEL_LENGTH,\n HEAD_TAG,\n HEAD_TAG_LENGTH,\n INDEX_LENGTH,\n} from \"@api/device-session/data/FramerConst\";\nimport type {\n ApduSenderService,\n ApduSenderServiceConstructorArgs,\n} from \"@api/device-session/service/ApduSenderService\";\nimport { FramerUtils } from \"@api/device-session/utils/FramerUtils\";\nimport { LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport {\n FramerApduError,\n FramerOverflowError,\n} from \"@internal/device-session/model/Errors\";\nimport { Frame } from \"@internal/device-session/model/Frame\";\nimport { FrameHeader } from \"@internal/device-session/model/FrameHeader\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport { DmkError } from \"@root/src/api/Error\";\n/**\n * Default implementation of ApduSenderService\n *\n * Split APDU in an array of frames readies to send to a TransportConnectedDevice\n */\n@injectable()\nexport class DefaultApduSenderService implements ApduSenderService {\n protected _frameSize: number;\n protected _channel: Maybe<Uint8Array>;\n protected _padding: boolean;\n private _logger: LoggerPublisherService;\n\n /**\n * Constructor\n *\n * @param frameSize\n * @param channel\n * @param padding\n * @param loggerServiceFactory\n */\n constructor(\n {\n frameSize,\n channel = Maybe.zero(),\n padding = false,\n }: ApduSenderServiceConstructorArgs,\n @inject(loggerTypes.LoggerPublisherServiceFactory)\n loggerServiceFactory: (tag: string) => LoggerPublisherService,\n ) {\n this._frameSize = frameSize;\n this._channel = channel;\n this._padding = padding;\n this._logger = loggerServiceFactory(\"DefaultApduSenderService\");\n }\n\n /**\n * Get frames from apdu\n *\n * @param apdu\n */\n public getFrames(apdu: Uint8Array): Frame[] {\n const frames: Frame[] = [];\n let count = 0;\n let frame = this.getFrameAtIndex(apdu, count);\n\n while (frame.isRight()) {\n frames.push(frame.extract());\n count += 1;\n frame = this.getFrameAtIndex(apdu, count).mapLeft((error) => {\n if (error instanceof FramerOverflowError) {\n this._logger.debug(\"Frames parsed\", { data: { count } });\n } else {\n this._logger.error(\"Error while parsing frame\", { data: { error } });\n }\n return error;\n });\n }\n return frames;\n }\n\n /**\n * Get apdu frame at index\n * Split every {{PACKET_SIZE - HEADER_SIZE}} bytes of apdu\n * @param apdu\n * @param frameIndex\n * @private\n */\n private getFrameAtIndex(\n apdu: Uint8Array,\n frameIndex: number,\n ): Either<DmkError, Frame> {\n const header = this.getFrameHeaderFrom(frameIndex, apdu.length);\n const frameOffset =\n frameIndex === 0\n ? 0\n : frameIndex * this._frameSize - this.getHeaderSizeSumFrom(frameIndex);\n\n if (frameOffset >= apdu.length) {\n return Left(new FramerOverflowError());\n }\n if (header.getLength() > this._frameSize) {\n return Left(new FramerApduError());\n }\n const dataMaxSize = this._frameSize - header.getLength();\n const data = apdu.slice(\n frameOffset,\n frameOffset + this._frameSize - header.getLength(),\n );\n const frameData = this._padding\n ? new Uint8Array(dataMaxSize).fill(0)\n : new Uint8Array(data.length < dataMaxSize ? data.length : dataMaxSize);\n frameData.set(data, 0);\n const frame = new Frame({\n header,\n data: frameData,\n });\n return Right(frame);\n }\n\n /**\n * Get frame header\n * @param frameIndex\n * @param apduSize\n * @private\n */\n private getFrameHeaderFrom(\n frameIndex: number,\n apduSize: number,\n ): FrameHeader {\n const header = new FrameHeader({\n uuid: v4(),\n channel: this._channel.map((channel) =>\n FramerUtils.getLastBytesFrom(channel, CHANNEL_LENGTH),\n ),\n headTag: new Uint8Array([HEAD_TAG]),\n index: FramerUtils.numberToByteArray(frameIndex, INDEX_LENGTH),\n length: this.getFrameHeaderSizeFromIndex(frameIndex),\n dataSize: Maybe.zero(),\n });\n if (frameIndex === 0) {\n header.setDataSize(\n Maybe.of(\n FramerUtils.numberToByteArray(apduSize, APDU_DATA_LENGTH_LENGTH),\n ),\n );\n }\n return header;\n }\n\n /**\n * Get frame offset\n * First frame has more bytes of header\n * Padding append means a 0 bytes is added at the end of each frame\n * @private\n * @param frameIndex\n */\n private getHeaderSizeSumFrom(frameIndex: number): number {\n let sum = this.getFrameHeaderSizeFromIndex(0);\n let i = 1;\n while (i < frameIndex) {\n sum += this.getFrameHeaderSizeFromIndex(i);\n i += 1;\n }\n return sum;\n }\n\n /**\n * Get frame header size\n * @private\n * @param frameIndex\n */\n private getFrameHeaderSizeFromIndex(frameIndex: number): number {\n return (\n this._channel.caseOf({\n Just: () => CHANNEL_LENGTH,\n Nothing: () => 0,\n }) +\n INDEX_LENGTH +\n HEAD_TAG_LENGTH +\n (frameIndex === 0 ? APDU_DATA_LENGTH_LENGTH : 0)\n );\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { Either, Left, Maybe, Right } from \"purify-ts\";\nimport { v4 } from \"uuid\";\n\nimport {\n APDU_DATA_LENGTH_LENGTH,\n CHANNEL_LENGTH,\n HEAD_TAG,\n HEAD_TAG_LENGTH,\n INDEX_LENGTH,\n} from \"@api/device-session/data/FramerConst\";\nimport type {\n ApduSenderService,\n ApduSenderServiceConstructorArgs,\n} from \"@api/device-session/service/ApduSenderService\";\nimport { FramerUtils } from \"@api/device-session/utils/FramerUtils\";\nimport { LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport {\n FramerApduError,\n FramerOverflowError,\n} from \"@internal/device-session/model/Errors\";\nimport { Frame } from \"@internal/device-session/model/Frame\";\nimport { FrameHeader } from \"@internal/device-session/model/FrameHeader\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport { DmkError } from \"@root/src/api/Error\";\n/**\n * Default implementation of ApduSenderService\n *\n * Split APDU in an array of frames readies to send to a TransportConnectedDevice\n */\n@injectable()\nexport class DefaultApduSenderService implements ApduSenderService {\n protected _frameSize: number;\n protected _channel: Maybe<Uint8Array>;\n protected _padding: boolean;\n private _logger: LoggerPublisherService;\n\n /**\n * Constructor\n *\n * @param frameSize\n * @param channel\n * @param padding\n * @param loggerServiceFactory\n */\n constructor(\n {\n frameSize,\n channel = Maybe.zero(),\n padding = false,\n }: ApduSenderServiceConstructorArgs,\n @inject(loggerTypes.LoggerPublisherServiceFactory)\n loggerServiceFactory: (tag: string) => LoggerPublisherService,\n ) {\n this._frameSize = frameSize;\n this._channel = channel;\n this._padding = padding;\n this._logger = loggerServiceFactory(\"DefaultApduSenderService\");\n }\n\n /**\n * Get frames from apdu\n *\n * @param apdu\n */\n public getFrames(apdu: Uint8Array): Frame[] {\n const frames: Frame[] = [];\n let count = 0;\n let frame = this.getFrameAtIndex(apdu, count);\n\n while (frame.isRight()) {\n frames.push(frame.extract());\n count += 1;\n frame = this.getFrameAtIndex(apdu, count).mapLeft((error) => {\n if (error instanceof FramerOverflowError) {\n // do nothing\n } else {\n this._logger.error(\"Error while parsing frame\", { data: { error } });\n }\n return error;\n });\n }\n return frames;\n }\n\n /**\n * Get apdu frame at index\n * Split every {{PACKET_SIZE - HEADER_SIZE}} bytes of apdu\n * @param apdu\n * @param frameIndex\n * @private\n */\n private getFrameAtIndex(\n apdu: Uint8Array,\n frameIndex: number,\n ): Either<DmkError, Frame> {\n const header = this.getFrameHeaderFrom(frameIndex, apdu.length);\n const frameOffset =\n frameIndex === 0\n ? 0\n : frameIndex * this._frameSize - this.getHeaderSizeSumFrom(frameIndex);\n\n if (frameOffset >= apdu.length) {\n return Left(new FramerOverflowError());\n }\n if (header.getLength() > this._frameSize) {\n return Left(new FramerApduError());\n }\n const dataMaxSize = this._frameSize - header.getLength();\n const data = apdu.slice(\n frameOffset,\n frameOffset + this._frameSize - header.getLength(),\n );\n const frameData = this._padding\n ? new Uint8Array(dataMaxSize).fill(0)\n : new Uint8Array(data.length < dataMaxSize ? data.length : dataMaxSize);\n frameData.set(data, 0);\n const frame = new Frame({\n header,\n data: frameData,\n });\n return Right(frame);\n }\n\n /**\n * Get frame header\n * @param frameIndex\n * @param apduSize\n * @private\n */\n private getFrameHeaderFrom(\n frameIndex: number,\n apduSize: number,\n ): FrameHeader {\n const header = new FrameHeader({\n uuid: v4(),\n channel: this._channel.map((channel) =>\n FramerUtils.getLastBytesFrom(channel, CHANNEL_LENGTH),\n ),\n headTag: new Uint8Array([HEAD_TAG]),\n index: FramerUtils.numberToByteArray(frameIndex, INDEX_LENGTH),\n length: this.getFrameHeaderSizeFromIndex(frameIndex),\n dataSize: Maybe.zero(),\n });\n if (frameIndex === 0) {\n header.setDataSize(\n Maybe.of(\n FramerUtils.numberToByteArray(apduSize, APDU_DATA_LENGTH_LENGTH),\n ),\n );\n }\n return header;\n }\n\n /**\n * Get frame offset\n * First frame has more bytes of header\n * Padding append means a 0 bytes is added at the end of each frame\n * @private\n * @param frameIndex\n */\n private getHeaderSizeSumFrom(frameIndex: number): number {\n let sum = this.getFrameHeaderSizeFromIndex(0);\n let i = 1;\n while (i < frameIndex) {\n sum += this.getFrameHeaderSizeFromIndex(i);\n i += 1;\n }\n return sum;\n }\n\n /**\n * Get frame header size\n * @private\n * @param frameIndex\n */\n private getFrameHeaderSizeFromIndex(frameIndex: number): number {\n return (\n this._channel.caseOf({\n Just: () => CHANNEL_LENGTH,\n Nothing: () => 0,\n }) +\n INDEX_LENGTH +\n HEAD_TAG_LENGTH +\n (frameIndex === 0 ? APDU_DATA_LENGTH_LENGTH : 0)\n );\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["inject", "injectable", "Left", "Maybe", "Right", "v4", "APDU_DATA_LENGTH_LENGTH", "CHANNEL_LENGTH", "HEAD_TAG", "HEAD_TAG_LENGTH", "INDEX_LENGTH", "FramerUtils", "FramerApduError", "FramerOverflowError", "Frame", "FrameHeader", "loggerTypes", "DefaultApduSenderService", "frameSize", "channel", "Maybe", "padding", "loggerServiceFactory", "apdu", "frames", "count", "frame", "error", "FramerOverflowError", "frameIndex", "header", "frameOffset", "Left", "FramerApduError", "dataMaxSize", "data", "frameData", "Frame", "Right", "apduSize", "FrameHeader", "v4", "FramerUtils", "CHANNEL_LENGTH", "HEAD_TAG", "INDEX_LENGTH", "APDU_DATA_LENGTH_LENGTH", "sum", "i", "HEAD_TAG_LENGTH", "__decorateClass", "injectable", "__decorateParam", "inject", "loggerTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var d=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var g=(t,e,i,s)=>{for(var o=s>1?void 0:s?l(e,i):e,n=t.length-1,c;n>=0;n--)(c=t[n])&&(o=(s?c(e,i,o):c(o))||o);return s&&o&&d(e,i,o),o},v=(t,e)=>(i,s)=>e(i,s,t);import{inject as u,injectable as S}from"inversify";import{Maybe as a}from"purify-ts";import{ReplaySubject as b}from"rxjs";import{DeviceSessionNotFound as h}from"../../device-session/model/Errors";import{loggerTypes as m}from"../../logger-publisher/di/loggerTypes";let r=class{_sessions;_logger;_sessionsSubject;constructor(e){this._sessions=[],this._sessionsSubject=new b,this._logger=e("DeviceSessionService")}get sessionsObs(){return this._sessionsSubject.asObservable()}addDeviceSession(e){return this._sessions.find(s=>s.id===e.id)?(this._logger.warn("DeviceSession already exists",{data:{deviceSession:e}}),this):(this._sessions.push(e),this._sessionsSubject.next(e),this._logger.info("DeviceSession added",{data:{deviceSession:e}}),this)}removeDeviceSession(e){const i=this._sessions.find(s=>s.id===e);return i?(i.close(),this._sessions=this._sessions.filter(s=>s.id!==e),this._logger.info("DeviceSession removed",{data:{sessionId:e}}),this):(this._logger.warn("DeviceSession not found",{data:{sessionId:e}}),this)}getDeviceSessionById(e){return a.fromNullable(this._sessions.find(s=>s.id===e)).toEither(new h)}getDeviceSessionByDeviceId(e){return a.fromNullable(this._sessions.find(s=>s.connectedDevice.id===e)).toEither(new h)}getDeviceSessions(){return this._sessions}};r=g([S(),v(0,u(m.LoggerPublisherServiceFactory))],r);export{r as DefaultDeviceSessionService};
1
+ var S=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var v=(r,e,s,i)=>{for(var o=i>1?void 0:i?a(e,s):e,n=r.length-1,c;n>=0;n--)(c=r[n])&&(o=(i?c(e,s,o):c(o))||o);return i&&o&&S(e,s,o),o},h=(r,e)=>(s,i)=>e(s,i,r);import{inject as l,injectable as u}from"inversify";import{Maybe as d}from"purify-ts";import{ReplaySubject as m}from"rxjs";import{DeviceSessionNotFound as g}from"../../device-session/model/Errors";import{loggerTypes as D}from"../../logger-publisher/di/loggerTypes";let t=class{_sessions;_sessionsSubject;_logger;constructor(e){this._sessions=[],this._sessionsSubject=new m,this._logger=e("DeviceSessionService")}get sessionsObs(){return this._sessionsSubject.asObservable()}addDeviceSession(e){return this._sessions.find(i=>i.id===e.id)?(this._logger.warn("DeviceSession already exists",{data:{deviceSession:e}}),this):(this._sessions.push(e),this._sessionsSubject.next(e),this._logger.info("DeviceSession added",{data:{sessionId:e.id}}),this)}removeDeviceSession(e){const s=this._sessions.find(i=>i.id===e);return s?(s.close(),this._sessions=this._sessions.filter(i=>i.id!==e),this._logger.info("DeviceSession removed",{data:{sessionId:e}}),this):(this._logger.warn("DeviceSession not found",{data:{sessionId:e}}),this)}getDeviceSessionById(e){return d.fromNullable(this._sessions.find(s=>s.id===e)).toEither(new g)}getDeviceSessionsByDeviceId(e){return d.fromPredicate(({length:s})=>s>0,this._sessions.filter(s=>s.connectedDevice.id===e)).toEither(new g)}getDeviceSessions(){return this._sessions}};t=v([u(),h(0,l(D.LoggerPublisherServiceFactory))],t);export{t as DefaultDeviceSessionService};
2
2
  //# sourceMappingURL=DefaultDeviceSessionService.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/service/DefaultDeviceSessionService.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { Maybe } from \"purify-ts\";\nimport { Observable, ReplaySubject } from \"rxjs\";\n\nimport { LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { DeviceSession } from \"@internal/device-session/model/DeviceSession\";\nimport { DeviceSessionNotFound } from \"@internal/device-session/model/Errors\";\nimport { DeviceSessionService } from \"@internal/device-session/service/DeviceSessionService\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\n\n@injectable()\nexport class DefaultDeviceSessionService implements DeviceSessionService {\n private _sessions: DeviceSession[];\n private readonly _logger: LoggerPublisherService;\n private _sessionsSubject: ReplaySubject<DeviceSession>;\n\n constructor(\n @inject(loggerTypes.LoggerPublisherServiceFactory)\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n ) {\n this._sessions = [];\n this._sessionsSubject = new ReplaySubject();\n this._logger = loggerModuleFactory(\"DeviceSessionService\");\n }\n\n public get sessionsObs(): Observable<DeviceSession> {\n return this._sessionsSubject.asObservable();\n }\n\n addDeviceSession(deviceSession: DeviceSession) {\n const found = this._sessions.find((s) => s.id === deviceSession.id);\n if (found) {\n this._logger.warn(\"DeviceSession already exists\", {\n data: { deviceSession },\n });\n return this;\n }\n\n this._sessions.push(deviceSession);\n this._sessionsSubject.next(deviceSession);\n this._logger.info(\"DeviceSession added\", { data: { deviceSession } });\n return this;\n }\n\n removeDeviceSession(sessionId: string) {\n const found = this._sessions.find((s) => s.id === sessionId);\n if (found) {\n found.close();\n this._sessions = this._sessions.filter((s) => s.id !== sessionId);\n this._logger.info(\"DeviceSession removed\", { data: { sessionId } });\n return this;\n }\n\n this._logger.warn(\"DeviceSession not found\", { data: { sessionId } });\n return this;\n }\n\n getDeviceSessionById(sessionId: string) {\n const deviceSession = Maybe.fromNullable(\n this._sessions.find((s) => s.id === sessionId),\n );\n\n return deviceSession.toEither(new DeviceSessionNotFound());\n }\n\n getDeviceSessionByDeviceId(deviceId: string) {\n const deviceSession = Maybe.fromNullable(\n this._sessions.find((s) => s.connectedDevice.id === deviceId),\n );\n\n return deviceSession.toEither(new DeviceSessionNotFound());\n }\n\n getDeviceSessions() {\n return this._sessions;\n }\n}\n"],
5
- "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YACnC,OAAS,SAAAC,MAAa,YACtB,OAAqB,iBAAAC,MAAqB,OAI1C,OAAS,yBAAAC,MAA6B,wCAEtC,OAAS,eAAAC,MAAmB,4CAGrB,IAAMC,EAAN,KAAkE,CAC/D,UACS,QACT,iBAER,YAEEC,EACA,CACA,KAAK,UAAY,CAAC,EAClB,KAAK,iBAAmB,IAAIC,EAC5B,KAAK,QAAUD,EAAoB,sBAAsB,CAC3D,CAEA,IAAW,aAAyC,CAClD,OAAO,KAAK,iBAAiB,aAAa,CAC5C,CAEA,iBAAiBE,EAA8B,CAE7C,OADc,KAAK,UAAU,KAAM,GAAM,EAAE,KAAOA,EAAc,EAAE,GAEhE,KAAK,QAAQ,KAAK,+BAAgC,CAChD,KAAM,CAAE,cAAAA,CAAc,CACxB,CAAC,EACM,OAGT,KAAK,UAAU,KAAKA,CAAa,EACjC,KAAK,iBAAiB,KAAKA,CAAa,EACxC,KAAK,QAAQ,KAAK,sBAAuB,CAAE,KAAM,CAAE,cAAAA,CAAc,CAAE,CAAC,EAC7D,KACT,CAEA,oBAAoBC,EAAmB,CACrC,MAAMC,EAAQ,KAAK,UAAU,KAAM,GAAM,EAAE,KAAOD,CAAS,EAC3D,OAAIC,GACFA,EAAM,MAAM,EACZ,KAAK,UAAY,KAAK,UAAU,OAAQ,GAAM,EAAE,KAAOD,CAAS,EAChE,KAAK,QAAQ,KAAK,wBAAyB,CAAE,KAAM,CAAE,UAAAA,CAAU,CAAE,CAAC,EAC3D,OAGT,KAAK,QAAQ,KAAK,0BAA2B,CAAE,KAAM,CAAE,UAAAA,CAAU,CAAE,CAAC,EAC7D,KACT,CAEA,qBAAqBA,EAAmB,CAKtC,OAJsBE,EAAM,aAC1B,KAAK,UAAU,KAAM,GAAM,EAAE,KAAOF,CAAS,CAC/C,EAEqB,SAAS,IAAIG,CAAuB,CAC3D,CAEA,2BAA2BC,EAAkB,CAK3C,OAJsBF,EAAM,aAC1B,KAAK,UAAU,KAAM,GAAM,EAAE,gBAAgB,KAAOE,CAAQ,CAC9D,EAEqB,SAAS,IAAID,CAAuB,CAC3D,CAEA,mBAAoB,CAClB,OAAO,KAAK,SACd,CACF,EAjEaP,EAANS,EAAA,CADNC,EAAW,EAOPC,EAAA,EAAAC,EAAOC,EAAY,6BAA6B,IANxCb",
6
- "names": ["inject", "injectable", "Maybe", "ReplaySubject", "DeviceSessionNotFound", "loggerTypes", "DefaultDeviceSessionService", "loggerModuleFactory", "ReplaySubject", "deviceSession", "sessionId", "found", "Maybe", "DeviceSessionNotFound", "deviceId", "__decorateClass", "injectable", "__decorateParam", "inject", "loggerTypes"]
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { Either, Maybe } from \"purify-ts\";\nimport { Observable, ReplaySubject } from \"rxjs\";\n\nimport { LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { DeviceId } from \"@api/types\";\nimport { DeviceSession } from \"@internal/device-session/model/DeviceSession\";\nimport { DeviceSessionNotFound } from \"@internal/device-session/model/Errors\";\nimport { DeviceSessionService } from \"@internal/device-session/service/DeviceSessionService\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\n\n@injectable()\nexport class DefaultDeviceSessionService implements DeviceSessionService {\n private _sessions: DeviceSession[];\n private readonly _sessionsSubject: ReplaySubject<DeviceSession>;\n private readonly _logger: LoggerPublisherService;\n\n constructor(\n @inject(loggerTypes.LoggerPublisherServiceFactory)\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n ) {\n this._sessions = [];\n this._sessionsSubject = new ReplaySubject();\n this._logger = loggerModuleFactory(\"DeviceSessionService\");\n }\n\n public get sessionsObs(): Observable<DeviceSession> {\n return this._sessionsSubject.asObservable();\n }\n\n addDeviceSession(deviceSession: DeviceSession): DeviceSessionService {\n const found = this._sessions.find((s) => s.id === deviceSession.id);\n if (found) {\n this._logger.warn(\"DeviceSession already exists\", {\n data: { deviceSession },\n });\n return this;\n }\n this._sessions.push(deviceSession);\n this._sessionsSubject.next(deviceSession);\n this._logger.info(\"DeviceSession added\", {\n data: { sessionId: deviceSession.id },\n });\n return this;\n }\n\n removeDeviceSession(sessionId: string): DeviceSessionService {\n const found = this._sessions.find((s) => s.id === sessionId);\n if (found) {\n found.close();\n this._sessions = this._sessions.filter((s) => s.id !== sessionId);\n this._logger.info(\"DeviceSession removed\", { data: { sessionId } });\n return this;\n }\n this._logger.warn(\"DeviceSession not found\", { data: { sessionId } });\n return this;\n }\n\n getDeviceSessionById(\n sessionId: string,\n ): Either<DeviceSessionNotFound, DeviceSession> {\n return Maybe.fromNullable(\n this._sessions.find((s) => s.id === sessionId),\n ).toEither(new DeviceSessionNotFound());\n }\n\n getDeviceSessionsByDeviceId(\n deviceId: DeviceId,\n ): Either<DeviceSessionNotFound, DeviceSession[]> {\n return Maybe.fromPredicate(\n ({ length }) => length > 0,\n this._sessions.filter((s) => s.connectedDevice.id === deviceId),\n ).toEither(new DeviceSessionNotFound());\n }\n\n getDeviceSessions(): DeviceSession[] {\n return this._sessions;\n }\n}\n"],
5
+ "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YACnC,OAAiB,SAAAC,MAAa,YAC9B,OAAqB,iBAAAC,MAAqB,OAK1C,OAAS,yBAAAC,MAA6B,wCAEtC,OAAS,eAAAC,MAAmB,4CAGrB,IAAMC,EAAN,KAAkE,CAC/D,UACS,iBACA,QAEjB,YAEEC,EACA,CACA,KAAK,UAAY,CAAC,EAClB,KAAK,iBAAmB,IAAIC,EAC5B,KAAK,QAAUD,EAAoB,sBAAsB,CAC3D,CAEA,IAAW,aAAyC,CAClD,OAAO,KAAK,iBAAiB,aAAa,CAC5C,CAEA,iBAAiBE,EAAoD,CAEnE,OADc,KAAK,UAAU,KAAMC,GAAMA,EAAE,KAAOD,EAAc,EAAE,GAEhE,KAAK,QAAQ,KAAK,+BAAgC,CAChD,KAAM,CAAE,cAAAA,CAAc,CACxB,CAAC,EACM,OAET,KAAK,UAAU,KAAKA,CAAa,EACjC,KAAK,iBAAiB,KAAKA,CAAa,EACxC,KAAK,QAAQ,KAAK,sBAAuB,CACvC,KAAM,CAAE,UAAWA,EAAc,EAAG,CACtC,CAAC,EACM,KACT,CAEA,oBAAoBE,EAAyC,CAC3D,MAAMC,EAAQ,KAAK,UAAU,KAAMF,GAAMA,EAAE,KAAOC,CAAS,EAC3D,OAAIC,GACFA,EAAM,MAAM,EACZ,KAAK,UAAY,KAAK,UAAU,OAAQF,GAAMA,EAAE,KAAOC,CAAS,EAChE,KAAK,QAAQ,KAAK,wBAAyB,CAAE,KAAM,CAAE,UAAAA,CAAU,CAAE,CAAC,EAC3D,OAET,KAAK,QAAQ,KAAK,0BAA2B,CAAE,KAAM,CAAE,UAAAA,CAAU,CAAE,CAAC,EAC7D,KACT,CAEA,qBACEA,EAC8C,CAC9C,OAAOE,EAAM,aACX,KAAK,UAAU,KAAM,GAAM,EAAE,KAAOF,CAAS,CAC/C,EAAE,SAAS,IAAIG,CAAuB,CACxC,CAEA,4BACEC,EACgD,CAChD,OAAOF,EAAM,cACX,CAAC,CAAE,OAAAG,CAAO,IAAMA,EAAS,EACzB,KAAK,UAAU,OAAQ,GAAM,EAAE,gBAAgB,KAAOD,CAAQ,CAChE,EAAE,SAAS,IAAID,CAAuB,CACxC,CAEA,mBAAqC,CACnC,OAAO,KAAK,SACd,CACF,EAlEaR,EAANW,EAAA,CADNC,EAAW,EAOPC,EAAA,EAAAC,EAAOC,EAAY,6BAA6B,IANxCf",
6
+ "names": ["inject", "injectable", "Maybe", "ReplaySubject", "DeviceSessionNotFound", "loggerTypes", "DefaultDeviceSessionService", "loggerModuleFactory", "ReplaySubject", "deviceSession", "s", "sessionId", "found", "Maybe", "DeviceSessionNotFound", "deviceId", "length", "__decorateClass", "injectable", "__decorateParam", "inject", "loggerTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Either as m,Left as p}from"purify-ts";import{Observable as D}from"rxjs";import{DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS as S}from"../../device-session/data/DeviceSessionRefresherConst";import{deviceSessionStubBuilder as l}from"../../device-session/model/DeviceSession.stub";import{DeviceSessionNotFound as f}from"../../device-session/model/Errors";import{DefaultLoggerPublisherService as g}from"../../logger-publisher/service/DefaultLoggerPublisherService";import{AxiosManagerApiDataSource as h}from"../../manager-api/data/AxiosManagerApiDataSource";import{DefaultManagerApiService as b}from"../../manager-api/service/DefaultManagerApiService";import{DefaultSecureChannelDataSource as E}from"../../secure-channel/data/DefaultSecureChannelDataSource";import{DefaultSecureChannelService as x}from"../../secure-channel/service/DefaultSecureChannelService";import{DefaultDeviceSessionService as A}from"./DefaultDeviceSessionService";vi.mock("@internal/logger-publisher/service/DefaultLoggerPublisherService");vi.mock("@internal/manager-api/data/AxiosManagerApiDataSource");let e,t,i,v,a,u,c;describe("DefaultDeviceSessionService",()=>{beforeEach(()=>{vi.restoreAllMocks(),t=new g([],"deviceSession"),e=new A(()=>t),v=new h({}),a=new b(v),u=new E({}),c=new x(u),i=l({},()=>t,a,c,S)}),afterEach(()=>{i.close()}),it("should have an empty sessions list",()=>{expect(e.getDeviceSessions()).toEqual([])}),it("should add a deviceSession",()=>{e.addDeviceSession(i),expect(e.getDeviceSessions()).toEqual([i])}),it("should not add a deviceSession if it already exists",()=>{e.addDeviceSession(i),e.addDeviceSession(i),expect(e.getDeviceSessions()).toEqual([i])}),it("should remove a deviceSession",()=>{e.addDeviceSession(i),e.removeDeviceSession(i.id),expect(e.getDeviceSessions()).toEqual([])}),it("should not remove a deviceSession if it does not exist",()=>{e.removeDeviceSession(i.id),expect(e.getDeviceSessions()).toEqual([])}),it("should get a deviceSession",()=>{e.addDeviceSession(i),expect(e.getDeviceSessionById(i.id)).toEqual(m.of(i))}),it("should not get a deviceSession if it does not exist",()=>{expect(e.getDeviceSessionById(i.id)).toEqual(p(new f))}),it("should get all sessions",()=>{e.addDeviceSession(i),expect(e.getDeviceSessions()).toEqual([i])}),it("should retrieve sessionObs",()=>{expect(e.sessionsObs).toBeInstanceOf(D)}),it("should emit new session",()=>new Promise((s,o)=>{const r=e.sessionsObs.subscribe({next(n){try{expect(n).toStrictEqual(i),r.unsubscribe(),s()}catch(d){o(d)}}});e.addDeviceSession(i)})),it("should emit previous added session",()=>{const s=l({id:"last-session"},()=>t,a,c,S),o=[];e.addDeviceSession(i),e.addDeviceSession(s);const r=e.sessionsObs.subscribe({next(n){o.push(n)}});s.close(),expect(o).toEqual([i,s]),r.unsubscribe()})});
1
+ import{Either as l,Left as u}from"purify-ts";import{Observable as b}from"rxjs";import{connectedDeviceStubBuilder as p}from"../../../api/transport/model/TransportConnectedDevice.stub";import{DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS as r}from"../../device-session/data/DeviceSessionRefresherConst";import{deviceSessionStubBuilder as a}from"../../device-session/model/DeviceSession.stub";import{DeviceSessionNotFound as m}from"../../device-session/model/Errors";import{DefaultLoggerPublisherService as x}from"../../logger-publisher/service/DefaultLoggerPublisherService";import{AxiosManagerApiDataSource as E}from"../../manager-api/data/AxiosManagerApiDataSource";import{DefaultManagerApiService as y}from"../../manager-api/service/DefaultManagerApiService";import{DefaultSecureChannelDataSource as I}from"../../secure-channel/data/DefaultSecureChannelDataSource";import{DefaultSecureChannelService as A}from"../../secure-channel/service/DefaultSecureChannelService";import{DefaultDeviceSessionService as q}from"./DefaultDeviceSessionService";vi.mock("@internal/logger-publisher/service/DefaultLoggerPublisherService");vi.mock("@internal/manager-api/data/AxiosManagerApiDataSource");let e,s,i,v,d,g,t,f,c;describe("DefaultDeviceSessionService",()=>{s=new x([],"deviceSession"),g=new E({}),t=new y(g),f=new I({}),c=new A(f),beforeEach(()=>{vi.restoreAllMocks(),e=new q(()=>s),i=a({},()=>s,t,c,r)}),afterEach(()=>{i.close()}),it("should have an empty DeviceSession list",()=>{expect(e.getDeviceSessions()).toEqual([])}),describe("DeviceSessionService addDeviceSession",()=>{it("should add a DeviceSession if it does not already exist",()=>{e.addDeviceSession(i),expect(e.getDeviceSessions()).toEqual([i])}),it("should not add a DeviceSession if it already exists",()=>{e.addDeviceSession(i),e.addDeviceSession(i),expect(e.getDeviceSessions()).toEqual([i])})}),describe("DeviceSessionService removeDeviceSession",()=>{it("should remove the DeviceSession of given ID",()=>{e.addDeviceSession(i),e.removeDeviceSession(i.id),expect(e.getDeviceSessions()).toEqual([])}),it("should not remove the DeviceSession of given ID if it does not exist",()=>{e.addDeviceSession(i),e.removeDeviceSession("non-existent-id"),expect(e.getDeviceSessions()).toEqual([i])})}),describe("DeviceSessionService getDeviceSessionById",()=>{it("should get the DeviceSession of given ID if it exists",()=>{e.addDeviceSession(i),expect(e.getDeviceSessionById(i.id)).toEqual(l.of(i))}),it("should not get the DeviceSession if it does not exist",()=>{e.addDeviceSession(i),expect(e.getDeviceSessionById("non-existent-id")).toEqual(u(new m))})}),describe("DeviceSessionService getDeviceSessionsByDeviceId",()=>{it("should not get device sessions by deviceId if none exist",()=>{e.addDeviceSession(i),expect(e.getDeviceSessionsByDeviceId("non-existent-device-id")).toEqual(u(new m))}),it("should get a single device session by deviceId",()=>{e.addDeviceSession(i),expect(e.getDeviceSessionsByDeviceId(i.connectedDevice.id)).toEqual(l.of([i]))}),it("should get device sessions by deviceId",()=>{e.addDeviceSession(i),v=a({connectedDevice:p({id:"device-1"}),id:"session-1"},()=>s,t,c,r),d=a({connectedDevice:p({id:"device-1"}),id:"session-2"},()=>s,t,c,r),e.addDeviceSession(v),e.addDeviceSession(d),expect(e.getDeviceSessionsByDeviceId("device-1")).toEqual(l.of([v,d])),v.close(),d.close()})}),it("should get all sessions",()=>{e.addDeviceSession(i),expect(e.getDeviceSessions()).toEqual([i])}),it("should retrieve sessionObs",()=>{expect(e.sessionsObs).toBeInstanceOf(b)}),it("should emit new session",()=>new Promise((o,n)=>{const S=e.sessionsObs.subscribe({next(D){try{expect(D).toStrictEqual(i),S.unsubscribe(),o()}catch(h){n(h)}}});e.addDeviceSession(i)})),it("should emit previous added session",()=>{const o=a({id:"last-session"},()=>s,t,c,r),n=[];e.addDeviceSession(i),e.addDeviceSession(o);const S=e.sessionsObs.subscribe({next(D){n.push(D)}});o.close(),expect(n).toEqual([i,o]),S.unsubscribe()})});
2
2
  //# sourceMappingURL=DefaultDeviceSessionService.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/service/DefaultDeviceSessionService.test.ts"],
4
- "sourcesContent": ["import { Either, Left } from \"purify-ts\";\nimport { Observable } from \"rxjs\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { type DeviceSession } from \"@internal/device-session/model/DeviceSession\";\nimport { deviceSessionStubBuilder } from \"@internal/device-session/model/DeviceSession.stub\";\nimport { DeviceSessionNotFound } from \"@internal/device-session/model/Errors\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\nimport { AxiosManagerApiDataSource } from \"@internal/manager-api/data/AxiosManagerApiDataSource\";\nimport { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\nimport { DefaultManagerApiService } from \"@internal/manager-api/service/DefaultManagerApiService\";\nimport type { ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { type SecureChannelDataSource } from \"@internal/secure-channel/data/SecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\n\nimport { DefaultDeviceSessionService } from \"./DefaultDeviceSessionService\";\n\nvi.mock(\"@internal/logger-publisher/service/DefaultLoggerPublisherService\");\nvi.mock(\"@internal/manager-api/data/AxiosManagerApiDataSource\");\n\nlet sessionService: DefaultDeviceSessionService;\nlet loggerService: DefaultLoggerPublisherService;\nlet deviceSession: DeviceSession;\nlet managerApiDataSource: ManagerApiDataSource;\nlet managerApi: ManagerApiService;\nlet secureChannelDataSource: SecureChannelDataSource;\nlet secureChannel: SecureChannelService;\n\ndescribe(\"DefaultDeviceSessionService\", () => {\n beforeEach(() => {\n vi.restoreAllMocks();\n loggerService = new DefaultLoggerPublisherService([], \"deviceSession\");\n sessionService = new DefaultDeviceSessionService(() => loggerService);\n managerApiDataSource = new AxiosManagerApiDataSource({} as DmkConfig);\n managerApi = new DefaultManagerApiService(managerApiDataSource);\n secureChannelDataSource = new DefaultSecureChannelDataSource(\n {} as DmkConfig,\n );\n secureChannel = new DefaultSecureChannelService(secureChannelDataSource);\n\n deviceSession = deviceSessionStubBuilder(\n {},\n () => loggerService,\n managerApi,\n secureChannel,\n DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS,\n );\n });\n\n afterEach(() => {\n deviceSession.close();\n });\n\n it(\"should have an empty sessions list\", () => {\n expect(sessionService.getDeviceSessions()).toEqual([]);\n });\n\n it(\"should add a deviceSession\", () => {\n sessionService.addDeviceSession(deviceSession);\n expect(sessionService.getDeviceSessions()).toEqual([deviceSession]);\n });\n\n it(\"should not add a deviceSession if it already exists\", () => {\n sessionService.addDeviceSession(deviceSession);\n sessionService.addDeviceSession(deviceSession);\n expect(sessionService.getDeviceSessions()).toEqual([deviceSession]);\n });\n\n it(\"should remove a deviceSession\", () => {\n sessionService.addDeviceSession(deviceSession);\n sessionService.removeDeviceSession(deviceSession.id);\n expect(sessionService.getDeviceSessions()).toEqual([]);\n });\n\n it(\"should not remove a deviceSession if it does not exist\", () => {\n sessionService.removeDeviceSession(deviceSession.id);\n expect(sessionService.getDeviceSessions()).toEqual([]);\n });\n\n it(\"should get a deviceSession\", () => {\n sessionService.addDeviceSession(deviceSession);\n expect(sessionService.getDeviceSessionById(deviceSession.id)).toEqual(\n Either.of(deviceSession),\n );\n });\n\n it(\"should not get a deviceSession if it does not exist\", () => {\n expect(sessionService.getDeviceSessionById(deviceSession.id)).toEqual(\n Left(new DeviceSessionNotFound()),\n );\n });\n\n it(\"should get all sessions\", () => {\n sessionService.addDeviceSession(deviceSession);\n expect(sessionService.getDeviceSessions()).toEqual([deviceSession]);\n });\n\n it(\"should retrieve sessionObs\", () => {\n expect(sessionService.sessionsObs).toBeInstanceOf(\n Observable<DeviceSession>,\n );\n });\n\n it(\"should emit new session\", () =>\n new Promise<void>((resolve, reject) => {\n const subscription = sessionService.sessionsObs.subscribe({\n next(emittedDeviceSession) {\n try {\n expect(emittedDeviceSession).toStrictEqual(deviceSession);\n subscription.unsubscribe();\n resolve();\n } catch (error) {\n reject(error);\n }\n },\n });\n sessionService.addDeviceSession(deviceSession);\n }));\n\n it(\"should emit previous added session\", () => {\n const lastDeviceSession = deviceSessionStubBuilder(\n { id: \"last-session\" },\n () => loggerService,\n managerApi,\n secureChannel,\n DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS,\n );\n const emittedSessions: DeviceSession[] = [];\n sessionService.addDeviceSession(deviceSession);\n sessionService.addDeviceSession(lastDeviceSession);\n\n const subscription = sessionService.sessionsObs.subscribe({\n next(emittedDeviceSession) {\n emittedSessions.push(emittedDeviceSession);\n },\n });\n lastDeviceSession.close();\n expect(emittedSessions).toEqual([deviceSession, lastDeviceSession]);\n subscription.unsubscribe();\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["Either", "Left", "Observable", "DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS", "deviceSessionStubBuilder", "DeviceSessionNotFound", "DefaultLoggerPublisherService", "AxiosManagerApiDataSource", "DefaultManagerApiService", "DefaultSecureChannelDataSource", "DefaultSecureChannelService", "DefaultDeviceSessionService", "sessionService", "loggerService", "deviceSession", "managerApiDataSource", "managerApi", "secureChannelDataSource", "secureChannel", "resolve", "reject", "subscription", "emittedDeviceSession", "error", "lastDeviceSession", "emittedSessions"]
4
+ "sourcesContent": ["import { Either, Left } from \"purify-ts\";\nimport { Observable } from \"rxjs\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { connectedDeviceStubBuilder } from \"@api/transport/model/TransportConnectedDevice.stub\";\nimport { DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { type DeviceSession } from \"@internal/device-session/model/DeviceSession\";\nimport { deviceSessionStubBuilder } from \"@internal/device-session/model/DeviceSession.stub\";\nimport { DeviceSessionNotFound } from \"@internal/device-session/model/Errors\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\nimport { AxiosManagerApiDataSource } from \"@internal/manager-api/data/AxiosManagerApiDataSource\";\nimport { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\nimport { DefaultManagerApiService } from \"@internal/manager-api/service/DefaultManagerApiService\";\nimport type { ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { type SecureChannelDataSource } from \"@internal/secure-channel/data/SecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\n\nimport { DefaultDeviceSessionService } from \"./DefaultDeviceSessionService\";\n\nvi.mock(\"@internal/logger-publisher/service/DefaultLoggerPublisherService\");\nvi.mock(\"@internal/manager-api/data/AxiosManagerApiDataSource\");\n\nlet sessionService: DefaultDeviceSessionService;\nlet loggerService: DefaultLoggerPublisherService;\nlet deviceSession: DeviceSession;\nlet deviceSession1: DeviceSession;\nlet deviceSession2: DeviceSession;\nlet managerApiDataSource: ManagerApiDataSource;\nlet managerApi: ManagerApiService;\nlet secureChannelDataSource: SecureChannelDataSource;\nlet secureChannel: SecureChannelService;\n\ndescribe(\"DefaultDeviceSessionService\", () => {\n // Initialize shared resources\n loggerService = new DefaultLoggerPublisherService([], \"deviceSession\");\n managerApiDataSource = new AxiosManagerApiDataSource({} as DmkConfig);\n managerApi = new DefaultManagerApiService(managerApiDataSource);\n secureChannelDataSource = new DefaultSecureChannelDataSource({} as DmkConfig);\n secureChannel = new DefaultSecureChannelService(secureChannelDataSource);\n\n beforeEach(() => {\n vi.restoreAllMocks();\n // Create a new instance before each test\n sessionService = new DefaultDeviceSessionService(() => loggerService);\n // Create a device session stub with default properties\n deviceSession = deviceSessionStubBuilder(\n {},\n () => loggerService,\n managerApi,\n secureChannel,\n DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS,\n );\n });\n\n afterEach(() => {\n deviceSession.close();\n });\n\n it(\"should have an empty DeviceSession list\", () => {\n expect(sessionService.getDeviceSessions()).toEqual([]);\n });\n\n describe(\"DeviceSessionService addDeviceSession\", () => {\n it(\"should add a DeviceSession if it does not already exist\", () => {\n sessionService.addDeviceSession(deviceSession);\n expect(sessionService.getDeviceSessions()).toEqual([deviceSession]);\n });\n it(\"should not add a DeviceSession if it already exists\", () => {\n sessionService.addDeviceSession(deviceSession);\n sessionService.addDeviceSession(deviceSession);\n expect(sessionService.getDeviceSessions()).toEqual([deviceSession]);\n });\n });\n\n describe(\"DeviceSessionService removeDeviceSession\", () => {\n it(\"should remove the DeviceSession of given ID\", () => {\n sessionService.addDeviceSession(deviceSession);\n sessionService.removeDeviceSession(deviceSession.id);\n expect(sessionService.getDeviceSessions()).toEqual([]);\n });\n it(\"should not remove the DeviceSession of given ID if it does not exist\", () => {\n sessionService.addDeviceSession(deviceSession);\n sessionService.removeDeviceSession(\"non-existent-id\");\n expect(sessionService.getDeviceSessions()).toEqual([deviceSession]);\n });\n });\n\n describe(\"DeviceSessionService getDeviceSessionById\", () => {\n it(\"should get the DeviceSession of given ID if it exists\", () => {\n sessionService.addDeviceSession(deviceSession);\n expect(sessionService.getDeviceSessionById(deviceSession.id)).toEqual(\n Either.of(deviceSession),\n );\n });\n it(\"should not get the DeviceSession if it does not exist\", () => {\n sessionService.addDeviceSession(deviceSession);\n expect(sessionService.getDeviceSessionById(\"non-existent-id\")).toEqual(\n Left(new DeviceSessionNotFound()),\n );\n });\n });\n\n describe(\"DeviceSessionService getDeviceSessionsByDeviceId\", () => {\n it(\"should not get device sessions by deviceId if none exist\", () => {\n sessionService.addDeviceSession(deviceSession);\n expect(\n sessionService.getDeviceSessionsByDeviceId(\"non-existent-device-id\"),\n ).toEqual(Left(new DeviceSessionNotFound()));\n });\n it(\"should get a single device session by deviceId\", () => {\n sessionService.addDeviceSession(deviceSession);\n expect(\n sessionService.getDeviceSessionsByDeviceId(\n deviceSession.connectedDevice.id,\n ),\n ).toEqual(Either.of([deviceSession]));\n });\n it(\"should get device sessions by deviceId\", () => {\n sessionService.addDeviceSession(deviceSession);\n deviceSession1 = deviceSessionStubBuilder(\n {\n connectedDevice: connectedDeviceStubBuilder({ id: \"device-1\" }),\n id: \"session-1\",\n },\n () => loggerService,\n managerApi,\n secureChannel,\n DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS,\n );\n\n deviceSession2 = deviceSessionStubBuilder(\n {\n connectedDevice: connectedDeviceStubBuilder({ id: \"device-1\" }),\n id: \"session-2\",\n },\n () => loggerService,\n managerApi,\n secureChannel,\n DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS,\n );\n sessionService.addDeviceSession(deviceSession1);\n sessionService.addDeviceSession(deviceSession2);\n expect(sessionService.getDeviceSessionsByDeviceId(\"device-1\")).toEqual(\n Either.of([deviceSession1, deviceSession2]),\n );\n deviceSession1.close();\n deviceSession2.close();\n });\n });\n\n it(\"should get all sessions\", () => {\n sessionService.addDeviceSession(deviceSession);\n expect(sessionService.getDeviceSessions()).toEqual([deviceSession]);\n });\n\n it(\"should retrieve sessionObs\", () => {\n expect(sessionService.sessionsObs).toBeInstanceOf(\n Observable<DeviceSession>,\n );\n });\n\n it(\"should emit new session\", () =>\n new Promise<void>((resolve, reject) => {\n const subscription = sessionService.sessionsObs.subscribe({\n next(emittedDeviceSession) {\n try {\n expect(emittedDeviceSession).toStrictEqual(deviceSession);\n subscription.unsubscribe();\n resolve();\n } catch (error) {\n reject(error);\n }\n },\n });\n sessionService.addDeviceSession(deviceSession);\n }));\n\n it(\"should emit previous added session\", () => {\n const lastDeviceSession = deviceSessionStubBuilder(\n { id: \"last-session\" },\n () => loggerService,\n managerApi,\n secureChannel,\n DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS,\n );\n const emittedSessions: DeviceSession[] = [];\n sessionService.addDeviceSession(deviceSession);\n sessionService.addDeviceSession(lastDeviceSession);\n\n const subscription = sessionService.sessionsObs.subscribe({\n next(emittedDeviceSession) {\n emittedSessions.push(emittedDeviceSession);\n },\n });\n lastDeviceSession.close();\n expect(emittedSessions).toEqual([deviceSession, lastDeviceSession]);\n subscription.unsubscribe();\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["Either", "Left", "Observable", "connectedDeviceStubBuilder", "DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS", "deviceSessionStubBuilder", "DeviceSessionNotFound", "DefaultLoggerPublisherService", "AxiosManagerApiDataSource", "DefaultManagerApiService", "DefaultSecureChannelDataSource", "DefaultSecureChannelService", "DefaultDeviceSessionService", "sessionService", "loggerService", "deviceSession", "deviceSession1", "deviceSession2", "managerApiDataSource", "managerApi", "secureChannelDataSource", "secureChannel", "resolve", "reject", "subscription", "emittedDeviceSession", "error", "lastDeviceSession", "emittedSessions"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ContainerModule as i}from"inversify";import{ConnectUseCase as C}from"../../discovery/use-case/ConnectUseCase";import{DisconnectUseCase as c}from"../../discovery/use-case/DisconnectUseCase";import{GetConnectedDeviceUseCase as r}from"../../discovery/use-case/GetConnectedDeviceUseCase";import{ListConnectedDevicesUseCase as n}from"../../discovery/use-case/ListConnectedDevicesUseCase";import{ListenToAvailableDevicesUseCase as U}from"../../discovery/use-case/ListenToAvailableDevicesUseCase";import{ListenToConnectedDeviceUseCase as v}from"../../discovery/use-case/ListenToConnectedDeviceUseCase";import{StartDiscoveringUseCase as m}from"../../discovery/use-case/StartDiscoveringUseCase";import{StopDiscoveringUseCase as D}from"../../discovery/use-case/StopDiscoveringUseCase";import{StubUseCase as t}from"../../../../src/di.stub";import{discoveryTypes as e}from"./discoveryTypes";const P=({stub:a=!1})=>new i(({bind:o,rebindSync:s})=>{o(e.ConnectUseCase).to(C),o(e.DisconnectUseCase).to(c),o(e.StartDiscoveringUseCase).to(m),o(e.StopDiscoveringUseCase).to(D),o(e.GetConnectedDeviceUseCase).to(r),o(e.ListenToAvailableDevicesUseCase).to(U),o(e.ListenToConnectedDeviceUseCase).to(v),o(e.ListConnectedDevicesUseCase).to(n),a&&(s(e.ConnectUseCase).to(t),s(e.DisconnectUseCase).to(t),s(e.StartDiscoveringUseCase).to(t),s(e.StopDiscoveringUseCase).to(t),s(e.GetConnectedDeviceUseCase).to(t),s(e.ListenToAvailableDevicesUseCase).to(t),s(e.ListenToConnectedDeviceUseCase).to(t),s(e.ListConnectedDevicesUseCase).to(t))});export{P as discoveryModuleFactory};
1
+ import{ContainerModule as i}from"inversify";import{ConnectUseCase as C}from"../../discovery/use-case/ConnectUseCase";import{DisconnectUseCase as c}from"../../discovery/use-case/DisconnectUseCase";import{GetConnectedDeviceUseCase as r}from"../../discovery/use-case/GetConnectedDeviceUseCase";import{ListConnectedDevicesUseCase as n}from"../../discovery/use-case/ListConnectedDevicesUseCase";import{ListenToAvailableDevicesUseCase as U}from"../../discovery/use-case/ListenToAvailableDevicesUseCase";import{ListenToConnectedDeviceUseCase as m}from"../../discovery/use-case/ListenToConnectedDeviceUseCase";import{ReconnectUseCase as v}from"../../discovery/use-case/ReconnectUseCase";import{StartDiscoveringUseCase as D}from"../../discovery/use-case/StartDiscoveringUseCase";import{StopDiscoveringUseCase as p}from"../../discovery/use-case/StopDiscoveringUseCase";import{StubUseCase as t}from"../../../../src/di.stub";import{discoveryTypes as e}from"./discoveryTypes";const w=({stub:a=!1})=>new i(({bind:o,rebindSync:s})=>{o(e.ConnectUseCase).to(C),o(e.DisconnectUseCase).to(c),o(e.ReconnectUseCase).to(v),o(e.StartDiscoveringUseCase).to(D),o(e.StopDiscoveringUseCase).to(p),o(e.GetConnectedDeviceUseCase).to(r),o(e.ListenToAvailableDevicesUseCase).to(U),o(e.ListenToConnectedDeviceUseCase).to(m),o(e.ListConnectedDevicesUseCase).to(n),a&&(s(e.ConnectUseCase).to(t),s(e.DisconnectUseCase).to(t),s(e.StartDiscoveringUseCase).to(t),s(e.StopDiscoveringUseCase).to(t),s(e.GetConnectedDeviceUseCase).to(t),s(e.ListenToAvailableDevicesUseCase).to(t),s(e.ListenToConnectedDeviceUseCase).to(t),s(e.ListConnectedDevicesUseCase).to(t))});export{w as discoveryModuleFactory};
2
2
  //# sourceMappingURL=discoveryModule.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/discovery/di/discoveryModule.ts"],
4
- "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { ConnectUseCase } from \"@internal/discovery/use-case/ConnectUseCase\";\nimport { DisconnectUseCase } from \"@internal/discovery/use-case/DisconnectUseCase\";\nimport { GetConnectedDeviceUseCase } from \"@internal/discovery/use-case/GetConnectedDeviceUseCase\";\nimport { ListConnectedDevicesUseCase } from \"@internal/discovery/use-case/ListConnectedDevicesUseCase\";\nimport { ListenToAvailableDevicesUseCase } from \"@internal/discovery/use-case/ListenToAvailableDevicesUseCase\";\nimport { ListenToConnectedDeviceUseCase } from \"@internal/discovery/use-case/ListenToConnectedDeviceUseCase\";\nimport { StartDiscoveringUseCase } from \"@internal/discovery/use-case/StartDiscoveringUseCase\";\nimport { StopDiscoveringUseCase } from \"@internal/discovery/use-case/StopDiscoveringUseCase\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { discoveryTypes } from \"./discoveryTypes\";\n\ntype FactoryProps = {\n stub: boolean;\n};\n\nexport const discoveryModuleFactory = ({ stub = false }: FactoryProps) =>\n new ContainerModule(({ bind, rebindSync }) => {\n bind(discoveryTypes.ConnectUseCase).to(ConnectUseCase);\n bind(discoveryTypes.DisconnectUseCase).to(DisconnectUseCase);\n bind(discoveryTypes.StartDiscoveringUseCase).to(StartDiscoveringUseCase);\n bind(discoveryTypes.StopDiscoveringUseCase).to(StopDiscoveringUseCase);\n bind(discoveryTypes.GetConnectedDeviceUseCase).to(\n GetConnectedDeviceUseCase,\n );\n bind(discoveryTypes.ListenToAvailableDevicesUseCase).to(\n ListenToAvailableDevicesUseCase,\n );\n bind(discoveryTypes.ListenToConnectedDeviceUseCase).to(\n ListenToConnectedDeviceUseCase,\n );\n bind(discoveryTypes.ListConnectedDevicesUseCase).to(\n ListConnectedDevicesUseCase,\n );\n\n if (stub) {\n rebindSync(discoveryTypes.ConnectUseCase).to(StubUseCase);\n rebindSync(discoveryTypes.DisconnectUseCase).to(StubUseCase);\n rebindSync(discoveryTypes.StartDiscoveringUseCase).to(StubUseCase);\n rebindSync(discoveryTypes.StopDiscoveringUseCase).to(StubUseCase);\n rebindSync(discoveryTypes.GetConnectedDeviceUseCase).to(StubUseCase);\n rebindSync(discoveryTypes.ListenToAvailableDevicesUseCase).to(\n StubUseCase,\n );\n rebindSync(discoveryTypes.ListenToConnectedDeviceUseCase).to(StubUseCase);\n rebindSync(discoveryTypes.ListConnectedDevicesUseCase).to(StubUseCase);\n }\n });\n"],
5
- "mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,kBAAAC,MAAsB,8CAC/B,OAAS,qBAAAC,MAAyB,iDAClC,OAAS,6BAAAC,MAAiC,yDAC1C,OAAS,+BAAAC,MAAmC,2DAC5C,OAAS,mCAAAC,MAAuC,+DAChD,OAAS,kCAAAC,MAAsC,8DAC/C,OAAS,2BAAAC,MAA+B,uDACxC,OAAS,0BAAAC,MAA8B,sDACvC,OAAS,eAAAC,MAAmB,oBAE5B,OAAS,kBAAAC,MAAsB,mBAMxB,MAAMC,EAAyB,CAAC,CAAE,KAAAC,EAAO,EAAM,IACpD,IAAIZ,EAAgB,CAAC,CAAE,KAAAa,EAAM,WAAAC,CAAW,IAAM,CAC5CD,EAAKH,EAAe,cAAc,EAAE,GAAGT,CAAc,EACrDY,EAAKH,EAAe,iBAAiB,EAAE,GAAGR,CAAiB,EAC3DW,EAAKH,EAAe,uBAAuB,EAAE,GAAGH,CAAuB,EACvEM,EAAKH,EAAe,sBAAsB,EAAE,GAAGF,CAAsB,EACrEK,EAAKH,EAAe,yBAAyB,EAAE,GAC7CP,CACF,EACAU,EAAKH,EAAe,+BAA+B,EAAE,GACnDL,CACF,EACAQ,EAAKH,EAAe,8BAA8B,EAAE,GAClDJ,CACF,EACAO,EAAKH,EAAe,2BAA2B,EAAE,GAC/CN,CACF,EAEIQ,IACFE,EAAWJ,EAAe,cAAc,EAAE,GAAGD,CAAW,EACxDK,EAAWJ,EAAe,iBAAiB,EAAE,GAAGD,CAAW,EAC3DK,EAAWJ,EAAe,uBAAuB,EAAE,GAAGD,CAAW,EACjEK,EAAWJ,EAAe,sBAAsB,EAAE,GAAGD,CAAW,EAChEK,EAAWJ,EAAe,yBAAyB,EAAE,GAAGD,CAAW,EACnEK,EAAWJ,EAAe,+BAA+B,EAAE,GACzDD,CACF,EACAK,EAAWJ,EAAe,8BAA8B,EAAE,GAAGD,CAAW,EACxEK,EAAWJ,EAAe,2BAA2B,EAAE,GAAGD,CAAW,EAEzE,CAAC",
6
- "names": ["ContainerModule", "ConnectUseCase", "DisconnectUseCase", "GetConnectedDeviceUseCase", "ListConnectedDevicesUseCase", "ListenToAvailableDevicesUseCase", "ListenToConnectedDeviceUseCase", "StartDiscoveringUseCase", "StopDiscoveringUseCase", "StubUseCase", "discoveryTypes", "discoveryModuleFactory", "stub", "bind", "rebindSync"]
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { ConnectUseCase } from \"@internal/discovery/use-case/ConnectUseCase\";\nimport { DisconnectUseCase } from \"@internal/discovery/use-case/DisconnectUseCase\";\nimport { GetConnectedDeviceUseCase } from \"@internal/discovery/use-case/GetConnectedDeviceUseCase\";\nimport { ListConnectedDevicesUseCase } from \"@internal/discovery/use-case/ListConnectedDevicesUseCase\";\nimport { ListenToAvailableDevicesUseCase } from \"@internal/discovery/use-case/ListenToAvailableDevicesUseCase\";\nimport { ListenToConnectedDeviceUseCase } from \"@internal/discovery/use-case/ListenToConnectedDeviceUseCase\";\nimport { ReconnectUseCase } from \"@internal/discovery/use-case/ReconnectUseCase\";\nimport { StartDiscoveringUseCase } from \"@internal/discovery/use-case/StartDiscoveringUseCase\";\nimport { StopDiscoveringUseCase } from \"@internal/discovery/use-case/StopDiscoveringUseCase\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { discoveryTypes } from \"./discoveryTypes\";\n\ntype FactoryProps = {\n stub: boolean;\n};\n\nexport const discoveryModuleFactory = ({ stub = false }: FactoryProps) =>\n new ContainerModule(({ bind, rebindSync }) => {\n bind(discoveryTypes.ConnectUseCase).to(ConnectUseCase);\n bind(discoveryTypes.DisconnectUseCase).to(DisconnectUseCase);\n bind(discoveryTypes.ReconnectUseCase).to(ReconnectUseCase);\n bind(discoveryTypes.StartDiscoveringUseCase).to(StartDiscoveringUseCase);\n bind(discoveryTypes.StopDiscoveringUseCase).to(StopDiscoveringUseCase);\n bind(discoveryTypes.GetConnectedDeviceUseCase).to(\n GetConnectedDeviceUseCase,\n );\n bind(discoveryTypes.ListenToAvailableDevicesUseCase).to(\n ListenToAvailableDevicesUseCase,\n );\n bind(discoveryTypes.ListenToConnectedDeviceUseCase).to(\n ListenToConnectedDeviceUseCase,\n );\n bind(discoveryTypes.ListConnectedDevicesUseCase).to(\n ListConnectedDevicesUseCase,\n );\n\n if (stub) {\n rebindSync(discoveryTypes.ConnectUseCase).to(StubUseCase);\n rebindSync(discoveryTypes.DisconnectUseCase).to(StubUseCase);\n rebindSync(discoveryTypes.StartDiscoveringUseCase).to(StubUseCase);\n rebindSync(discoveryTypes.StopDiscoveringUseCase).to(StubUseCase);\n rebindSync(discoveryTypes.GetConnectedDeviceUseCase).to(StubUseCase);\n rebindSync(discoveryTypes.ListenToAvailableDevicesUseCase).to(\n StubUseCase,\n );\n rebindSync(discoveryTypes.ListenToConnectedDeviceUseCase).to(StubUseCase);\n rebindSync(discoveryTypes.ListConnectedDevicesUseCase).to(StubUseCase);\n }\n });\n"],
5
+ "mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,kBAAAC,MAAsB,8CAC/B,OAAS,qBAAAC,MAAyB,iDAClC,OAAS,6BAAAC,MAAiC,yDAC1C,OAAS,+BAAAC,MAAmC,2DAC5C,OAAS,mCAAAC,MAAuC,+DAChD,OAAS,kCAAAC,MAAsC,8DAC/C,OAAS,oBAAAC,MAAwB,gDACjC,OAAS,2BAAAC,MAA+B,uDACxC,OAAS,0BAAAC,MAA8B,sDACvC,OAAS,eAAAC,MAAmB,oBAE5B,OAAS,kBAAAC,MAAsB,mBAMxB,MAAMC,EAAyB,CAAC,CAAE,KAAAC,EAAO,EAAM,IACpD,IAAIb,EAAgB,CAAC,CAAE,KAAAc,EAAM,WAAAC,CAAW,IAAM,CAC5CD,EAAKH,EAAe,cAAc,EAAE,GAAGV,CAAc,EACrDa,EAAKH,EAAe,iBAAiB,EAAE,GAAGT,CAAiB,EAC3DY,EAAKH,EAAe,gBAAgB,EAAE,GAAGJ,CAAgB,EACzDO,EAAKH,EAAe,uBAAuB,EAAE,GAAGH,CAAuB,EACvEM,EAAKH,EAAe,sBAAsB,EAAE,GAAGF,CAAsB,EACrEK,EAAKH,EAAe,yBAAyB,EAAE,GAC7CR,CACF,EACAW,EAAKH,EAAe,+BAA+B,EAAE,GACnDN,CACF,EACAS,EAAKH,EAAe,8BAA8B,EAAE,GAClDL,CACF,EACAQ,EAAKH,EAAe,2BAA2B,EAAE,GAC/CP,CACF,EAEIS,IACFE,EAAWJ,EAAe,cAAc,EAAE,GAAGD,CAAW,EACxDK,EAAWJ,EAAe,iBAAiB,EAAE,GAAGD,CAAW,EAC3DK,EAAWJ,EAAe,uBAAuB,EAAE,GAAGD,CAAW,EACjEK,EAAWJ,EAAe,sBAAsB,EAAE,GAAGD,CAAW,EAChEK,EAAWJ,EAAe,yBAAyB,EAAE,GAAGD,CAAW,EACnEK,EAAWJ,EAAe,+BAA+B,EAAE,GACzDD,CACF,EACAK,EAAWJ,EAAe,8BAA8B,EAAE,GAAGD,CAAW,EACxEK,EAAWJ,EAAe,2BAA2B,EAAE,GAAGD,CAAW,EAEzE,CAAC",
6
+ "names": ["ContainerModule", "ConnectUseCase", "DisconnectUseCase", "GetConnectedDeviceUseCase", "ListConnectedDevicesUseCase", "ListenToAvailableDevicesUseCase", "ListenToConnectedDeviceUseCase", "ReconnectUseCase", "StartDiscoveringUseCase", "StopDiscoveringUseCase", "StubUseCase", "discoveryTypes", "discoveryModuleFactory", "stub", "bind", "rebindSync"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Container as p}from"inversify";import{TransportMock as f}from"../../../api/transport/model/__mocks__/TransportMock";import{deviceModelModuleFactory as l}from"../../device-model/di/deviceModelModule";import{deviceSessionModuleFactory as d}from"../../device-session/di/deviceSessionModule";import{ConnectUseCase as C}from"../../discovery/use-case/ConnectUseCase";import{DisconnectUseCase as v}from"../../discovery/use-case/DisconnectUseCase";import{ListConnectedDevicesUseCase as u}from"../../discovery/use-case/ListConnectedDevicesUseCase";import{ListenToAvailableDevicesUseCase as g}from"../../discovery/use-case/ListenToAvailableDevicesUseCase";import{StartDiscoveringUseCase as U}from"../../discovery/use-case/StartDiscoveringUseCase";import{StopDiscoveringUseCase as y}from"../../discovery/use-case/StopDiscoveringUseCase";import{loggerModuleFactory as D}from"../../logger-publisher/di/loggerModule";import{managerApiModuleFactory as k}from"../../manager-api/di/managerApiModule";import{secureChannelModuleFactory as M}from"../../secure-channel/di/secureChannelModule";import{transportModuleFactory as b}from"../../transport/di/transportModule";import{discoveryModuleFactory as F}from"./discoveryModule";import{discoveryTypes as o}from"./discoveryTypes";describe("discoveryModuleFactory",()=>{let e,t,s;beforeEach(()=>{t=F({stub:!1}),e=new p,s=new f,e.loadSync(t,D(),l({stub:!1}),d(),b({transports:[vi.fn().mockImplementation(()=>s)]}),k({config:{managerApiUrl:"http://fake.url",mockUrl:"http://fake-mock.url"}}),M({config:{webSocketUrl:"http://fake-websocket.url"}}))}),it("should return the device module",()=>{expect(t).toBeDefined()}),it("should return none mocked use cases",()=>{const r=e.get(o.StartDiscoveringUseCase);expect(r).toBeInstanceOf(U);const n=e.get(o.StopDiscoveringUseCase);expect(n).toBeInstanceOf(y);const c=e.get(o.DisconnectUseCase);expect(c).toBeInstanceOf(v);const i=e.get(o.ConnectUseCase);expect(i).toBeInstanceOf(C);const a=e.get(o.ListenToAvailableDevicesUseCase);expect(a).toBeInstanceOf(g);const m=e.get(o.ListConnectedDevicesUseCase);expect(m).toBeInstanceOf(u)})});
1
+ import{Container as f}from"inversify";import{TransportMock as l}from"../../../api/transport/model/__mocks__/TransportMock";import{deviceModelModuleFactory as C}from"../../device-model/di/deviceModelModule";import{deviceSessionModuleFactory as d}from"../../device-session/di/deviceSessionModule";import{ConnectUseCase as U}from"../../discovery/use-case/ConnectUseCase";import{DisconnectUseCase as v}from"../../discovery/use-case/DisconnectUseCase";import{ListConnectedDevicesUseCase as g}from"../../discovery/use-case/ListConnectedDevicesUseCase";import{ListenToAvailableDevicesUseCase as u}from"../../discovery/use-case/ListenToAvailableDevicesUseCase";import{ReconnectUseCase as y}from"../../discovery/use-case/ReconnectUseCase";import{StartDiscoveringUseCase as D}from"../../discovery/use-case/StartDiscoveringUseCase";import{StopDiscoveringUseCase as k}from"../../discovery/use-case/StopDiscoveringUseCase";import{loggerModuleFactory as M}from"../../logger-publisher/di/loggerModule";import{managerApiModuleFactory as b}from"../../manager-api/di/managerApiModule";import{secureChannelModuleFactory as F}from"../../secure-channel/di/secureChannelModule";import{transportModuleFactory as h}from"../../transport/di/transportModule";import{discoveryModuleFactory as x}from"./discoveryModule";import{discoveryTypes as o}from"./discoveryTypes";describe("discoveryModuleFactory",()=>{let e,t,s;beforeEach(()=>{t=x({stub:!1}),e=new f,s=new l,e.loadSync(t,M(),C({stub:!1}),d(),h({transports:[vi.fn().mockImplementation(()=>s)]}),b({config:{managerApiUrl:"http://fake.url",mockUrl:"http://fake-mock.url"}}),F({config:{webSocketUrl:"http://fake-websocket.url"}}))}),it("should return the device module",()=>{expect(t).toBeDefined()}),it("should return none mocked use cases",()=>{const r=e.get(o.StartDiscoveringUseCase);expect(r).toBeInstanceOf(D);const n=e.get(o.StopDiscoveringUseCase);expect(n).toBeInstanceOf(k);const c=e.get(o.DisconnectUseCase);expect(c).toBeInstanceOf(v);const i=e.get(o.ConnectUseCase);expect(i).toBeInstanceOf(U);const a=e.get(o.ListenToAvailableDevicesUseCase);expect(a).toBeInstanceOf(u);const m=e.get(o.ListConnectedDevicesUseCase);expect(m).toBeInstanceOf(g);const p=e.get(o.ReconnectUseCase);expect(p).toBeInstanceOf(y)})});
2
2
  //# sourceMappingURL=discoveryModule.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/discovery/di/discoveryModule.test.ts"],
4
- "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { TransportMock } from \"@api/transport/model/__mocks__/TransportMock\";\nimport { type DmkConfig, type Transport } from \"@api/types\";\nimport { deviceModelModuleFactory } from \"@internal/device-model/di/deviceModelModule\";\nimport { deviceSessionModuleFactory } from \"@internal/device-session/di/deviceSessionModule\";\nimport { ConnectUseCase } from \"@internal/discovery/use-case/ConnectUseCase\";\nimport { DisconnectUseCase } from \"@internal/discovery/use-case/DisconnectUseCase\";\nimport { ListConnectedDevicesUseCase } from \"@internal/discovery/use-case/ListConnectedDevicesUseCase\";\nimport { ListenToAvailableDevicesUseCase } from \"@internal/discovery/use-case/ListenToAvailableDevicesUseCase\";\nimport { StartDiscoveringUseCase } from \"@internal/discovery/use-case/StartDiscoveringUseCase\";\nimport { StopDiscoveringUseCase } from \"@internal/discovery/use-case/StopDiscoveringUseCase\";\nimport { loggerModuleFactory } from \"@internal/logger-publisher/di/loggerModule\";\nimport { managerApiModuleFactory } from \"@internal/manager-api/di/managerApiModule\";\nimport { secureChannelModuleFactory } from \"@internal/secure-channel/di/secureChannelModule\";\nimport { transportModuleFactory } from \"@internal/transport/di/transportModule\";\n\nimport { discoveryModuleFactory } from \"./discoveryModule\";\nimport { discoveryTypes } from \"./discoveryTypes\";\n\ndescribe(\"discoveryModuleFactory\", () => {\n let container: Container;\n let mod: ReturnType<typeof discoveryModuleFactory>;\n let transport: Transport;\n beforeEach(() => {\n mod = discoveryModuleFactory({ stub: false });\n container = new Container();\n transport = new TransportMock();\n\n container.loadSync(\n mod,\n // The following modules are injected into discovery module\n loggerModuleFactory(),\n deviceModelModuleFactory({ stub: false }),\n deviceSessionModuleFactory(),\n transportModuleFactory({\n transports: [vi.fn().mockImplementation(() => transport)],\n }),\n managerApiModuleFactory({\n config: {\n managerApiUrl: \"http://fake.url\",\n mockUrl: \"http://fake-mock.url\",\n } as DmkConfig,\n }),\n secureChannelModuleFactory({\n config: {\n webSocketUrl: \"http://fake-websocket.url\",\n } as DmkConfig,\n }),\n );\n });\n it(\"should return the device module\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should return none mocked use cases\", () => {\n const startDiscoveringUseCase = container.get(\n discoveryTypes.StartDiscoveringUseCase,\n );\n expect(startDiscoveringUseCase).toBeInstanceOf(StartDiscoveringUseCase);\n\n const stopDiscoveringUseCase = container.get(\n discoveryTypes.StopDiscoveringUseCase,\n );\n expect(stopDiscoveringUseCase).toBeInstanceOf(StopDiscoveringUseCase);\n\n const disconnectUseCase = container.get(discoveryTypes.DisconnectUseCase);\n expect(disconnectUseCase).toBeInstanceOf(DisconnectUseCase);\n\n const connectUseCase = container.get(discoveryTypes.ConnectUseCase);\n expect(connectUseCase).toBeInstanceOf(ConnectUseCase);\n\n const listenToAvailableDevicesUseCase = container.get(\n discoveryTypes.ListenToAvailableDevicesUseCase,\n );\n expect(listenToAvailableDevicesUseCase).toBeInstanceOf(\n ListenToAvailableDevicesUseCase,\n );\n const listConnectedDevicesUseCase = container.get(\n discoveryTypes.ListConnectedDevicesUseCase,\n );\n expect(listConnectedDevicesUseCase).toBeInstanceOf(\n ListConnectedDevicesUseCase,\n );\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,iBAAAC,MAAqB,+CAE9B,OAAS,4BAAAC,MAAgC,8CACzC,OAAS,8BAAAC,MAAkC,kDAC3C,OAAS,kBAAAC,MAAsB,8CAC/B,OAAS,qBAAAC,MAAyB,iDAClC,OAAS,+BAAAC,MAAmC,2DAC5C,OAAS,mCAAAC,MAAuC,+DAChD,OAAS,2BAAAC,MAA+B,uDACxC,OAAS,0BAAAC,MAA8B,sDACvC,OAAS,uBAAAC,MAA2B,6CACpC,OAAS,2BAAAC,MAA+B,4CACxC,OAAS,8BAAAC,MAAkC,kDAC3C,OAAS,0BAAAC,MAA8B,yCAEvC,OAAS,0BAAAC,MAA8B,oBACvC,OAAS,kBAAAC,MAAsB,mBAE/B,SAAS,yBAA0B,IAAM,CACvC,IAAIC,EACAC,EACAC,EACJ,WAAW,IAAM,CACfD,EAAMH,EAAuB,CAAE,KAAM,EAAM,CAAC,EAC5CE,EAAY,IAAIhB,EAChBkB,EAAY,IAAIjB,EAEhBe,EAAU,SACRC,EAEAP,EAAoB,EACpBR,EAAyB,CAAE,KAAM,EAAM,CAAC,EACxCC,EAA2B,EAC3BU,EAAuB,CACrB,WAAY,CAAC,GAAG,GAAG,EAAE,mBAAmB,IAAMK,CAAS,CAAC,CAC1D,CAAC,EACDP,EAAwB,CACtB,OAAQ,CACN,cAAe,kBACf,QAAS,sBACX,CACF,CAAC,EACDC,EAA2B,CACzB,OAAQ,CACN,aAAc,2BAChB,CACF,CAAC,CACH,CACF,CAAC,EACD,GAAG,kCAAmC,IAAM,CAC1C,OAAOK,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,sCAAuC,IAAM,CAC9C,MAAME,EAA0BH,EAAU,IACxCD,EAAe,uBACjB,EACA,OAAOI,CAAuB,EAAE,eAAeX,CAAuB,EAEtE,MAAMY,EAAyBJ,EAAU,IACvCD,EAAe,sBACjB,EACA,OAAOK,CAAsB,EAAE,eAAeX,CAAsB,EAEpE,MAAMY,EAAoBL,EAAU,IAAID,EAAe,iBAAiB,EACxE,OAAOM,CAAiB,EAAE,eAAehB,CAAiB,EAE1D,MAAMiB,EAAiBN,EAAU,IAAID,EAAe,cAAc,EAClE,OAAOO,CAAc,EAAE,eAAelB,CAAc,EAEpD,MAAMmB,EAAkCP,EAAU,IAChDD,EAAe,+BACjB,EACA,OAAOQ,CAA+B,EAAE,eACtChB,CACF,EACA,MAAMiB,EAA8BR,EAAU,IAC5CD,EAAe,2BACjB,EACA,OAAOS,CAA2B,EAAE,eAClClB,CACF,CACF,CAAC,CACH,CAAC",
6
- "names": ["Container", "TransportMock", "deviceModelModuleFactory", "deviceSessionModuleFactory", "ConnectUseCase", "DisconnectUseCase", "ListConnectedDevicesUseCase", "ListenToAvailableDevicesUseCase", "StartDiscoveringUseCase", "StopDiscoveringUseCase", "loggerModuleFactory", "managerApiModuleFactory", "secureChannelModuleFactory", "transportModuleFactory", "discoveryModuleFactory", "discoveryTypes", "container", "mod", "transport", "startDiscoveringUseCase", "stopDiscoveringUseCase", "disconnectUseCase", "connectUseCase", "listenToAvailableDevicesUseCase", "listConnectedDevicesUseCase"]
4
+ "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { TransportMock } from \"@api/transport/model/__mocks__/TransportMock\";\nimport { type DmkConfig, type Transport } from \"@api/types\";\nimport { deviceModelModuleFactory } from \"@internal/device-model/di/deviceModelModule\";\nimport { deviceSessionModuleFactory } from \"@internal/device-session/di/deviceSessionModule\";\nimport { ConnectUseCase } from \"@internal/discovery/use-case/ConnectUseCase\";\nimport { DisconnectUseCase } from \"@internal/discovery/use-case/DisconnectUseCase\";\nimport { ListConnectedDevicesUseCase } from \"@internal/discovery/use-case/ListConnectedDevicesUseCase\";\nimport { ListenToAvailableDevicesUseCase } from \"@internal/discovery/use-case/ListenToAvailableDevicesUseCase\";\nimport { ReconnectUseCase } from \"@internal/discovery/use-case/ReconnectUseCase\";\nimport { StartDiscoveringUseCase } from \"@internal/discovery/use-case/StartDiscoveringUseCase\";\nimport { StopDiscoveringUseCase } from \"@internal/discovery/use-case/StopDiscoveringUseCase\";\nimport { loggerModuleFactory } from \"@internal/logger-publisher/di/loggerModule\";\nimport { managerApiModuleFactory } from \"@internal/manager-api/di/managerApiModule\";\nimport { secureChannelModuleFactory } from \"@internal/secure-channel/di/secureChannelModule\";\nimport { transportModuleFactory } from \"@internal/transport/di/transportModule\";\n\nimport { discoveryModuleFactory } from \"./discoveryModule\";\nimport { discoveryTypes } from \"./discoveryTypes\";\n\ndescribe(\"discoveryModuleFactory\", () => {\n let container: Container;\n let mod: ReturnType<typeof discoveryModuleFactory>;\n let transport: Transport;\n beforeEach(() => {\n mod = discoveryModuleFactory({ stub: false });\n container = new Container();\n transport = new TransportMock();\n\n container.loadSync(\n mod,\n // The following modules are injected into discovery module\n loggerModuleFactory(),\n deviceModelModuleFactory({ stub: false }),\n deviceSessionModuleFactory(),\n transportModuleFactory({\n transports: [vi.fn().mockImplementation(() => transport)],\n }),\n managerApiModuleFactory({\n config: {\n managerApiUrl: \"http://fake.url\",\n mockUrl: \"http://fake-mock.url\",\n } as DmkConfig,\n }),\n secureChannelModuleFactory({\n config: {\n webSocketUrl: \"http://fake-websocket.url\",\n } as DmkConfig,\n }),\n );\n });\n it(\"should return the device module\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should return none mocked use cases\", () => {\n const startDiscoveringUseCase = container.get(\n discoveryTypes.StartDiscoveringUseCase,\n );\n expect(startDiscoveringUseCase).toBeInstanceOf(StartDiscoveringUseCase);\n\n const stopDiscoveringUseCase = container.get(\n discoveryTypes.StopDiscoveringUseCase,\n );\n expect(stopDiscoveringUseCase).toBeInstanceOf(StopDiscoveringUseCase);\n\n const disconnectUseCase = container.get(discoveryTypes.DisconnectUseCase);\n expect(disconnectUseCase).toBeInstanceOf(DisconnectUseCase);\n\n const connectUseCase = container.get(discoveryTypes.ConnectUseCase);\n expect(connectUseCase).toBeInstanceOf(ConnectUseCase);\n\n const listenToAvailableDevicesUseCase = container.get(\n discoveryTypes.ListenToAvailableDevicesUseCase,\n );\n expect(listenToAvailableDevicesUseCase).toBeInstanceOf(\n ListenToAvailableDevicesUseCase,\n );\n const listConnectedDevicesUseCase = container.get(\n discoveryTypes.ListConnectedDevicesUseCase,\n );\n expect(listConnectedDevicesUseCase).toBeInstanceOf(\n ListConnectedDevicesUseCase,\n );\n const reconnectUseCase = container.get(discoveryTypes.ReconnectUseCase);\n expect(reconnectUseCase).toBeInstanceOf(ReconnectUseCase);\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,iBAAAC,MAAqB,+CAE9B,OAAS,4BAAAC,MAAgC,8CACzC,OAAS,8BAAAC,MAAkC,kDAC3C,OAAS,kBAAAC,MAAsB,8CAC/B,OAAS,qBAAAC,MAAyB,iDAClC,OAAS,+BAAAC,MAAmC,2DAC5C,OAAS,mCAAAC,MAAuC,+DAChD,OAAS,oBAAAC,MAAwB,gDACjC,OAAS,2BAAAC,MAA+B,uDACxC,OAAS,0BAAAC,MAA8B,sDACvC,OAAS,uBAAAC,MAA2B,6CACpC,OAAS,2BAAAC,MAA+B,4CACxC,OAAS,8BAAAC,MAAkC,kDAC3C,OAAS,0BAAAC,MAA8B,yCAEvC,OAAS,0BAAAC,MAA8B,oBACvC,OAAS,kBAAAC,MAAsB,mBAE/B,SAAS,yBAA0B,IAAM,CACvC,IAAIC,EACAC,EACAC,EACJ,WAAW,IAAM,CACfD,EAAMH,EAAuB,CAAE,KAAM,EAAM,CAAC,EAC5CE,EAAY,IAAIjB,EAChBmB,EAAY,IAAIlB,EAEhBgB,EAAU,SACRC,EAEAP,EAAoB,EACpBT,EAAyB,CAAE,KAAM,EAAM,CAAC,EACxCC,EAA2B,EAC3BW,EAAuB,CACrB,WAAY,CAAC,GAAG,GAAG,EAAE,mBAAmB,IAAMK,CAAS,CAAC,CAC1D,CAAC,EACDP,EAAwB,CACtB,OAAQ,CACN,cAAe,kBACf,QAAS,sBACX,CACF,CAAC,EACDC,EAA2B,CACzB,OAAQ,CACN,aAAc,2BAChB,CACF,CAAC,CACH,CACF,CAAC,EACD,GAAG,kCAAmC,IAAM,CAC1C,OAAOK,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,sCAAuC,IAAM,CAC9C,MAAME,EAA0BH,EAAU,IACxCD,EAAe,uBACjB,EACA,OAAOI,CAAuB,EAAE,eAAeX,CAAuB,EAEtE,MAAMY,EAAyBJ,EAAU,IACvCD,EAAe,sBACjB,EACA,OAAOK,CAAsB,EAAE,eAAeX,CAAsB,EAEpE,MAAMY,EAAoBL,EAAU,IAAID,EAAe,iBAAiB,EACxE,OAAOM,CAAiB,EAAE,eAAejB,CAAiB,EAE1D,MAAMkB,EAAiBN,EAAU,IAAID,EAAe,cAAc,EAClE,OAAOO,CAAc,EAAE,eAAenB,CAAc,EAEpD,MAAMoB,EAAkCP,EAAU,IAChDD,EAAe,+BACjB,EACA,OAAOQ,CAA+B,EAAE,eACtCjB,CACF,EACA,MAAMkB,EAA8BR,EAAU,IAC5CD,EAAe,2BACjB,EACA,OAAOS,CAA2B,EAAE,eAClCnB,CACF,EACA,MAAMoB,EAAmBT,EAAU,IAAID,EAAe,gBAAgB,EACtE,OAAOU,CAAgB,EAAE,eAAelB,CAAgB,CAC1D,CAAC,CACH,CAAC",
6
+ "names": ["Container", "TransportMock", "deviceModelModuleFactory", "deviceSessionModuleFactory", "ConnectUseCase", "DisconnectUseCase", "ListConnectedDevicesUseCase", "ListenToAvailableDevicesUseCase", "ReconnectUseCase", "StartDiscoveringUseCase", "StopDiscoveringUseCase", "loggerModuleFactory", "managerApiModuleFactory", "secureChannelModuleFactory", "transportModuleFactory", "discoveryModuleFactory", "discoveryTypes", "container", "mod", "transport", "startDiscoveringUseCase", "stopDiscoveringUseCase", "disconnectUseCase", "connectUseCase", "listenToAvailableDevicesUseCase", "listConnectedDevicesUseCase", "reconnectUseCase"]
7
7
  }
@@ -1,2 +1,2 @@
1
- const e={StartDiscoveringUseCase:Symbol.for("StartDiscoveringUseCase"),StopDiscoveringUseCase:Symbol.for("StopDiscoveringUseCase"),ConnectUseCase:Symbol.for("ConnectUseCase"),DisconnectUseCase:Symbol.for("DisconnectUseCase"),GetConnectedDeviceUseCase:Symbol.for("GetConnectedDeviceUseCase"),ListenToAvailableDevicesUseCase:Symbol.for("ListenToAvailableDevicesUseCase"),ListenToConnectedDeviceUseCase:Symbol.for("ListenToConnectedDeviceUseCase"),ListConnectedDevicesUseCase:Symbol.for("ListConnectedDevicesUseCase")};export{e as discoveryTypes};
1
+ const e={StartDiscoveringUseCase:Symbol.for("StartDiscoveringUseCase"),StopDiscoveringUseCase:Symbol.for("StopDiscoveringUseCase"),ConnectUseCase:Symbol.for("ConnectUseCase"),DisconnectUseCase:Symbol.for("DisconnectUseCase"),GetConnectedDeviceUseCase:Symbol.for("GetConnectedDeviceUseCase"),ListenToAvailableDevicesUseCase:Symbol.for("ListenToAvailableDevicesUseCase"),ListenToConnectedDeviceUseCase:Symbol.for("ListenToConnectedDeviceUseCase"),ListConnectedDevicesUseCase:Symbol.for("ListConnectedDevicesUseCase"),ReconnectUseCase:Symbol.for("ReconnectUseCase")};export{e as discoveryTypes};
2
2
  //# sourceMappingURL=discoveryTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/discovery/di/discoveryTypes.ts"],
4
- "sourcesContent": ["export const discoveryTypes = {\n StartDiscoveringUseCase: Symbol.for(\"StartDiscoveringUseCase\"),\n StopDiscoveringUseCase: Symbol.for(\"StopDiscoveringUseCase\"),\n ConnectUseCase: Symbol.for(\"ConnectUseCase\"),\n DisconnectUseCase: Symbol.for(\"DisconnectUseCase\"),\n GetConnectedDeviceUseCase: Symbol.for(\"GetConnectedDeviceUseCase\"),\n ListenToAvailableDevicesUseCase: Symbol.for(\n \"ListenToAvailableDevicesUseCase\",\n ),\n ListenToConnectedDeviceUseCase: Symbol.for(\"ListenToConnectedDeviceUseCase\"),\n ListConnectedDevicesUseCase: Symbol.for(\"ListConnectedDevicesUseCase\"),\n};\n"],
5
- "mappings": "AAAO,MAAMA,EAAiB,CAC5B,wBAAyB,OAAO,IAAI,yBAAyB,EAC7D,uBAAwB,OAAO,IAAI,wBAAwB,EAC3D,eAAgB,OAAO,IAAI,gBAAgB,EAC3C,kBAAmB,OAAO,IAAI,mBAAmB,EACjD,0BAA2B,OAAO,IAAI,2BAA2B,EACjE,gCAAiC,OAAO,IACtC,iCACF,EACA,+BAAgC,OAAO,IAAI,gCAAgC,EAC3E,4BAA6B,OAAO,IAAI,6BAA6B,CACvE",
4
+ "sourcesContent": ["export const discoveryTypes = {\n StartDiscoveringUseCase: Symbol.for(\"StartDiscoveringUseCase\"),\n StopDiscoveringUseCase: Symbol.for(\"StopDiscoveringUseCase\"),\n ConnectUseCase: Symbol.for(\"ConnectUseCase\"),\n DisconnectUseCase: Symbol.for(\"DisconnectUseCase\"),\n GetConnectedDeviceUseCase: Symbol.for(\"GetConnectedDeviceUseCase\"),\n ListenToAvailableDevicesUseCase: Symbol.for(\n \"ListenToAvailableDevicesUseCase\",\n ),\n ListenToConnectedDeviceUseCase: Symbol.for(\"ListenToConnectedDeviceUseCase\"),\n ListConnectedDevicesUseCase: Symbol.for(\"ListConnectedDevicesUseCase\"),\n ReconnectUseCase: Symbol.for(\"ReconnectUseCase\"),\n};\n"],
5
+ "mappings": "AAAO,MAAMA,EAAiB,CAC5B,wBAAyB,OAAO,IAAI,yBAAyB,EAC7D,uBAAwB,OAAO,IAAI,wBAAwB,EAC3D,eAAgB,OAAO,IAAI,gBAAgB,EAC3C,kBAAmB,OAAO,IAAI,mBAAmB,EACjD,0BAA2B,OAAO,IAAI,2BAA2B,EACjE,gCAAiC,OAAO,IACtC,iCACF,EACA,+BAAgC,OAAO,IAAI,gCAAgC,EAC3E,4BAA6B,OAAO,IAAI,6BAA6B,EACrE,iBAAkB,OAAO,IAAI,kBAAkB,CACjD",
6
6
  "names": ["discoveryTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var S=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var p=(t,r,o,i)=>{for(var e=i>1?void 0:i?m(r,o):r,s=t.length-1,v;s>=0;s--)(v=t[s])&&(e=(i?v(r,o,e):v(e))||e);return i&&e&&S(r,o,e),e},n=(t,r)=>(o,i)=>r(o,i,t);import{inject as c,injectable as g}from"inversify";import{EitherAsync as h}from"purify-ts";import{TransportNotSupportedError as l}from"../../../api/transport/model/Errors";import{deviceSessionTypes as d}from"../../device-session/di/deviceSessionTypes";import{DeviceSession as D}from"../../device-session/model/DeviceSession";import{loggerTypes as f}from"../../logger-publisher/di/loggerTypes";import{managerApiTypes as y}from"../../manager-api/di/managerApiTypes";import{secureChannelTypes as u}from"../../secure-channel/di/secureChannelTypes";import{transportDiTypes as _}from"../../transport/di/transportDiTypes";let a=class{_transportService;_sessionService;_loggerFactory;_managerApi;_secureChannel;_logger;constructor(r,o,i,e,s){this._sessionService=o,this._transportService=r,this._loggerFactory=i,this._logger=i("ConnectUseCase"),this._managerApi=e,this._secureChannel=s}handleDeviceDisconnect(r){this._sessionService.getDeviceSessionByDeviceId(r).map(i=>{this._sessionService.removeDeviceSession(i.id)})}async execute({device:r,sessionRefresherOptions:o}){const i=this._transportService.getTransport(r.transport);return h.liftEither(i.toEither(new l(new Error("Unknown transport")))).chain(async e=>e.connect({deviceId:r.id,onDisconnect:s=>this.handleDeviceDisconnect(s)})).ifLeft(e=>{this._logger.error("Error connecting to device",{data:{deviceId:r.id,error:e}})}).map(async e=>{const s=new D({connectedDevice:e},this._loggerFactory,this._managerApi,this._secureChannel,o);return this._sessionService.addDeviceSession(s),await s.initialiseSession(),s.id}).caseOf({Left:e=>{throw e},Right:e=>e})}};a=p([g(),n(0,c(_.TransportService)),n(1,c(d.DeviceSessionService)),n(2,c(f.LoggerPublisherServiceFactory)),n(3,c(y.ManagerApiService)),n(4,c(u.SecureChannelService))],a);export{a as ConnectUseCase};
1
+ var S=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var p=(c,e,s,i)=>{for(var o=i>1?void 0:i?g(e,s):e,r=c.length-1,n;r>=0;r--)(n=c[r])&&(o=(i?n(e,s,o):n(o))||o);return i&&o&&S(e,s,o),o},t=(c,e)=>(s,i)=>e(s,i,c);import{inject as a,injectable as m}from"inversify";import{EitherAsync as h}from"purify-ts";import{TransportNotSupportedError as d}from"../../../api/transport/model/Errors";import{deviceSessionTypes as l}from"../../device-session/di/deviceSessionTypes";import{DeviceSession as f}from"../../device-session/model/DeviceSession";import{loggerTypes as D}from"../../logger-publisher/di/loggerTypes";import{managerApiTypes as y}from"../../manager-api/di/managerApiTypes";import{secureChannelTypes as u}from"../../secure-channel/di/secureChannelTypes";import{transportDiTypes as _}from"../../transport/di/transportDiTypes";let v=class{_transportService;_sessionService;_loggerFactory;_managerApi;_secureChannel;_logger;constructor(e,s,i,o,r){this._sessionService=s,this._transportService=e,this._loggerFactory=i,this._logger=i("ConnectUseCase"),this._managerApi=o,this._secureChannel=r}handleDeviceDisconnect(e){this._sessionService.getDeviceSessionsByDeviceId(e).ifRight(s=>{s.forEach(i=>{this._sessionService.removeDeviceSession(i.id),this._logger.info("Session removed",{data:{deviceId:e,sessionId:i.id}})})})}async execute({device:e,sessionRefresherOptions:s}){const i=this._transportService.getTransport(e.transport),o="sessionId"in e?e.sessionId:void 0;return h.liftEither(i.toEither(new d(new Error("Unknown transport")))).chain(async r=>r.connect({deviceId:e.id,onDisconnect:n=>this.handleDeviceDisconnect(n)})).ifLeft(r=>{this._logger.error("Error connecting to device",{data:{deviceId:e.id,error:r}})}).map(async r=>{const n=new f({connectedDevice:r,id:o},this._loggerFactory,this._managerApi,this._secureChannel,s);return this._sessionService.addDeviceSession(n),await n.initialiseSession(),n.id}).caseOf({Left:r=>{throw r},Right:r=>r})}};v=p([m(),t(0,a(_.TransportService)),t(1,a(l.DeviceSessionService)),t(2,a(D.LoggerPublisherServiceFactory)),t(3,a(y.ManagerApiService)),t(4,a(u.SecureChannelService))],v);export{v as ConnectUseCase};
2
2
  //# sourceMappingURL=ConnectUseCase.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/discovery/use-case/ConnectUseCase.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { EitherAsync } from \"purify-ts\";\n\nimport { DeviceSessionId } from \"@api/device-session/types\";\nimport { LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { DiscoveredDevice } from \"@api/transport/model/DiscoveredDevice\";\nimport { TransportNotSupportedError } from \"@api/transport/model/Errors\";\nimport { DeviceId } from \"@api/types\";\nimport { deviceSessionTypes } from \"@internal/device-session/di/deviceSessionTypes\";\nimport {\n DeviceSession,\n DeviceSessionRefresherOptions,\n} from \"@internal/device-session/model/DeviceSession\";\nimport type { DeviceSessionService } from \"@internal/device-session/service/DeviceSessionService\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport { managerApiTypes } from \"@internal/manager-api/di/managerApiTypes\";\nimport type { ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { secureChannelTypes } from \"@internal/secure-channel/di/secureChannelTypes\";\nimport type { SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\nimport { transportDiTypes } from \"@internal/transport/di/transportDiTypes\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\n\n/**\n * The arguments for the ConnectUseCase.\n */\nexport type ConnectUseCaseArgs = {\n /**\n * UUID of the device got from device discovery `StartDiscoveringUseCase`\n */\n device: DiscoveredDevice;\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 * Connects to a discovered device.\n */\n@injectable()\nexport class ConnectUseCase {\n private readonly _transportService: TransportService;\n private readonly _sessionService: DeviceSessionService;\n private readonly _loggerFactory: (tag: string) => LoggerPublisherService;\n private readonly _managerApi: ManagerApiService;\n private readonly _secureChannel: SecureChannelService;\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 @inject(managerApiTypes.ManagerApiService)\n managerApi: ManagerApiService,\n @inject(secureChannelTypes.SecureChannelService)\n secureChannel: SecureChannelService,\n ) {\n this._sessionService = sessionService;\n this._transportService = transportService;\n this._loggerFactory = loggerFactory;\n this._logger = loggerFactory(\"ConnectUseCase\");\n this._managerApi = managerApi;\n this._secureChannel = secureChannel;\n }\n\n private handleDeviceDisconnect(deviceId: DeviceId) {\n const deviceSessionOrError =\n this._sessionService.getDeviceSessionByDeviceId(deviceId);\n deviceSessionOrError.map((deviceSession) => {\n this._sessionService.removeDeviceSession(deviceSession.id);\n });\n }\n\n async execute({\n device,\n sessionRefresherOptions,\n }: ConnectUseCaseArgs): Promise<DeviceSessionId> {\n const transport = this._transportService.getTransport(device.transport);\n\n return EitherAsync.liftEither(\n transport.toEither(\n new TransportNotSupportedError(new Error(\"Unknown transport\")),\n ),\n )\n .chain(async (t) => {\n return t.connect({\n deviceId: device.id,\n onDisconnect: (dId) => this.handleDeviceDisconnect(dId),\n });\n })\n .ifLeft((error) => {\n this._logger.error(\"Error connecting to device\", {\n data: { deviceId: device.id, error },\n });\n })\n .map(async (connectedDevice) => {\n const deviceSession = new DeviceSession(\n { connectedDevice },\n this._loggerFactory,\n this._managerApi,\n this._secureChannel,\n sessionRefresherOptions,\n );\n this._sessionService.addDeviceSession(deviceSession);\n await deviceSession.initialiseSession();\n return deviceSession.id;\n })\n .caseOf({\n Left: (error) => {\n throw error;\n },\n Right: (s) => s,\n });\n }\n}\n"],
5
- "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YACnC,OAAS,eAAAC,MAAmB,YAK5B,OAAS,8BAAAC,MAAkC,8BAE3C,OAAS,sBAAAC,MAA0B,iDACnC,OACE,iBAAAC,MAEK,+CAEP,OAAS,eAAAC,MAAmB,4CAC5B,OAAS,mBAAAC,MAAuB,2CAEhC,OAAS,sBAAAC,MAA0B,iDAEnC,OAAS,oBAAAC,MAAwB,0CAwB1B,IAAMC,EAAN,KAAqB,CACT,kBACA,gBACA,eACA,YACA,eACA,QAEjB,YAEEC,EAEAC,EAEAC,EAEAC,EAEAC,EACA,CACA,KAAK,gBAAkBH,EACvB,KAAK,kBAAoBD,EACzB,KAAK,eAAiBE,EACtB,KAAK,QAAUA,EAAc,gBAAgB,EAC7C,KAAK,YAAcC,EACnB,KAAK,eAAiBC,CACxB,CAEQ,uBAAuBC,EAAoB,CAE/C,KAAK,gBAAgB,2BAA2BA,CAAQ,EACrC,IAAKC,GAAkB,CAC1C,KAAK,gBAAgB,oBAAoBA,EAAc,EAAE,CAC3D,CAAC,CACH,CAEA,MAAM,QAAQ,CACZ,OAAAC,EACA,wBAAAC,CACF,EAAiD,CAC/C,MAAMC,EAAY,KAAK,kBAAkB,aAAaF,EAAO,SAAS,EAEtE,OAAOG,EAAY,WACjBD,EAAU,SACR,IAAIE,EAA2B,IAAI,MAAM,mBAAmB,CAAC,CAC/D,CACF,EACG,MAAM,MAAOC,GACLA,EAAE,QAAQ,CACf,SAAUL,EAAO,GACjB,aAAeM,GAAQ,KAAK,uBAAuBA,CAAG,CACxD,CAAC,CACF,EACA,OAAQC,GAAU,CACjB,KAAK,QAAQ,MAAM,6BAA8B,CAC/C,KAAM,CAAE,SAAUP,EAAO,GAAI,MAAAO,CAAM,CACrC,CAAC,CACH,CAAC,EACA,IAAI,MAAOC,GAAoB,CAC9B,MAAMT,EAAgB,IAAIU,EACxB,CAAE,gBAAAD,CAAgB,EAClB,KAAK,eACL,KAAK,YACL,KAAK,eACLP,CACF,EACA,YAAK,gBAAgB,iBAAiBF,CAAa,EACnD,MAAMA,EAAc,kBAAkB,EAC/BA,EAAc,EACvB,CAAC,EACA,OAAO,CACN,KAAOQ,GAAU,CACf,MAAMA,CACR,EACA,MAAQG,GAAMA,CAChB,CAAC,CACL,CACF,EA7EalB,EAANmB,EAAA,CADNC,EAAW,EAUPC,EAAA,EAAAC,EAAOC,EAAiB,gBAAgB,GAExCF,EAAA,EAAAC,EAAOE,EAAmB,oBAAoB,GAE9CH,EAAA,EAAAC,EAAOG,EAAY,6BAA6B,GAEhDJ,EAAA,EAAAC,EAAOI,EAAgB,iBAAiB,GAExCL,EAAA,EAAAC,EAAOK,EAAmB,oBAAoB,IAjBtC3B",
6
- "names": ["inject", "injectable", "EitherAsync", "TransportNotSupportedError", "deviceSessionTypes", "DeviceSession", "loggerTypes", "managerApiTypes", "secureChannelTypes", "transportDiTypes", "ConnectUseCase", "transportService", "sessionService", "loggerFactory", "managerApi", "secureChannel", "deviceId", "deviceSession", "device", "sessionRefresherOptions", "transport", "EitherAsync", "TransportNotSupportedError", "t", "dId", "error", "connectedDevice", "DeviceSession", "s", "__decorateClass", "injectable", "__decorateParam", "inject", "transportDiTypes", "deviceSessionTypes", "loggerTypes", "managerApiTypes", "secureChannelTypes"]
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { EitherAsync } from \"purify-ts\";\n\nimport { DeviceSessionId } from \"@api/device-session/types\";\nimport { LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { ConnectedDevice } from \"@api/transport/model/ConnectedDevice\";\nimport { DiscoveredDevice } from \"@api/transport/model/DiscoveredDevice\";\nimport { TransportNotSupportedError } from \"@api/transport/model/Errors\";\nimport { DeviceId } from \"@api/types\";\nimport { deviceSessionTypes } from \"@internal/device-session/di/deviceSessionTypes\";\nimport {\n DeviceSession,\n DeviceSessionRefresherOptions,\n} from \"@internal/device-session/model/DeviceSession\";\nimport type { DeviceSessionService } from \"@internal/device-session/service/DeviceSessionService\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport { managerApiTypes } from \"@internal/manager-api/di/managerApiTypes\";\nimport type { ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { secureChannelTypes } from \"@internal/secure-channel/di/secureChannelTypes\";\nimport type { SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\nimport { transportDiTypes } from \"@internal/transport/di/transportDiTypes\";\nimport { type TransportService } from \"@internal/transport/service/TransportService\";\n\n/**\n * The arguments for the ConnectUseCase.\n */\nexport type ConnectUseCaseArgs = {\n /**\n * Discovered device or connected device.\n */\n device: DiscoveredDevice | 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 * Connects to a discovered device.\n */\n@injectable()\nexport class ConnectUseCase {\n private readonly _transportService: TransportService;\n private readonly _sessionService: DeviceSessionService;\n private readonly _loggerFactory: (tag: string) => LoggerPublisherService;\n private readonly _managerApi: ManagerApiService;\n private readonly _secureChannel: SecureChannelService;\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 @inject(managerApiTypes.ManagerApiService)\n managerApi: ManagerApiService,\n @inject(secureChannelTypes.SecureChannelService)\n secureChannel: SecureChannelService,\n ) {\n this._sessionService = sessionService;\n this._transportService = transportService;\n this._loggerFactory = loggerFactory;\n this._logger = loggerFactory(\"ConnectUseCase\");\n this._managerApi = managerApi;\n this._secureChannel = secureChannel;\n }\n\n private handleDeviceDisconnect(deviceId: DeviceId) {\n this._sessionService\n .getDeviceSessionsByDeviceId(deviceId)\n .ifRight((deviceSessions) => {\n deviceSessions.forEach((deviceSession) => {\n this._sessionService.removeDeviceSession(deviceSession.id);\n this._logger.info(\"Session removed\", {\n data: { deviceId, sessionId: deviceSession.id },\n });\n });\n });\n }\n\n async execute({\n device,\n sessionRefresherOptions,\n }: ConnectUseCaseArgs): Promise<DeviceSessionId> {\n const transport = this._transportService.getTransport(device.transport);\n // In case of a connected device, we reconnect using the same session id.\n // If not provided, a new device session id will be generated.\n const deviceSessionId =\n \"sessionId\" in device ? device.sessionId : undefined;\n\n return EitherAsync.liftEither(\n transport.toEither(\n new TransportNotSupportedError(new Error(\"Unknown transport\")),\n ),\n )\n .chain(async (t) => {\n return t.connect({\n deviceId: device.id,\n onDisconnect: (dId) => this.handleDeviceDisconnect(dId),\n });\n })\n .ifLeft((error) => {\n this._logger.error(\"Error connecting to device\", {\n data: { deviceId: device.id, error },\n });\n })\n .map(async (connectedDevice) => {\n const deviceSession = new DeviceSession(\n { connectedDevice, id: deviceSessionId },\n this._loggerFactory,\n this._managerApi,\n this._secureChannel,\n sessionRefresherOptions,\n );\n this._sessionService.addDeviceSession(deviceSession);\n await deviceSession.initialiseSession();\n return deviceSession.id;\n })\n .caseOf({\n Left: (error) => {\n throw error;\n },\n Right: (s) => s,\n });\n }\n}\n"],
5
+ "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YACnC,OAAS,eAAAC,MAAmB,YAM5B,OAAS,8BAAAC,MAAkC,8BAE3C,OAAS,sBAAAC,MAA0B,iDACnC,OACE,iBAAAC,MAEK,+CAEP,OAAS,eAAAC,MAAmB,4CAC5B,OAAS,mBAAAC,MAAuB,2CAEhC,OAAS,sBAAAC,MAA0B,iDAEnC,OAAS,oBAAAC,MAAwB,0CAwB1B,IAAMC,EAAN,KAAqB,CACT,kBACA,gBACA,eACA,YACA,eACA,QAEjB,YAEEC,EAEAC,EAEAC,EAEAC,EAEAC,EACA,CACA,KAAK,gBAAkBH,EACvB,KAAK,kBAAoBD,EACzB,KAAK,eAAiBE,EACtB,KAAK,QAAUA,EAAc,gBAAgB,EAC7C,KAAK,YAAcC,EACnB,KAAK,eAAiBC,CACxB,CAEQ,uBAAuBC,EAAoB,CACjD,KAAK,gBACF,4BAA4BA,CAAQ,EACpC,QAASC,GAAmB,CAC3BA,EAAe,QAASC,GAAkB,CACxC,KAAK,gBAAgB,oBAAoBA,EAAc,EAAE,EACzD,KAAK,QAAQ,KAAK,kBAAmB,CACnC,KAAM,CAAE,SAAAF,EAAU,UAAWE,EAAc,EAAG,CAChD,CAAC,CACH,CAAC,CACH,CAAC,CACL,CAEA,MAAM,QAAQ,CACZ,OAAAC,EACA,wBAAAC,CACF,EAAiD,CAC/C,MAAMC,EAAY,KAAK,kBAAkB,aAAaF,EAAO,SAAS,EAGhEG,EACJ,cAAeH,EAASA,EAAO,UAAY,OAE7C,OAAOI,EAAY,WACjBF,EAAU,SACR,IAAIG,EAA2B,IAAI,MAAM,mBAAmB,CAAC,CAC/D,CACF,EACG,MAAM,MAAOC,GACLA,EAAE,QAAQ,CACf,SAAUN,EAAO,GACjB,aAAeO,GAAQ,KAAK,uBAAuBA,CAAG,CACxD,CAAC,CACF,EACA,OAAQC,GAAU,CACjB,KAAK,QAAQ,MAAM,6BAA8B,CAC/C,KAAM,CAAE,SAAUR,EAAO,GAAI,MAAAQ,CAAM,CACrC,CAAC,CACH,CAAC,EACA,IAAI,MAAOC,GAAoB,CAC9B,MAAMV,EAAgB,IAAIW,EACxB,CAAE,gBAAAD,EAAiB,GAAIN,CAAgB,EACvC,KAAK,eACL,KAAK,YACL,KAAK,eACLF,CACF,EACA,YAAK,gBAAgB,iBAAiBF,CAAa,EACnD,MAAMA,EAAc,kBAAkB,EAC/BA,EAAc,EACvB,CAAC,EACA,OAAO,CACN,KAAOS,GAAU,CACf,MAAMA,CACR,EACA,MAAQG,GAAMA,CAChB,CAAC,CACL,CACF,EAtFapB,EAANqB,EAAA,CADNC,EAAW,EAUPC,EAAA,EAAAC,EAAOC,EAAiB,gBAAgB,GAExCF,EAAA,EAAAC,EAAOE,EAAmB,oBAAoB,GAE9CH,EAAA,EAAAC,EAAOG,EAAY,6BAA6B,GAEhDJ,EAAA,EAAAC,EAAOI,EAAgB,iBAAiB,GAExCL,EAAA,EAAAC,EAAOK,EAAmB,oBAAoB,IAjBtC7B",
6
+ "names": ["inject", "injectable", "EitherAsync", "TransportNotSupportedError", "deviceSessionTypes", "DeviceSession", "loggerTypes", "managerApiTypes", "secureChannelTypes", "transportDiTypes", "ConnectUseCase", "transportService", "sessionService", "loggerFactory", "managerApi", "secureChannel", "deviceId", "deviceSessions", "deviceSession", "device", "sessionRefresherOptions", "transport", "deviceSessionId", "EitherAsync", "TransportNotSupportedError", "t", "dId", "error", "connectedDevice", "DeviceSession", "s", "__decorateClass", "injectable", "__decorateParam", "inject", "transportDiTypes", "deviceSessionTypes", "loggerTypes", "managerApiTypes", "secureChannelTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Left as g,Maybe as p,Right as d}from"purify-ts";import{TransportMock as y}from"../../../api/transport/model/__mocks__/TransportMock";import{UnknownDeviceError as m}from"../../../api/transport/model/Errors";import{connectedDeviceStubBuilder as k}from"../../../api/transport/model/TransportConnectedDevice.stub";import{DefaultDeviceSessionService as C}from"../../device-session/service/DefaultDeviceSessionService";import{DefaultLoggerPublisherService as w}from"../../logger-publisher/service/DefaultLoggerPublisherService";import{AxiosManagerApiDataSource as A}from"../../manager-api/data/AxiosManagerApiDataSource";import{DefaultManagerApiService as h}from"../../manager-api/service/DefaultManagerApiService";import{DefaultSecureChannelDataSource as M}from"../../secure-channel/data/DefaultSecureChannelDataSource";import{DefaultSecureChannelService as T}from"../../secure-channel/service/DefaultSecureChannelService";import{DefaultTransportService as b}from"../../transport/service/DefaultTransportService";import{ConnectUseCase as v}from"./ConnectUseCase";vi.mock("uuid",()=>({v4:vi.fn().mockReturnValue("fakeSessionId")}));vi.mock("@internal/manager-api/data/AxiosManagerApiDataSource");vi.mock("@internal/transport/service/DefaultTransportService");let r,o,i,e,n,S,u,a;const I="fakeSessionId";describe("ConnectUseCase",()=>{const c={id:"",deviceModel:{},transport:"USB",name:"TEST"},f=k({id:"1"}),l="logger-tag";beforeAll(()=>{i=new w([],l),r=new y,e=new C(()=>i),S=new A({}),n=new h(S),u=new M({}),a=new T(u),o=new b}),afterEach(()=>{for(const t of e.getDeviceSessions())e.removeDeviceSession(t.id)}),afterAll(()=>{vi.restoreAllMocks()}),test("If connect use case encounter an error, return it",async()=>{vi.spyOn(r,"connect").mockResolvedValue(g(new m)),vi.spyOn(o,"getTransport").mockReturnValue(p.of(r));const t=new v(o,e,()=>i,n,a);await expect(t.execute({device:c})).rejects.toBeInstanceOf(m)}),test("If connect is in success, return a deviceSession id",async()=>{vi.spyOn(r,"connect").mockResolvedValue(d(f)),vi.spyOn(o,"getTransport").mockReturnValue(p.of(r)),vi.spyOn(e,"addDeviceSession").mockImplementation(D=>(D.setDeviceSessionState({}),e));const s=await new v(o,e,()=>i,n,a).execute({device:c});expect(s).toBe(I),e.removeDeviceSession(s)})});
1
+ import{Left as k,Maybe as m,Right as S}from"purify-ts";import{TransportMock as C}from"../../../api/transport/model/__mocks__/TransportMock";import{UnknownDeviceError as f}from"../../../api/transport/model/Errors";import{connectedDeviceStubBuilder as w}from"../../../api/transport/model/TransportConnectedDevice.stub";import{DefaultDeviceSessionService as I}from"../../device-session/service/DefaultDeviceSessionService";import{DefaultLoggerPublisherService as M}from"../../logger-publisher/service/DefaultLoggerPublisherService";import{AxiosManagerApiDataSource as T}from"../../manager-api/data/AxiosManagerApiDataSource";import{DefaultManagerApiService as h}from"../../manager-api/service/DefaultManagerApiService";import{DefaultSecureChannelDataSource as A}from"../../secure-channel/data/DefaultSecureChannelDataSource";import{DefaultSecureChannelService as b}from"../../secure-channel/service/DefaultSecureChannelService";import{DefaultTransportService as O}from"../../transport/service/DefaultTransportService";import{ConnectUseCase as p}from"./ConnectUseCase";vi.mock("uuid",()=>({v4:vi.fn().mockReturnValue("fakeSessionId")}));vi.mock("@internal/manager-api/data/AxiosManagerApiDataSource");vi.mock("@internal/transport/service/DefaultTransportService");let o,n,i,e,s,l,d,c;const x="fakeSessionId",D="fakeSessionIdConnectedDevice";describe("ConnectUseCase",()=>{const v={id:"",deviceModel:{},transport:"USB",name:"TEST"},u=w({id:"1"}),g={id:"1",sessionId:D,modelId:"model-id",name:"device-name",type:"MOCK",transport:"USB"},y="logger-tag";beforeAll(()=>{i=new M([],y),o=new C,e=new I(()=>i),l=new T({}),s=new h(l),d=new A({}),c=new b(d),n=new O}),afterEach(()=>{for(const t of e.getDeviceSessions())e.removeDeviceSession(t.id)}),afterAll(()=>{vi.restoreAllMocks()}),test("If connect use case encounter an error, return it",async()=>{vi.spyOn(o,"connect").mockResolvedValue(k(new f)),vi.spyOn(n,"getTransport").mockReturnValue(m.of(o));const t=new p(n,e,()=>i,s,c);await expect(t.execute({device:v})).rejects.toBeInstanceOf(f)}),test("If connect is in success, return a deviceSession id",async()=>{vi.spyOn(o,"connect").mockResolvedValue(S(u)),vi.spyOn(n,"getTransport").mockReturnValue(m.of(o)),vi.spyOn(e,"addDeviceSession").mockImplementation(a=>(a.setDeviceSessionState({}),e));const r=await new p(n,e,()=>i,s,c).execute({device:v});expect(r).toBe(x),e.removeDeviceSession(r)}),test("If connect is in success after a reconnect, return the same deviceSession id",async()=>{vi.spyOn(o,"connect").mockResolvedValue(S(u)),vi.spyOn(n,"getTransport").mockReturnValue(m.of(o)),vi.spyOn(e,"addDeviceSession").mockImplementation(a=>(a.setDeviceSessionState({}),e));const r=await new p(n,e,()=>i,s,c).execute({device:g});expect(r).toBe(D),e.removeDeviceSession(r)})});
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,OAAS,QAAAA,EAAM,SAAAC,EAAO,SAAAC,MAAa,YAKnC,OAAS,iBAAAC,MAAqB,+CAE9B,OAAS,sBAAAC,MAA0B,8BACnC,OAAS,8BAAAC,MAAkC,qDAE3C,OAAS,+BAAAC,MAAmC,+DAE5C,OAAS,iCAAAC,MAAqC,mEAC9C,OAAS,6BAAAC,MAAiC,uDAE1C,OAAS,4BAAAC,MAAgC,yDAEzC,OAAS,kCAAAC,MAAsC,+DAE/C,OAAS,+BAAAC,MAAmC,+DAE5C,OAAS,2BAAAC,MAA+B,sDAGxC,OAAS,kBAAAC,MAAsB,mBAE/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,EAAsBnB,EAA2B,CAAE,GAAI,GAAI,CAAC,EAC5DoB,EAAM,aAEZ,UAAU,IAAM,CACdT,EAAS,IAAIT,EAA8B,CAAC,EAAGkB,CAAG,EAClDX,EAAY,IAAIX,EAChBc,EAAiB,IAAIX,EAA4B,IAAMU,CAAM,EAC7DG,EAAuB,IAAIX,EAA0B,CAAC,CAAc,EACpEU,EAAa,IAAIT,EAAyBU,CAAoB,EAC9DC,EAA0B,IAAIV,EAC5B,CAAC,CACH,EACAW,EAAgB,IAAIV,EAA4BS,CAAuB,EAEvEL,EAAmB,IAAIH,CACzB,CAAC,EAED,UAAU,IAAM,CACd,UAAWc,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,kBAC7Bd,EAAK,IAAII,CAAoB,CAC/B,EAEA,GAAG,MAAMW,EAAkB,cAAc,EAAE,gBACzCd,EAAM,GAAGa,CAAS,CACpB,EAEA,MAAMa,EAAU,IAAId,EAClBE,EACAE,EACA,IAAMD,EACNE,EACAG,CACF,EAEA,MAAM,OACJM,EAAQ,QAAQ,CAAE,OAAQJ,CAAqB,CAAC,CAClD,EAAE,QAAQ,eAAenB,CAAkB,CAC7C,CAAC,EAED,KAAK,sDAAuD,SAAY,CACtE,GAAG,MAAMU,EAAW,SAAS,EAAE,kBAC7BZ,EAAMsB,CAAmB,CAC3B,EACA,GAAG,MAAMT,EAAkB,cAAc,EAAE,gBACzCd,EAAM,GAAGa,CAAS,CACpB,EACA,GAAG,MAAMG,EAAgB,kBAAkB,EAAE,mBAC1CW,IACCA,EAAc,sBAAsB,CAAC,CAAuB,EACrDX,EAEX,EAUA,MAAMY,EAAY,MARF,IAAIhB,EAClBE,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": ["Left", "Maybe", "Right", "TransportMock", "UnknownDeviceError", "connectedDeviceStubBuilder", "DefaultDeviceSessionService", "DefaultLoggerPublisherService", "AxiosManagerApiDataSource", "DefaultManagerApiService", "DefaultSecureChannelDataSource", "DefaultSecureChannelService", "DefaultTransportService", "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 DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport { type ConnectionType } from \"@api/discovery/ConnectionType\";\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { TransportMock } from \"@api/transport/model/__mocks__/TransportMock\";\nimport { type ConnectedDevice } from \"@api/transport/model/ConnectedDevice\";\nimport { type DiscoveredDevice } from \"@api/transport/model/DiscoveredDevice\";\nimport { UnknownDeviceError } from \"@api/transport/model/Errors\";\nimport { type Transport } from \"@api/transport/model/Transport\";\nimport { connectedDeviceStubBuilder } from \"@api/transport/model/TransportConnectedDevice.stub\";\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\";\nconst fakeSessionIdConnectedDevice = \"fakeSessionIdConnectedDevice\";\n\ndescribe(\"ConnectUseCase\", () => {\n const stubDiscoveredDevice: DiscoveredDevice = {\n id: \"\",\n deviceModel: {} as DeviceModel,\n transport: \"USB\",\n name: \"TEST\",\n };\n const stubTransportConnectedDevice = connectedDeviceStubBuilder({ id: \"1\" });\n const stubConnectedDevice = {\n id: \"1\",\n sessionId: fakeSessionIdConnectedDevice,\n modelId: \"model-id\" as unknown as DeviceModelId,\n name: \"device-name\",\n type: \"MOCK\" as unknown as ConnectionType,\n transport: \"USB\",\n } as unknown as ConnectedDevice;\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(stubTransportConnectedDevice),\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 test(\"If connect is in success after a reconnect, return the same deviceSession id\", async () => {\n vi.spyOn(transport, \"connect\").mockResolvedValue(\n Right(stubTransportConnectedDevice),\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: stubConnectedDevice,\n });\n expect(sessionId).toBe(fakeSessionIdConnectedDevice); // same session id as the connected device\n sessionService.removeDeviceSession(sessionId);\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["Left", "Maybe", "Right", "TransportMock", "UnknownDeviceError", "connectedDeviceStubBuilder", "DefaultDeviceSessionService", "DefaultLoggerPublisherService", "AxiosManagerApiDataSource", "DefaultManagerApiService", "DefaultSecureChannelDataSource", "DefaultSecureChannelService", "DefaultTransportService", "ConnectUseCase", "transport", "transportService", "logger", "sessionService", "managerApi", "managerApiDataSource", "secureChannelDataSource", "secureChannel", "fakeSessionId", "fakeSessionIdConnectedDevice", "stubDiscoveredDevice", "stubTransportConnectedDevice", "stubConnectedDevice", "tag", "session", "usecase", "deviceSession", "sessionId"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var S=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var a=(s,r,e,i)=>{for(var o=i>1?void 0:i?g(r,e):r,t=s.length-1,n;t>=0;t--)(n=s[t])&&(o=(i?n(r,e,o):n(o))||o);return i&&o&&S(r,e,o),o},c=(s,r)=>(e,i)=>r(e,i,s);import{inject as p,injectable as m}from"inversify";import{EitherAsync as d}from"purify-ts";import{TransportNotSupportedError as f}from"../../../api/transport/model/Errors";import{deviceSessionTypes as y}from"../../device-session/di/deviceSessionTypes";import{loggerTypes as h}from"../../logger-publisher/di/loggerTypes";import{transportDiTypes as l}from"../../transport/di/transportDiTypes";let v=class{_transportService;_sessionService;_logger;constructor(r,e,i){this._sessionService=e,this._transportService=r,this._logger=i("DisconnectUseCase")}async execute({sessionId:r}){return d(async({liftEither:e})=>{const i=await e(this._sessionService.getDeviceSessionById(r).ifLeft(n=>{this._logger.error("Device session not found",{data:{sessionId:r,error:n}})})),o=i.connectedDevice.transport,t=await e(this._transportService.getTransport(o).toEither(new f(new Error("Unknown transport"))));i.close(),this._sessionService.removeDeviceSession(r),await t.disconnect({connectedDevice:i.connectedDevice})}).caseOf({Left:e=>{throw this._logger.error("Error disconnecting from device",{data:{error:e}}),e},Right:()=>{}})}};v=a([m(),c(0,p(l.TransportService)),c(1,p(y.DeviceSessionService)),c(2,p(h.LoggerPublisherServiceFactory))],v);export{v as DisconnectUseCase};
1
+ var S=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var p=(s,r,e,i)=>{for(var o=i>1?void 0:i?g(r,e):r,t=s.length-1,n;t>=0;t--)(n=s[t])&&(o=(i?n(r,e,o):n(o))||o);return i&&o&&S(r,e,o),o},c=(s,r)=>(e,i)=>r(e,i,s);import{inject as a,injectable as m}from"inversify";import{EitherAsync as d}from"purify-ts";import{TransportNotSupportedError as f}from"../../../api/transport/model/Errors";import{deviceSessionTypes as h}from"../../device-session/di/deviceSessionTypes";import{loggerTypes as l}from"../../logger-publisher/di/loggerTypes";import{transportDiTypes as y}from"../../transport/di/transportDiTypes";let v=class{_transportService;_sessionService;_logger;constructor(r,e,i){this._sessionService=e,this._transportService=r,this._logger=i("DisconnectUseCase")}async execute({sessionId:r}){return this._logger.debug("Disconnecting from device",{data:{test:this._sessionService.getDeviceSessions().map(e=>e.id)}}),d(async({liftEither:e})=>{const i=await e(this._sessionService.getDeviceSessionById(r).ifLeft(n=>{this._logger.error("Device session not found",{data:{sessionId:r,error:n}})})),o=i.connectedDevice.transport,t=await e(this._transportService.getTransport(o).toEither(new f(new Error("Unknown transport"))));i.close(),this._sessionService.removeDeviceSession(r),await t.disconnect({connectedDevice:i.connectedDevice})}).caseOf({Left:e=>{throw this._logger.error("Error disconnecting from device",{data:{error:e}}),e},Right:()=>{}})}};v=p([m(),c(0,a(y.TransportService)),c(1,a(h.DeviceSessionService)),c(2,a(l.LoggerPublisherServiceFactory))],v);export{v as 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": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YACnC,OAAS,eAAAC,MAAmB,YAG5B,OAAS,8BAAAC,MAAkC,8BAE3C,OAAS,sBAAAC,MAA0B,iDAEnC,OAAS,eAAAC,MAAmB,4CAC5B,OAAS,oBAAAC,MAAwB,0CAiB1B,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,OAAOC,EAAY,MAAO,CAAE,WAAAC,CAAW,IAAM,CAC3C,MAAMC,EAAU,MAAMD,EACpB,KAAK,gBAAgB,qBAAqBF,CAAS,EAAE,OAAQI,GAAU,CACrE,KAAK,QAAQ,MAAM,2BAA4B,CAC7C,KAAM,CAAE,UAAAJ,EAAW,MAAAI,CAAM,CAC3B,CAAC,CACH,CAAC,CACH,EAEMC,EAAsBF,EAAQ,gBAAgB,UAC9CG,EAAY,MAAMJ,EACtB,KAAK,kBACF,aAAaG,CAAmB,EAChC,SACC,IAAIE,EAA2B,IAAI,MAAM,mBAAmB,CAAC,CAC/D,CACJ,EAEAJ,EAAQ,MAAM,EACd,KAAK,gBAAgB,oBAAoBH,CAAS,EAElD,MAAMM,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,EArDaR,EAANY,EAAA,CADNC,EAAW,EAOPC,EAAA,EAAAC,EAAOC,EAAiB,gBAAgB,GAExCF,EAAA,EAAAC,EAAOE,EAAmB,oBAAoB,GAE9CH,EAAA,EAAAC,EAAOG,EAAY,6BAA6B,IAVxClB",
6
- "names": ["inject", "injectable", "EitherAsync", "TransportNotSupportedError", "deviceSessionTypes", "loggerTypes", "transportDiTypes", "DisconnectUseCase", "transportService", "sessionService", "loggerFactory", "sessionId", "EitherAsync", "liftEither", "session", "error", "transportIdentifier", "transport", "TransportNotSupportedError", "__decorateClass", "injectable", "__decorateParam", "inject", "transportDiTypes", "deviceSessionTypes", "loggerTypes"]
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": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YACnC,OAAS,eAAAC,MAAmB,YAG5B,OAAS,8BAAAC,MAAkC,8BAE3C,OAAS,sBAAAC,MAA0B,iDAEnC,OAAS,eAAAC,MAAmB,4CAC5B,OAAS,oBAAAC,MAAwB,0CAiB1B,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,EACMC,EAAY,MAAO,CAAE,WAAAC,CAAW,IAAM,CAC3C,MAAMF,EAAU,MAAME,EACpB,KAAK,gBAAgB,qBAAqBH,CAAS,EAAE,OAAQI,GAAU,CACrE,KAAK,QAAQ,MAAM,2BAA4B,CAC7C,KAAM,CAAE,UAAAJ,EAAW,MAAAI,CAAM,CAC3B,CAAC,CACH,CAAC,CACH,EAEMC,EAAsBJ,EAAQ,gBAAgB,UAC9CK,EAAY,MAAMH,EACtB,KAAK,kBACF,aAAaE,CAAmB,EAChC,SACC,IAAIE,EAA2B,IAAI,MAAM,mBAAmB,CAAC,CAC/D,CACJ,EAEAN,EAAQ,MAAM,EACd,KAAK,gBAAgB,oBAAoBD,CAAS,EAElD,MAAMM,EAAU,WAAW,CACzB,gBAAiBL,EAAQ,eAC3B,CAAC,CACH,CAAC,EAAE,OAAO,CACR,KAAOG,GAAU,CACf,WAAK,QAAQ,MAAM,kCAAmC,CACpD,KAAM,CAAE,MAAAA,CAAM,CAChB,CAAC,EACKA,CACR,EACA,MAAO,IAAM,CAAC,CAChB,CAAC,CACH,CACF,EA5DaR,EAANY,EAAA,CADNC,EAAW,EAOPC,EAAA,EAAAC,EAAOC,EAAiB,gBAAgB,GAExCF,EAAA,EAAAC,EAAOE,EAAmB,oBAAoB,GAE9CH,EAAA,EAAAC,EAAOG,EAAY,6BAA6B,IAVxClB",
6
+ "names": ["inject", "injectable", "EitherAsync", "TransportNotSupportedError", "deviceSessionTypes", "loggerTypes", "transportDiTypes", "DisconnectUseCase", "transportService", "sessionService", "loggerFactory", "sessionId", "session", "EitherAsync", "liftEither", "error", "transportIdentifier", "transport", "TransportNotSupportedError", "__decorateClass", "injectable", "__decorateParam", "inject", "transportDiTypes", "deviceSessionTypes", "loggerTypes"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ var d=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var p=(i,e,s,o)=>{for(var r=o>1?void 0:o?C(e,s):e,c=i.length-1,a;c>=0;c--)(a=i[c])&&(r=(o?a(e,s,r):a(r))||r);return o&&r&&d(e,s,r),r},t=(i,e)=>(s,o)=>e(s,o,i);import{inject as g,injectable as v}from"inversify";import{discoveryTypes as m}from"../../discovery/di/discoveryTypes";import{loggerTypes as l}from"../../logger-publisher/di/loggerTypes";let n=class{constructor(e,s,o){this.connectUseCase=e;this.disconnectUseCase=s;this._logger=o("ReconnectUseCase")}_logger;async execute({device:e,sessionRefresherOptions:s}){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:s})}};n=p([v(),t(0,g(m.ConnectUseCase)),t(1,g(m.DisconnectUseCase)),t(2,g(l.LoggerPublisherServiceFactory))],n);export{n as 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": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAMnC,OAAS,kBAAAC,MAAsB,wCAC/B,OAAS,eAAAC,MAAmB,4CA0BrB,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,CADNC,EAAW,EAKPC,EAAA,EAAAC,EAAOC,EAAe,cAAc,GAEpCF,EAAA,EAAAC,EAAOC,EAAe,iBAAiB,GAEvCF,EAAA,EAAAC,EAAOE,EAAY,6BAA6B,IARxCX",
6
+ "names": ["inject", "injectable", "discoveryTypes", "loggerTypes", "ReconnectUseCase", "connectUseCase", "disconnectUseCase", "loggerFactory", "device", "sessionRefresherOptions", "__decorateClass", "injectable", "__decorateParam", "inject", "discoveryTypes", "loggerTypes"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{DefaultLoggerPublisherService as d}from"../../logger-publisher/service/DefaultLoggerPublisherService";import{ReconnectUseCase as i}from"./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"},r="logger-tag";beforeAll(()=>{s=new d([],r),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(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(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(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,OAAS,iCAAAA,MAAqC,mEAI9C,OAAS,oBAAAC,MAAwB,qBAEjC,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,IAAIF,EAA8B,CAAC,EAAGO,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,IAAIP,EAClBE,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,IAAIT,EAClBE,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,IAAIT,EAClBE,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": ["DefaultLoggerPublisherService", "ReconnectUseCase", "logger", "connectUseCase", "disconnectUseCase", "newSessionId", "stubConnectedDevice", "tag", "sessionId", "disconnectError", "usecase", "connectError"]
7
+ }