@ledgerhq/device-management-kit 0.0.0-signer-eth-plugin-fix-20250331141239 → 0.0.0-transactionInspector-resolutionObj-20250916071327

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 (779) hide show
  1. package/README.md +43 -6
  2. package/lib/cjs/package.json +22 -23
  3. package/lib/cjs/src/api/DeviceManagementKit.js +1 -1
  4. package/lib/cjs/src/api/DeviceManagementKit.js.map +3 -3
  5. package/lib/cjs/src/api/DeviceManagementKit.test.js +1 -1
  6. package/lib/cjs/src/api/DeviceManagementKit.test.js.map +3 -3
  7. package/lib/cjs/src/api/DeviceManagementKitBuilder.js +1 -1
  8. package/lib/cjs/src/api/DeviceManagementKitBuilder.js.map +2 -2
  9. package/lib/cjs/src/api/DmkConfig.js +1 -1
  10. package/lib/cjs/src/api/DmkConfig.js.map +1 -1
  11. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.js +1 -1
  12. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.js.map +3 -3
  13. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.test.js +1 -1
  14. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.test.js.map +2 -2
  15. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.js +1 -1
  16. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.js.map +3 -3
  17. package/lib/cjs/src/api/command/di/commandModule.js +1 -1
  18. package/lib/cjs/src/api/command/di/commandModule.js.map +3 -3
  19. package/lib/cjs/src/api/command/di/commandModule.test.js +1 -1
  20. package/lib/cjs/src/api/command/di/commandModule.test.js.map +2 -2
  21. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.js +2 -0
  22. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.js.map +7 -0
  23. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.test.js +2 -0
  24. package/lib/cjs/src/api/command/os/GetCustomImageSizeCommand.test.js.map +7 -0
  25. package/lib/cjs/src/api/command/os/GetOsVersionCommand.js +1 -1
  26. package/lib/cjs/src/api/command/os/GetOsVersionCommand.js.map +3 -3
  27. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js +1 -1
  28. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js.map +3 -3
  29. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.js +2 -0
  30. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.js.map +7 -0
  31. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.test.js +2 -0
  32. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.test.js.map +7 -0
  33. package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js +1 -1
  34. package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +2 -2
  35. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.js +1 -1
  36. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.js.map +3 -3
  37. package/lib/cjs/src/api/command/utils/CommandUtils.js +1 -1
  38. package/lib/cjs/src/api/command/utils/CommandUtils.js.map +3 -3
  39. package/lib/cjs/src/api/command/utils/CommandUtils.test.js +1 -1
  40. package/lib/cjs/src/api/command/utils/CommandUtils.test.js.map +3 -3
  41. package/lib/cjs/src/api/command/utils/GlobalCommandError.js +1 -1
  42. package/lib/cjs/src/api/command/utils/GlobalCommandError.js.map +2 -2
  43. package/lib/cjs/src/api/device/DeviceModel.js +1 -1
  44. package/lib/cjs/src/api/device/DeviceModel.js.map +2 -2
  45. package/lib/cjs/src/api/device-action/DeviceAction.js +1 -1
  46. package/lib/cjs/src/api/device-action/DeviceAction.js.map +1 -1
  47. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  48. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  49. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  50. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
  51. package/lib/cjs/src/api/device-action/di/deviceActionModule.js +1 -1
  52. package/lib/cjs/src/api/device-action/di/deviceActionModule.js.map +3 -3
  53. package/lib/cjs/src/api/device-action/di/deviceActionModule.test.js +1 -1
  54. package/lib/cjs/src/api/device-action/di/deviceActionModule.test.js.map +2 -2
  55. package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js +1 -1
  56. package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
  57. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js +1 -1
  58. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.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/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js +1 -1
  62. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.js.map +1 -1
  63. package/lib/cjs/src/api/device-action/os/Errors.js +1 -1
  64. package/lib/cjs/src/api/device-action/os/Errors.js.map +3 -3
  65. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +2 -0
  66. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +7 -0
  67. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js +2 -0
  68. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js.map +7 -0
  69. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js +2 -0
  70. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/types.js.map +7 -0
  71. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  72. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +2 -2
  73. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  74. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +2 -2
  75. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js +1 -1
  76. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js.map +3 -3
  77. package/lib/cjs/src/api/device-action/os/GoToDashboard/types.js +1 -1
  78. package/lib/cjs/src/api/device-action/os/GoToDashboard/types.js.map +1 -1
  79. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +2 -0
  80. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +7 -0
  81. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js +2 -0
  82. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js.map +7 -0
  83. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js +2 -0
  84. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/types.js.map +7 -0
  85. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.js +1 -1
  86. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.js.map +2 -2
  87. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js +1 -1
  88. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js.map +3 -3
  89. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  90. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +2 -2
  91. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/types.js +1 -1
  92. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/types.js.map +1 -1
  93. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +2 -0
  94. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +7 -0
  95. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js +2 -0
  96. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js.map +7 -0
  97. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js +2 -0
  98. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/types.js.map +7 -0
  99. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
  100. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +2 -2
  101. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  102. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +2 -2
  103. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js +1 -1
  104. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js.map +1 -1
  105. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.js +2 -0
  106. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.js.map +7 -0
  107. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +2 -0
  108. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +7 -0
  109. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.js +2 -0
  110. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.js.map +7 -0
  111. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.test.js +2 -0
  112. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.test.js.map +7 -0
  113. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.js +2 -0
  114. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.js.map +7 -0
  115. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js +2 -0
  116. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +7 -0
  117. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.js +2 -0
  118. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.js.map +7 -0
  119. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.test.js +2 -0
  120. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.test.js.map +7 -0
  121. package/lib/cjs/src/api/device-action/xstate-utils/XStateDeviceAction.js +1 -1
  122. package/lib/cjs/src/api/device-action/xstate-utils/XStateDeviceAction.js.map +2 -2
  123. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.js +1 -1
  124. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.js.map +2 -2
  125. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.test.js +1 -1
  126. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.test.js.map +2 -2
  127. package/lib/cjs/src/api/device-model/model/DeviceModel.js +1 -1
  128. package/lib/cjs/src/api/device-model/model/DeviceModel.js.map +2 -2
  129. package/lib/cjs/src/api/device-model/model/DeviceModel.stub.js +1 -1
  130. package/lib/cjs/src/api/device-model/model/DeviceModel.stub.js.map +2 -2
  131. package/lib/cjs/src/api/device-session/DeviceSessionState.js +1 -1
  132. package/lib/cjs/src/api/device-session/DeviceSessionState.js.map +2 -2
  133. package/lib/cjs/src/api/index.js +1 -1
  134. package/lib/cjs/src/api/index.js.map +3 -3
  135. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js +1 -1
  136. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +2 -2
  137. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/types.js.map +1 -1
  138. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +1 -1
  139. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +3 -3
  140. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/types.js +1 -1
  141. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/types.js.map +1 -1
  142. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js +1 -1
  143. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +2 -2
  144. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js +1 -1
  145. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +2 -2
  146. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +1 -1
  147. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +3 -3
  148. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/types.js +1 -1
  149. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/types.js.map +1 -1
  150. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js +1 -1
  151. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +3 -3
  152. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +1 -1
  153. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +3 -3
  154. package/lib/cjs/src/api/secure-channel/task/types.js +1 -1
  155. package/lib/cjs/src/api/secure-channel/task/types.js.map +2 -2
  156. package/lib/cjs/src/api/secure-channel/utils.js +1 -1
  157. package/lib/cjs/src/api/secure-channel/utils.js.map +3 -3
  158. package/lib/cjs/src/api/secure-channel/utils.test.js +1 -1
  159. package/lib/cjs/src/api/secure-channel/utils.test.js.map +3 -3
  160. package/lib/cjs/src/api/transport/model/DeviceApduSender.js +2 -0
  161. package/lib/cjs/src/api/transport/model/DeviceApduSender.js.map +7 -0
  162. package/lib/cjs/src/api/transport/model/DeviceConnection.js +1 -1
  163. package/lib/cjs/src/api/transport/model/DeviceConnection.js.map +1 -1
  164. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js +2 -0
  165. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.js.map +7 -0
  166. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.test.js +2 -0
  167. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.test.js.map +7 -0
  168. package/lib/cjs/src/api/transport/model/DiscoveredDevice.js.map +1 -1
  169. package/lib/cjs/src/api/transport/model/Errors.js +1 -1
  170. package/lib/cjs/src/api/transport/model/Errors.js.map +3 -3
  171. package/lib/cjs/src/api/transport/model/Transport.js.map +1 -1
  172. package/lib/cjs/src/api/types.js +1 -1
  173. package/lib/cjs/src/api/types.js.map +1 -1
  174. package/lib/cjs/src/api/utils/AppName.js +2 -0
  175. package/lib/cjs/src/api/utils/AppName.js.map +7 -0
  176. package/lib/cjs/src/api/utils/AppName.test.js +2 -0
  177. package/lib/cjs/src/api/utils/AppName.test.js.map +7 -0
  178. package/lib/cjs/src/api/utils/HexaString.js +1 -1
  179. package/lib/cjs/src/api/utils/HexaString.js.map +3 -3
  180. package/lib/cjs/src/api/utils/HexaString.test.js +1 -1
  181. package/lib/cjs/src/api/utils/HexaString.test.js.map +2 -2
  182. package/lib/cjs/src/di.js +1 -1
  183. package/lib/cjs/src/di.js.map +2 -2
  184. package/lib/cjs/src/internal/config/di/configModule.js +1 -1
  185. package/lib/cjs/src/internal/config/di/configModule.js.map +3 -3
  186. package/lib/cjs/src/internal/config/di/configModule.test.js +1 -1
  187. package/lib/cjs/src/internal/config/di/configModule.test.js.map +2 -2
  188. package/lib/cjs/src/internal/device-model/di/deviceModelModule.js +1 -1
  189. package/lib/cjs/src/internal/device-model/di/deviceModelModule.js.map +3 -3
  190. package/lib/cjs/src/internal/device-model/di/deviceModelModule.test.js +1 -1
  191. package/lib/cjs/src/internal/device-model/di/deviceModelModule.test.js.map +2 -2
  192. package/lib/cjs/src/internal/device-session/data/ApduResponseConst.js +1 -1
  193. package/lib/cjs/src/internal/device-session/data/ApduResponseConst.js.map +3 -3
  194. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.js +1 -1
  195. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.js.map +3 -3
  196. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.test.js +1 -1
  197. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.test.js.map +2 -2
  198. package/lib/cjs/src/internal/device-session/model/DevicePinger.js +1 -1
  199. package/lib/cjs/src/internal/device-session/model/DevicePinger.js.map +3 -3
  200. package/lib/cjs/src/internal/device-session/model/DeviceSession.js +1 -1
  201. package/lib/cjs/src/internal/device-session/model/DeviceSession.js.map +3 -3
  202. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.js +1 -1
  203. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.js.map +3 -3
  204. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js +1 -1
  205. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +3 -3
  206. package/lib/cjs/src/internal/device-session/model/Frame.js +1 -1
  207. package/lib/cjs/src/internal/device-session/model/Frame.js.map +3 -3
  208. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.js +1 -1
  209. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.js.map +2 -2
  210. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.js +1 -1
  211. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.js.map +2 -2
  212. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.test.js +1 -1
  213. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.test.js.map +2 -2
  214. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.js +1 -1
  215. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.js.map +3 -3
  216. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +1 -1
  217. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +3 -3
  218. package/lib/cjs/src/internal/discovery/di/discoveryModule.js +1 -1
  219. package/lib/cjs/src/internal/discovery/di/discoveryModule.js.map +3 -3
  220. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js +1 -1
  221. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js.map +2 -2
  222. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
  223. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +2 -2
  224. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js +1 -1
  225. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js.map +2 -2
  226. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.js +1 -1
  227. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.js.map +2 -2
  228. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js +1 -1
  229. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js.map +2 -2
  230. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.js +1 -1
  231. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.js.map +3 -3
  232. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +1 -1
  233. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +3 -3
  234. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.js +1 -1
  235. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.js.map +3 -3
  236. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.test.js +1 -1
  237. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.test.js.map +2 -2
  238. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
  239. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.js.map +3 -3
  240. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
  241. package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +3 -3
  242. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js +1 -1
  243. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js.map +1 -1
  244. package/lib/cjs/src/internal/manager-api/data/ManagerApiDto.js +1 -1
  245. package/lib/cjs/src/internal/manager-api/data/ManagerApiDto.js.map +1 -1
  246. package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
  247. package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
  248. package/lib/cjs/src/internal/manager-api/di/managerApiModule.js +1 -1
  249. package/lib/cjs/src/internal/manager-api/di/managerApiModule.js.map +3 -3
  250. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js +1 -1
  251. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
  252. package/lib/cjs/src/internal/manager-api/di/managerApiTypes.js +1 -1
  253. package/lib/cjs/src/internal/manager-api/di/managerApiTypes.js.map +2 -2
  254. package/lib/cjs/src/internal/manager-api/model/Application.js +1 -1
  255. package/lib/cjs/src/internal/manager-api/model/Application.js.map +1 -1
  256. package/lib/cjs/src/internal/manager-api/model/Const.js +1 -1
  257. package/lib/cjs/src/internal/manager-api/model/Const.js.map +3 -3
  258. package/lib/cjs/src/internal/manager-api/model/Firmware.js +1 -1
  259. package/lib/cjs/src/internal/manager-api/model/Firmware.js.map +1 -1
  260. package/lib/cjs/src/internal/manager-api/model/Language.js +2 -0
  261. package/lib/cjs/src/internal/manager-api/model/Language.js.map +7 -0
  262. package/lib/cjs/src/internal/manager-api/model/Params.js +1 -1
  263. package/lib/cjs/src/internal/manager-api/model/Params.js.map +1 -1
  264. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  265. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js.map +3 -3
  266. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  267. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  268. package/lib/cjs/src/internal/manager-api/service/ManagerApiService.js +1 -1
  269. package/lib/cjs/src/internal/manager-api/service/ManagerApiService.js.map +1 -1
  270. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.js +2 -0
  271. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.js.map +7 -0
  272. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.test.js +2 -0
  273. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.test.js.map +7 -0
  274. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.js +1 -1
  275. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.js.map +3 -3
  276. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js +1 -1
  277. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js.map +2 -2
  278. package/lib/cjs/src/internal/secure-channel/model/Errors.js +1 -1
  279. package/lib/cjs/src/internal/secure-channel/model/Errors.js.map +3 -3
  280. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js +1 -1
  281. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +3 -3
  282. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +1 -1
  283. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +3 -3
  284. package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js +1 -1
  285. package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js.map +1 -1
  286. package/lib/cjs/src/internal/send/di/sendModule.js +1 -1
  287. package/lib/cjs/src/internal/send/di/sendModule.js.map +3 -3
  288. package/lib/cjs/src/internal/send/di/sendModule.test.js +1 -1
  289. package/lib/cjs/src/internal/send/di/sendModule.test.js.map +2 -2
  290. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.js +1 -1
  291. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.js.map +3 -3
  292. package/lib/cjs/src/internal/transport/di/transportModule.js +1 -1
  293. package/lib/cjs/src/internal/transport/di/transportModule.js.map +3 -3
  294. package/lib/cjs/src/internal/transport/di/transportModule.test.js +1 -1
  295. package/lib/cjs/src/internal/transport/di/transportModule.test.js.map +2 -2
  296. package/lib/cjs/src/internal/transport/service/DefaultTransportService.js +1 -1
  297. package/lib/cjs/src/internal/transport/service/DefaultTransportService.js.map +3 -3
  298. package/lib/cjs/src/internal/transport/service/TransportService.js +1 -1
  299. package/lib/cjs/src/internal/transport/service/TransportService.js.map +1 -1
  300. package/lib/cjs/src/internal/transport/service/__mocks__/DefaultTransportService.js +1 -1
  301. package/lib/cjs/src/internal/transport/service/__mocks__/DefaultTransportService.js.map +2 -2
  302. package/lib/esm/package.json +22 -23
  303. package/lib/esm/src/api/DeviceManagementKit.js +1 -1
  304. package/lib/esm/src/api/DeviceManagementKit.js.map +3 -3
  305. package/lib/esm/src/api/DeviceManagementKit.test.js +1 -1
  306. package/lib/esm/src/api/DeviceManagementKit.test.js.map +3 -3
  307. package/lib/esm/src/api/DeviceManagementKitBuilder.js +1 -1
  308. package/lib/esm/src/api/DeviceManagementKitBuilder.js.map +3 -3
  309. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.js +1 -1
  310. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.js.map +3 -3
  311. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.test.js +1 -1
  312. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.test.js.map +2 -2
  313. package/lib/esm/src/api/apdu/utils/ByteArrayParser.js +1 -1
  314. package/lib/esm/src/api/apdu/utils/ByteArrayParser.js.map +3 -3
  315. package/lib/esm/src/api/command/di/commandModule.js +1 -1
  316. package/lib/esm/src/api/command/di/commandModule.js.map +3 -3
  317. package/lib/esm/src/api/command/di/commandModule.test.js +1 -1
  318. package/lib/esm/src/api/command/di/commandModule.test.js.map +2 -2
  319. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.js +2 -0
  320. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.js.map +7 -0
  321. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.test.js +2 -0
  322. package/lib/esm/src/api/command/os/GetCustomImageSizeCommand.test.js.map +7 -0
  323. package/lib/esm/src/api/command/os/GetOsVersionCommand.js +1 -1
  324. package/lib/esm/src/api/command/os/GetOsVersionCommand.js.map +3 -3
  325. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js +1 -1
  326. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js.map +3 -3
  327. package/lib/esm/src/api/command/os/ListLanguagePackCommand.js +2 -0
  328. package/lib/esm/src/api/command/os/ListLanguagePackCommand.js.map +7 -0
  329. package/lib/esm/src/api/command/os/ListLanguagePackCommand.test.js +2 -0
  330. package/lib/esm/src/api/command/os/ListLanguagePackCommand.test.js.map +7 -0
  331. package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js +1 -1
  332. package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +2 -2
  333. package/lib/esm/src/api/command/use-case/SendCommandUseCase.js +1 -1
  334. package/lib/esm/src/api/command/use-case/SendCommandUseCase.js.map +3 -3
  335. package/lib/esm/src/api/command/utils/CommandUtils.js +1 -1
  336. package/lib/esm/src/api/command/utils/CommandUtils.js.map +3 -3
  337. package/lib/esm/src/api/command/utils/CommandUtils.test.js +1 -1
  338. package/lib/esm/src/api/command/utils/CommandUtils.test.js.map +3 -3
  339. package/lib/esm/src/api/command/utils/GlobalCommandError.js +1 -1
  340. package/lib/esm/src/api/command/utils/GlobalCommandError.js.map +2 -2
  341. package/lib/esm/src/api/device/DeviceModel.js +1 -1
  342. package/lib/esm/src/api/device/DeviceModel.js.map +2 -2
  343. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
  344. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  345. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  346. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
  347. package/lib/esm/src/api/device-action/di/deviceActionModule.js +1 -1
  348. package/lib/esm/src/api/device-action/di/deviceActionModule.js.map +3 -3
  349. package/lib/esm/src/api/device-action/di/deviceActionModule.test.js +1 -1
  350. package/lib/esm/src/api/device-action/di/deviceActionModule.test.js.map +2 -2
  351. package/lib/esm/src/api/device-action/model/UserInteractionRequired.js +1 -1
  352. package/lib/esm/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
  353. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js +1 -1
  354. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.js.map +2 -2
  355. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +1 -1
  356. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +2 -2
  357. package/lib/esm/src/api/device-action/os/Errors.js +1 -1
  358. package/lib/esm/src/api/device-action/os/Errors.js.map +3 -3
  359. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js +2 -0
  360. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.js.map +7 -0
  361. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js +2 -0
  362. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js.map +7 -0
  363. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/types.js +1 -0
  364. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/types.js.map +7 -0
  365. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  366. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +2 -2
  367. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  368. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +2 -2
  369. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js +1 -1
  370. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.js.map +3 -3
  371. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js +2 -0
  372. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.js.map +7 -0
  373. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js +2 -0
  374. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js.map +7 -0
  375. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/types.js +1 -0
  376. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/types.js.map +7 -0
  377. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.js +1 -1
  378. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.js.map +2 -2
  379. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js +1 -1
  380. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js.map +3 -3
  381. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
  382. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +3 -3
  383. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js +2 -0
  384. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.js.map +7 -0
  385. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js +2 -0
  386. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js.map +7 -0
  387. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/types.js +1 -0
  388. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/types.js.map +7 -0
  389. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
  390. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +2 -2
  391. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +1 -1
  392. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +2 -2
  393. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.js +2 -0
  394. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.js.map +7 -0
  395. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +2 -0
  396. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +7 -0
  397. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.js +2 -0
  398. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.js.map +7 -0
  399. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.test.js +2 -0
  400. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.test.js.map +7 -0
  401. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.js +2 -0
  402. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.js.map +7 -0
  403. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js +2 -0
  404. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +7 -0
  405. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.js +2 -0
  406. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.js.map +7 -0
  407. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.test.js +2 -0
  408. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.test.js.map +7 -0
  409. package/lib/esm/src/api/device-action/xstate-utils/XStateDeviceAction.js +1 -1
  410. package/lib/esm/src/api/device-action/xstate-utils/XStateDeviceAction.js.map +2 -2
  411. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.js +1 -1
  412. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.js.map +2 -2
  413. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.test.js +1 -1
  414. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.test.js.map +2 -2
  415. package/lib/esm/src/api/device-model/model/DeviceModel.js +1 -1
  416. package/lib/esm/src/api/device-model/model/DeviceModel.js.map +2 -2
  417. package/lib/esm/src/api/device-model/model/DeviceModel.stub.js +1 -1
  418. package/lib/esm/src/api/device-model/model/DeviceModel.stub.js.map +2 -2
  419. package/lib/esm/src/api/device-session/DeviceSessionState.js +1 -1
  420. package/lib/esm/src/api/device-session/DeviceSessionState.js.map +2 -2
  421. package/lib/esm/src/api/index.js +1 -1
  422. package/lib/esm/src/api/index.js.map +3 -3
  423. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js +1 -1
  424. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +2 -2
  425. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +1 -1
  426. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +3 -3
  427. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js +1 -1
  428. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +2 -2
  429. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/types.js +1 -1
  430. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +2 -2
  431. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +1 -1
  432. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +3 -3
  433. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js +1 -1
  434. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.js.map +3 -3
  435. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +1 -1
  436. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +3 -3
  437. package/lib/esm/src/api/secure-channel/task/types.js +1 -1
  438. package/lib/esm/src/api/secure-channel/task/types.js.map +2 -2
  439. package/lib/esm/src/api/secure-channel/utils.js +1 -1
  440. package/lib/esm/src/api/secure-channel/utils.js.map +3 -3
  441. package/lib/esm/src/api/secure-channel/utils.test.js +1 -1
  442. package/lib/esm/src/api/secure-channel/utils.test.js.map +3 -3
  443. package/lib/esm/src/api/transport/model/DeviceApduSender.js +1 -0
  444. package/lib/esm/src/api/transport/model/DeviceApduSender.js.map +7 -0
  445. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js +2 -0
  446. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.js.map +7 -0
  447. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.test.js +2 -0
  448. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.test.js.map +7 -0
  449. package/lib/esm/src/api/transport/model/Errors.js +1 -1
  450. package/lib/esm/src/api/transport/model/Errors.js.map +3 -3
  451. package/lib/esm/src/api/utils/AppName.js +2 -0
  452. package/lib/esm/src/api/utils/AppName.js.map +7 -0
  453. package/lib/esm/src/api/utils/AppName.test.js +2 -0
  454. package/lib/esm/src/api/utils/AppName.test.js.map +7 -0
  455. package/lib/esm/src/api/utils/HexaString.js +1 -1
  456. package/lib/esm/src/api/utils/HexaString.js.map +3 -3
  457. package/lib/esm/src/api/utils/HexaString.test.js +1 -1
  458. package/lib/esm/src/api/utils/HexaString.test.js.map +2 -2
  459. package/lib/esm/src/di.js +1 -1
  460. package/lib/esm/src/di.js.map +3 -3
  461. package/lib/esm/src/internal/config/di/configModule.js +1 -1
  462. package/lib/esm/src/internal/config/di/configModule.js.map +3 -3
  463. package/lib/esm/src/internal/config/di/configModule.test.js +1 -1
  464. package/lib/esm/src/internal/config/di/configModule.test.js.map +2 -2
  465. package/lib/esm/src/internal/device-model/di/deviceModelModule.js +1 -1
  466. package/lib/esm/src/internal/device-model/di/deviceModelModule.js.map +3 -3
  467. package/lib/esm/src/internal/device-model/di/deviceModelModule.test.js +1 -1
  468. package/lib/esm/src/internal/device-model/di/deviceModelModule.test.js.map +2 -2
  469. package/lib/esm/src/internal/device-session/data/ApduResponseConst.js +1 -1
  470. package/lib/esm/src/internal/device-session/data/ApduResponseConst.js.map +3 -3
  471. package/lib/esm/src/internal/device-session/di/deviceSessionModule.js +1 -1
  472. package/lib/esm/src/internal/device-session/di/deviceSessionModule.js.map +3 -3
  473. package/lib/esm/src/internal/device-session/di/deviceSessionModule.test.js +1 -1
  474. package/lib/esm/src/internal/device-session/di/deviceSessionModule.test.js.map +2 -2
  475. package/lib/esm/src/internal/device-session/model/DevicePinger.js +1 -1
  476. package/lib/esm/src/internal/device-session/model/DevicePinger.js.map +3 -3
  477. package/lib/esm/src/internal/device-session/model/DeviceSession.js +1 -1
  478. package/lib/esm/src/internal/device-session/model/DeviceSession.js.map +3 -3
  479. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.js +1 -1
  480. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.js.map +3 -3
  481. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js +1 -1
  482. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +3 -3
  483. package/lib/esm/src/internal/device-session/model/Frame.js +1 -1
  484. package/lib/esm/src/internal/device-session/model/Frame.js.map +3 -3
  485. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.js +1 -1
  486. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.js.map +2 -2
  487. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.js +1 -1
  488. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.js.map +2 -2
  489. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.test.js +1 -1
  490. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.test.js.map +2 -2
  491. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.js +1 -1
  492. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.js.map +3 -3
  493. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +1 -1
  494. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +3 -3
  495. package/lib/esm/src/internal/discovery/di/discoveryModule.js +1 -1
  496. package/lib/esm/src/internal/discovery/di/discoveryModule.js.map +3 -3
  497. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js +1 -1
  498. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js.map +2 -2
  499. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
  500. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +2 -2
  501. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js +1 -1
  502. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.js.map +2 -2
  503. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.js +1 -1
  504. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.js.map +2 -2
  505. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js +1 -1
  506. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js.map +2 -2
  507. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.js +1 -1
  508. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.js.map +3 -3
  509. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +1 -1
  510. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +3 -3
  511. package/lib/esm/src/internal/logger-publisher/di/loggerModule.js +1 -1
  512. package/lib/esm/src/internal/logger-publisher/di/loggerModule.js.map +3 -3
  513. package/lib/esm/src/internal/logger-publisher/di/loggerModule.test.js +1 -1
  514. package/lib/esm/src/internal/logger-publisher/di/loggerModule.test.js.map +2 -2
  515. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
  516. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.js.map +3 -3
  517. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
  518. package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +3 -3
  519. package/lib/esm/src/internal/manager-api/data/ManagerApiDto.js +1 -1
  520. package/lib/esm/src/internal/manager-api/data/ManagerApiDto.js.map +1 -1
  521. package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
  522. package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
  523. package/lib/esm/src/internal/manager-api/di/managerApiModule.js +1 -1
  524. package/lib/esm/src/internal/manager-api/di/managerApiModule.js.map +3 -3
  525. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js +1 -1
  526. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
  527. package/lib/esm/src/internal/manager-api/di/managerApiTypes.js +1 -1
  528. package/lib/esm/src/internal/manager-api/di/managerApiTypes.js.map +2 -2
  529. package/lib/esm/src/internal/manager-api/model/Application.js +1 -1
  530. package/lib/esm/src/internal/manager-api/model/Application.js.map +1 -1
  531. package/lib/esm/src/internal/manager-api/model/Const.js +1 -1
  532. package/lib/esm/src/internal/manager-api/model/Const.js.map +3 -3
  533. package/lib/esm/src/internal/manager-api/model/Language.js +1 -0
  534. package/lib/esm/src/internal/manager-api/model/Language.js.map +7 -0
  535. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  536. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js.map +3 -3
  537. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  538. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  539. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.js +2 -0
  540. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.js.map +7 -0
  541. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.test.js +2 -0
  542. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.test.js.map +7 -0
  543. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.js +1 -1
  544. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.js.map +3 -3
  545. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js +1 -1
  546. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js.map +2 -2
  547. package/lib/esm/src/internal/secure-channel/model/Errors.js +1 -1
  548. package/lib/esm/src/internal/secure-channel/model/Errors.js.map +3 -3
  549. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +3 -3
  550. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +1 -1
  551. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +3 -3
  552. package/lib/esm/src/internal/send/di/sendModule.js +1 -1
  553. package/lib/esm/src/internal/send/di/sendModule.js.map +3 -3
  554. package/lib/esm/src/internal/send/di/sendModule.test.js +1 -1
  555. package/lib/esm/src/internal/send/di/sendModule.test.js.map +2 -2
  556. package/lib/esm/src/internal/send/use-case/SendApduUseCase.js +1 -1
  557. package/lib/esm/src/internal/send/use-case/SendApduUseCase.js.map +3 -3
  558. package/lib/esm/src/internal/transport/di/transportModule.js +1 -1
  559. package/lib/esm/src/internal/transport/di/transportModule.js.map +3 -3
  560. package/lib/esm/src/internal/transport/di/transportModule.test.js +1 -1
  561. package/lib/esm/src/internal/transport/di/transportModule.test.js.map +2 -2
  562. package/lib/esm/src/internal/transport/service/DefaultTransportService.js +1 -1
  563. package/lib/esm/src/internal/transport/service/DefaultTransportService.js.map +3 -3
  564. package/lib/esm/src/internal/transport/service/__mocks__/DefaultTransportService.js +1 -1
  565. package/lib/esm/src/internal/transport/service/__mocks__/DefaultTransportService.js.map +2 -2
  566. package/lib/types/src/api/DeviceManagementKit.d.ts +15 -1
  567. package/lib/types/src/api/DeviceManagementKit.d.ts.map +1 -1
  568. package/lib/types/src/api/DeviceManagementKitBuilder.d.ts.map +1 -1
  569. package/lib/types/src/api/DmkConfig.d.ts +2 -0
  570. package/lib/types/src/api/DmkConfig.d.ts.map +1 -1
  571. package/lib/types/src/api/apdu/utils/ApduBuilder.d.ts.map +1 -1
  572. package/lib/types/src/api/apdu/utils/ApduParser.d.ts.map +1 -1
  573. package/lib/types/src/api/apdu/utils/ByteArrayBuilder.d.ts +66 -0
  574. package/lib/types/src/api/apdu/utils/ByteArrayBuilder.d.ts.map +1 -1
  575. package/lib/types/src/api/apdu/utils/ByteArrayParser.d.ts +1 -0
  576. package/lib/types/src/api/apdu/utils/ByteArrayParser.d.ts.map +1 -1
  577. package/lib/types/src/api/command/di/commandModule.d.ts.map +1 -1
  578. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.d.ts +16 -0
  579. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.d.ts.map +1 -0
  580. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.test.d.ts +2 -0
  581. package/lib/types/src/api/command/os/GetCustomImageSizeCommand.test.d.ts.map +1 -0
  582. package/lib/types/src/api/command/os/GetOsVersionCommand.d.ts +30 -2
  583. package/lib/types/src/api/command/os/GetOsVersionCommand.d.ts.map +1 -1
  584. package/lib/types/src/api/command/os/ListLanguagePackCommand.d.ts +24 -0
  585. package/lib/types/src/api/command/os/ListLanguagePackCommand.d.ts.map +1 -0
  586. package/lib/types/src/api/command/os/ListLanguagePackCommand.test.d.ts +2 -0
  587. package/lib/types/src/api/command/os/ListLanguagePackCommand.test.d.ts.map +1 -0
  588. package/lib/types/src/api/command/os/__mocks__/GetOsVersionCommand.d.ts.map +1 -1
  589. package/lib/types/src/api/command/use-case/SendCommandUseCase.d.ts +5 -1
  590. package/lib/types/src/api/command/use-case/SendCommandUseCase.d.ts.map +1 -1
  591. package/lib/types/src/api/command/utils/CommandErrors.d.ts.map +1 -1
  592. package/lib/types/src/api/command/utils/CommandUtils.d.ts +4 -0
  593. package/lib/types/src/api/command/utils/CommandUtils.d.ts.map +1 -1
  594. package/lib/types/src/api/command/utils/GlobalCommandError.d.ts +1 -1
  595. package/lib/types/src/api/command/utils/GlobalCommandError.d.ts.map +1 -1
  596. package/lib/types/src/api/device/DeviceModel.d.ts +2 -1
  597. package/lib/types/src/api/device/DeviceModel.d.ts.map +1 -1
  598. package/lib/types/src/api/device-action/DeviceAction.d.ts +3 -1
  599. package/lib/types/src/api/device-action/DeviceAction.d.ts.map +1 -1
  600. package/lib/types/src/api/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  601. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts +5 -0
  602. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts.map +1 -1
  603. package/lib/types/src/api/device-action/di/deviceActionModule.d.ts.map +1 -1
  604. package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts +1 -0
  605. package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts.map +1 -1
  606. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.d.ts.map +1 -1
  607. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.d.ts +1 -1
  608. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceActionTypes.d.ts.map +1 -1
  609. package/lib/types/src/api/device-action/os/Errors.d.ts +20 -0
  610. package/lib/types/src/api/device-action/os/Errors.d.ts.map +1 -1
  611. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.d.ts +58 -0
  612. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.d.ts.map +1 -0
  613. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.d.ts +2 -0
  614. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.d.ts.map +1 -0
  615. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts +28 -0
  616. package/lib/types/src/api/device-action/os/GetDeviceMetadata/types.d.ts.map +1 -0
  617. package/lib/types/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.d.ts.map +1 -1
  618. package/lib/types/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.d.ts.map +1 -1
  619. package/lib/types/src/api/device-action/os/GoToDashboard/types.d.ts +3 -4
  620. package/lib/types/src/api/device-action/os/GoToDashboard/types.d.ts.map +1 -1
  621. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.d.ts +40 -0
  622. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.d.ts.map +1 -0
  623. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.d.ts +2 -0
  624. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.d.ts.map +1 -0
  625. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts +65 -0
  626. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/types.d.ts.map +1 -0
  627. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.d.ts.map +1 -1
  628. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts +0 -1
  629. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts.map +1 -1
  630. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.d.ts +15 -0
  631. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.d.ts.map +1 -0
  632. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.d.ts +2 -0
  633. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.d.ts.map +1 -0
  634. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts +24 -0
  635. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/types.d.ts.map +1 -0
  636. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.d.ts.map +1 -1
  637. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts +1 -1
  638. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts.map +1 -1
  639. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.d.ts +30 -0
  640. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.d.ts.map +1 -0
  641. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.test.d.ts +2 -0
  642. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.test.d.ts.map +1 -0
  643. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.d.ts +31 -0
  644. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.d.ts.map +1 -0
  645. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.test.d.ts +2 -0
  646. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.test.d.ts.map +1 -0
  647. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.d.ts +18 -0
  648. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.d.ts.map +1 -0
  649. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.test.d.ts +2 -0
  650. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.test.d.ts.map +1 -0
  651. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.d.ts +21 -0
  652. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.d.ts.map +1 -0
  653. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.test.d.ts +2 -0
  654. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.test.d.ts.map +1 -0
  655. package/lib/types/src/api/device-action/xstate-utils/XStateDeviceAction.d.ts +1 -0
  656. package/lib/types/src/api/device-action/xstate-utils/XStateDeviceAction.d.ts.map +1 -1
  657. package/lib/types/src/api/device-model/data/StaticDeviceModelDataSource.d.ts.map +1 -1
  658. package/lib/types/src/api/device-model/model/DeviceModel.d.ts +2 -0
  659. package/lib/types/src/api/device-model/model/DeviceModel.d.ts.map +1 -1
  660. package/lib/types/src/api/device-model/model/DeviceModel.stub.d.ts.map +1 -1
  661. package/lib/types/src/api/device-session/DeviceSessionState.d.ts +93 -0
  662. package/lib/types/src/api/device-session/DeviceSessionState.d.ts.map +1 -1
  663. package/lib/types/src/api/device-session/service/DefaultApduReceiverService.stub.d.ts.map +1 -1
  664. package/lib/types/src/api/device-session/service/DefaultApduSenderService.stub.d.ts.map +1 -1
  665. package/lib/types/src/api/index.d.ts +6 -1
  666. package/lib/types/src/api/index.d.ts.map +1 -1
  667. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.d.ts.map +1 -1
  668. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/types.d.ts +2 -1
  669. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/types.d.ts.map +1 -1
  670. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.d.ts.map +1 -1
  671. package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts +2 -1
  672. package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts.map +1 -1
  673. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.d.ts.map +1 -1
  674. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts +2 -1
  675. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts.map +1 -1
  676. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.d.ts.map +1 -1
  677. package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts +2 -1
  678. package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts.map +1 -1
  679. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.d.ts +5 -2
  680. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.d.ts.map +1 -1
  681. package/lib/types/src/api/secure-channel/task/types.d.ts +6 -1
  682. package/lib/types/src/api/secure-channel/task/types.d.ts.map +1 -1
  683. package/lib/types/src/api/secure-channel/utils.d.ts +0 -11
  684. package/lib/types/src/api/secure-channel/utils.d.ts.map +1 -1
  685. package/lib/types/src/api/transport/model/DeviceApduSender.d.ts +17 -0
  686. package/lib/types/src/api/transport/model/DeviceApduSender.d.ts.map +1 -0
  687. package/lib/types/src/api/transport/model/DeviceConnection.d.ts +2 -1
  688. package/lib/types/src/api/transport/model/DeviceConnection.d.ts.map +1 -1
  689. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts +63 -0
  690. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.d.ts.map +1 -0
  691. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.test.d.ts +2 -0
  692. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.test.d.ts.map +1 -0
  693. package/lib/types/src/api/transport/model/DiscoveredDevice.d.ts +1 -1
  694. package/lib/types/src/api/transport/model/DiscoveredDevice.d.ts.map +1 -1
  695. package/lib/types/src/api/transport/model/Errors.d.ts +27 -3
  696. package/lib/types/src/api/transport/model/Errors.d.ts.map +1 -1
  697. package/lib/types/src/api/transport/model/Transport.d.ts +1 -1
  698. package/lib/types/src/api/transport/model/Transport.d.ts.map +1 -1
  699. package/lib/types/src/api/types.d.ts +6 -2
  700. package/lib/types/src/api/types.d.ts.map +1 -1
  701. package/lib/types/src/api/utils/AppName.d.ts +2 -0
  702. package/lib/types/src/api/utils/AppName.d.ts.map +1 -0
  703. package/lib/types/src/api/utils/AppName.test.d.ts +2 -0
  704. package/lib/types/src/api/utils/AppName.test.d.ts.map +1 -0
  705. package/lib/types/src/api/utils/HexaString.d.ts +4 -3
  706. package/lib/types/src/api/utils/HexaString.d.ts.map +1 -1
  707. package/lib/types/src/di.d.ts.map +1 -1
  708. package/lib/types/src/internal/config/di/configModule.d.ts.map +1 -1
  709. package/lib/types/src/internal/device-model/di/deviceModelModule.d.ts.map +1 -1
  710. package/lib/types/src/internal/device-session/data/ApduResponseConst.d.ts +1 -0
  711. package/lib/types/src/internal/device-session/data/ApduResponseConst.d.ts.map +1 -1
  712. package/lib/types/src/internal/device-session/di/deviceSessionModule.d.ts.map +1 -1
  713. package/lib/types/src/internal/device-session/model/DevicePinger.d.ts +1 -1
  714. package/lib/types/src/internal/device-session/model/DevicePinger.d.ts.map +1 -1
  715. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts +3 -1
  716. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts.map +1 -1
  717. package/lib/types/src/internal/device-session/model/DeviceSession.stub.d.ts.map +1 -1
  718. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.d.ts.map +1 -1
  719. package/lib/types/src/internal/device-session/model/Frame.d.ts.map +1 -1
  720. package/lib/types/src/internal/device-session/service/DefaultApduReceiverService.d.ts.map +1 -1
  721. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseCase.d.ts +3 -1
  722. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseCase.d.ts.map +1 -1
  723. package/lib/types/src/internal/device-session/utils/deviceSessionUtils.d.ts.map +1 -1
  724. package/lib/types/src/internal/discovery/di/discoveryModule.d.ts.map +1 -1
  725. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.d.ts +1 -1
  726. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.d.ts.map +1 -1
  727. package/lib/types/src/internal/discovery/use-case/StartDiscoveringUseCase.d.ts +1 -1
  728. package/lib/types/src/internal/discovery/use-case/StartDiscoveringUseCase.d.ts.map +1 -1
  729. package/lib/types/src/internal/discovery/use-case/StopDiscoveringUseCase.d.ts +4 -2
  730. package/lib/types/src/internal/discovery/use-case/StopDiscoveringUseCase.d.ts.map +1 -1
  731. package/lib/types/src/internal/logger-publisher/di/loggerModule.d.ts.map +1 -1
  732. package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts +24 -5
  733. package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts.map +1 -1
  734. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts +51 -6
  735. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts.map +1 -1
  736. package/lib/types/src/internal/manager-api/data/ManagerApiDto.d.ts +104 -18
  737. package/lib/types/src/internal/manager-api/data/ManagerApiDto.d.ts.map +1 -1
  738. package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts +7 -0
  739. package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts.map +1 -1
  740. package/lib/types/src/internal/manager-api/di/managerApiModule.d.ts.map +1 -1
  741. package/lib/types/src/internal/manager-api/di/managerApiTypes.d.ts +1 -0
  742. package/lib/types/src/internal/manager-api/di/managerApiTypes.d.ts.map +1 -1
  743. package/lib/types/src/internal/manager-api/model/Application.d.ts +12 -12
  744. package/lib/types/src/internal/manager-api/model/Application.d.ts.map +1 -1
  745. package/lib/types/src/internal/manager-api/model/Const.d.ts +2 -0
  746. package/lib/types/src/internal/manager-api/model/Const.d.ts.map +1 -1
  747. package/lib/types/src/internal/manager-api/model/Firmware.d.ts +17 -3
  748. package/lib/types/src/internal/manager-api/model/Firmware.d.ts.map +1 -1
  749. package/lib/types/src/internal/manager-api/model/Language.d.ts +12 -0
  750. package/lib/types/src/internal/manager-api/model/Language.d.ts.map +1 -0
  751. package/lib/types/src/internal/manager-api/model/Params.d.ts +20 -6
  752. package/lib/types/src/internal/manager-api/model/Params.d.ts.map +1 -1
  753. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.d.ts +9 -3
  754. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.d.ts.map +1 -1
  755. package/lib/types/src/internal/manager-api/service/ManagerApiService.d.ts +42 -7
  756. package/lib/types/src/internal/manager-api/service/ManagerApiService.d.ts.map +1 -1
  757. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.d.ts +13 -0
  758. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.d.ts.map +1 -0
  759. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.test.d.ts +2 -0
  760. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.test.d.ts.map +1 -0
  761. package/lib/types/src/internal/secure-channel/di/secureChannelModule.d.ts.map +1 -1
  762. package/lib/types/src/internal/secure-channel/model/Errors.d.ts +22 -2
  763. package/lib/types/src/internal/secure-channel/model/Errors.d.ts.map +1 -1
  764. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts +2 -2
  765. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts.map +1 -1
  766. package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts +3 -3
  767. package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts.map +1 -1
  768. package/lib/types/src/internal/send/di/sendModule.d.ts.map +1 -1
  769. package/lib/types/src/internal/send/use-case/SendApduUseCase.d.ts +9 -1
  770. package/lib/types/src/internal/send/use-case/SendApduUseCase.d.ts.map +1 -1
  771. package/lib/types/src/internal/transport/di/transportModule.d.ts.map +1 -1
  772. package/lib/types/src/internal/transport/service/DefaultTransportService.d.ts +2 -0
  773. package/lib/types/src/internal/transport/service/DefaultTransportService.d.ts.map +1 -1
  774. package/lib/types/src/internal/transport/service/TransportService.d.ts +3 -1
  775. package/lib/types/src/internal/transport/service/TransportService.d.ts.map +1 -1
  776. package/lib/types/src/internal/transport/service/__mocks__/DefaultTransportService.d.ts +1 -0
  777. package/lib/types/src/internal/transport/service/__mocks__/DefaultTransportService.d.ts.map +1 -1
  778. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  779. package/package.json +16 -17
@@ -1,2 +1,2 @@
1
- import{Container as d}from"inversify";import{StaticDeviceModelDataSource as r}from"../../../api/device-model/data/StaticDeviceModelDataSource";import{deviceModelModuleFactory as c}from"./deviceModelModule";import{deviceModelTypes as i}from"./deviceModelTypes";describe("deviceModelModuleFactory",()=>{let e,o;beforeEach(()=>{o=c({stub:!1}),e=new d,e.load(o)}),it("should return the device module",()=>{expect(o).toBeDefined()}),it("should return none mocked services and data sources",()=>{const t=e.get(i.DeviceModelDataSource);expect(t).toBeInstanceOf(r)})});
1
+ import{Container as c}from"inversify";import{StaticDeviceModelDataSource as d}from"../../../api/device-model/data/StaticDeviceModelDataSource";import{deviceModelModuleFactory as r}from"./deviceModelModule";import{deviceModelTypes as i}from"./deviceModelTypes";describe("deviceModelModuleFactory",()=>{let e,o;beforeEach(()=>{o=r({stub:!1}),e=new c,e.loadSync(o)}),it("should return the device module",()=>{expect(o).toBeDefined()}),it("should return none mocked services and data sources",()=>{const t=e.get(i.DeviceModelDataSource);expect(t).toBeInstanceOf(d)})});
2
2
  //# sourceMappingURL=deviceModelModule.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-model/di/deviceModelModule.test.ts"],
4
- "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { StaticDeviceModelDataSource } from \"@api/device-model/data/StaticDeviceModelDataSource\";\n\nimport { deviceModelModuleFactory } from \"./deviceModelModule\";\nimport { deviceModelTypes } from \"./deviceModelTypes\";\n\ndescribe(\"deviceModelModuleFactory\", () => {\n let container: Container;\n let mod: ReturnType<typeof deviceModelModuleFactory>;\n beforeEach(() => {\n mod = deviceModelModuleFactory({ stub: false });\n container = new Container();\n container.load(mod);\n });\n\n it(\"should return the device module\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should return none mocked services and data sources\", () => {\n const deviceModelDataSource = container.get(\n deviceModelTypes.DeviceModelDataSource,\n );\n expect(deviceModelDataSource).toBeInstanceOf(StaticDeviceModelDataSource);\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,+BAAAC,MAAmC,qDAE5C,OAAS,4BAAAC,MAAgC,sBACzC,OAAS,oBAAAC,MAAwB,qBAEjC,SAAS,2BAA4B,IAAM,CACzC,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMH,EAAyB,CAAE,KAAM,EAAM,CAAC,EAC9CE,EAAY,IAAIJ,EAChBI,EAAU,KAAKC,CAAG,CACpB,CAAC,EAED,GAAG,kCAAmC,IAAM,CAC1C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,sDAAuD,IAAM,CAC9D,MAAMC,EAAwBF,EAAU,IACtCD,EAAiB,qBACnB,EACA,OAAOG,CAAqB,EAAE,eAAeL,CAA2B,CAC1E,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { StaticDeviceModelDataSource } from \"@api/device-model/data/StaticDeviceModelDataSource\";\n\nimport { deviceModelModuleFactory } from \"./deviceModelModule\";\nimport { deviceModelTypes } from \"./deviceModelTypes\";\n\ndescribe(\"deviceModelModuleFactory\", () => {\n let container: Container;\n let mod: ReturnType<typeof deviceModelModuleFactory>;\n beforeEach(() => {\n mod = deviceModelModuleFactory({ stub: false });\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"should return the device module\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should return none mocked services and data sources\", () => {\n const deviceModelDataSource = container.get(\n deviceModelTypes.DeviceModelDataSource,\n );\n expect(deviceModelDataSource).toBeInstanceOf(StaticDeviceModelDataSource);\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,+BAAAC,MAAmC,qDAE5C,OAAS,4BAAAC,MAAgC,sBACzC,OAAS,oBAAAC,MAAwB,qBAEjC,SAAS,2BAA4B,IAAM,CACzC,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMH,EAAyB,CAAE,KAAM,EAAM,CAAC,EAC9CE,EAAY,IAAIJ,EAChBI,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,kCAAmC,IAAM,CAC1C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,sDAAuD,IAAM,CAC9D,MAAMC,EAAwBF,EAAU,IACtCD,EAAiB,qBACnB,EACA,OAAOG,CAAqB,EAAE,eAAeL,CAA2B,CAC1E,CAAC,CACH,CAAC",
6
6
  "names": ["Container", "StaticDeviceModelDataSource", "deviceModelModuleFactory", "deviceModelTypes", "container", "mod", "deviceModelDataSource"]
7
7
  }
@@ -1,2 +1,2 @@
1
- const E=2;export{E as APDU_RESPONSE_STATUS_CODE_LENGTH};
1
+ const E=2,T=800;export{E as APDU_RESPONSE_STATUS_CODE_LENGTH,T as PINGER_TIMEOUT};
2
2
  //# sourceMappingURL=ApduResponseConst.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/data/ApduResponseConst.ts"],
4
- "sourcesContent": ["export const APDU_RESPONSE_STATUS_CODE_LENGTH = 2;\n"],
5
- "mappings": "AAAO,MAAMA,EAAmC",
6
- "names": ["APDU_RESPONSE_STATUS_CODE_LENGTH"]
4
+ "sourcesContent": ["export const APDU_RESPONSE_STATUS_CODE_LENGTH = 2;\nexport const PINGER_TIMEOUT = 800;\n"],
5
+ "mappings": "AAAO,MAAMA,EAAmC,EACnCC,EAAiB",
6
+ "names": ["APDU_RESPONSE_STATUS_CODE_LENGTH", "PINGER_TIMEOUT"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ContainerModule as a}from"inversify";import{DisableDeviceSessionRefresherUseCase as p}from"../../../api/device-session/use-case/DisableDeviceSessionRefresher";import{DefaultApduReceiverService as u}from"../../device-session/service/DefaultApduReceiverService";import{DefaultApduSenderService as v}from"../../device-session/service/DefaultApduSenderService";import{DefaultDeviceSessionService as m}from"../../device-session/service/DefaultDeviceSessionService";import{CloseSessionsUseCase as g}from"../../device-session/use-case/CloseSessionsUseCase";import{GetDeviceSessionStateUseCase as f}from"../../device-session/use-case/GetDeviceSessionStateUseCase";import{loggerTypes as c}from"../../logger-publisher/di/loggerTypes";import{StubUseCase as n}from"../../../../src/di.stub";import{deviceSessionTypes as e}from"./deviceSessionTypes";const w=({stub:S}={stub:!1})=>new a((r,l,d,i,A,y,D)=>{r(e.ApduSenderServiceFactory).toFactory(o=>{const t=o.container.get(c.LoggerPublisherServiceFactory);return s=>new v(s,t)}),r(e.ApduReceiverServiceFactory).toFactory(o=>{const t=o.container.get(c.LoggerPublisherServiceFactory);return(s={})=>new u(s,t)}),r(e.DeviceSessionService).to(m).inSingletonScope(),r(e.GetDeviceSessionStateUseCase).to(f),r(e.CloseSessionsUseCase).to(g),r(e.DisableDeviceSessionRefresherUseCase).to(p),S&&(i(e.GetDeviceSessionStateUseCase).to(n),i(e.DisableDeviceSessionRefresherUseCase).to(n))});export{w as deviceSessionModuleFactory};
1
+ import{ContainerModule as n}from"inversify";import{DisableDeviceSessionRefresherUseCase as a}from"../../../api/device-session/use-case/DisableDeviceSessionRefresher";import{DefaultApduReceiverService as u}from"../../device-session/service/DefaultApduReceiverService";import{DefaultApduSenderService as v}from"../../device-session/service/DefaultApduSenderService";import{DefaultDeviceSessionService as m}from"../../device-session/service/DefaultDeviceSessionService";import{CloseSessionsUseCase as g}from"../../device-session/use-case/CloseSessionsUseCase";import{GetDeviceSessionStateUseCase as l}from"../../device-session/use-case/GetDeviceSessionStateUseCase";import{loggerTypes as c}from"../../logger-publisher/di/loggerTypes";import{StubUseCase as S}from"../../../../src/di.stub";import{deviceSessionTypes as e}from"./deviceSessionTypes";const b=({stub:p}={stub:!1})=>new n(({bind:r,rebindSync:i})=>{r(e.ApduSenderServiceFactory).toFactory(o=>{const s=o.get(c.LoggerPublisherServiceFactory);return t=>new v(t,s)}),r(e.ApduReceiverServiceFactory).toFactory(o=>{const s=o.get(c.LoggerPublisherServiceFactory);return(t={})=>new u(t,s)}),r(e.DeviceSessionService).to(m).inSingletonScope(),r(e.GetDeviceSessionStateUseCase).to(l),r(e.CloseSessionsUseCase).to(g),r(e.DisableDeviceSessionRefresherUseCase).to(a),p&&(i(e.GetDeviceSessionStateUseCase).to(S),i(e.DisableDeviceSessionRefresherUseCase).to(S))});export{b as deviceSessionModuleFactory};
2
2
  //# sourceMappingURL=deviceSessionModule.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/di/deviceSessionModule.ts"],
4
- "sourcesContent": ["import { ContainerModule, type interfaces } from \"inversify\";\n\nimport { type ApduReceiverService } from \"@api/device-session/service/ApduReceiverService\";\nimport { type ApduReceiverConstructorArgs } from \"@api/device-session/service/ApduReceiverService\";\nimport { type ApduSenderService } from \"@api/device-session/service/ApduSenderService\";\nimport { type ApduSenderServiceConstructorArgs } from \"@api/device-session/service/ApduSenderService\";\nimport { DisableDeviceSessionRefresherUseCase } from \"@api/device-session/use-case/DisableDeviceSessionRefresher\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { DefaultApduReceiverService } from \"@internal/device-session/service/DefaultApduReceiverService\";\nimport { DefaultApduSenderService } from \"@internal/device-session/service/DefaultApduSenderService\";\nimport { DefaultDeviceSessionService } from \"@internal/device-session/service/DefaultDeviceSessionService\";\nimport { CloseSessionsUseCase } from \"@internal/device-session/use-case/CloseSessionsUseCase\";\nimport { GetDeviceSessionStateUseCase } from \"@internal/device-session/use-case/GetDeviceSessionStateUseCase\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { deviceSessionTypes } from \"./deviceSessionTypes\";\n\nexport type DeviceSessionModuleArgs = Partial<{\n stub: boolean;\n}>;\n\nexport const deviceSessionModuleFactory = (\n { stub }: DeviceSessionModuleArgs = { stub: false },\n) =>\n new ContainerModule(\n (\n bind,\n _unbind,\n _isBound,\n rebind,\n _unbindAsync,\n _onActivation,\n _onDeactivation,\n ) => {\n bind<interfaces.Factory<ApduSenderService>>(\n deviceSessionTypes.ApduSenderServiceFactory,\n ).toFactory((context) => {\n const logger = context.container.get<\n (name: string) => LoggerPublisherService\n >(loggerTypes.LoggerPublisherServiceFactory);\n\n return (args: ApduSenderServiceConstructorArgs) => {\n return new DefaultApduSenderService(args, logger);\n };\n });\n\n bind<interfaces.Factory<ApduReceiverService>>(\n deviceSessionTypes.ApduReceiverServiceFactory,\n ).toFactory((context) => {\n const logger = context.container.get<\n (name: string) => LoggerPublisherService\n >(loggerTypes.LoggerPublisherServiceFactory);\n\n return (args: ApduReceiverConstructorArgs = {}) => {\n return new DefaultApduReceiverService(args, logger);\n };\n });\n\n bind(deviceSessionTypes.DeviceSessionService)\n .to(DefaultDeviceSessionService)\n .inSingletonScope();\n\n bind(deviceSessionTypes.GetDeviceSessionStateUseCase).to(\n GetDeviceSessionStateUseCase,\n );\n bind(deviceSessionTypes.CloseSessionsUseCase).to(CloseSessionsUseCase);\n bind(deviceSessionTypes.DisableDeviceSessionRefresherUseCase).to(\n DisableDeviceSessionRefresherUseCase,\n );\n\n if (stub) {\n rebind(deviceSessionTypes.GetDeviceSessionStateUseCase).to(StubUseCase);\n rebind(deviceSessionTypes.DisableDeviceSessionRefresherUseCase).to(\n StubUseCase,\n );\n }\n },\n );\n"],
5
- "mappings": "AAAA,OAAS,mBAAAA,MAAwC,YAMjD,OAAS,wCAAAC,MAA4C,6DAErD,OAAS,8BAAAC,MAAkC,8DAC3C,OAAS,4BAAAC,MAAgC,4DACzC,OAAS,+BAAAC,MAAmC,+DAC5C,OAAS,wBAAAC,MAA4B,yDACrC,OAAS,gCAAAC,MAAoC,iEAC7C,OAAS,eAAAC,MAAmB,4CAC5B,OAAS,eAAAC,MAAmB,oBAE5B,OAAS,sBAAAC,MAA0B,uBAM5B,MAAMC,EAA6B,CACxC,CAAE,KAAAC,CAAK,EAA6B,CAAE,KAAM,EAAM,IAElD,IAAIX,EACF,CACEY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IACG,CACHN,EACEH,EAAmB,wBACrB,EAAE,UAAWU,GAAY,CACvB,MAAMC,EAASD,EAAQ,UAAU,IAE/BZ,EAAY,6BAA6B,EAE3C,OAAQc,GACC,IAAIlB,EAAyBkB,EAAMD,CAAM,CAEpD,CAAC,EAEDR,EACEH,EAAmB,0BACrB,EAAE,UAAWU,GAAY,CACvB,MAAMC,EAASD,EAAQ,UAAU,IAE/BZ,EAAY,6BAA6B,EAE3C,MAAO,CAACc,EAAoC,CAAC,IACpC,IAAInB,EAA2BmB,EAAMD,CAAM,CAEtD,CAAC,EAEDR,EAAKH,EAAmB,oBAAoB,EACzC,GAAGL,CAA2B,EAC9B,iBAAiB,EAEpBQ,EAAKH,EAAmB,4BAA4B,EAAE,GACpDH,CACF,EACAM,EAAKH,EAAmB,oBAAoB,EAAE,GAAGJ,CAAoB,EACrEO,EAAKH,EAAmB,oCAAoC,EAAE,GAC5DR,CACF,EAEIU,IACFI,EAAON,EAAmB,4BAA4B,EAAE,GAAGD,CAAW,EACtEO,EAAON,EAAmB,oCAAoC,EAAE,GAC9DD,CACF,EAEJ,CACF",
6
- "names": ["ContainerModule", "DisableDeviceSessionRefresherUseCase", "DefaultApduReceiverService", "DefaultApduSenderService", "DefaultDeviceSessionService", "CloseSessionsUseCase", "GetDeviceSessionStateUseCase", "loggerTypes", "StubUseCase", "deviceSessionTypes", "deviceSessionModuleFactory", "stub", "bind", "_unbind", "_isBound", "rebind", "_unbindAsync", "_onActivation", "_onDeactivation", "context", "logger", "args"]
4
+ "sourcesContent": ["import { ContainerModule, type Factory } from \"inversify\";\n\nimport { type ApduReceiverService } from \"@api/device-session/service/ApduReceiverService\";\nimport { type ApduReceiverConstructorArgs } from \"@api/device-session/service/ApduReceiverService\";\nimport { type ApduSenderService } from \"@api/device-session/service/ApduSenderService\";\nimport { type ApduSenderServiceConstructorArgs } from \"@api/device-session/service/ApduSenderService\";\nimport { DisableDeviceSessionRefresherUseCase } from \"@api/device-session/use-case/DisableDeviceSessionRefresher\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { DefaultApduReceiverService } from \"@internal/device-session/service/DefaultApduReceiverService\";\nimport { DefaultApduSenderService } from \"@internal/device-session/service/DefaultApduSenderService\";\nimport { DefaultDeviceSessionService } from \"@internal/device-session/service/DefaultDeviceSessionService\";\nimport { CloseSessionsUseCase } from \"@internal/device-session/use-case/CloseSessionsUseCase\";\nimport { GetDeviceSessionStateUseCase } from \"@internal/device-session/use-case/GetDeviceSessionStateUseCase\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { deviceSessionTypes } from \"./deviceSessionTypes\";\n\nexport type DeviceSessionModuleArgs = Partial<{\n stub: boolean;\n}>;\n\nexport const deviceSessionModuleFactory = (\n { stub }: DeviceSessionModuleArgs = { stub: false },\n) =>\n new ContainerModule(({ bind, rebindSync }) => {\n bind<Factory<ApduSenderService>>(\n deviceSessionTypes.ApduSenderServiceFactory,\n ).toFactory((context) => {\n const logger = context.get<(name: string) => LoggerPublisherService>(\n loggerTypes.LoggerPublisherServiceFactory,\n );\n\n return (args: ApduSenderServiceConstructorArgs) => {\n return new DefaultApduSenderService(args, logger);\n };\n });\n\n bind<Factory<ApduReceiverService>>(\n deviceSessionTypes.ApduReceiverServiceFactory,\n ).toFactory((context) => {\n const logger = context.get<(name: string) => LoggerPublisherService>(\n loggerTypes.LoggerPublisherServiceFactory,\n );\n\n return (args: ApduReceiverConstructorArgs = {}) => {\n return new DefaultApduReceiverService(args, logger);\n };\n });\n\n bind(deviceSessionTypes.DeviceSessionService)\n .to(DefaultDeviceSessionService)\n .inSingletonScope();\n\n bind(deviceSessionTypes.GetDeviceSessionStateUseCase).to(\n GetDeviceSessionStateUseCase,\n );\n bind(deviceSessionTypes.CloseSessionsUseCase).to(CloseSessionsUseCase);\n bind(deviceSessionTypes.DisableDeviceSessionRefresherUseCase).to(\n DisableDeviceSessionRefresherUseCase,\n );\n\n if (stub) {\n rebindSync(deviceSessionTypes.GetDeviceSessionStateUseCase).to(\n StubUseCase,\n );\n rebindSync(deviceSessionTypes.DisableDeviceSessionRefresherUseCase).to(\n StubUseCase,\n );\n }\n });\n"],
5
+ "mappings": "AAAA,OAAS,mBAAAA,MAAqC,YAM9C,OAAS,wCAAAC,MAA4C,6DAErD,OAAS,8BAAAC,MAAkC,8DAC3C,OAAS,4BAAAC,MAAgC,4DACzC,OAAS,+BAAAC,MAAmC,+DAC5C,OAAS,wBAAAC,MAA4B,yDACrC,OAAS,gCAAAC,MAAoC,iEAC7C,OAAS,eAAAC,MAAmB,4CAC5B,OAAS,eAAAC,MAAmB,oBAE5B,OAAS,sBAAAC,MAA0B,uBAM5B,MAAMC,EAA6B,CACxC,CAAE,KAAAC,CAAK,EAA6B,CAAE,KAAM,EAAM,IAElD,IAAIX,EAAgB,CAAC,CAAE,KAAAY,EAAM,WAAAC,CAAW,IAAM,CAC5CD,EACEH,EAAmB,wBACrB,EAAE,UAAWK,GAAY,CACvB,MAAMC,EAASD,EAAQ,IACrBP,EAAY,6BACd,EAEA,OAAQS,GACC,IAAIb,EAAyBa,EAAMD,CAAM,CAEpD,CAAC,EAEDH,EACEH,EAAmB,0BACrB,EAAE,UAAWK,GAAY,CACvB,MAAMC,EAASD,EAAQ,IACrBP,EAAY,6BACd,EAEA,MAAO,CAACS,EAAoC,CAAC,IACpC,IAAId,EAA2Bc,EAAMD,CAAM,CAEtD,CAAC,EAEDH,EAAKH,EAAmB,oBAAoB,EACzC,GAAGL,CAA2B,EAC9B,iBAAiB,EAEpBQ,EAAKH,EAAmB,4BAA4B,EAAE,GACpDH,CACF,EACAM,EAAKH,EAAmB,oBAAoB,EAAE,GAAGJ,CAAoB,EACrEO,EAAKH,EAAmB,oCAAoC,EAAE,GAC5DR,CACF,EAEIU,IACFE,EAAWJ,EAAmB,4BAA4B,EAAE,GAC1DD,CACF,EACAK,EAAWJ,EAAmB,oCAAoC,EAAE,GAClED,CACF,EAEJ,CAAC",
6
+ "names": ["ContainerModule", "DisableDeviceSessionRefresherUseCase", "DefaultApduReceiverService", "DefaultApduSenderService", "DefaultDeviceSessionService", "CloseSessionsUseCase", "GetDeviceSessionStateUseCase", "loggerTypes", "StubUseCase", "deviceSessionTypes", "deviceSessionModuleFactory", "stub", "bind", "rebindSync", "context", "logger", "args"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Container as t}from"inversify";import{deviceSessionModuleFactory as i}from"./deviceSessionModule";describe("deviceSessionModuleFactory",()=>{describe("Default",()=>{let o,e;beforeEach(()=>{e=i(),o=new t,o.load(e)}),it("should return the config module",()=>{expect(e).toBeDefined()})})});
1
+ import{Container as t}from"inversify";import{deviceSessionModuleFactory as i}from"./deviceSessionModule";describe("deviceSessionModuleFactory",()=>{describe("Default",()=>{let o,e;beforeEach(()=>{e=i(),o=new t,o.loadSync(e)}),it("should return the config module",()=>{expect(e).toBeDefined()})})});
2
2
  //# sourceMappingURL=deviceSessionModule.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/di/deviceSessionModule.test.ts"],
4
- "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { deviceSessionModuleFactory } from \"./deviceSessionModule\";\n\ndescribe(\"deviceSessionModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof deviceSessionModuleFactory>;\n beforeEach(() => {\n mod = deviceSessionModuleFactory();\n container = new Container();\n container.load(mod);\n });\n\n it(\"should return the config module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
5
- "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,8BAAAC,MAAkC,wBAE3C,SAAS,6BAA8B,IAAM,CAC3C,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMF,EAA2B,EACjCC,EAAY,IAAIF,EAChBE,EAAU,KAAKC,CAAG,CACpB,CAAC,EAED,GAAG,kCAAmC,IAAM,CAC1C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { Container } from \"inversify\";\n\nimport { deviceSessionModuleFactory } from \"./deviceSessionModule\";\n\ndescribe(\"deviceSessionModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof deviceSessionModuleFactory>;\n beforeEach(() => {\n mod = deviceSessionModuleFactory();\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"should return the config module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,8BAAAC,MAAkC,wBAE3C,SAAS,6BAA8B,IAAM,CAC3C,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,EAAMF,EAA2B,EACjCC,EAAY,IAAIF,EAChBE,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,kCAAmC,IAAM,CAC1C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["Container", "deviceSessionModuleFactory", "container", "mod"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{DeviceModelId as a}from"../../../api/device/DeviceModel";import{GetAppAndVersionCommand as r,GetOsVersionCommand as c}from"../../../api/index";import{DEVICE_SESSION_REFRESHER_POLLING_INTERVAL as p}from"../../device-session/data/DeviceSessionRefresherConst";import{SessionEvents as i}from"../../device-session/model/DeviceSessionEventDispatcher";class l{constructor(e,t,o,n){this.connectedDevice=t;this._sessionEventDispatcher=o;this._sendCommandFunction=n,this._logger=e("device-pinger"),this._subscription=this._sessionEventDispatcher.listen().subscribe(async s=>await this.mapEventAction(s))}_sendCommandFunction;_subscription;_logger;async ping(){try{return await this.mapDevicePingAction(this.connectedDevice.deviceModel.id)}catch(e){throw this._logger.error("Error while pinging device",{data:{error:e}}),e}}mapEventAction=async e=>{switch(e.eventName){case i.REFRESH_NEEDED:return await this.ping();default:return null}};async mapDevicePingAction(e){switch(e){case a.NANO_S:{const t=(async()=>{const s=await this._sendCommandFunction(new r);return this._sendCommandFunction(new c),s})(),o=new Promise(s=>{setTimeout(()=>s(null),p*2+100)}),n=await Promise.race([t,o]);return n?this._sessionEventDispatcher.dispatch({eventName:i.COMMAND_SUCCEEDED,eventData:n}):this._sessionEventDispatcher.dispatch({eventName:i.DEVICE_STATE_UPDATE_LOCKED}),n}default:{const t=await this._sendCommandFunction(new r);return this._sessionEventDispatcher.dispatch({eventName:i.COMMAND_SUCCEEDED,eventData:t}),t}}}unsubscribe(){this._subscription.unsubscribe()}}export{l as DevicePinger};
1
+ import{DeviceModelId as c}from"../../../api/device/DeviceModel";import{GetAppAndVersionCommand as a,GetOsVersionCommand as m}from"../../../api/index";import{PINGER_TIMEOUT as o}from"../../device-session/data/ApduResponseConst";import{DEVICE_SESSION_REFRESHER_POLLING_INTERVAL as p}from"../../device-session/data/DeviceSessionRefresherConst";import{SessionEvents as i}from"../../device-session/model/DeviceSessionEventDispatcher";class D{constructor(e,t,r,n){this.connectedDevice=t;this._sessionEventDispatcher=r;this._sendCommandFunction=n,this._logger=e("device-pinger"),this._subscription=this._sessionEventDispatcher.listen().subscribe(async s=>await this.mapEventAction(s))}_sendCommandFunction;_subscription;_logger;async ping(){try{return await this.mapDevicePingAction(this.connectedDevice.deviceModel.id)}catch(e){throw this._logger.error("Error while pinging device",{data:{error:e}}),e}}mapEventAction=async e=>{switch(e.eventName){case i.REFRESH_NEEDED:return await this.ping();default:return null}};async mapDevicePingAction(e){switch(e){case c.NANO_S:{const t=async()=>{const s=await this._sendCommandFunction(new a,o);return this._sendCommandFunction(new m,o),s},r=new Promise(s=>{setTimeout(()=>s(null),p*2+100)}),n=await Promise.race([t(),r]);return n?this._sessionEventDispatcher.dispatch({eventName:i.COMMAND_SUCCEEDED,eventData:n}):this._sessionEventDispatcher.dispatch({eventName:i.DEVICE_STATE_UPDATE_LOCKED}),n}default:{const t=await this._sendCommandFunction(new a,o);return this._sessionEventDispatcher.dispatch({eventName:i.COMMAND_SUCCEEDED,eventData:t}),t}}}unsubscribe(){this._subscription.unsubscribe()}}export{D as DevicePinger};
2
2
  //# sourceMappingURL=DevicePinger.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/model/DevicePinger.ts"],
4
- "sourcesContent": ["import { type Subscription } from \"rxjs\";\n\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport {\n GetAppAndVersionCommand,\n type GetAppAndVersionResponse,\n GetOsVersionCommand,\n type TransportConnectedDevice,\n} from \"@api/index\";\nimport {\n type Command,\n type CommandResult,\n type LoggerPublisherService,\n} from \"@api/types\";\nimport { DEVICE_SESSION_REFRESHER_POLLING_INTERVAL } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport {\n type DeviceSessionEventDispatcher,\n type NewEvent,\n SessionEvents,\n} from \"@internal/device-session/model/DeviceSessionEventDispatcher\";\n\ntype SendCommandFunction = <Response, Args, ErrorStatusCodes>(\n command: Command<Response, Args, ErrorStatusCodes>,\n) => Promise<CommandResult<Response, ErrorStatusCodes>>;\n\nexport class DevicePinger {\n private readonly _sendCommandFunction: SendCommandFunction;\n private _subscription: Subscription;\n private _logger: LoggerPublisherService;\n\n constructor(\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n private connectedDevice: TransportConnectedDevice,\n private _sessionEventDispatcher: DeviceSessionEventDispatcher,\n sendCommandFunction: SendCommandFunction,\n ) {\n this._sendCommandFunction = sendCommandFunction;\n this._logger = loggerModuleFactory(\"device-pinger\");\n this._subscription = this._sessionEventDispatcher\n .listen()\n .subscribe(async (event) => await this.mapEventAction(event));\n }\n\n public async ping(): Promise<CommandResult<GetAppAndVersionResponse> | null> {\n try {\n const result = await this.mapDevicePingAction(\n this.connectedDevice.deviceModel.id,\n );\n return result;\n } catch (error) {\n this._logger.error(\"Error while pinging device\", {\n data: {\n error,\n },\n });\n throw error;\n }\n }\n\n private mapEventAction = async (event: NewEvent) => {\n switch (event.eventName) {\n case SessionEvents.REFRESH_NEEDED:\n return await this.ping();\n default:\n return null;\n }\n };\n\n private async mapDevicePingAction(deviceModelId: DeviceModelId) {\n switch (deviceModelId) {\n case DeviceModelId.NANO_S: {\n const chainPromise: Promise<CommandResult<GetAppAndVersionResponse>> =\n (async () => {\n const appVersionResult = await this._sendCommandFunction(\n new GetAppAndVersionCommand(),\n );\n\n this._sendCommandFunction(new GetOsVersionCommand());\n return appVersionResult;\n })();\n\n const timeoutPromise: Promise<null> = new Promise((resolve) => {\n setTimeout(\n () => resolve(null),\n DEVICE_SESSION_REFRESHER_POLLING_INTERVAL * 2 + 100,\n );\n });\n\n const resultOrTimeout: CommandResult<GetAppAndVersionResponse> | null =\n await Promise.race([chainPromise, timeoutPromise]);\n\n if (!resultOrTimeout) {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_LOCKED,\n });\n } else {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.COMMAND_SUCCEEDED,\n eventData: resultOrTimeout,\n });\n }\n return resultOrTimeout;\n }\n default: {\n const result = await this._sendCommandFunction(\n new GetAppAndVersionCommand(),\n );\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.COMMAND_SUCCEEDED,\n eventData: result,\n });\n return result;\n }\n }\n }\n\n public unsubscribe(): void {\n this._subscription.unsubscribe();\n }\n}\n"],
5
- "mappings": "AAEA,OAAS,iBAAAA,MAAqB,0BAC9B,OACE,2BAAAC,EAEA,uBAAAC,MAEK,aAMP,OAAS,6CAAAC,MAAiD,4DAC1D,OAGE,iBAAAC,MACK,8DAMA,MAAMC,CAAa,CAKxB,YACEC,EACQC,EACAC,EACRC,EACA,CAHQ,qBAAAF,EACA,6BAAAC,EAGR,KAAK,qBAAuBC,EAC5B,KAAK,QAAUH,EAAoB,eAAe,EAClD,KAAK,cAAgB,KAAK,wBACvB,OAAO,EACP,UAAU,MAAOI,GAAU,MAAM,KAAK,eAAeA,CAAK,CAAC,CAChE,CAfiB,qBACT,cACA,QAeR,MAAa,MAAgE,CAC3E,GAAI,CAIF,OAHe,MAAM,KAAK,oBACxB,KAAK,gBAAgB,YAAY,EACnC,CAEF,OAASC,EAAO,CACd,WAAK,QAAQ,MAAM,6BAA8B,CAC/C,KAAM,CACJ,MAAAA,CACF,CACF,CAAC,EACKA,CACR,CACF,CAEQ,eAAiB,MAAOD,GAAoB,CAClD,OAAQA,EAAM,UAAW,CACvB,KAAKN,EAAc,eACjB,OAAO,MAAM,KAAK,KAAK,EACzB,QACE,OAAO,IACX,CACF,EAEA,MAAc,oBAAoBQ,EAA8B,CAC9D,OAAQA,EAAe,CACrB,KAAKZ,EAAc,OAAQ,CACzB,MAAMa,GACH,SAAY,CACX,MAAMC,EAAmB,MAAM,KAAK,qBAClC,IAAIb,CACN,EAEA,YAAK,qBAAqB,IAAIC,CAAqB,EAC5CY,CACT,GAAG,EAECC,EAAgC,IAAI,QAASC,GAAY,CAC7D,WACE,IAAMA,EAAQ,IAAI,EAClBb,EAA4C,EAAI,GAClD,CACF,CAAC,EAEKc,EACJ,MAAM,QAAQ,KAAK,CAACJ,EAAcE,CAAc,CAAC,EAEnD,OAAKE,EAKH,KAAK,wBAAwB,SAAS,CACpC,UAAWb,EAAc,kBACzB,UAAWa,CACb,CAAC,EAPD,KAAK,wBAAwB,SAAS,CACpC,UAAWb,EAAc,0BAC3B,CAAC,EAOIa,CACT,CACA,QAAS,CACP,MAAMC,EAAS,MAAM,KAAK,qBACxB,IAAIjB,CACN,EACA,YAAK,wBAAwB,SAAS,CACpC,UAAWG,EAAc,kBACzB,UAAWc,CACb,CAAC,EACMA,CACT,CACF,CACF,CAEO,aAAoB,CACzB,KAAK,cAAc,YAAY,CACjC,CACF",
6
- "names": ["DeviceModelId", "GetAppAndVersionCommand", "GetOsVersionCommand", "DEVICE_SESSION_REFRESHER_POLLING_INTERVAL", "SessionEvents", "DevicePinger", "loggerModuleFactory", "connectedDevice", "_sessionEventDispatcher", "sendCommandFunction", "event", "error", "deviceModelId", "chainPromise", "appVersionResult", "timeoutPromise", "resolve", "resultOrTimeout", "result"]
4
+ "sourcesContent": ["import { type Subscription } from \"rxjs\";\n\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport {\n GetAppAndVersionCommand,\n type GetAppAndVersionResponse,\n GetOsVersionCommand,\n type TransportConnectedDevice,\n} from \"@api/index\";\nimport {\n type Command,\n type CommandResult,\n type LoggerPublisherService,\n} from \"@api/types\";\nimport { PINGER_TIMEOUT } from \"@internal/device-session/data/ApduResponseConst\";\nimport { DEVICE_SESSION_REFRESHER_POLLING_INTERVAL } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport {\n type DeviceSessionEventDispatcher,\n type NewEvent,\n SessionEvents,\n} from \"@internal/device-session/model/DeviceSessionEventDispatcher\";\n\ntype SendCommandFunction = <Response, Args, ErrorStatusCodes>(\n command: Command<Response, Args, ErrorStatusCodes>,\n abortTimeout?: number,\n) => Promise<CommandResult<Response, ErrorStatusCodes>>;\n\nexport class DevicePinger {\n private readonly _sendCommandFunction: SendCommandFunction;\n private _subscription: Subscription;\n private _logger: LoggerPublisherService;\n\n constructor(\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n private connectedDevice: TransportConnectedDevice,\n private _sessionEventDispatcher: DeviceSessionEventDispatcher,\n sendCommandFunction: SendCommandFunction,\n ) {\n this._sendCommandFunction = sendCommandFunction;\n this._logger = loggerModuleFactory(\"device-pinger\");\n this._subscription = this._sessionEventDispatcher\n .listen()\n .subscribe(async (event) => await this.mapEventAction(event));\n }\n\n public async ping(): Promise<CommandResult<GetAppAndVersionResponse> | null> {\n try {\n const result = await this.mapDevicePingAction(\n this.connectedDevice.deviceModel.id,\n );\n return result;\n } catch (error) {\n this._logger.error(\"Error while pinging device\", {\n data: {\n error,\n },\n });\n throw error;\n }\n }\n\n private mapEventAction = async (event: NewEvent) => {\n switch (event.eventName) {\n case SessionEvents.REFRESH_NEEDED:\n return await this.ping();\n default:\n return null;\n }\n };\n\n private async mapDevicePingAction(deviceModelId: DeviceModelId) {\n switch (deviceModelId) {\n case DeviceModelId.NANO_S: {\n const chainPromise: () => Promise<\n CommandResult<GetAppAndVersionResponse>\n > = async () => {\n const appVersionResult = await this._sendCommandFunction(\n new GetAppAndVersionCommand(),\n PINGER_TIMEOUT,\n );\n\n this._sendCommandFunction(new GetOsVersionCommand(), PINGER_TIMEOUT);\n return appVersionResult;\n };\n\n const timeoutPromise: Promise<null> = new Promise((resolve) => {\n setTimeout(\n () => resolve(null),\n DEVICE_SESSION_REFRESHER_POLLING_INTERVAL * 2 + 100,\n );\n });\n\n const resultOrTimeout: CommandResult<GetAppAndVersionResponse> | null =\n await Promise.race([chainPromise(), timeoutPromise]);\n\n if (!resultOrTimeout) {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_LOCKED,\n });\n } else {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.COMMAND_SUCCEEDED,\n eventData: resultOrTimeout,\n });\n }\n return resultOrTimeout;\n }\n default: {\n const result = await this._sendCommandFunction(\n new GetAppAndVersionCommand(),\n PINGER_TIMEOUT,\n );\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.COMMAND_SUCCEEDED,\n eventData: result,\n });\n return result;\n }\n }\n }\n\n public unsubscribe(): void {\n this._subscription.unsubscribe();\n }\n}\n"],
5
+ "mappings": "AAEA,OAAS,iBAAAA,MAAqB,0BAC9B,OACE,2BAAAC,EAEA,uBAAAC,MAEK,aAMP,OAAS,kBAAAC,MAAsB,kDAC/B,OAAS,6CAAAC,MAAiD,4DAC1D,OAGE,iBAAAC,MACK,8DAOA,MAAMC,CAAa,CAKxB,YACEC,EACQC,EACAC,EACRC,EACA,CAHQ,qBAAAF,EACA,6BAAAC,EAGR,KAAK,qBAAuBC,EAC5B,KAAK,QAAUH,EAAoB,eAAe,EAClD,KAAK,cAAgB,KAAK,wBACvB,OAAO,EACP,UAAU,MAAOI,GAAU,MAAM,KAAK,eAAeA,CAAK,CAAC,CAChE,CAfiB,qBACT,cACA,QAeR,MAAa,MAAgE,CAC3E,GAAI,CAIF,OAHe,MAAM,KAAK,oBACxB,KAAK,gBAAgB,YAAY,EACnC,CAEF,OAASC,EAAO,CACd,WAAK,QAAQ,MAAM,6BAA8B,CAC/C,KAAM,CACJ,MAAAA,CACF,CACF,CAAC,EACKA,CACR,CACF,CAEQ,eAAiB,MAAOD,GAAoB,CAClD,OAAQA,EAAM,UAAW,CACvB,KAAKN,EAAc,eACjB,OAAO,MAAM,KAAK,KAAK,EACzB,QACE,OAAO,IACX,CACF,EAEA,MAAc,oBAAoBQ,EAA8B,CAC9D,OAAQA,EAAe,CACrB,KAAKb,EAAc,OAAQ,CACzB,MAAMc,EAEF,SAAY,CACd,MAAMC,EAAmB,MAAM,KAAK,qBAClC,IAAId,EACJE,CACF,EAEA,YAAK,qBAAqB,IAAID,EAAuBC,CAAc,EAC5DY,CACT,EAEMC,EAAgC,IAAI,QAASC,GAAY,CAC7D,WACE,IAAMA,EAAQ,IAAI,EAClBb,EAA4C,EAAI,GAClD,CACF,CAAC,EAEKc,EACJ,MAAM,QAAQ,KAAK,CAACJ,EAAa,EAAGE,CAAc,CAAC,EAErD,OAAKE,EAKH,KAAK,wBAAwB,SAAS,CACpC,UAAWb,EAAc,kBACzB,UAAWa,CACb,CAAC,EAPD,KAAK,wBAAwB,SAAS,CACpC,UAAWb,EAAc,0BAC3B,CAAC,EAOIa,CACT,CACA,QAAS,CACP,MAAMC,EAAS,MAAM,KAAK,qBACxB,IAAIlB,EACJE,CACF,EACA,YAAK,wBAAwB,SAAS,CACpC,UAAWE,EAAc,kBACzB,UAAWc,CACb,CAAC,EACMA,CACT,CACF,CACF,CAEO,aAAoB,CACzB,KAAK,cAAc,YAAY,CACjC,CACF",
6
+ "names": ["DeviceModelId", "GetAppAndVersionCommand", "GetOsVersionCommand", "PINGER_TIMEOUT", "DEVICE_SESSION_REFRESHER_POLLING_INTERVAL", "SessionEvents", "DevicePinger", "loggerModuleFactory", "connectedDevice", "_sessionEventDispatcher", "sendCommandFunction", "event", "error", "deviceModelId", "chainPromise", "appVersionResult", "timeoutPromise", "resolve", "resultOrTimeout", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{BehaviorSubject as p}from"rxjs";import{v4 as v}from"uuid";import{CommandUtils as d}from"../../../api/command/utils/CommandUtils";import{DeviceStatus as c}from"../../../api/device/DeviceStatus";import{DeviceSessionStateType as h}from"../../../api/device-session/DeviceSessionState";import{DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS as S}from"../../device-session/data/DeviceSessionRefresherConst";import{MutexService as m}from"../../device-session/service/MutexService";import{RefresherService as u}from"../../device-session/service/RefresherService";import{DevicePinger as D}from"./DevicePinger";import{DeviceSessionEventDispatcher as l,SessionEvents as r}from"./DeviceSessionEventDispatcher";import{DeviceSessionRefresher as _}from"./DeviceSessionRefresher";import{DeviceSessionStateHandler as f}from"./DeviceSessionStateHandler";class x{_id;_connectedDevice;_deviceState;_managerApiService;_secureChannelService;_logger;_refresherOptions;_pinger;_deviceSessionRefresher;_refresherService;_commandMutex=new m;_sessionEventDispatcher=new l;constructor({connectedDevice:e,id:s=v()},t,i,n,a){this._id=s,this._connectedDevice=e,this._logger=t("device-session"),this._managerApiService=i,this._secureChannelService=n,this._refresherOptions={...S,...a},this._deviceState=new p({sessionStateType:h.Connected,deviceStatus:c.CONNECTED,deviceModelId:this._connectedDevice.deviceModel.id}),this._pinger=new D(t,e,this._sessionEventDispatcher,o=>this.sendCommand(o)),this._deviceSessionRefresher=new _(t,this._refresherOptions,this._sessionEventDispatcher,this._connectedDevice),new f(t,this._sessionEventDispatcher,this._connectedDevice,this._deviceState,o=>this.setDeviceSessionState(o)),this._refresherService=new u(t,{start:()=>this._deviceSessionRefresher.restartRefresher(),stop:()=>this._deviceSessionRefresher.stopRefresher()})}async initialiseSession(){try{await this._pinger.ping()}catch(e){throw this._logger.error("Error while initialising session",{data:{error:e}}),e}finally{this._refresherOptions.isRefresherDisabled||this._deviceSessionRefresher.startRefresher()}}get id(){return this._id}get connectedDevice(){return this._connectedDevice}get state(){return this._deviceState.asObservable()}setDeviceSessionState(e){this._deviceState.next(e)}async sendApdu(e,s={isPolling:!1,triggersDisconnection:!1}){const t=await this._commandMutex.lock();try{this._sessionEventDispatcher.dispatch({eventName:r.DEVICE_STATE_UPDATE_BUSY});const i=await this._connectedDevice.sendApdu(e,s.triggersDisconnection);return i.ifRight(n=>{d.isLockedDeviceResponse(n)?this._sessionEventDispatcher.dispatch({eventName:r.DEVICE_STATE_UPDATE_LOCKED}):this._sessionEventDispatcher.dispatch({eventName:r.DEVICE_STATE_UPDATE_CONNECTED})}).ifLeft(()=>{this._sessionEventDispatcher.dispatch({eventName:r.DEVICE_STATE_UPDATE_CONNECTED})}),i}finally{t()}}async sendCommand(e){const s=e.getApdu();return(await this.sendApdu(s.getRawApdu(),{isPolling:!1,triggersDisconnection:e.triggersDisconnection??!1})).caseOf({Left:i=>{throw i},Right:i=>e.parseResponse(i,this._connectedDevice.deviceModel.id)})}executeDeviceAction(e){const{observable:s,cancel:t}=e._execute({sendApdu:async i=>this.sendApdu(i),sendCommand:async i=>this.sendCommand(i),getDeviceSessionState:()=>this._deviceState.getValue(),getDeviceSessionStateObservable:()=>this.state,setDeviceSessionState:i=>(this.setDeviceSessionState(i),this._deviceState.getValue()),disableRefresher:i=>this._refresherService.disableRefresher(i),getManagerApiService:()=>this._managerApiService,getSecureChannelService:()=>this._secureChannelService});return{observable:s,cancel:t}}close(){this._updateDeviceStatus(c.NOT_CONNECTED),this._deviceState.complete(),this._deviceSessionRefresher.stopRefresher()}disableRefresher(e){return this._refresherService.disableRefresher(e)}_updateDeviceStatus(e){const s=this._deviceState.getValue();this._deviceState.next({...s,deviceStatus:e})}}export{x as DeviceSession};
1
+ import{BehaviorSubject as v}from"rxjs";import{v4 as d}from"uuid";import{CommandUtils as h}from"../../../api/command/utils/CommandUtils";import{DeviceStatus as c}from"../../../api/device/DeviceStatus";import{DeviceSessionStateType as S}from"../../../api/device-session/DeviceSessionState";import{DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS as u}from"../../device-session/data/DeviceSessionRefresherConst";import{MutexService as m}from"../../device-session/service/MutexService";import{RefresherService as D}from"../../device-session/service/RefresherService";import{DevicePinger as l}from"./DevicePinger";import{DeviceSessionEventDispatcher as _,SessionEvents as n}from"./DeviceSessionEventDispatcher";import{DeviceSessionRefresher as f}from"./DeviceSessionRefresher";import{DeviceSessionStateHandler as g}from"./DeviceSessionStateHandler";class V{_id;_connectedDevice;_deviceState;_managerApiService;_secureChannelService;_logger;_refresherOptions;_pinger;_deviceSessionRefresher;_refresherService;_commandMutex=new m;_sessionEventDispatcher=new _;constructor({connectedDevice:e,id:s=d()},t,i,r,a){this._id=s,this._connectedDevice=e,this._logger=t("device-session"),this._managerApiService=i,this._secureChannelService=r,this._refresherOptions={...u,...a},this._deviceState=new v({sessionStateType:S.Connected,deviceStatus:c.CONNECTED,deviceModelId:this._connectedDevice.deviceModel.id}),this._pinger=new l(t,e,this._sessionEventDispatcher,(o,p)=>this.sendCommand(o,p)),this._deviceSessionRefresher=new f(t,this._refresherOptions,this._sessionEventDispatcher,this._connectedDevice),new g(t,this._sessionEventDispatcher,this._connectedDevice,this._deviceState,o=>this.setDeviceSessionState(o)),this._refresherService=new D(t,{start:()=>this._deviceSessionRefresher.restartRefresher(),stop:()=>this._deviceSessionRefresher.stopRefresher()})}async initialiseSession(){try{await this._pinger.ping()}catch(e){throw this._logger.error("Error while initialising session",{data:{error:e}}),e}finally{this._refresherOptions.isRefresherDisabled||this._deviceSessionRefresher.startRefresher()}}get id(){return this._id}get connectedDevice(){return this._connectedDevice}get state(){return this._deviceState.asObservable()}getDeviceSessionState(){return this._deviceState.getValue()}setDeviceSessionState(e){this._deviceState.next(e)}async sendApdu(e,s={isPolling:!1,triggersDisconnection:!1,abortTimeout:void 0}){const t=await this._commandMutex.lock();try{this._sessionEventDispatcher.dispatch({eventName:n.DEVICE_STATE_UPDATE_BUSY});const i=await this._connectedDevice.sendApdu(e,s.triggersDisconnection,s.abortTimeout);return i.ifRight(r=>{h.isLockedDeviceResponse(r)?this._sessionEventDispatcher.dispatch({eventName:n.DEVICE_STATE_UPDATE_LOCKED}):this._sessionEventDispatcher.dispatch({eventName:n.DEVICE_STATE_UPDATE_CONNECTED})}).ifLeft(()=>{this._sessionEventDispatcher.dispatch({eventName:n.DEVICE_STATE_UPDATE_CONNECTED})}),i}finally{t()}}async sendCommand(e,s){const t=e.getApdu();return(await this.sendApdu(t.getRawApdu(),{isPolling:!1,triggersDisconnection:e.triggersDisconnection??!1,abortTimeout:s})).caseOf({Left:r=>{throw r},Right:r=>e.parseResponse(r,this._connectedDevice.deviceModel.id)})}executeDeviceAction(e){const{observable:s,cancel:t}=e._execute({sendApdu:async i=>this.sendApdu(i),sendCommand:async(i,r)=>this.sendCommand(i,r),getDeviceModel:()=>this._connectedDevice.deviceModel,getDeviceSessionState:()=>this._deviceState.getValue(),getDeviceSessionStateObservable:()=>this.state,setDeviceSessionState:i=>(this.setDeviceSessionState(i),this._deviceState.getValue()),disableRefresher:i=>this._refresherService.disableRefresher(i),getManagerApiService:()=>this._managerApiService,getSecureChannelService:()=>this._secureChannelService});return{observable:s,cancel:t}}close(){this._updateDeviceStatus(c.NOT_CONNECTED),this._deviceState.complete(),this._deviceSessionRefresher.stopRefresher()}disableRefresher(e){return this._refresherService.disableRefresher(e)}_updateDeviceStatus(e){const s=this._deviceState.getValue();this._deviceState.next({...s,deviceStatus:e})}}export{V as DeviceSession};
2
2
  //# sourceMappingURL=DeviceSession.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/model/DeviceSession.ts"],
4
- "sourcesContent": ["import { type Either } from \"purify-ts\";\nimport { BehaviorSubject, type Observable } from \"rxjs\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { type Command } from \"@api/command/Command\";\nimport { type CommandResult } from \"@api/command/model/CommandResult\";\nimport { CommandUtils } from \"@api/command/utils/CommandUtils\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport {\n type DeviceAction,\n type DeviceActionIntermediateValue,\n type ExecuteDeviceActionReturnType,\n} from \"@api/device-action/DeviceAction\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport {\n type DeviceSessionState,\n DeviceSessionStateType,\n} from \"@api/device-session/DeviceSessionState\";\nimport { type DeviceSessionId } from \"@api/device-session/types\";\nimport { type DmkError } from \"@api/Error\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { type TransportConnectedDevice } from \"@api/transport/model/TransportConnectedDevice\";\nimport { DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { MutexService } from \"@internal/device-session/service/MutexService\";\nimport { RefresherService } from \"@internal/device-session/service/RefresherService\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\n\nimport { DevicePinger } from \"./DevicePinger\";\nimport {\n DeviceSessionEventDispatcher,\n SessionEvents,\n} from \"./DeviceSessionEventDispatcher\";\nimport { DeviceSessionRefresher } from \"./DeviceSessionRefresher\";\nimport { DeviceSessionStateHandler } from \"./DeviceSessionStateHandler\";\n\nexport type SessionConstructorArgs = {\n connectedDevice: TransportConnectedDevice;\n id?: DeviceSessionId;\n};\n\nexport type DeviceSessionRefresherOptions = {\n isRefresherDisabled: boolean;\n pollingInterval?: number;\n};\n\ntype SendApduOptions = {\n isPolling?: boolean;\n triggersDisconnection?: boolean;\n};\n\n/**\n * Represents a session with a device.\n */\nexport class DeviceSession {\n private readonly _id: DeviceSessionId;\n private readonly _connectedDevice: TransportConnectedDevice;\n private readonly _deviceState: BehaviorSubject<DeviceSessionState>;\n private readonly _managerApiService: ManagerApiService;\n private readonly _secureChannelService: SecureChannelService;\n private readonly _logger: LoggerPublisherService;\n private readonly _refresherOptions: DeviceSessionRefresherOptions;\n private _pinger: DevicePinger;\n private _deviceSessionRefresher: DeviceSessionRefresher;\n private readonly _refresherService: RefresherService;\n private _commandMutex = new MutexService();\n private _sessionEventDispatcher = new DeviceSessionEventDispatcher();\n\n constructor(\n { connectedDevice, id = uuidv4() }: SessionConstructorArgs,\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n managerApiService: ManagerApiService,\n secureChannelService: SecureChannelService,\n deviceSessionRefresherOptions: DeviceSessionRefresherOptions | undefined,\n ) {\n this._id = id;\n this._connectedDevice = connectedDevice;\n this._logger = loggerModuleFactory(\"device-session\");\n this._managerApiService = managerApiService;\n this._secureChannelService = secureChannelService;\n this._refresherOptions = {\n ...DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS,\n ...deviceSessionRefresherOptions,\n };\n this._deviceState = new BehaviorSubject<DeviceSessionState>({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: this._connectedDevice.deviceModel.id,\n });\n\n this._pinger = new DevicePinger(\n loggerModuleFactory,\n connectedDevice,\n this._sessionEventDispatcher,\n (command) => this.sendCommand(command),\n );\n this._deviceSessionRefresher = new DeviceSessionRefresher(\n loggerModuleFactory,\n this._refresherOptions,\n this._sessionEventDispatcher,\n this._connectedDevice,\n );\n new DeviceSessionStateHandler(\n loggerModuleFactory,\n this._sessionEventDispatcher,\n this._connectedDevice,\n this._deviceState,\n (state) => this.setDeviceSessionState(state),\n );\n\n this._refresherService = new RefresherService(loggerModuleFactory, {\n start: () => this._deviceSessionRefresher.restartRefresher(),\n stop: () => this._deviceSessionRefresher.stopRefresher(),\n });\n }\n\n public async initialiseSession(): Promise<void> {\n try {\n await this._pinger.ping();\n } catch (error) {\n this._logger.error(\"Error while initialising session\", {\n data: { error },\n });\n throw error;\n } finally {\n if (!this._refresherOptions.isRefresherDisabled) {\n this._deviceSessionRefresher.startRefresher();\n }\n }\n }\n\n public get id(): DeviceSessionId {\n return this._id;\n }\n\n public get connectedDevice(): TransportConnectedDevice {\n return this._connectedDevice;\n }\n\n public get state(): Observable<DeviceSessionState> {\n return this._deviceState.asObservable();\n }\n\n public setDeviceSessionState(state: DeviceSessionState): void {\n this._deviceState.next(state);\n }\n\n public async sendApdu(\n rawApdu: Uint8Array,\n options: SendApduOptions = {\n isPolling: false,\n triggersDisconnection: false,\n },\n ): Promise<Either<DmkError, ApduResponse>> {\n const release = await this._commandMutex.lock();\n\n try {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_BUSY,\n });\n const result = await this._connectedDevice.sendApdu(\n rawApdu,\n options.triggersDisconnection,\n );\n\n result\n .ifRight((response: ApduResponse) => {\n if (CommandUtils.isLockedDeviceResponse(response)) {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_LOCKED,\n });\n } else {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_CONNECTED,\n });\n }\n })\n .ifLeft(() => {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_CONNECTED,\n });\n });\n return result;\n } finally {\n release();\n }\n }\n\n public async sendCommand<Response, Args, ErrorStatusCodes>(\n command: Command<Response, Args, ErrorStatusCodes>,\n ): Promise<CommandResult<Response, ErrorStatusCodes>> {\n const apdu = command.getApdu();\n\n const response = await this.sendApdu(apdu.getRawApdu(), {\n isPolling: false,\n triggersDisconnection: command.triggersDisconnection ?? false,\n });\n\n return response.caseOf({\n Left: (err) => {\n throw err;\n },\n Right: (r) =>\n command.parseResponse(r, this._connectedDevice.deviceModel.id),\n });\n }\n\n public executeDeviceAction<\n Output,\n Input,\n E extends DmkError,\n IntermediateValue extends DeviceActionIntermediateValue,\n >(\n deviceAction: DeviceAction<Output, Input, E, IntermediateValue>,\n ): ExecuteDeviceActionReturnType<Output, E, IntermediateValue> {\n const { observable, cancel } = deviceAction._execute({\n sendApdu: async (apdu: Uint8Array) => this.sendApdu(apdu),\n sendCommand: async <Response, ErrorStatusCodes, Args>(\n command: Command<Response, ErrorStatusCodes, Args>,\n ) => this.sendCommand(command),\n getDeviceSessionState: () => this._deviceState.getValue(),\n getDeviceSessionStateObservable: () => this.state,\n setDeviceSessionState: (state: DeviceSessionState) => {\n this.setDeviceSessionState(state);\n return this._deviceState.getValue();\n },\n disableRefresher: (blockerId: string) =>\n this._refresherService.disableRefresher(blockerId),\n getManagerApiService: () => this._managerApiService,\n getSecureChannelService: () => this._secureChannelService,\n });\n return { observable, cancel };\n }\n\n public close(): void {\n this._updateDeviceStatus(DeviceStatus.NOT_CONNECTED);\n this._deviceState.complete();\n this._deviceSessionRefresher.stopRefresher();\n }\n\n public disableRefresher(id: string): () => void {\n return this._refresherService.disableRefresher(id);\n }\n\n private _updateDeviceStatus(deviceStatus: DeviceStatus): void {\n const state = this._deviceState.getValue();\n this._deviceState.next({ ...state, deviceStatus });\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["BehaviorSubject", "uuidv4", "CommandUtils", "DeviceStatus", "DeviceSessionStateType", "DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS", "MutexService", "RefresherService", "DevicePinger", "DeviceSessionEventDispatcher", "SessionEvents", "DeviceSessionRefresher", "DeviceSessionStateHandler", "DeviceSession", "connectedDevice", "id", "loggerModuleFactory", "managerApiService", "secureChannelService", "deviceSessionRefresherOptions", "command", "state", "error", "rawApdu", "options", "release", "result", "response", "apdu", "err", "r", "deviceAction", "observable", "cancel", "blockerId", "deviceStatus"]
4
+ "sourcesContent": ["import { type Either } from \"purify-ts\";\nimport { BehaviorSubject, type Observable } from \"rxjs\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { type Command } from \"@api/command/Command\";\nimport { type CommandResult } from \"@api/command/model/CommandResult\";\nimport { CommandUtils } from \"@api/command/utils/CommandUtils\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport {\n type DeviceAction,\n type DeviceActionIntermediateValue,\n type ExecuteDeviceActionReturnType,\n} from \"@api/device-action/DeviceAction\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport {\n type DeviceSessionState,\n DeviceSessionStateType,\n} from \"@api/device-session/DeviceSessionState\";\nimport { type DeviceSessionId } from \"@api/device-session/types\";\nimport { type DmkError } from \"@api/Error\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { type TransportConnectedDevice } from \"@api/transport/model/TransportConnectedDevice\";\nimport { DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { MutexService } from \"@internal/device-session/service/MutexService\";\nimport { RefresherService } from \"@internal/device-session/service/RefresherService\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\n\nimport { DevicePinger } from \"./DevicePinger\";\nimport {\n DeviceSessionEventDispatcher,\n SessionEvents,\n} from \"./DeviceSessionEventDispatcher\";\nimport { DeviceSessionRefresher } from \"./DeviceSessionRefresher\";\nimport { DeviceSessionStateHandler } from \"./DeviceSessionStateHandler\";\n\nexport type SessionConstructorArgs = {\n connectedDevice: TransportConnectedDevice;\n id?: DeviceSessionId;\n};\n\nexport type DeviceSessionRefresherOptions = {\n isRefresherDisabled: boolean;\n pollingInterval?: number;\n};\n\ntype SendApduOptions = {\n isPolling?: boolean;\n triggersDisconnection?: boolean;\n abortTimeout?: number;\n};\n\n/**\n * Represents a session with a device.\n */\nexport class DeviceSession {\n private readonly _id: DeviceSessionId;\n private readonly _connectedDevice: TransportConnectedDevice;\n private readonly _deviceState: BehaviorSubject<DeviceSessionState>;\n private readonly _managerApiService: ManagerApiService;\n private readonly _secureChannelService: SecureChannelService;\n private readonly _logger: LoggerPublisherService;\n private readonly _refresherOptions: DeviceSessionRefresherOptions;\n private _pinger: DevicePinger;\n private _deviceSessionRefresher: DeviceSessionRefresher;\n private readonly _refresherService: RefresherService;\n private _commandMutex = new MutexService();\n private _sessionEventDispatcher = new DeviceSessionEventDispatcher();\n\n constructor(\n { connectedDevice, id = uuidv4() }: SessionConstructorArgs,\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n managerApiService: ManagerApiService,\n secureChannelService: SecureChannelService,\n deviceSessionRefresherOptions: DeviceSessionRefresherOptions | undefined,\n ) {\n this._id = id;\n this._connectedDevice = connectedDevice;\n this._logger = loggerModuleFactory(\"device-session\");\n this._managerApiService = managerApiService;\n this._secureChannelService = secureChannelService;\n this._refresherOptions = {\n ...DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS,\n ...deviceSessionRefresherOptions,\n };\n this._deviceState = new BehaviorSubject<DeviceSessionState>({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: this._connectedDevice.deviceModel.id,\n });\n\n this._pinger = new DevicePinger(\n loggerModuleFactory,\n connectedDevice,\n this._sessionEventDispatcher,\n (command, abortTimeout) => this.sendCommand(command, abortTimeout),\n );\n this._deviceSessionRefresher = new DeviceSessionRefresher(\n loggerModuleFactory,\n this._refresherOptions,\n this._sessionEventDispatcher,\n this._connectedDevice,\n );\n new DeviceSessionStateHandler(\n loggerModuleFactory,\n this._sessionEventDispatcher,\n this._connectedDevice,\n this._deviceState,\n (state) => this.setDeviceSessionState(state),\n );\n\n this._refresherService = new RefresherService(loggerModuleFactory, {\n start: () => this._deviceSessionRefresher.restartRefresher(),\n stop: () => this._deviceSessionRefresher.stopRefresher(),\n });\n }\n\n public async initialiseSession(): Promise<void> {\n try {\n await this._pinger.ping();\n } catch (error) {\n this._logger.error(\"Error while initialising session\", {\n data: { error },\n });\n throw error;\n } finally {\n if (!this._refresherOptions.isRefresherDisabled) {\n this._deviceSessionRefresher.startRefresher();\n }\n }\n }\n\n public get id(): DeviceSessionId {\n return this._id;\n }\n\n public get connectedDevice(): TransportConnectedDevice {\n return this._connectedDevice;\n }\n\n public get state(): Observable<DeviceSessionState> {\n return this._deviceState.asObservable();\n }\n\n public getDeviceSessionState(): DeviceSessionState {\n return this._deviceState.getValue();\n }\n\n public setDeviceSessionState(state: DeviceSessionState): void {\n this._deviceState.next(state);\n }\n\n public async sendApdu(\n rawApdu: Uint8Array,\n options: SendApduOptions = {\n isPolling: false,\n triggersDisconnection: false,\n abortTimeout: undefined,\n },\n ): Promise<Either<DmkError, ApduResponse>> {\n const release = await this._commandMutex.lock();\n\n try {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_BUSY,\n });\n const result = await this._connectedDevice.sendApdu(\n rawApdu,\n options.triggersDisconnection,\n options.abortTimeout,\n );\n\n result\n .ifRight((response: ApduResponse) => {\n if (CommandUtils.isLockedDeviceResponse(response)) {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_LOCKED,\n });\n } else {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_CONNECTED,\n });\n }\n })\n .ifLeft(() => {\n this._sessionEventDispatcher.dispatch({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_CONNECTED,\n });\n });\n return result;\n } finally {\n release();\n }\n }\n\n public async sendCommand<Response, Args, ErrorStatusCodes>(\n command: Command<Response, Args, ErrorStatusCodes>,\n abortTimeout?: number,\n ): Promise<CommandResult<Response, ErrorStatusCodes>> {\n const apdu = command.getApdu();\n\n const response = await this.sendApdu(apdu.getRawApdu(), {\n isPolling: false,\n triggersDisconnection: command.triggersDisconnection ?? false,\n abortTimeout,\n });\n\n return response.caseOf({\n Left: (err) => {\n throw err;\n },\n Right: (r) =>\n command.parseResponse(r, this._connectedDevice.deviceModel.id),\n });\n }\n\n public executeDeviceAction<\n Output,\n Input,\n E extends DmkError,\n IntermediateValue extends DeviceActionIntermediateValue,\n >(\n deviceAction: DeviceAction<Output, Input, E, IntermediateValue>,\n ): ExecuteDeviceActionReturnType<Output, E, IntermediateValue> {\n const { observable, cancel } = deviceAction._execute({\n sendApdu: async (apdu: Uint8Array) => this.sendApdu(apdu),\n sendCommand: async <Response, ErrorStatusCodes, Args>(\n command: Command<Response, ErrorStatusCodes, Args>,\n abortTimeout?: number,\n ) => this.sendCommand(command, abortTimeout),\n getDeviceModel: () => this._connectedDevice.deviceModel,\n getDeviceSessionState: () => this._deviceState.getValue(),\n getDeviceSessionStateObservable: () => this.state,\n setDeviceSessionState: (state: DeviceSessionState) => {\n this.setDeviceSessionState(state);\n return this._deviceState.getValue();\n },\n disableRefresher: (blockerId: string) =>\n this._refresherService.disableRefresher(blockerId),\n getManagerApiService: () => this._managerApiService,\n getSecureChannelService: () => this._secureChannelService,\n });\n return { observable, cancel };\n }\n\n public close(): void {\n this._updateDeviceStatus(DeviceStatus.NOT_CONNECTED);\n this._deviceState.complete();\n this._deviceSessionRefresher.stopRefresher();\n }\n\n public disableRefresher(id: string): () => void {\n return this._refresherService.disableRefresher(id);\n }\n\n private _updateDeviceStatus(deviceStatus: DeviceStatus): void {\n const state = this._deviceState.getValue();\n this._deviceState.next({ ...state, deviceStatus });\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["BehaviorSubject", "uuidv4", "CommandUtils", "DeviceStatus", "DeviceSessionStateType", "DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS", "MutexService", "RefresherService", "DevicePinger", "DeviceSessionEventDispatcher", "SessionEvents", "DeviceSessionRefresher", "DeviceSessionStateHandler", "DeviceSession", "connectedDevice", "id", "loggerModuleFactory", "managerApiService", "secureChannelService", "deviceSessionRefresherOptions", "command", "abortTimeout", "state", "error", "rawApdu", "options", "release", "result", "response", "apdu", "err", "deviceAction", "observable", "cancel", "blockerId", "deviceStatus"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{DeviceSessionStateType as o,DeviceStatus as t,isSuccessCommandResult as v}from"../../../api/index";import{SessionEvents as i}from"../../device-session/model/DeviceSessionEventDispatcher";class D{constructor(e,s,n,r,a){this._sessionEventDispatcher=s;this._connectedDevice=n;this._deviceState=r;this.setDeviceSessionState=a;this._subscription=this._sessionEventDispatcher.listen().subscribe(c=>this.mapEventAction(c)),this._logger=e("device-session-state-handler")}_subscription;_logger;_updateDeviceState(e){const s=this._parseDeviceStatus(e);if(s){const{sessionStateType:n,deviceStatus:r,currentApp:a}=s;this.setDeviceSessionState({sessionStateType:n,deviceStatus:r,deviceModelId:this._connectedDevice.deviceModel.id,currentApp:a,installedApps:[],isSecureConnectionAllowed:!1})}}mapEventAction=e=>{switch(e.eventName){case i.COMMAND_SUCCEEDED:return this._updateDeviceState(e.eventData);case i.DEVICE_STATE_UPDATE_BUSY:return this.setDeviceSessionState({...this._deviceState.getValue(),deviceStatus:t.BUSY});case i.DEVICE_STATE_UPDATE_LOCKED:return this.setDeviceSessionState({...this._deviceState.getValue(),deviceStatus:t.LOCKED});case i.DEVICE_STATE_UPDATE_CONNECTED:return this.setDeviceSessionState({...this._deviceState.getValue(),deviceStatus:t.CONNECTED});default:return null}};_parseDeviceStatus(e){return v(e)?{sessionStateType:o.ReadyWithoutSecureChannel,deviceStatus:t.CONNECTED,currentApp:{name:e.data.name,version:e.data.version}}:(this._logger.error("Error while parsing APDU response",{data:{parsedResponse:e}}),null)}unsubscribe(){this._subscription.unsubscribe()}}export{D as DeviceSessionStateHandler};
1
+ import{DeviceSessionStateType as o,DeviceStatus as i,isSuccessCommandResult as v}from"../../../api/index";import{SessionEvents as s}from"../../device-session/model/DeviceSessionEventDispatcher";class d{constructor(e,n,a,c,r){this._sessionEventDispatcher=n;this._connectedDevice=a;this._deviceState=c;this.setDeviceSessionState=r;this._subscription=this._sessionEventDispatcher.listen().subscribe(t=>this.mapEventAction(t)),this._logger=e("device-session-state-handler")}_subscription;_logger;_updateDeviceState(e){const n=this._parseDeviceStatus(e);if(n){const{sessionStateType:a,deviceStatus:c,currentApp:r}=n,t=this._deviceState.getValue();t.sessionStateType===o.Connected?this.setDeviceSessionState({sessionStateType:a,deviceStatus:c,deviceModelId:this._connectedDevice.deviceModel.id,currentApp:r,installedApps:[],isSecureConnectionAllowed:!1}):this.setDeviceSessionState({...t,sessionStateType:a,deviceStatus:c,deviceModelId:this._connectedDevice.deviceModel.id,currentApp:r})}}mapEventAction=e=>{switch(e.eventName){case s.COMMAND_SUCCEEDED:return this._updateDeviceState(e.eventData);case s.DEVICE_STATE_UPDATE_BUSY:return this.setDeviceSessionState({...this._deviceState.getValue(),deviceStatus:i.BUSY});case s.DEVICE_STATE_UPDATE_LOCKED:return this.setDeviceSessionState({...this._deviceState.getValue(),deviceStatus:i.LOCKED});case s.DEVICE_STATE_UPDATE_CONNECTED:return this.setDeviceSessionState({...this._deviceState.getValue(),deviceStatus:i.CONNECTED});default:return null}};_parseDeviceStatus(e){return v(e)?{sessionStateType:o.ReadyWithoutSecureChannel,deviceStatus:i.CONNECTED,currentApp:{name:e.data.name,version:e.data.version}}:(this._logger.debug("Error while parsing APDU response",{data:{parsedResponse:e}}),null)}unsubscribe(){this._subscription.unsubscribe()}}export{d as DeviceSessionStateHandler};
2
2
  //# sourceMappingURL=DeviceSessionStateHandler.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/model/DeviceSessionStateHandler.ts"],
4
- "sourcesContent": ["import { type BehaviorSubject, type Subscription } from \"rxjs\";\n\nimport { type DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport {\n DeviceSessionStateType,\n DeviceStatus,\n type GetAppAndVersionResponse,\n isSuccessCommandResult,\n type TransportConnectedDevice,\n} from \"@api/index\";\nimport { type CommandResult, type LoggerPublisherService } from \"@api/types\";\nimport {\n type DeviceSessionEventDispatcher,\n type NewEvent,\n SessionEvents,\n} from \"@internal/device-session/model/DeviceSessionEventDispatcher\";\n\nexport type SetDeviceSessionStateFn = (state: DeviceSessionState) => void;\n\ntype NewDeviceStatus = {\n sessionStateType: DeviceSessionStateType;\n deviceStatus: DeviceStatus;\n currentApp: {\n name: string;\n version: string;\n };\n};\n\nexport class DeviceSessionStateHandler {\n private _subscription: Subscription;\n private readonly _logger: LoggerPublisherService;\n\n constructor(\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n private _sessionEventDispatcher: DeviceSessionEventDispatcher,\n private _connectedDevice: TransportConnectedDevice,\n private _deviceState: BehaviorSubject<DeviceSessionState>,\n private setDeviceSessionState: SetDeviceSessionStateFn,\n ) {\n this._subscription = this._sessionEventDispatcher\n .listen()\n .subscribe((event) => this.mapEventAction(event));\n this._logger = loggerModuleFactory(\"device-session-state-handler\");\n }\n\n private _updateDeviceState(\n parsedResponse: CommandResult<GetAppAndVersionResponse>,\n ): void {\n const newDeviceStatus = this._parseDeviceStatus(parsedResponse);\n\n if (newDeviceStatus) {\n const { sessionStateType, deviceStatus, currentApp } = newDeviceStatus;\n\n this.setDeviceSessionState({\n sessionStateType,\n deviceStatus,\n deviceModelId: this._connectedDevice.deviceModel.id,\n currentApp,\n installedApps: [],\n isSecureConnectionAllowed: false,\n });\n }\n }\n\n private mapEventAction = (event: NewEvent) => {\n switch (event.eventName) {\n case SessionEvents.COMMAND_SUCCEEDED:\n return this._updateDeviceState(event.eventData);\n case SessionEvents.DEVICE_STATE_UPDATE_BUSY:\n return this.setDeviceSessionState({\n ...this._deviceState.getValue(),\n deviceStatus: DeviceStatus.BUSY,\n });\n case SessionEvents.DEVICE_STATE_UPDATE_LOCKED:\n return this.setDeviceSessionState({\n ...this._deviceState.getValue(),\n deviceStatus: DeviceStatus.LOCKED,\n });\n case SessionEvents.DEVICE_STATE_UPDATE_CONNECTED:\n return this.setDeviceSessionState({\n ...this._deviceState.getValue(),\n deviceStatus: DeviceStatus.CONNECTED,\n });\n default:\n return null;\n }\n };\n\n private _parseDeviceStatus(\n parsedResponse: CommandResult<GetAppAndVersionResponse>,\n ): NewDeviceStatus | null {\n if (isSuccessCommandResult(parsedResponse)) {\n return {\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: {\n name: parsedResponse.data.name,\n version: parsedResponse.data.version,\n },\n };\n } else {\n this._logger.error(\"Error while parsing APDU response\", {\n data: { parsedResponse },\n });\n return null;\n }\n }\n\n public unsubscribe(): void {\n this._subscription.unsubscribe();\n }\n}\n"],
5
- "mappings": "AAGA,OACE,0BAAAA,EACA,gBAAAC,EAEA,0BAAAC,MAEK,aAEP,OAGE,iBAAAC,MACK,8DAaA,MAAMC,CAA0B,CAIrC,YACEC,EACQC,EACAC,EACAC,EACAC,EACR,CAJQ,6BAAAH,EACA,sBAAAC,EACA,kBAAAC,EACA,2BAAAC,EAER,KAAK,cAAgB,KAAK,wBACvB,OAAO,EACP,UAAWC,GAAU,KAAK,eAAeA,CAAK,CAAC,EAClD,KAAK,QAAUL,EAAoB,8BAA8B,CACnE,CAdQ,cACS,QAeT,mBACNM,EACM,CACN,MAAMC,EAAkB,KAAK,mBAAmBD,CAAc,EAE9D,GAAIC,EAAiB,CACnB,KAAM,CAAE,iBAAAC,EAAkB,aAAAC,EAAc,WAAAC,CAAW,EAAIH,EAEvD,KAAK,sBAAsB,CACzB,iBAAAC,EACA,aAAAC,EACA,cAAe,KAAK,iBAAiB,YAAY,GACjD,WAAAC,EACA,cAAe,CAAC,EAChB,0BAA2B,EAC7B,CAAC,CACH,CACF,CAEQ,eAAkBL,GAAoB,CAC5C,OAAQA,EAAM,UAAW,CACvB,KAAKP,EAAc,kBACjB,OAAO,KAAK,mBAAmBO,EAAM,SAAS,EAChD,KAAKP,EAAc,yBACjB,OAAO,KAAK,sBAAsB,CAChC,GAAG,KAAK,aAAa,SAAS,EAC9B,aAAcF,EAAa,IAC7B,CAAC,EACH,KAAKE,EAAc,2BACjB,OAAO,KAAK,sBAAsB,CAChC,GAAG,KAAK,aAAa,SAAS,EAC9B,aAAcF,EAAa,MAC7B,CAAC,EACH,KAAKE,EAAc,8BACjB,OAAO,KAAK,sBAAsB,CAChC,GAAG,KAAK,aAAa,SAAS,EAC9B,aAAcF,EAAa,SAC7B,CAAC,EACH,QACE,OAAO,IACX,CACF,EAEQ,mBACNU,EACwB,CACxB,OAAIT,EAAuBS,CAAc,EAChC,CACL,iBAAkBX,EAAuB,0BACzC,aAAcC,EAAa,UAC3B,WAAY,CACV,KAAMU,EAAe,KAAK,KAC1B,QAASA,EAAe,KAAK,OAC/B,CACF,GAEA,KAAK,QAAQ,MAAM,oCAAqC,CACtD,KAAM,CAAE,eAAAA,CAAe,CACzB,CAAC,EACM,KAEX,CAEO,aAAoB,CACzB,KAAK,cAAc,YAAY,CACjC,CACF",
6
- "names": ["DeviceSessionStateType", "DeviceStatus", "isSuccessCommandResult", "SessionEvents", "DeviceSessionStateHandler", "loggerModuleFactory", "_sessionEventDispatcher", "_connectedDevice", "_deviceState", "setDeviceSessionState", "event", "parsedResponse", "newDeviceStatus", "sessionStateType", "deviceStatus", "currentApp"]
4
+ "sourcesContent": ["import { type BehaviorSubject, type Subscription } from \"rxjs\";\n\nimport { type DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport {\n DeviceSessionStateType,\n DeviceStatus,\n type GetAppAndVersionResponse,\n isSuccessCommandResult,\n type TransportConnectedDevice,\n} from \"@api/index\";\nimport { type CommandResult, type LoggerPublisherService } from \"@api/types\";\nimport {\n type DeviceSessionEventDispatcher,\n type NewEvent,\n SessionEvents,\n} from \"@internal/device-session/model/DeviceSessionEventDispatcher\";\n\nexport type SetDeviceSessionStateFn = (state: DeviceSessionState) => void;\n\ntype NewDeviceStatus = {\n sessionStateType: DeviceSessionStateType;\n deviceStatus: DeviceStatus;\n currentApp: {\n name: string;\n version: string;\n };\n};\n\nexport class DeviceSessionStateHandler {\n private _subscription: Subscription;\n private readonly _logger: LoggerPublisherService;\n\n constructor(\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n private _sessionEventDispatcher: DeviceSessionEventDispatcher,\n private _connectedDevice: TransportConnectedDevice,\n private _deviceState: BehaviorSubject<DeviceSessionState>,\n private setDeviceSessionState: SetDeviceSessionStateFn,\n ) {\n this._subscription = this._sessionEventDispatcher\n .listen()\n .subscribe((event) => this.mapEventAction(event));\n this._logger = loggerModuleFactory(\"device-session-state-handler\");\n }\n\n private _updateDeviceState(\n parsedResponse: CommandResult<GetAppAndVersionResponse>,\n ): void {\n const newDeviceStatus = this._parseDeviceStatus(parsedResponse);\n\n if (newDeviceStatus) {\n const { sessionStateType, deviceStatus, currentApp } = newDeviceStatus;\n const state = this._deviceState.getValue();\n if (state.sessionStateType === DeviceSessionStateType.Connected) {\n // When device is connected, initialize fields to default values\n this.setDeviceSessionState({\n sessionStateType,\n deviceStatus,\n deviceModelId: this._connectedDevice.deviceModel.id,\n currentApp,\n installedApps: [],\n isSecureConnectionAllowed: false,\n });\n } else {\n // When device is ready, keep un-modified state fields\n this.setDeviceSessionState({\n ...state,\n sessionStateType,\n deviceStatus,\n deviceModelId: this._connectedDevice.deviceModel.id,\n currentApp,\n });\n }\n }\n }\n\n private mapEventAction = (event: NewEvent) => {\n switch (event.eventName) {\n case SessionEvents.COMMAND_SUCCEEDED:\n return this._updateDeviceState(event.eventData);\n case SessionEvents.DEVICE_STATE_UPDATE_BUSY:\n return this.setDeviceSessionState({\n ...this._deviceState.getValue(),\n deviceStatus: DeviceStatus.BUSY,\n });\n case SessionEvents.DEVICE_STATE_UPDATE_LOCKED:\n return this.setDeviceSessionState({\n ...this._deviceState.getValue(),\n deviceStatus: DeviceStatus.LOCKED,\n });\n case SessionEvents.DEVICE_STATE_UPDATE_CONNECTED:\n return this.setDeviceSessionState({\n ...this._deviceState.getValue(),\n deviceStatus: DeviceStatus.CONNECTED,\n });\n default:\n return null;\n }\n };\n\n private _parseDeviceStatus(\n parsedResponse: CommandResult<GetAppAndVersionResponse>,\n ): NewDeviceStatus | null {\n if (isSuccessCommandResult(parsedResponse)) {\n return {\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: {\n name: parsedResponse.data.name,\n version: parsedResponse.data.version,\n },\n };\n } else {\n this._logger.debug(\"Error while parsing APDU response\", {\n data: { parsedResponse },\n });\n return null;\n }\n }\n\n public unsubscribe(): void {\n this._subscription.unsubscribe();\n }\n}\n"],
5
+ "mappings": "AAGA,OACE,0BAAAA,EACA,gBAAAC,EAEA,0BAAAC,MAEK,aAEP,OAGE,iBAAAC,MACK,8DAaA,MAAMC,CAA0B,CAIrC,YACEC,EACQC,EACAC,EACAC,EACAC,EACR,CAJQ,6BAAAH,EACA,sBAAAC,EACA,kBAAAC,EACA,2BAAAC,EAER,KAAK,cAAgB,KAAK,wBACvB,OAAO,EACP,UAAWC,GAAU,KAAK,eAAeA,CAAK,CAAC,EAClD,KAAK,QAAUL,EAAoB,8BAA8B,CACnE,CAdQ,cACS,QAeT,mBACNM,EACM,CACN,MAAMC,EAAkB,KAAK,mBAAmBD,CAAc,EAE9D,GAAIC,EAAiB,CACnB,KAAM,CAAE,iBAAAC,EAAkB,aAAAC,EAAc,WAAAC,CAAW,EAAIH,EACjDI,EAAQ,KAAK,aAAa,SAAS,EACrCA,EAAM,mBAAqBhB,EAAuB,UAEpD,KAAK,sBAAsB,CACzB,iBAAAa,EACA,aAAAC,EACA,cAAe,KAAK,iBAAiB,YAAY,GACjD,WAAAC,EACA,cAAe,CAAC,EAChB,0BAA2B,EAC7B,CAAC,EAGD,KAAK,sBAAsB,CACzB,GAAGC,EACH,iBAAAH,EACA,aAAAC,EACA,cAAe,KAAK,iBAAiB,YAAY,GACjD,WAAAC,CACF,CAAC,CAEL,CACF,CAEQ,eAAkBL,GAAoB,CAC5C,OAAQA,EAAM,UAAW,CACvB,KAAKP,EAAc,kBACjB,OAAO,KAAK,mBAAmBO,EAAM,SAAS,EAChD,KAAKP,EAAc,yBACjB,OAAO,KAAK,sBAAsB,CAChC,GAAG,KAAK,aAAa,SAAS,EAC9B,aAAcF,EAAa,IAC7B,CAAC,EACH,KAAKE,EAAc,2BACjB,OAAO,KAAK,sBAAsB,CAChC,GAAG,KAAK,aAAa,SAAS,EAC9B,aAAcF,EAAa,MAC7B,CAAC,EACH,KAAKE,EAAc,8BACjB,OAAO,KAAK,sBAAsB,CAChC,GAAG,KAAK,aAAa,SAAS,EAC9B,aAAcF,EAAa,SAC7B,CAAC,EACH,QACE,OAAO,IACX,CACF,EAEQ,mBACNU,EACwB,CACxB,OAAIT,EAAuBS,CAAc,EAChC,CACL,iBAAkBX,EAAuB,0BACzC,aAAcC,EAAa,UAC3B,WAAY,CACV,KAAMU,EAAe,KAAK,KAC1B,QAASA,EAAe,KAAK,OAC/B,CACF,GAEA,KAAK,QAAQ,MAAM,oCAAqC,CACtD,KAAM,CAAE,eAAAA,CAAe,CACzB,CAAC,EACM,KAEX,CAEO,aAAoB,CACzB,KAAK,cAAc,YAAY,CACjC,CACF",
6
+ "names": ["DeviceSessionStateType", "DeviceStatus", "isSuccessCommandResult", "SessionEvents", "DeviceSessionStateHandler", "loggerModuleFactory", "_sessionEventDispatcher", "_connectedDevice", "_deviceState", "setDeviceSessionState", "event", "parsedResponse", "newDeviceStatus", "sessionStateType", "deviceStatus", "currentApp", "state"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{BehaviorSubject as E,Subject as S}from"rxjs";import{CommandResultStatus as u,DeviceModelId as p,DeviceSessionStateType as l,DeviceStatus as o}from"../../../api/index";import{SessionEvents as s}from"../../device-session/model/DeviceSessionEventDispatcher";import{DeviceSessionStateHandler as D}from"./DeviceSessionStateHandler";describe("DeviceSessionStateHandler",()=>{let n,c,i;const v=vi.fn(()=>i);let r,d,t,a;beforeEach(()=>{n=new S,c={listen:()=>n,dispatch:vi.fn()},i={error:vi.fn()},r={deviceModel:{id:"device-model-1"}},d=new E({sessionStateType:l.ReadyWithoutSecureChannel,deviceStatus:o.CONNECTED,deviceModelId:p.NANO_X,currentApp:{name:"",version:""},installedApps:[],isSecureConnectionAllowed:!1}),t=vi.fn(),a=new D(v,c,r,d,t)}),afterEach(()=>{a&&typeof a.unsubscribe=="function"&&a.unsubscribe()}),it("updates device state on COMMAND_SUCCEEDED event with a successful response",()=>{const e={data:{name:"TestApp",version:"1.0.0"},status:u.Success};n.next({eventName:s.COMMAND_SUCCEEDED,eventData:e}),expect(t).toHaveBeenCalledWith({sessionStateType:l.ReadyWithoutSecureChannel,deviceStatus:o.CONNECTED,deviceModelId:"device-model-1",currentApp:{name:"TestApp",version:"1.0.0"},installedApps:[],isSecureConnectionAllowed:!1})}),it("updates device state on DEVICE_STATE_UPDATE_BUSY event",()=>{n.next({eventName:s.DEVICE_STATE_UPDATE_BUSY}),expect(t).toHaveBeenCalled();const e=t.mock.calls[0][0];expect(e.deviceStatus).toBe(o.BUSY)}),it("updates device state on DEVICE_STATE_UPDATE_CONNECTED event",()=>{n.next({eventName:s.DEVICE_STATE_UPDATE_CONNECTED}),expect(t).toHaveBeenCalled();const e=t.mock.calls[0][0];expect(e.deviceStatus).toBe(o.CONNECTED)}),it("logs error and does not update state if command result is unsuccessful",()=>{const e={data:null,error:{_tag:"SomeOtherError"}};n.next({eventName:s.COMMAND_SUCCEEDED,eventData:e}),expect(i.error).toHaveBeenCalledWith("Error while parsing APDU response",{data:{parsedResponse:e}}),expect(t).not.toHaveBeenCalled()}),it("does not update state if command result is not a success",()=>{const e={data:null,error:{_tag:"SomeOtherError"}};n.next({eventName:s.COMMAND_SUCCEEDED,eventData:e}),expect(t).not.toHaveBeenCalled()})});
1
+ import{BehaviorSubject as p,Subject as C}from"rxjs";import{expect as e}from"vitest";import{CommandResultStatus as u,DeviceModelId as S,DeviceSessionStateType as r,DeviceStatus as a}from"../../../api/index";import{SessionEvents as i}from"../../device-session/model/DeviceSessionEventDispatcher";import{DeviceSessionStateHandler as D}from"./DeviceSessionStateHandler";describe("DeviceSessionStateHandler",()=>{let t,v,c;const E=vi.fn(()=>c);let l,d,n,o;beforeEach(()=>{t=new C,v={listen:()=>t,dispatch:vi.fn()},c={error:vi.fn(),debug:vi.fn()},l={deviceModel:{id:"device-model-1"}},d=new p({sessionStateType:r.Connected,deviceStatus:a.CONNECTED,deviceModelId:S.NANO_X}),n=vi.fn(),o=new D(E,v,l,d,n)}),afterEach(()=>{o&&typeof o.unsubscribe=="function"&&o.unsubscribe()}),it("updates device state on COMMAND_SUCCEEDED event with a successful response",()=>{const s={data:{name:"TestApp",version:"1.0.0"},status:u.Success};t.next({eventName:i.COMMAND_SUCCEEDED,eventData:s}),e(n).toHaveBeenCalledWith({sessionStateType:r.ReadyWithoutSecureChannel,deviceStatus:a.CONNECTED,deviceModelId:"device-model-1",currentApp:{name:"TestApp",version:"1.0.0"},installedApps:[],isSecureConnectionAllowed:!1})}),it("updates device state on COMMAND_SUCCEEDED event when device is ready",()=>{d.next({sessionStateType:r.ReadyWithoutSecureChannel,deviceStatus:a.CONNECTED,deviceModelId:S.NANO_X,currentApp:{name:"",version:""},installedApps:["Bitcoin","Ethereum"],isSecureConnectionAllowed:!0});const s={data:{name:"TestApp",version:"1.0.0"},status:u.Success};t.next({eventName:i.COMMAND_SUCCEEDED,eventData:s}),e(n).toHaveBeenCalledWith({sessionStateType:r.ReadyWithoutSecureChannel,deviceStatus:a.CONNECTED,deviceModelId:"device-model-1",currentApp:{name:"TestApp",version:"1.0.0"},installedApps:["Bitcoin","Ethereum"],isSecureConnectionAllowed:!0})}),it("updates device state on DEVICE_STATE_UPDATE_BUSY event",()=>{t.next({eventName:i.DEVICE_STATE_UPDATE_BUSY}),e(n).toHaveBeenCalledWith(e.objectContaining({deviceStatus:a.BUSY}))}),it("updates device state on DEVICE_STATE_UPDATE_CONNECTED event",()=>{t.next({eventName:i.DEVICE_STATE_UPDATE_CONNECTED}),e(n).toHaveBeenCalledWith(e.objectContaining({deviceStatus:a.CONNECTED}))}),it("logs error and does not update state if command result is unsuccessful",()=>{const s={data:null,error:{_tag:"SomeOtherError"}};t.next({eventName:i.COMMAND_SUCCEEDED,eventData:s}),e(c.debug).toHaveBeenCalledWith("Error while parsing APDU response",{data:{parsedResponse:s}}),e(n).not.toHaveBeenCalled()}),it("does not update state if command result is not a success",()=>{const s={data:null,error:{_tag:"SomeOtherError"}};t.next({eventName:i.COMMAND_SUCCEEDED,eventData:s}),e(n).not.toHaveBeenCalled()})});
2
2
  //# sourceMappingURL=DeviceSessionStateHandler.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/model/DeviceSessionStateHandler.test.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n\nimport { BehaviorSubject, Subject } from \"rxjs\";\n\nimport { type DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport {\n CommandResultStatus,\n DeviceModelId,\n DeviceSessionStateType,\n DeviceStatus,\n} from \"@api/index\";\nimport {\n type DeviceSessionEventDispatcher,\n type NewEvent,\n SessionEvents,\n} from \"@internal/device-session/model/DeviceSessionEventDispatcher\";\n\nimport { DeviceSessionStateHandler } from \"./DeviceSessionStateHandler\";\n\ndescribe(\"DeviceSessionStateHandler\", () => {\n let fakeEventSubject: Subject<NewEvent>;\n let fakeSessionEventDispatcher: DeviceSessionEventDispatcher;\n let mockLogger: {\n error: (message: string, meta?: Record<string, unknown>) => void;\n };\n const mockLoggerModuleFactory = vi.fn(() => mockLogger);\n let fakeConnectedDevice: { deviceModel: { id: string } };\n let deviceState: BehaviorSubject<DeviceSessionState>;\n let setDeviceSessionState: any;\n let handler: DeviceSessionStateHandler;\n\n beforeEach(() => {\n fakeEventSubject = new Subject<NewEvent>();\n //@ts-expect-error mock\n fakeSessionEventDispatcher = {\n listen: () => fakeEventSubject,\n dispatch: vi.fn(),\n };\n\n mockLogger = {\n error: vi.fn(),\n };\n\n fakeConnectedDevice = {\n deviceModel: {\n id: \"device-model-1\",\n },\n };\n\n deviceState = new BehaviorSubject<DeviceSessionState>({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: DeviceModelId.NANO_X,\n currentApp: { name: \"\", version: \"\" },\n installedApps: [],\n isSecureConnectionAllowed: false,\n });\n\n setDeviceSessionState = vi.fn();\n\n handler = new DeviceSessionStateHandler(\n //@ts-expect-error mock\n mockLoggerModuleFactory,\n fakeSessionEventDispatcher,\n fakeConnectedDevice,\n deviceState,\n setDeviceSessionState,\n );\n });\n\n afterEach(() => {\n if (handler && typeof handler.unsubscribe === \"function\") {\n handler.unsubscribe();\n }\n });\n\n it(\"updates device state on COMMAND_SUCCEEDED event with a successful response\", () => {\n // Given\n const fakeCommandResult = {\n data: {\n name: \"TestApp\",\n version: \"1.0.0\",\n },\n status: CommandResultStatus.Success,\n };\n\n // When\n fakeEventSubject.next({\n eventName: SessionEvents.COMMAND_SUCCEEDED,\n //@ts-expect-error mock\n eventData: fakeCommandResult,\n });\n\n // Then\n expect(setDeviceSessionState).toHaveBeenCalledWith({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: \"device-model-1\",\n currentApp: { name: \"TestApp\", version: \"1.0.0\" },\n installedApps: [],\n isSecureConnectionAllowed: false,\n });\n });\n\n it(\"updates device state on DEVICE_STATE_UPDATE_BUSY event\", () => {\n // When\n fakeEventSubject.next({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_BUSY,\n });\n\n // Then\n expect(setDeviceSessionState).toHaveBeenCalled();\n const callArg = setDeviceSessionState.mock.calls[0][0];\n expect(callArg.deviceStatus).toBe(DeviceStatus.BUSY);\n });\n\n it(\"updates device state on DEVICE_STATE_UPDATE_CONNECTED event\", () => {\n // When\n fakeEventSubject.next({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_CONNECTED,\n });\n\n // Then\n expect(setDeviceSessionState).toHaveBeenCalled();\n const callArg = setDeviceSessionState.mock.calls[0][0];\n expect(callArg.deviceStatus).toBe(DeviceStatus.CONNECTED);\n });\n\n it(\"logs error and does not update state if command result is unsuccessful\", () => {\n // Given\n const fakeErrorCommandResult = {\n data: null,\n error: { _tag: \"SomeOtherError\" },\n };\n\n // When\n fakeEventSubject.next({\n eventName: SessionEvents.COMMAND_SUCCEEDED,\n //@ts-expect-error mock\n eventData: fakeErrorCommandResult,\n });\n\n // Then\n expect(mockLogger.error).toHaveBeenCalledWith(\n \"Error while parsing APDU response\",\n { data: { parsedResponse: fakeErrorCommandResult } },\n );\n expect(setDeviceSessionState).not.toHaveBeenCalled();\n });\n\n it(\"does not update state if command result is not a success\", () => {\n // Given\n const fakeErrorCommandResult = {\n data: null,\n error: { _tag: \"SomeOtherError\" },\n };\n\n // When\n fakeEventSubject.next({\n eventName: SessionEvents.COMMAND_SUCCEEDED,\n //@ts-expect-error mock\n eventData: fakeErrorCommandResult,\n });\n\n // Then\n expect(setDeviceSessionState).not.toHaveBeenCalled();\n });\n});\n"],
5
- "mappings": "AAGA,OAAS,mBAAAA,EAAiB,WAAAC,MAAe,OAGzC,OACE,uBAAAC,EACA,iBAAAC,EACA,0BAAAC,EACA,gBAAAC,MACK,aACP,OAGE,iBAAAC,MACK,8DAEP,OAAS,6BAAAC,MAAiC,8BAE1C,SAAS,4BAA6B,IAAM,CAC1C,IAAIC,EACAC,EACAC,EAGJ,MAAMC,EAA0B,GAAG,GAAG,IAAMD,CAAU,EACtD,IAAIE,EACAC,EACAC,EACAC,EAEJ,WAAW,IAAM,CACfP,EAAmB,IAAIP,EAEvBQ,EAA6B,CAC3B,OAAQ,IAAMD,EACd,SAAU,GAAG,GAAG,CAClB,EAEAE,EAAa,CACX,MAAO,GAAG,GAAG,CACf,EAEAE,EAAsB,CACpB,YAAa,CACX,GAAI,gBACN,CACF,EAEAC,EAAc,IAAIb,EAAoC,CACpD,iBAAkBI,EAAuB,0BACzC,aAAcC,EAAa,UAC3B,cAAeF,EAAc,OAC7B,WAAY,CAAE,KAAM,GAAI,QAAS,EAAG,EACpC,cAAe,CAAC,EAChB,0BAA2B,EAC7B,CAAC,EAEDW,EAAwB,GAAG,GAAG,EAE9BC,EAAU,IAAIR,EAEZI,EACAF,EACAG,EACAC,EACAC,CACF,CACF,CAAC,EAED,UAAU,IAAM,CACVC,GAAW,OAAOA,EAAQ,aAAgB,YAC5CA,EAAQ,YAAY,CAExB,CAAC,EAED,GAAG,6EAA8E,IAAM,CAErF,MAAMC,EAAoB,CACxB,KAAM,CACJ,KAAM,UACN,QAAS,OACX,EACA,OAAQd,EAAoB,OAC9B,EAGAM,EAAiB,KAAK,CACpB,UAAWF,EAAc,kBAEzB,UAAWU,CACb,CAAC,EAGD,OAAOF,CAAqB,EAAE,qBAAqB,CACjD,iBAAkBV,EAAuB,0BACzC,aAAcC,EAAa,UAC3B,cAAe,iBACf,WAAY,CAAE,KAAM,UAAW,QAAS,OAAQ,EAChD,cAAe,CAAC,EAChB,0BAA2B,EAC7B,CAAC,CACH,CAAC,EAED,GAAG,yDAA0D,IAAM,CAEjEG,EAAiB,KAAK,CACpB,UAAWF,EAAc,wBAC3B,CAAC,EAGD,OAAOQ,CAAqB,EAAE,iBAAiB,EAC/C,MAAMG,EAAUH,EAAsB,KAAK,MAAM,CAAC,EAAE,CAAC,EACrD,OAAOG,EAAQ,YAAY,EAAE,KAAKZ,EAAa,IAAI,CACrD,CAAC,EAED,GAAG,8DAA+D,IAAM,CAEtEG,EAAiB,KAAK,CACpB,UAAWF,EAAc,6BAC3B,CAAC,EAGD,OAAOQ,CAAqB,EAAE,iBAAiB,EAC/C,MAAMG,EAAUH,EAAsB,KAAK,MAAM,CAAC,EAAE,CAAC,EACrD,OAAOG,EAAQ,YAAY,EAAE,KAAKZ,EAAa,SAAS,CAC1D,CAAC,EAED,GAAG,yEAA0E,IAAM,CAEjF,MAAMa,EAAyB,CAC7B,KAAM,KACN,MAAO,CAAE,KAAM,gBAAiB,CAClC,EAGAV,EAAiB,KAAK,CACpB,UAAWF,EAAc,kBAEzB,UAAWY,CACb,CAAC,EAGD,OAAOR,EAAW,KAAK,EAAE,qBACvB,oCACA,CAAE,KAAM,CAAE,eAAgBQ,CAAuB,CAAE,CACrD,EACA,OAAOJ,CAAqB,EAAE,IAAI,iBAAiB,CACrD,CAAC,EAED,GAAG,2DAA4D,IAAM,CAEnE,MAAMI,EAAyB,CAC7B,KAAM,KACN,MAAO,CAAE,KAAM,gBAAiB,CAClC,EAGAV,EAAiB,KAAK,CACpB,UAAWF,EAAc,kBAEzB,UAAWY,CACb,CAAC,EAGD,OAAOJ,CAAqB,EAAE,IAAI,iBAAiB,CACrD,CAAC,CACH,CAAC",
6
- "names": ["BehaviorSubject", "Subject", "CommandResultStatus", "DeviceModelId", "DeviceSessionStateType", "DeviceStatus", "SessionEvents", "DeviceSessionStateHandler", "fakeEventSubject", "fakeSessionEventDispatcher", "mockLogger", "mockLoggerModuleFactory", "fakeConnectedDevice", "deviceState", "setDeviceSessionState", "handler", "fakeCommandResult", "callArg", "fakeErrorCommandResult"]
4
+ "sourcesContent": ["import { BehaviorSubject, Subject } from \"rxjs\";\nimport { expect, type Mock } from \"vitest\";\n\nimport { type DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport {\n CommandResultStatus,\n DeviceModelId,\n DeviceSessionStateType,\n DeviceStatus,\n} from \"@api/index\";\nimport {\n type DeviceSessionEventDispatcher,\n type NewEvent,\n SessionEvents,\n} from \"@internal/device-session/model/DeviceSessionEventDispatcher\";\nimport { type Application } from \"@internal/manager-api/model/Application\";\n\nimport {\n DeviceSessionStateHandler,\n type SetDeviceSessionStateFn,\n} from \"./DeviceSessionStateHandler\";\n\ndescribe(\"DeviceSessionStateHandler\", () => {\n let fakeEventSubject: Subject<NewEvent>;\n let fakeSessionEventDispatcher: DeviceSessionEventDispatcher;\n let mockLogger: {\n error: (message: string, meta?: Record<string, unknown>) => void;\n debug: (message: string, meta?: Record<string, unknown>) => void;\n };\n const mockLoggerModuleFactory = vi.fn(() => mockLogger);\n let fakeConnectedDevice: { deviceModel: { id: string } };\n let deviceState: BehaviorSubject<DeviceSessionState>;\n let setDeviceSessionState: Mock<SetDeviceSessionStateFn>;\n let handler: DeviceSessionStateHandler;\n\n beforeEach(() => {\n fakeEventSubject = new Subject<NewEvent>();\n //@ts-expect-error mock\n fakeSessionEventDispatcher = {\n listen: () => fakeEventSubject,\n dispatch: vi.fn(),\n };\n\n mockLogger = {\n error: vi.fn(),\n debug: vi.fn(),\n };\n\n fakeConnectedDevice = {\n deviceModel: {\n id: \"device-model-1\",\n },\n };\n\n deviceState = new BehaviorSubject<DeviceSessionState>({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: DeviceModelId.NANO_X,\n });\n\n setDeviceSessionState = vi.fn();\n\n handler = new DeviceSessionStateHandler(\n //@ts-expect-error mock\n mockLoggerModuleFactory,\n fakeSessionEventDispatcher,\n fakeConnectedDevice,\n deviceState,\n setDeviceSessionState,\n );\n });\n\n afterEach(() => {\n if (handler && typeof handler.unsubscribe === \"function\") {\n handler.unsubscribe();\n }\n });\n\n it(\"updates device state on COMMAND_SUCCEEDED event with a successful response\", () => {\n // Given\n const fakeCommandResult = {\n data: {\n name: \"TestApp\",\n version: \"1.0.0\",\n },\n status: CommandResultStatus.Success,\n };\n\n // When\n fakeEventSubject.next({\n eventName: SessionEvents.COMMAND_SUCCEEDED,\n //@ts-expect-error mock\n eventData: fakeCommandResult,\n });\n\n // Then\n expect(setDeviceSessionState).toHaveBeenCalledWith({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: \"device-model-1\",\n currentApp: { name: \"TestApp\", version: \"1.0.0\" },\n installedApps: [],\n isSecureConnectionAllowed: false,\n });\n });\n\n it(\"updates device state on COMMAND_SUCCEEDED event when device is ready\", () => {\n // Given\n deviceState.next({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: DeviceModelId.NANO_X,\n currentApp: { name: \"\", version: \"\" },\n installedApps: [\"Bitcoin\", \"Ethereum\"] as unknown as Application[],\n isSecureConnectionAllowed: true,\n });\n const fakeCommandResult = {\n data: {\n name: \"TestApp\",\n version: \"1.0.0\",\n },\n status: CommandResultStatus.Success,\n };\n\n // When\n fakeEventSubject.next({\n eventName: SessionEvents.COMMAND_SUCCEEDED,\n //@ts-expect-error mock\n eventData: fakeCommandResult,\n });\n\n // Then\n expect(setDeviceSessionState).toHaveBeenCalledWith({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n deviceModelId: \"device-model-1\",\n currentApp: { name: \"TestApp\", version: \"1.0.0\" },\n installedApps: [\"Bitcoin\", \"Ethereum\"] as unknown as Application[],\n isSecureConnectionAllowed: true,\n });\n });\n\n it(\"updates device state on DEVICE_STATE_UPDATE_BUSY event\", () => {\n // When\n fakeEventSubject.next({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_BUSY,\n });\n\n // Then\n expect(setDeviceSessionState).toHaveBeenCalledWith(\n expect.objectContaining({ deviceStatus: DeviceStatus.BUSY }),\n );\n });\n\n it(\"updates device state on DEVICE_STATE_UPDATE_CONNECTED event\", () => {\n // When\n fakeEventSubject.next({\n eventName: SessionEvents.DEVICE_STATE_UPDATE_CONNECTED,\n });\n\n // Then\n expect(setDeviceSessionState).toHaveBeenCalledWith(\n expect.objectContaining({ deviceStatus: DeviceStatus.CONNECTED }),\n );\n });\n\n it(\"logs error and does not update state if command result is unsuccessful\", () => {\n // Given\n const fakeErrorCommandResult = {\n data: null,\n error: { _tag: \"SomeOtherError\" },\n };\n\n // When\n fakeEventSubject.next({\n eventName: SessionEvents.COMMAND_SUCCEEDED,\n //@ts-expect-error mock\n eventData: fakeErrorCommandResult,\n });\n\n // Then\n expect(mockLogger.debug).toHaveBeenCalledWith(\n \"Error while parsing APDU response\",\n { data: { parsedResponse: fakeErrorCommandResult } },\n );\n expect(setDeviceSessionState).not.toHaveBeenCalled();\n });\n\n it(\"does not update state if command result is not a success\", () => {\n // Given\n const fakeErrorCommandResult = {\n data: null,\n error: { _tag: \"SomeOtherError\" },\n };\n\n // When\n fakeEventSubject.next({\n eventName: SessionEvents.COMMAND_SUCCEEDED,\n //@ts-expect-error mock\n eventData: fakeErrorCommandResult,\n });\n\n // Then\n expect(setDeviceSessionState).not.toHaveBeenCalled();\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["BehaviorSubject", "Subject", "expect", "CommandResultStatus", "DeviceModelId", "DeviceSessionStateType", "DeviceStatus", "SessionEvents", "DeviceSessionStateHandler", "fakeEventSubject", "fakeSessionEventDispatcher", "mockLogger", "mockLoggerModuleFactory", "fakeConnectedDevice", "deviceState", "setDeviceSessionState", "handler", "fakeCommandResult", "fakeErrorCommandResult"]
7
7
  }
@@ -1,2 +1,2 @@
1
- class a{_header;_data;constructor({header:t,data:r}){this._header=t,this._data=r}toString(){return JSON.stringify({header:this._header.toString(),data:this._data.toString()},null,2)}getRawData(){const t=this._header.getRawData(),r=new Uint8Array(t.length+this._data.length);return r.set(t,0),r.set(this._data,t.length),r}getHeader(){return this._header}getData(){return this._data}}export{a as Frame};
1
+ import{bufferToHexaString as e}from"../../../api/index";class d{_header;_data;constructor({header:t,data:r}){this._header=t,this._data=r}toString(){return JSON.stringify({header:this._header.toString(),data:e(this._data)},null,2)}getRawData(){const t=this._header.getRawData(),r=new Uint8Array(t.length+this._data.length);return r.set(t,0),r.set(this._data,t.length),r}getHeader(){return this._header}getData(){return this._data}}export{d as Frame};
2
2
  //# sourceMappingURL=Frame.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/model/Frame.ts"],
4
- "sourcesContent": ["import { type FrameHeader } from \"@internal/device-session/model/FrameHeader\";\n\ntype FrameConstructorArgs = {\n header: FrameHeader;\n data: Uint8Array;\n};\n\nexport class Frame {\n protected _header: FrameHeader;\n protected _data: Uint8Array;\n\n constructor({ header, data }: FrameConstructorArgs) {\n this._header = header;\n this._data = data;\n }\n\n toString(): string {\n return JSON.stringify(\n {\n header: this._header.toString(),\n data: this._data.toString(),\n },\n null,\n 2,\n );\n }\n\n getRawData(): Uint8Array {\n const headerRaw = this._header.getRawData();\n const raw = new Uint8Array(headerRaw.length + this._data.length);\n\n raw.set(headerRaw, 0);\n raw.set(this._data, headerRaw.length);\n return raw;\n }\n\n getHeader(): FrameHeader {\n return this._header;\n }\n\n getData(): Uint8Array {\n return this._data;\n }\n}\n"],
5
- "mappings": "AAOO,MAAMA,CAAM,CACP,QACA,MAEV,YAAY,CAAE,OAAAC,EAAQ,KAAAC,CAAK,EAAyB,CAClD,KAAK,QAAUD,EACf,KAAK,MAAQC,CACf,CAEA,UAAmB,CACjB,OAAO,KAAK,UACV,CACE,OAAQ,KAAK,QAAQ,SAAS,EAC9B,KAAM,KAAK,MAAM,SAAS,CAC5B,EACA,KACA,CACF,CACF,CAEA,YAAyB,CACvB,MAAMC,EAAY,KAAK,QAAQ,WAAW,EACpCC,EAAM,IAAI,WAAWD,EAAU,OAAS,KAAK,MAAM,MAAM,EAE/D,OAAAC,EAAI,IAAID,EAAW,CAAC,EACpBC,EAAI,IAAI,KAAK,MAAOD,EAAU,MAAM,EAC7BC,CACT,CAEA,WAAyB,CACvB,OAAO,KAAK,OACd,CAEA,SAAsB,CACpB,OAAO,KAAK,KACd,CACF",
6
- "names": ["Frame", "header", "data", "headerRaw", "raw"]
4
+ "sourcesContent": ["import { bufferToHexaString } from \"@api/index\";\nimport { type FrameHeader } from \"@internal/device-session/model/FrameHeader\";\n\ntype FrameConstructorArgs = {\n header: FrameHeader;\n data: Uint8Array;\n};\n\nexport class Frame {\n protected _header: FrameHeader;\n protected _data: Uint8Array;\n\n constructor({ header, data }: FrameConstructorArgs) {\n this._header = header;\n this._data = data;\n }\n\n toString(): string {\n return JSON.stringify(\n {\n header: this._header.toString(),\n data: bufferToHexaString(this._data),\n },\n null,\n 2,\n );\n }\n\n getRawData(): Uint8Array {\n const headerRaw = this._header.getRawData();\n const raw = new Uint8Array(headerRaw.length + this._data.length);\n\n raw.set(headerRaw, 0);\n raw.set(this._data, headerRaw.length);\n return raw;\n }\n\n getHeader(): FrameHeader {\n return this._header;\n }\n\n getData(): Uint8Array {\n return this._data;\n }\n}\n"],
5
+ "mappings": "AAAA,OAAS,sBAAAA,MAA0B,aAQ5B,MAAMC,CAAM,CACP,QACA,MAEV,YAAY,CAAE,OAAAC,EAAQ,KAAAC,CAAK,EAAyB,CAClD,KAAK,QAAUD,EACf,KAAK,MAAQC,CACf,CAEA,UAAmB,CACjB,OAAO,KAAK,UACV,CACE,OAAQ,KAAK,QAAQ,SAAS,EAC9B,KAAMH,EAAmB,KAAK,KAAK,CACrC,EACA,KACA,CACF,CACF,CAEA,YAAyB,CACvB,MAAMI,EAAY,KAAK,QAAQ,WAAW,EACpCC,EAAM,IAAI,WAAWD,EAAU,OAAS,KAAK,MAAM,MAAM,EAE/D,OAAAC,EAAI,IAAID,EAAW,CAAC,EACpBC,EAAI,IAAI,KAAK,MAAOD,EAAU,MAAM,EAC7BC,CACT,CAEA,WAAyB,CACvB,OAAO,KAAK,OACd,CAEA,SAAsB,CACpB,OAAO,KAAK,KACd,CACF",
6
+ "names": ["bufferToHexaString", "Frame", "header", "data", "headerRaw", "raw"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var R=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var d=(s,e,r,t)=>{for(var n=t>1?void 0:t?S(e,r):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(e,r,n):a(n))||n);return t&&n&&R(e,r,n),n},l=(s,e)=>(r,t)=>e(r,t,s);import{inject as N,injectable as T}from"inversify";import{Just as u,Left as F,Maybe as U,Nothing as p,Right as H}from"purify-ts";import{v4 as C}from"uuid";import{ApduResponse as D}from"../../../api/device-session/ApduResponse";import{APDU_DATA_LENGTH_LENGTH as G,CHANNEL_LENGTH as P,HEAD_TAG_LENGTH as o,INDEX_LENGTH as g}from"../../../api/device-session/data/FramerConst";import{FramerUtils as h}from"../../../api/device-session/utils/FramerUtils";import{APDU_RESPONSE_STATUS_CODE_LENGTH as _}from"../../device-session/data/ApduResponseConst";import{ReceiverApduError as f}from"../../device-session/model/Errors";import{Frame as z}from"../../device-session/model/Frame";import{FrameHeader as x}from"../../device-session/model/FrameHeader";import{loggerTypes as B}from"../../logger-publisher/di/loggerTypes";let c=class{_channel;_logger;_pendingFrames;constructor({channel:e=U.zero()},r){this._channel=e,this._logger=r("ApduReceiverService"),this._pendingFrames=[]}handleFrame(e){return this.getFrameFromBytes(e).map(t=>{if(this._logger.debug("handle frame",{data:{frame:t.getRawData()}}),this._pendingFrames.push(t),!this._pendingFrames[0])return p;const n=this._pendingFrames[0].getHeader().getDataLength();return this.getCompleteFrame(n)})}getCompleteFrame(e){return e.chain(r=>{if(!this.isComplete(r))return this._logger.debug("frame is not complete, waiting for more"),p;const t=h.getFirstBytesFrom(this.concatFrames(this._pendingFrames),r),n=h.getFirstBytesFrom(t,t.length-_),i=h.getLastBytesFrom(t,_);return this._pendingFrames=[],u(new D({data:n,statusCode:i}))})}getFrameFromBytes(e){const r=this._channel.caseOf({Just:()=>P,Nothing:()=>0}),t=e.slice(r,r+o),n=e.slice(r+o,r+o+g),i=n.reduce((v,L)=>v+L,0)===0;if(!i&&this._pendingFrames.length===0)return F(new f);const a=r+o+g,m=i?G:0;if(e.length<r+o+g+m)return F(new f("Unable to parse header from apdu"));const A=i?u(e.slice(a,a+m)):p,y=a+m,E=e.slice(y),b=new z({header:new x({uuid:C(),channel:this._channel,dataSize:A,headTag:t,index:n,length:r+o+g+m}),data:E});return H(b)}isComplete(e){return this._pendingFrames.reduce((t,n)=>t+n.getData().length,0)>=e}concatFrames(e){return e.reduce((r,t)=>Uint8Array.from([...r,...t.getData()]),new Uint8Array(0))}};c=d([T(),l(1,N(B.LoggerPublisherServiceFactory))],c);export{c as DefaultApduReceiverService};
1
+ var S=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var d=(s,e,r,t)=>{for(var n=t>1?void 0:t?N(e,r):e,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(e,r,n):a(n))||n);return t&&n&&S(e,r,n),n},l=(s,e)=>(r,t)=>e(r,t,s);import{inject as R,injectable as T}from"inversify";import{Just as u,Left as F,Maybe as U,Nothing as p,Right as H}from"purify-ts";import{v4 as C}from"uuid";import{ApduResponse as D}from"../../../api/device-session/ApduResponse";import{APDU_DATA_LENGTH_LENGTH as G,CHANNEL_LENGTH as P,HEAD_TAG_LENGTH as o,INDEX_LENGTH as c}from"../../../api/device-session/data/FramerConst";import{FramerUtils as h}from"../../../api/device-session/utils/FramerUtils";import{APDU_RESPONSE_STATUS_CODE_LENGTH as _}from"../../device-session/data/ApduResponseConst";import{ReceiverApduError as A}from"../../device-session/model/Errors";import{Frame as z}from"../../device-session/model/Frame";import{FrameHeader as x}from"../../device-session/model/FrameHeader";import{loggerTypes as B}from"../../logger-publisher/di/loggerTypes";let g=class{_channel;_logger;_pendingFrames;constructor({channel:e=U.zero()},r){this._channel=e,this._logger=r("ApduReceiverService"),this._pendingFrames=[]}handleFrame(e){return this.getFrameFromBytes(e).map(t=>{if(this._pendingFrames.push(t),!this._pendingFrames[0])return p;const n=this._pendingFrames[0].getHeader().getDataLength();return this.getCompleteFrame(n)})}getCompleteFrame(e){return e.chain(r=>{if(!this.isComplete(r))return this._logger.debug("frame is not complete, waiting for more"),p;const t=h.getFirstBytesFrom(this.concatFrames(this._pendingFrames),r),n=h.getFirstBytesFrom(t,t.length-_),i=h.getLastBytesFrom(t,_);return this._pendingFrames=[],u(new D({data:n,statusCode:i}))})}getFrameFromBytes(e){const r=this._channel.caseOf({Just:()=>P,Nothing:()=>0}),t=e.slice(r,r+o),n=e.slice(r+o,r+o+c),i=n.reduce((L,b)=>L+b,0)===0;if(!i&&this._pendingFrames.length===0)return F(new A);const a=r+o+c,m=i?G:0;if(e.length<r+o+c+m)return F(new A("Unable to parse header from apdu"));const f=i?u(e.slice(a,a+m)):p,y=a+m,v=e.slice(y),E=new z({header:new x({uuid:C(),channel:this._channel,dataSize:f,headTag:t,index:n,length:r+o+c+m}),data:v});return H(E)}isComplete(e){return this._pendingFrames.reduce((t,n)=>t+n.getData().length,0)>=e}concatFrames(e){return e.reduce((r,t)=>Uint8Array.from([...r,...t.getData()]),new Uint8Array(0))}};g=d([T(),l(1,R(B.LoggerPublisherServiceFactory))],g);export{g as DefaultApduReceiverService};
2
2
  //# sourceMappingURL=DefaultApduReceiverService.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/device-session/service/DefaultApduReceiverService.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { Either, Just, Left, Maybe, Nothing, Right } from \"purify-ts\";\nimport { v4 } from \"uuid\";\n\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\nimport {\n APDU_DATA_LENGTH_LENGTH,\n CHANNEL_LENGTH,\n HEAD_TAG_LENGTH,\n INDEX_LENGTH,\n} from \"@api/device-session/data/FramerConst\";\nimport {\n type ApduReceiverConstructorArgs,\n ApduReceiverService,\n} from \"@api/device-session/service/ApduReceiverService\";\nimport { FramerUtils } from \"@api/device-session/utils/FramerUtils\";\nimport { LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { APDU_RESPONSE_STATUS_CODE_LENGTH } from \"@internal/device-session/data/ApduResponseConst\";\nimport { ReceiverApduError } from \"@internal/device-session/model/Errors\";\nimport { Frame } from \"@internal/device-session/model/Frame\";\nimport { FrameHeader } from \"@internal/device-session/model/FrameHeader\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\n\n@injectable()\nexport class DefaultApduReceiverService implements ApduReceiverService {\n private readonly _channel: Maybe<Uint8Array>;\n private readonly _logger: LoggerPublisherService;\n private _pendingFrames: Frame[];\n\n constructor(\n { channel = Maybe.zero() }: ApduReceiverConstructorArgs,\n @inject(loggerTypes.LoggerPublisherServiceFactory)\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n ) {\n this._channel = channel;\n this._logger = loggerModuleFactory(\"ApduReceiverService\");\n this._pendingFrames = [];\n }\n\n /*\n * Return\n * - A complete ApduResponse\n * - Or a Nothing if not all the data has been received\n * - Or a ReceiverApduError if the apdu is not formatted correctly\n *\n * @param Uint8Array\n */\n public handleFrame(\n frameBytes: Uint8Array,\n ): Either<ReceiverApduError, Maybe<ApduResponse>> {\n const frame = this.getFrameFromBytes(frameBytes);\n\n return frame.map((value) => {\n this._logger.debug(\"handle frame\", {\n data: { frame: value.getRawData() },\n });\n this._pendingFrames.push(value);\n if (!this._pendingFrames[0]) {\n return Nothing;\n }\n const dataSize = this._pendingFrames[0].getHeader().getDataLength();\n return this.getCompleteFrame(dataSize);\n });\n }\n\n /*\n * Return\n * - A complete ApduResponse\n * - Or a Nothing if not all the data has been received\n *\n * @param Maybe<number>\n */\n private getCompleteFrame(dataSize: Maybe<number>): Maybe<ApduResponse> {\n return dataSize.chain((value) => {\n if (!this.isComplete(value)) {\n this._logger.debug(\"frame is not complete, waiting for more\");\n return Nothing;\n }\n\n const concatenatedFramesData = FramerUtils.getFirstBytesFrom(\n this.concatFrames(this._pendingFrames),\n value,\n );\n const data = FramerUtils.getFirstBytesFrom(\n concatenatedFramesData,\n concatenatedFramesData.length - APDU_RESPONSE_STATUS_CODE_LENGTH,\n );\n const statusCode = FramerUtils.getLastBytesFrom(\n concatenatedFramesData,\n APDU_RESPONSE_STATUS_CODE_LENGTH,\n );\n\n this._pendingFrames = [];\n\n return Just(\n new ApduResponse({\n data: data,\n statusCode,\n }),\n );\n });\n }\n\n /*\n * Parse an Uint8Array to a Frame\n * Return an error if the frame is not formatted correctly\n *\n * @param Uint8Array\n */\n private getFrameFromBytes(\n rawFrame: Uint8Array,\n ): Either<ReceiverApduError, Frame> {\n const channelSize = this._channel.caseOf({\n Just: () => CHANNEL_LENGTH,\n Nothing: () => 0,\n });\n\n const headTag = rawFrame.slice(channelSize, channelSize + HEAD_TAG_LENGTH);\n const index = rawFrame.slice(\n channelSize + HEAD_TAG_LENGTH,\n channelSize + HEAD_TAG_LENGTH + INDEX_LENGTH,\n );\n\n const isFirstIndex = index.reduce((curr, val) => curr + val, 0) === 0;\n\n if (!isFirstIndex && this._pendingFrames.length === 0) {\n return Left(new ReceiverApduError());\n }\n\n const dataSizeIndex = channelSize + HEAD_TAG_LENGTH + INDEX_LENGTH;\n const dataSizeLength = isFirstIndex ? APDU_DATA_LENGTH_LENGTH : 0;\n\n if (\n rawFrame.length <\n channelSize + HEAD_TAG_LENGTH + INDEX_LENGTH + dataSizeLength\n ) {\n return Left(new ReceiverApduError(\"Unable to parse header from apdu\"));\n }\n\n const dataSize = isFirstIndex\n ? Just(rawFrame.slice(dataSizeIndex, dataSizeIndex + dataSizeLength))\n : Nothing;\n\n const dataIndex = dataSizeIndex + dataSizeLength;\n const data = rawFrame.slice(dataIndex);\n\n const frame = new Frame({\n header: new FrameHeader({\n uuid: v4(),\n channel: this._channel,\n dataSize,\n headTag,\n index,\n length: channelSize + HEAD_TAG_LENGTH + INDEX_LENGTH + dataSizeLength,\n }),\n data,\n });\n\n return Right(frame);\n }\n\n /*\n * Return true if all the datas has been received\n *\n * @param number\n */\n private isComplete(dataSize: number): boolean {\n const totalReceiveLength = this._pendingFrames.reduce(\n (prev, curr) => prev + curr.getData().length,\n 0,\n );\n\n return totalReceiveLength >= dataSize;\n }\n\n private concatFrames(frames: Frame[]): Uint8Array {\n return frames.reduce(\n (prev: Uint8Array, curr: Frame) =>\n Uint8Array.from([...prev, ...curr.getData()]),\n new Uint8Array(0),\n );\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { Either, Just, Left, Maybe, Nothing, Right } from \"purify-ts\";\nimport { v4 } from \"uuid\";\n\nimport { ApduResponse } from \"@api/device-session/ApduResponse\";\nimport {\n APDU_DATA_LENGTH_LENGTH,\n CHANNEL_LENGTH,\n HEAD_TAG_LENGTH,\n INDEX_LENGTH,\n} from \"@api/device-session/data/FramerConst\";\nimport {\n type ApduReceiverConstructorArgs,\n ApduReceiverService,\n} from \"@api/device-session/service/ApduReceiverService\";\nimport { FramerUtils } from \"@api/device-session/utils/FramerUtils\";\nimport { LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { APDU_RESPONSE_STATUS_CODE_LENGTH } from \"@internal/device-session/data/ApduResponseConst\";\nimport { ReceiverApduError } from \"@internal/device-session/model/Errors\";\nimport { Frame } from \"@internal/device-session/model/Frame\";\nimport { FrameHeader } from \"@internal/device-session/model/FrameHeader\";\nimport { loggerTypes } from \"@internal/logger-publisher/di/loggerTypes\";\n\n@injectable()\nexport class DefaultApduReceiverService implements ApduReceiverService {\n private readonly _channel: Maybe<Uint8Array>;\n private readonly _logger: LoggerPublisherService;\n private _pendingFrames: Frame[];\n\n constructor(\n { channel = Maybe.zero() }: ApduReceiverConstructorArgs,\n @inject(loggerTypes.LoggerPublisherServiceFactory)\n loggerModuleFactory: (tag: string) => LoggerPublisherService,\n ) {\n this._channel = channel;\n this._logger = loggerModuleFactory(\"ApduReceiverService\");\n this._pendingFrames = [];\n }\n\n /*\n * Return\n * - A complete ApduResponse\n * - Or a Nothing if not all the data has been received\n * - Or a ReceiverApduError if the apdu is not formatted correctly\n *\n * @param Uint8Array\n */\n public handleFrame(\n frameBytes: Uint8Array,\n ): Either<ReceiverApduError, Maybe<ApduResponse>> {\n const frame = this.getFrameFromBytes(frameBytes);\n\n return frame.map((value) => {\n this._pendingFrames.push(value);\n if (!this._pendingFrames[0]) {\n return Nothing;\n }\n const dataSize = this._pendingFrames[0].getHeader().getDataLength();\n return this.getCompleteFrame(dataSize);\n });\n }\n\n /*\n * Return\n * - A complete ApduResponse\n * - Or a Nothing if not all the data has been received\n *\n * @param Maybe<number>\n */\n private getCompleteFrame(dataSize: Maybe<number>): Maybe<ApduResponse> {\n return dataSize.chain((value) => {\n if (!this.isComplete(value)) {\n this._logger.debug(\"frame is not complete, waiting for more\");\n return Nothing;\n }\n\n const concatenatedFramesData = FramerUtils.getFirstBytesFrom(\n this.concatFrames(this._pendingFrames),\n value,\n );\n const data = FramerUtils.getFirstBytesFrom(\n concatenatedFramesData,\n concatenatedFramesData.length - APDU_RESPONSE_STATUS_CODE_LENGTH,\n );\n const statusCode = FramerUtils.getLastBytesFrom(\n concatenatedFramesData,\n APDU_RESPONSE_STATUS_CODE_LENGTH,\n );\n\n this._pendingFrames = [];\n\n return Just(\n new ApduResponse({\n data: data,\n statusCode,\n }),\n );\n });\n }\n\n /*\n * Parse an Uint8Array to a Frame\n * Return an error if the frame is not formatted correctly\n *\n * @param Uint8Array\n */\n private getFrameFromBytes(\n rawFrame: Uint8Array,\n ): Either<ReceiverApduError, Frame> {\n const channelSize = this._channel.caseOf({\n Just: () => CHANNEL_LENGTH,\n Nothing: () => 0,\n });\n\n const headTag = rawFrame.slice(channelSize, channelSize + HEAD_TAG_LENGTH);\n const index = rawFrame.slice(\n channelSize + HEAD_TAG_LENGTH,\n channelSize + HEAD_TAG_LENGTH + INDEX_LENGTH,\n );\n\n const isFirstIndex = index.reduce((curr, val) => curr + val, 0) === 0;\n\n if (!isFirstIndex && this._pendingFrames.length === 0) {\n return Left(new ReceiverApduError());\n }\n\n const dataSizeIndex = channelSize + HEAD_TAG_LENGTH + INDEX_LENGTH;\n const dataSizeLength = isFirstIndex ? APDU_DATA_LENGTH_LENGTH : 0;\n\n if (\n rawFrame.length <\n channelSize + HEAD_TAG_LENGTH + INDEX_LENGTH + dataSizeLength\n ) {\n return Left(new ReceiverApduError(\"Unable to parse header from apdu\"));\n }\n\n const dataSize = isFirstIndex\n ? Just(rawFrame.slice(dataSizeIndex, dataSizeIndex + dataSizeLength))\n : Nothing;\n\n const dataIndex = dataSizeIndex + dataSizeLength;\n const data = rawFrame.slice(dataIndex);\n\n const frame = new Frame({\n header: new FrameHeader({\n uuid: v4(),\n channel: this._channel,\n dataSize,\n headTag,\n index,\n length: channelSize + HEAD_TAG_LENGTH + INDEX_LENGTH + dataSizeLength,\n }),\n data,\n });\n\n return Right(frame);\n }\n\n /*\n * Return true if all the datas has been received\n *\n * @param number\n */\n private isComplete(dataSize: number): boolean {\n const totalReceiveLength = this._pendingFrames.reduce(\n (prev, curr) => prev + curr.getData().length,\n 0,\n );\n\n return totalReceiveLength >= dataSize;\n }\n\n private concatFrames(frames: Frame[]): Uint8Array {\n return frames.reduce(\n (prev: Uint8Array, curr: Frame) =>\n Uint8Array.from([...prev, ...curr.getData()]),\n new Uint8Array(0),\n );\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["inject", "injectable", "Just", "Left", "Maybe", "Nothing", "Right", "v4", "ApduResponse", "APDU_DATA_LENGTH_LENGTH", "CHANNEL_LENGTH", "HEAD_TAG_LENGTH", "INDEX_LENGTH", "FramerUtils", "APDU_RESPONSE_STATUS_CODE_LENGTH", "ReceiverApduError", "Frame", "FrameHeader", "loggerTypes", "DefaultApduReceiverService", "channel", "Maybe", "loggerModuleFactory", "frameBytes", "value", "Nothing", "dataSize", "concatenatedFramesData", "FramerUtils", "data", "APDU_RESPONSE_STATUS_CODE_LENGTH", "statusCode", "Just", "ApduResponse", "rawFrame", "channelSize", "CHANNEL_LENGTH", "headTag", "HEAD_TAG_LENGTH", "index", "INDEX_LENGTH", "isFirstIndex", "curr", "val", "Left", "ReceiverApduError", "dataSizeIndex", "dataSizeLength", "APDU_DATA_LENGTH_LENGTH", "dataIndex", "frame", "Frame", "FrameHeader", "v4", "Right", "prev", "frames", "__decorateClass", "injectable", "__decorateParam", "inject", "loggerTypes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var _=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var c=(n,r,t,e)=>{for(var i=e>1?void 0:e?A(r,t):r,a=n.length-1,m;a>=0;a--)(m=n[a])&&(i=(e?m(r,t,i):m(i))||i);return e&&i&&_(r,t,i),i},d=(n,r)=>(t,e)=>r(t,e,n);import{inject as b,injectable as H}from"inversify";import{Left as l,Maybe as s,Right as z}from"purify-ts";import{v4 as y}from"uuid";import{APDU_DATA_LENGTH_LENGTH as p,CHANNEL_LENGTH as u,HEAD_TAG as E,HEAD_TAG_LENGTH as L,INDEX_LENGTH as f}from"../../../api/device-session/data/FramerConst";import{FramerUtils as g}from"../../../api/device-session/utils/FramerUtils";import{FramerApduError as v,FramerOverflowError as F}from"../../device-session/model/Errors";import{Frame as T}from"../../device-session/model/Frame";import{FrameHeader as w}from"../../device-session/model/FrameHeader";import{loggerTypes as N}from"../../logger-publisher/di/loggerTypes";let o=class{_frameSize;_channel;_padding;_logger;constructor({frameSize:r,channel:t=s.zero(),padding:e=!1},i){this._frameSize=r,this._channel=t,this._padding=e,this._logger=i("framer")}getFrames(r){const t=[];let e=0,i=this.getFrameAtIndex(r,e);for(;i.isRight();)t.push(i.extract()),e+=1,i=this.getFrameAtIndex(r,e).mapLeft(a=>(a instanceof F?this._logger.debug("Frames parsed",{data:{count:e}}):this._logger.error("Error while parsing frame",{data:{error:a}}),a));return t}getFrameAtIndex(r,t){const e=this.getFrameHeaderFrom(t,r.length),i=t*this._frameSize-this.getHeaderSizeSumFrom(t);if(i>r.length)return l(new F);if(e.getLength()>this._frameSize)return l(new v);const a=this._frameSize-e.getLength(),m=r.slice(t===0?0:i,t===0?a:i+this._frameSize-e.getLength()),h=this._padding?new Uint8Array(a).fill(0):new Uint8Array(m.length<a?m.length:a);h.set(m,0);const S=new T({header:e,data:h});return z(S)}getFrameHeaderFrom(r,t){const e=new w({uuid:y(),channel:this._channel.map(i=>g.getLastBytesFrom(i,u)),headTag:new Uint8Array([E]),index:g.numberToByteArray(r,f),length:this.getFrameHeaderSizeFromIndex(r),dataSize:s.zero()});return r===0&&e.setDataSize(s.of(g.numberToByteArray(t,p))),e}getHeaderSizeSumFrom(r){let t=this.getFrameHeaderSizeFromIndex(0),e=1;for(;e<r;)t+=this.getFrameHeaderSizeFromIndex(e),e+=1;return t}getFrameHeaderSizeFromIndex(r){return this._channel.caseOf({Just:()=>u,Nothing:()=>0})+f+L+(r===0?p:0)}};o=c([H(),d(1,b(N.LoggerPublisherServiceFactory))],o);export{o as DefaultApduSenderService};
1
+ var A=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var c=(m,r,t,e)=>{for(var i=e>1?void 0:e?_(r,t):r,a=m.length-1,n;a>=0;a--)(n=m[a])&&(i=(e?n(r,t,i):n(i))||i);return e&&i&&A(r,t,i),i},d=(m,r)=>(t,e)=>r(t,e,m);import{inject as b,injectable as H}from"inversify";import{Left as l,Maybe as s,Right as z}from"purify-ts";import{v4 as v}from"uuid";import{APDU_DATA_LENGTH_LENGTH as p,CHANNEL_LENGTH as u,HEAD_TAG as y,HEAD_TAG_LENGTH as E,INDEX_LENGTH as f}from"../../../api/device-session/data/FramerConst";import{FramerUtils as g}from"../../../api/device-session/utils/FramerUtils";import{FramerApduError as L,FramerOverflowError as F}from"../../device-session/model/Errors";import{Frame as T}from"../../device-session/model/Frame";import{FrameHeader as w}from"../../device-session/model/FrameHeader";import{loggerTypes as N}from"../../logger-publisher/di/loggerTypes";let o=class{_frameSize;_channel;_padding;_logger;constructor({frameSize:r,channel:t=s.zero(),padding:e=!1},i){this._frameSize=r,this._channel=t,this._padding=e,this._logger=i("DefaultApduSenderService")}getFrames(r){const t=[];let e=0,i=this.getFrameAtIndex(r,e);for(;i.isRight();)t.push(i.extract()),e+=1,i=this.getFrameAtIndex(r,e).mapLeft(a=>(a instanceof F||this._logger.error("Error while parsing frame",{data:{error:a}}),a));return t}getFrameAtIndex(r,t){const e=this.getFrameHeaderFrom(t,r.length),i=t===0?0:t*this._frameSize-this.getHeaderSizeSumFrom(t);if(i>=r.length)return l(new F);if(e.getLength()>this._frameSize)return l(new L);const a=this._frameSize-e.getLength(),n=r.slice(i,i+this._frameSize-e.getLength()),h=this._padding?new Uint8Array(a).fill(0):new Uint8Array(n.length<a?n.length:a);h.set(n,0);const S=new T({header:e,data:h});return z(S)}getFrameHeaderFrom(r,t){const e=new w({uuid:v(),channel:this._channel.map(i=>g.getLastBytesFrom(i,u)),headTag:new Uint8Array([y]),index:g.numberToByteArray(r,f),length:this.getFrameHeaderSizeFromIndex(r),dataSize:s.zero()});return r===0&&e.setDataSize(s.of(g.numberToByteArray(t,p))),e}getHeaderSizeSumFrom(r){let t=this.getFrameHeaderSizeFromIndex(0),e=1;for(;e<r;)t+=this.getFrameHeaderSizeFromIndex(e),e+=1;return t}getFrameHeaderSizeFromIndex(r){return this._channel.caseOf({Just:()=>u,Nothing:()=>0})+f+E+(r===0?p:0)}};o=c([H(),d(1,b(N.LoggerPublisherServiceFactory))],o);export{o as DefaultApduSenderService};
2
2
  //# sourceMappingURL=DefaultApduSenderService.js.map
@@ -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(\"framer\");\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 * 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 frameIndex === 0 ? 0 : frameOffset,\n frameIndex === 0\n ? dataMaxSize\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": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YACnC,OAAiB,QAAAC,EAAM,SAAAC,EAAO,SAAAC,MAAa,YAC3C,OAAS,MAAAC,MAAU,OAEnB,OACE,2BAAAC,EACA,kBAAAC,EACA,YAAAC,EACA,mBAAAC,EACA,gBAAAC,MACK,uCAKP,OAAS,eAAAC,MAAmB,wCAE5B,OACE,mBAAAC,EACA,uBAAAC,MACK,wCACP,OAAS,SAAAC,MAAa,uCACtB,OAAS,eAAAC,MAAmB,6CAC5B,OAAS,eAAAC,MAAmB,4CAQrB,IAAMC,EAAN,KAA4D,CACvD,WACA,SACA,SACF,QAUR,YACE,CACE,UAAAC,EACA,QAAAC,EAAUC,EAAM,KAAK,EACrB,QAAAC,EAAU,EACZ,EAEAC,EACA,CACA,KAAK,WAAaJ,EAClB,KAAK,SAAWC,EAChB,KAAK,SAAWE,EAChB,KAAK,QAAUC,EAAqB,0BAA0B,CAChE,CAOO,UAAUC,EAA2B,CAC1C,MAAMC,EAAkB,CAAC,EACzB,IAAIC,EAAQ,EACRC,EAAQ,KAAK,gBAAgBH,EAAME,CAAK,EAE5C,KAAOC,EAAM,QAAQ,GACnBF,EAAO,KAAKE,EAAM,QAAQ,CAAC,EAC3BD,GAAS,EACTC,EAAQ,KAAK,gBAAgBH,EAAME,CAAK,EAAE,QAASE,IAC7CA,aAAiBC,GAGnB,KAAK,QAAQ,MAAM,4BAA6B,CAAE,KAAM,CAAE,MAAAD,CAAM,CAAE,CAAC,EAE9DA,EACR,EAEH,OAAOH,CACT,CASQ,gBACND,EACAM,EACyB,CACzB,MAAMC,EAAS,KAAK,mBAAmBD,EAAYN,EAAK,MAAM,EACxDQ,EACJF,IAAe,EACX,EACAA,EAAa,KAAK,WAAa,KAAK,qBAAqBA,CAAU,EAEzE,GAAIE,GAAeR,EAAK,OACtB,OAAOS,EAAK,IAAIJ,CAAqB,EAEvC,GAAIE,EAAO,UAAU,EAAI,KAAK,WAC5B,OAAOE,EAAK,IAAIC,CAAiB,EAEnC,MAAMC,EAAc,KAAK,WAAaJ,EAAO,UAAU,EACjDK,EAAOZ,EAAK,MAChBQ,EACAA,EAAc,KAAK,WAAaD,EAAO,UAAU,CACnD,EACMM,EAAY,KAAK,SACnB,IAAI,WAAWF,CAAW,EAAE,KAAK,CAAC,EAClC,IAAI,WAAWC,EAAK,OAASD,EAAcC,EAAK,OAASD,CAAW,EACxEE,EAAU,IAAID,EAAM,CAAC,EACrB,MAAMT,EAAQ,IAAIW,EAAM,CACtB,OAAAP,EACA,KAAMM,CACR,CAAC,EACD,OAAOE,EAAMZ,CAAK,CACpB,CAQQ,mBACNG,EACAU,EACa,CACb,MAAMT,EAAS,IAAIU,EAAY,CAC7B,KAAMC,EAAG,EACT,QAAS,KAAK,SAAS,IAAKtB,GAC1BuB,EAAY,iBAAiBvB,EAASwB,CAAc,CACtD,EACA,QAAS,IAAI,WAAW,CAACC,CAAQ,CAAC,EAClC,MAAOF,EAAY,kBAAkBb,EAAYgB,CAAY,EAC7D,OAAQ,KAAK,4BAA4BhB,CAAU,EACnD,SAAUT,EAAM,KAAK,CACvB,CAAC,EACD,OAAIS,IAAe,GACjBC,EAAO,YACLV,EAAM,GACJsB,EAAY,kBAAkBH,EAAUO,CAAuB,CACjE,CACF,EAEKhB,CACT,CASQ,qBAAqBD,EAA4B,CACvD,IAAIkB,EAAM,KAAK,4BAA4B,CAAC,EACxCC,EAAI,EACR,KAAOA,EAAInB,GACTkB,GAAO,KAAK,4BAA4BC,CAAC,EACzCA,GAAK,EAEP,OAAOD,CACT,CAOQ,4BAA4BlB,EAA4B,CAC9D,OACE,KAAK,SAAS,OAAO,CACnB,KAAM,IAAMc,EACZ,QAAS,IAAM,CACjB,CAAC,EACDE,EACAI,GACCpB,IAAe,EAAIiB,EAA0B,EAElD,CACF,EA5Ja7B,EAANiC,EAAA,CADNC,EAAW,EAqBPC,EAAA,EAAAC,EAAOC,EAAY,6BAA6B,IApBxCrC",
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
  }