@ledgerhq/device-management-kit 0.6.4 → 0.6.5
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.
- package/README.md +21 -5
- package/lib/cjs/package.json +1 -1
- package/lib/cjs/src/api/DeviceManagementKit.js.map +2 -2
- package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
- package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js.map +3 -3
- package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
- package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
- package/lib/cjs/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js +1 -1
- package/lib/cjs/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js.map +3 -3
- package/lib/cjs/src/api/index.js +1 -1
- package/lib/cjs/src/api/index.js.map +3 -3
- package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +1 -1
- package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +3 -3
- package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +2 -2
- package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js +1 -1
- package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js.map +3 -3
- package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +2 -0
- package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +7 -0
- package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js +2 -0
- package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js.map +7 -0
- package/lib/cjs/src/api/secure-channel/device-action/InstallApp/types.js +2 -0
- package/lib/cjs/src/api/secure-channel/device-action/InstallApp/types.js.map +7 -0
- package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +2 -2
- package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js +1 -1
- package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js.map +3 -3
- package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js +1 -1
- package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +2 -2
- package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +2 -0
- package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +7 -0
- package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js +2 -0
- package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js.map +7 -0
- package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/types.js +2 -0
- package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/types.js.map +7 -0
- package/lib/cjs/src/api/secure-channel/utils.test.js +1 -1
- package/lib/cjs/src/api/secure-channel/utils.test.js.map +2 -2
- package/lib/cjs/src/api/transport/model/TransportConnectedDevice.test.js +1 -1
- package/lib/cjs/src/api/transport/model/TransportConnectedDevice.test.js.map +3 -3
- package/lib/cjs/src/api/types.js +1 -1
- package/lib/cjs/src/api/types.js.map +1 -1
- package/lib/cjs/src/internal/device-session/data/DeviceSessionRefresherConst.js +1 -1
- package/lib/cjs/src/internal/device-session/data/DeviceSessionRefresherConst.js.map +3 -3
- package/lib/cjs/src/internal/device-session/model/DevicePinger.js +2 -0
- package/lib/cjs/src/internal/device-session/model/DevicePinger.js.map +7 -0
- package/lib/cjs/src/internal/device-session/model/DevicePinger.test.js +2 -0
- package/lib/cjs/src/internal/device-session/model/DevicePinger.test.js.map +7 -0
- package/lib/cjs/src/internal/device-session/model/DeviceSession.js +1 -1
- package/lib/cjs/src/internal/device-session/model/DeviceSession.js.map +3 -3
- package/lib/cjs/src/internal/device-session/model/DeviceSession.stub.js +1 -1
- package/lib/cjs/src/internal/device-session/model/DeviceSession.stub.js.map +3 -3
- package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.js +2 -0
- package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.js.map +7 -0
- package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js +2 -0
- package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js.map +7 -0
- package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.js +1 -1
- package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.js.map +3 -3
- package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
- package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +3 -3
- package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.js +2 -0
- package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.js.map +7 -0
- package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js +2 -0
- package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +7 -0
- package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
- package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +3 -3
- package/lib/cjs/src/internal/device-session/service/MutexService.js +2 -0
- package/lib/cjs/src/internal/device-session/service/MutexService.js.map +7 -0
- package/lib/cjs/src/internal/device-session/service/MutexService.test.js +2 -0
- package/lib/cjs/src/internal/device-session/service/MutexService.test.js.map +7 -0
- package/lib/cjs/src/internal/device-session/service/RefresherService.js +1 -1
- package/lib/cjs/src/internal/device-session/service/RefresherService.js.map +3 -3
- package/lib/cjs/src/internal/device-session/service/RefresherService.test.js +1 -1
- package/lib/cjs/src/internal/device-session/service/RefresherService.test.js.map +3 -3
- package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +1 -1
- package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +3 -3
- package/lib/cjs/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js +1 -1
- package/lib/cjs/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js.map +3 -3
- package/lib/cjs/src/internal/device-session/utils/deviceSessionUtils.js +2 -0
- package/lib/cjs/src/internal/device-session/utils/deviceSessionUtils.js.map +7 -0
- package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js +1 -1
- package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.js.map +3 -3
- package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
- package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +3 -3
- package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js +1 -1
- package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js.map +3 -3
- package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js +1 -1
- package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js.map +3 -3
- package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.js +1 -1
- package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.js.map +3 -3
- package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js +1 -1
- package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js.map +3 -3
- package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
- package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +2 -2
- package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +1 -1
- package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +2 -2
- package/lib/cjs/src/internal/secure-channel/model/Params.js +1 -1
- package/lib/cjs/src/internal/secure-channel/model/Params.js.map +1 -1
- package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js +1 -1
- package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +3 -3
- package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +1 -1
- package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +3 -3
- package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js +1 -1
- package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js.map +1 -1
- package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js +1 -1
- package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js.map +3 -3
- package/lib/esm/package.json +1 -1
- package/lib/esm/src/api/DeviceManagementKit.js.map +2 -2
- package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js +1 -1
- package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js.map +3 -3
- package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
- package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
- package/lib/esm/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js +1 -1
- package/lib/esm/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js.map +3 -3
- package/lib/esm/src/api/index.js +1 -1
- package/lib/esm/src/api/index.js.map +3 -3
- package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +1 -1
- package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +3 -3
- package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.js.map +2 -2
- package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js +1 -1
- package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js.map +3 -3
- package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js +2 -0
- package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.js.map +7 -0
- package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js +2 -0
- package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js.map +7 -0
- package/lib/esm/src/api/secure-channel/device-action/InstallApp/types.js +1 -0
- package/lib/esm/src/api/secure-channel/device-action/InstallApp/types.js.map +7 -0
- package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js +1 -1
- package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.js.map +2 -2
- package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js +1 -1
- package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js.map +3 -3
- package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/types.js.map +2 -2
- package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js +2 -0
- package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.js.map +7 -0
- package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js +2 -0
- package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js.map +7 -0
- package/lib/esm/src/api/secure-channel/device-action/UninstallApp/types.js +1 -0
- package/lib/esm/src/api/secure-channel/device-action/UninstallApp/types.js.map +7 -0
- package/lib/esm/src/api/secure-channel/utils.test.js +1 -1
- package/lib/esm/src/api/secure-channel/utils.test.js.map +2 -2
- package/lib/esm/src/api/transport/model/TransportConnectedDevice.test.js +1 -1
- package/lib/esm/src/api/transport/model/TransportConnectedDevice.test.js.map +3 -3
- package/lib/esm/src/internal/device-session/data/DeviceSessionRefresherConst.js +1 -1
- package/lib/esm/src/internal/device-session/data/DeviceSessionRefresherConst.js.map +3 -3
- package/lib/esm/src/internal/device-session/model/DevicePinger.js +2 -0
- package/lib/esm/src/internal/device-session/model/DevicePinger.js.map +7 -0
- package/lib/esm/src/internal/device-session/model/DevicePinger.test.js +2 -0
- package/lib/esm/src/internal/device-session/model/DevicePinger.test.js.map +7 -0
- package/lib/esm/src/internal/device-session/model/DeviceSession.js +1 -1
- package/lib/esm/src/internal/device-session/model/DeviceSession.js.map +3 -3
- package/lib/esm/src/internal/device-session/model/DeviceSession.stub.js +1 -1
- package/lib/esm/src/internal/device-session/model/DeviceSession.stub.js.map +3 -3
- package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.js +2 -0
- package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.js.map +7 -0
- package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js +2 -0
- package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js.map +7 -0
- package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.js +1 -1
- package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.js.map +3 -3
- package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
- package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +3 -3
- package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.js +2 -0
- package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.js.map +7 -0
- package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js +2 -0
- package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +7 -0
- package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js +1 -1
- package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +3 -3
- package/lib/esm/src/internal/device-session/service/MutexService.js +2 -0
- package/lib/esm/src/internal/device-session/service/MutexService.js.map +7 -0
- package/lib/esm/src/internal/device-session/service/MutexService.test.js +2 -0
- package/lib/esm/src/internal/device-session/service/MutexService.test.js.map +7 -0
- package/lib/esm/src/internal/device-session/service/RefresherService.js +1 -1
- package/lib/esm/src/internal/device-session/service/RefresherService.js.map +3 -3
- package/lib/esm/src/internal/device-session/service/RefresherService.test.js +1 -1
- package/lib/esm/src/internal/device-session/service/RefresherService.test.js.map +3 -3
- package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +1 -1
- package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +3 -3
- package/lib/esm/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js +1 -1
- package/lib/esm/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js.map +3 -3
- package/lib/esm/src/internal/device-session/utils/deviceSessionUtils.js +2 -0
- package/lib/esm/src/internal/device-session/utils/deviceSessionUtils.js.map +7 -0
- package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.js +1 -1
- package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.js.map +3 -3
- package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js +1 -1
- package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +3 -3
- package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js +1 -1
- package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js.map +3 -3
- package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js +1 -1
- package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js.map +3 -3
- package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.js +1 -1
- package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.js.map +3 -3
- package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js +1 -1
- package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js.map +3 -3
- package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js +1 -1
- package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.test.js.map +2 -2
- package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +1 -1
- package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +2 -2
- package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.js +1 -1
- package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +3 -3
- package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +1 -1
- package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +3 -3
- package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js +1 -1
- package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js.map +3 -3
- package/lib/types/src/api/DeviceManagementKit.d.ts +5 -1
- package/lib/types/src/api/DeviceManagementKit.d.ts.map +1 -1
- package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts +4 -0
- package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts.map +1 -1
- package/lib/types/src/api/index.d.ts +2 -0
- package/lib/types/src/api/index.d.ts.map +1 -1
- package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.d.ts +3 -3
- package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.d.ts.map +1 -1
- package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.d.ts +1 -0
- package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.d.ts +8 -0
- package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.d.ts.map +1 -0
- package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.d.ts +2 -0
- package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.d.ts.map +1 -0
- package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts +44 -0
- package/lib/types/src/api/secure-channel/device-action/InstallApp/types.d.ts.map +1 -0
- package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.d.ts +3 -3
- package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.d.ts.map +1 -1
- package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.d.ts +1 -0
- package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts +1 -3
- package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/types.d.ts.map +1 -1
- package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.d.ts +8 -0
- package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.d.ts.map +1 -0
- package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.d.ts +2 -0
- package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.d.ts.map +1 -0
- package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts +41 -0
- package/lib/types/src/api/secure-channel/device-action/UninstallApp/types.d.ts.map +1 -0
- package/lib/types/src/api/types.d.ts +2 -0
- package/lib/types/src/api/types.d.ts.map +1 -1
- package/lib/types/src/internal/device-session/data/DeviceSessionRefresherConst.d.ts +6 -1
- package/lib/types/src/internal/device-session/data/DeviceSessionRefresherConst.d.ts.map +1 -1
- package/lib/types/src/internal/device-session/model/DevicePinger.d.ts +18 -0
- package/lib/types/src/internal/device-session/model/DevicePinger.d.ts.map +1 -0
- package/lib/types/src/internal/device-session/model/DevicePinger.test.d.ts +2 -0
- package/lib/types/src/internal/device-session/model/DevicePinger.test.d.ts.map +1 -0
- package/lib/types/src/internal/device-session/model/DeviceSession.d.ts +18 -11
- package/lib/types/src/internal/device-session/model/DeviceSession.d.ts.map +1 -1
- package/lib/types/src/internal/device-session/model/DeviceSession.stub.d.ts +2 -2
- package/lib/types/src/internal/device-session/model/DeviceSession.stub.d.ts.map +1 -1
- package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.d.ts +35 -0
- package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.d.ts.map +1 -0
- package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.test.d.ts +2 -0
- package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.test.d.ts.map +1 -0
- package/lib/types/src/internal/device-session/model/DeviceSessionRefresher.d.ts +17 -79
- package/lib/types/src/internal/device-session/model/DeviceSessionRefresher.d.ts.map +1 -1
- package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.d.ts +20 -0
- package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.d.ts.map +1 -0
- package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.test.d.ts +2 -0
- package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.test.d.ts.map +1 -0
- package/lib/types/src/internal/device-session/service/MutexService.d.ts +6 -0
- package/lib/types/src/internal/device-session/service/MutexService.d.ts.map +1 -0
- package/lib/types/src/internal/device-session/service/MutexService.test.d.ts +2 -0
- package/lib/types/src/internal/device-session/service/MutexService.test.d.ts.map +1 -0
- package/lib/types/src/internal/device-session/service/RefresherService.d.ts +7 -2
- package/lib/types/src/internal/device-session/service/RefresherService.d.ts.map +1 -1
- package/lib/types/src/internal/device-session/utils/deviceSessionUtils.d.ts +3 -0
- package/lib/types/src/internal/device-session/utils/deviceSessionUtils.d.ts.map +1 -0
- package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts +8 -1
- package/lib/types/src/internal/discovery/use-case/ConnectUseCase.d.ts.map +1 -1
- package/lib/types/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.d.ts +1 -1
- package/lib/types/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.d.ts.map +1 -1
- package/lib/types/src/internal/secure-channel/model/Params.d.ts +3 -5
- package/lib/types/src/internal/secure-channel/model/Params.d.ts.map +1 -1
- package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts +6 -6
- package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts.map +1 -1
- package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts +39 -5
- package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts.map +1 -1
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +1 -1
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../../../src/internal/secure-channel/model/Params.ts"],
|
4
|
-
"sourcesContent": ["/**\n * Base parameters for various operations.\n *\n * @property targetId - The target identifier.\n * @property perso - The personalization string.\n */\ntype BaseParams = {\n targetId: string;\n perso: string;\n};\n\n/**\n * Parameters specific to MCU updates.\n *\n * @property version - The version of the MCU.\n */\ntype McuSubParams = { version: string };\n\n/**\n * Parameters specific to firmware updates, applicable to both Final Firmware and OSU Firmware.\n *\n * @property firmware - The firmware identifier.\n * @property firmwareKey - The key associated with the firmware.\n */\ntype FirmwareSubParams = {\n firmware: string;\n firmwareKey: string;\n};\n\n/**\n * Parameters specific to app operations.\n *\n * @property
|
4
|
+
"sourcesContent": ["/**\n * Base parameters for various operations.\n *\n * @property targetId - The target identifier.\n * @property perso - The personalization string.\n */\ntype BaseParams = {\n targetId: string;\n perso: string;\n};\n\n/**\n * Parameters specific to MCU updates.\n *\n * @property version - The version of the MCU.\n */\ntype McuSubParams = { version: string };\n\n/**\n * Parameters specific to firmware updates, applicable to both Final Firmware and OSU Firmware.\n *\n * @property firmware - The firmware identifier.\n * @property firmwareKey - The key associated with the firmware.\n */\ntype FirmwareSubParams = {\n firmware: string;\n firmwareKey: string;\n};\n\n/**\n * Parameters specific to app operations.\n *\n * @property hash - The hash of the app.\n */\ntype AppHash = {\n hash: string;\n};\n\n/**\n * Parameters for genuine check operations.\n */\nexport type GenuineCheckParams = BaseParams;\n\n/**\n * Parameters for listing installed apps.\n */\nexport type ListInstalledAppsParams = BaseParams;\n\n/**\n * Parameters for updating the MCU.\n *\n * @property targetId - The target identifier.\n * @property version - The version of the MCU.\n */\nexport type UpdateMcuParams = Omit<BaseParams, \"perso\"> & McuSubParams;\n\n/**\n * Parameters for updating the firmware.\n *\n * @property targetId - The target identifier.\n * @property perso - The personalization string.\n * @property firmware - The firmware identifier.\n * @property firmwareKey - The key associated with the firmware.\n */\nexport type UpdateFirmwareParams = BaseParams & FirmwareSubParams;\n\n/**\n * Parameters for installing apps.\n *\n * @property targetId - The target identifier.\n * @property perso - The personalization string.\n * @property firmware - The firmware identifier.\n * @property firmwareKey - The key associated with the firmware.\n * @property deleteKey - The key used to delete the app.\n * @property hash - The hash of the app.\n */\nexport type InstallAppsParams = BaseParams & FirmwareSubParams & AppHash;\n\n/**\n * Parameters for uninstalling apps.\n *\n * @property targetId - The target identifier.\n * @property perso - The personalization string.\n * @property firmware - The firmware identifier.\n * @property firmwareKey - The key associated with the firmware.\n * @property deleteKey - The key used to delete the app.\n * @property hash - The hash of the app.\n */\nexport type UninstallAppsParams = BaseParams & FirmwareSubParams & AppHash;\n"],
|
5
5
|
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
6
6
|
"names": ["Params_exports", "__toCommonJS"]
|
7
7
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var p=Object.defineProperty;var
|
1
|
+
"use strict";var p=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var k=(o,e)=>{for(var r in e)p(o,r,{get:e[r],enumerable:!0})},y=(o,e,r,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of h(e))!g.call(o,a)&&a!==r&&p(o,a,{get:()=>e[a],enumerable:!(t=l(e,a))||t.enumerable});return o};var I=o=>y(p({},"__esModule",{value:!0}),o),d=(o,e,r,t)=>{for(var a=t>1?void 0:t?l(e,r):e,s=o.length-1,n;s>=0;s--)(n=o[s])&&(a=(t?n(e,r,a):n(a))||a);return t&&a&&p(e,r,a),a},u=(o,e)=>(r,t)=>e(r,t,o);var f={};k(f,{DefaultSecureChannelService:()=>i});module.exports=I(f);var c=require("inversify"),S=require("../../secure-channel/di/secureChannelTypes");let i=class{constructor(e){this.dataSource=e}genuineCheck(e,r){const t={targetId:e.targetId.toString(),perso:r.perso};return this.dataSource.genuineCheck(t)}installApp(e,r){const{perso:t,firmware:a,firmwareKey:s,hash:n}=r,m={targetId:e.targetId.toString(),perso:t,firmware:a,firmwareKey:s,hash:n};return this.dataSource.installApp(m)}listInstalledApps(e,r){const t={targetId:e.targetId.toString(),perso:r.perso};return this.dataSource.listInstalledApps(t)}uninstallApp(e,r){const{perso:t,delete:a,deleteKey:s,hash:n}=r,m={targetId:e.targetId.toString(),perso:t,firmware:a,firmwareKey:s,hash:n};return this.dataSource.uninstallApp(m)}updateFirmware(e,r){const t={targetId:e.targetId.toString(),perso:r.perso,firmware:r.firmware,firmwareKey:r.firmwareKey};return this.dataSource.updateFirmware(t)}updateMcu(e,r){const t={targetId:e.targetId.toString(),version:r.version};return this.dataSource.updateMcu(t)}};i=d([(0,c.injectable)(),u(0,(0,c.inject)(S.secureChannelTypes.SecureChannelDataSource))],i);0&&(module.exports={DefaultSecureChannelService});
|
2
2
|
//# sourceMappingURL=DefaultSecureChannelService.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../../../src/internal/secure-channel/service/DefaultSecureChannelService.ts"],
|
4
|
-
"sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport WebSocket from \"isomorphic-ws\";\nimport { Either } from \"purify-ts\";\n\nimport { GetOsVersionResponse } from \"@api/index\";\nimport { Application } from \"@internal/manager-api/model/Application\";\nimport { FinalFirmware } from \"@internal/manager-api/model/Firmware\";\nimport { type SecureChannelDataSource } from \"@internal/secure-channel/data/SecureChannelDataSource\";\nimport { secureChannelTypes } from \"@internal/secure-channel/di/secureChannelTypes\";\nimport { WebSocketConnectionError } from \"@internal/secure-channel/model/Errors\";\nimport {\n GenuineCheckParams,\n InstallAppsParams,\n ListInstalledAppsParams,\n UninstallAppsParams,\n UpdateFirmwareParams,\n UpdateMcuParams,\n} from \"@internal/secure-channel/model/Params\";\n\nimport { SecureChannelService } from \"./SecureChannelService\";\n\n@injectable()\nexport class DefaultSecureChannelService implements SecureChannelService {\n constructor(\n @inject(secureChannelTypes.SecureChannelDataSource)\n private readonly dataSource: SecureChannelDataSource,\n ) {}\n\n genuineCheck(\n deviceInfo: GetOsVersionResponse,\n finalFirmware: FinalFirmware,\n ): Either<WebSocketConnectionError, WebSocket> {\n const params: GenuineCheckParams = {\n targetId: deviceInfo.targetId.toString(),\n perso: finalFirmware.perso,\n };\n return this.dataSource.genuineCheck(params);\n }\n\n installApp(\n deviceInfo: GetOsVersionResponse,\n app: Application
|
5
|
-
"mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBAQnCC,EAAmC,0DAc5B,IAAMC,EAAN,KAAkE,CACvE,YAEmBC,EACjB,CADiB,gBAAAA,CAChB,CAEH,aACEC,EACAC,EAC6C,CAC7C,MAAMC,EAA6B,CACjC,SAAUF,EAAW,SAAS,SAAS,EACvC,MAAOC,EAAc,KACvB,EACA,OAAO,KAAK,WAAW,aAAaC,CAAM,CAC5C,CAEA,WACEF,EACAG,EAC6C,CAC7C,KAAM,CAAE,MAAAC,EAAO,SAAAC,EAAU,YAAAC,EAAa,
|
6
|
-
"names": ["DefaultSecureChannelService_exports", "__export", "DefaultSecureChannelService", "__toCommonJS", "import_inversify", "import_secureChannelTypes", "DefaultSecureChannelService", "dataSource", "deviceInfo", "finalFirmware", "params", "app", "perso", "firmware", "firmwareKey", "
|
4
|
+
"sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport WebSocket from \"isomorphic-ws\";\nimport { Either } from \"purify-ts\";\n\nimport { type GetOsVersionResponse } from \"@api/index\";\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type FinalFirmware } from \"@internal/manager-api/model/Firmware\";\nimport { type SecureChannelDataSource } from \"@internal/secure-channel/data/SecureChannelDataSource\";\nimport { secureChannelTypes } from \"@internal/secure-channel/di/secureChannelTypes\";\nimport { WebSocketConnectionError } from \"@internal/secure-channel/model/Errors\";\nimport {\n type GenuineCheckParams,\n type InstallAppsParams,\n type ListInstalledAppsParams,\n type UninstallAppsParams,\n type UpdateFirmwareParams,\n type UpdateMcuParams,\n} from \"@internal/secure-channel/model/Params\";\n\nimport { type SecureChannelService } from \"./SecureChannelService\";\n\n@injectable()\nexport class DefaultSecureChannelService implements SecureChannelService {\n constructor(\n @inject(secureChannelTypes.SecureChannelDataSource)\n private readonly dataSource: SecureChannelDataSource,\n ) {}\n\n genuineCheck(\n deviceInfo: GetOsVersionResponse,\n finalFirmware: FinalFirmware,\n ): Either<WebSocketConnectionError, WebSocket> {\n const params: GenuineCheckParams = {\n targetId: deviceInfo.targetId.toString(),\n perso: finalFirmware.perso,\n };\n return this.dataSource.genuineCheck(params);\n }\n\n installApp(\n deviceInfo: GetOsVersionResponse,\n app: Pick<Application, \"perso\" | \"firmware\" | \"firmwareKey\" | \"hash\">,\n ): Either<WebSocketConnectionError, WebSocket> {\n const { perso, firmware, firmwareKey, hash } = app;\n const params: InstallAppsParams = {\n targetId: deviceInfo.targetId.toString(),\n perso,\n firmware,\n firmwareKey,\n hash,\n };\n return this.dataSource.installApp(params);\n }\n\n listInstalledApps(\n deviceInfo: GetOsVersionResponse,\n finalFirmware: FinalFirmware,\n ): Either<WebSocketConnectionError, WebSocket> {\n const params: ListInstalledAppsParams = {\n targetId: deviceInfo.targetId.toString(),\n perso: finalFirmware.perso,\n };\n return this.dataSource.listInstalledApps(params);\n }\n\n uninstallApp(\n deviceInfo: GetOsVersionResponse,\n app: Pick<Application, \"perso\" | \"delete\" | \"deleteKey\" | \"hash\">,\n ): Either<WebSocketConnectionError, WebSocket> {\n const { perso, delete: appDelete, deleteKey, hash } = app;\n const params: UninstallAppsParams = {\n targetId: deviceInfo.targetId.toString(),\n perso,\n firmware: appDelete,\n firmwareKey: deleteKey,\n hash,\n };\n return this.dataSource.uninstallApp(params);\n }\n\n updateFirmware(\n deviceInfo: GetOsVersionResponse,\n finalFirmware: FinalFirmware,\n ): Either<WebSocketConnectionError, WebSocket> {\n const params: UpdateFirmwareParams = {\n targetId: deviceInfo.targetId.toString(),\n perso: finalFirmware.perso,\n firmware: finalFirmware.firmware,\n firmwareKey: finalFirmware.firmwareKey,\n };\n return this.dataSource.updateFirmware(params);\n }\n\n updateMcu(\n deviceInfo: GetOsVersionResponse,\n param: { version: string },\n ): Either<WebSocketConnectionError, WebSocket> {\n const params: UpdateMcuParams = {\n targetId: deviceInfo.targetId.toString(),\n version: param.version,\n };\n return this.dataSource.updateMcu(params);\n }\n}\n"],
|
5
|
+
"mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBAQnCC,EAAmC,0DAc5B,IAAMC,EAAN,KAAkE,CACvE,YAEmBC,EACjB,CADiB,gBAAAA,CAChB,CAEH,aACEC,EACAC,EAC6C,CAC7C,MAAMC,EAA6B,CACjC,SAAUF,EAAW,SAAS,SAAS,EACvC,MAAOC,EAAc,KACvB,EACA,OAAO,KAAK,WAAW,aAAaC,CAAM,CAC5C,CAEA,WACEF,EACAG,EAC6C,CAC7C,KAAM,CAAE,MAAAC,EAAO,SAAAC,EAAU,YAAAC,EAAa,KAAAC,CAAK,EAAIJ,EACzCD,EAA4B,CAChC,SAAUF,EAAW,SAAS,SAAS,EACvC,MAAAI,EACA,SAAAC,EACA,YAAAC,EACA,KAAAC,CACF,EACA,OAAO,KAAK,WAAW,WAAWL,CAAM,CAC1C,CAEA,kBACEF,EACAC,EAC6C,CAC7C,MAAMC,EAAkC,CACtC,SAAUF,EAAW,SAAS,SAAS,EACvC,MAAOC,EAAc,KACvB,EACA,OAAO,KAAK,WAAW,kBAAkBC,CAAM,CACjD,CAEA,aACEF,EACAG,EAC6C,CAC7C,KAAM,CAAE,MAAAC,EAAO,OAAQI,EAAW,UAAAC,EAAW,KAAAF,CAAK,EAAIJ,EAChDD,EAA8B,CAClC,SAAUF,EAAW,SAAS,SAAS,EACvC,MAAAI,EACA,SAAUI,EACV,YAAaC,EACb,KAAAF,CACF,EACA,OAAO,KAAK,WAAW,aAAaL,CAAM,CAC5C,CAEA,eACEF,EACAC,EAC6C,CAC7C,MAAMC,EAA+B,CACnC,SAAUF,EAAW,SAAS,SAAS,EACvC,MAAOC,EAAc,MACrB,SAAUA,EAAc,SACxB,YAAaA,EAAc,WAC7B,EACA,OAAO,KAAK,WAAW,eAAeC,CAAM,CAC9C,CAEA,UACEF,EACAU,EAC6C,CAC7C,MAAMR,EAA0B,CAC9B,SAAUF,EAAW,SAAS,SAAS,EACvC,QAASU,EAAM,OACjB,EACA,OAAO,KAAK,WAAW,UAAUR,CAAM,CACzC,CACF,EAjFaJ,EAANa,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,qBAAmB,uBAAuB,IAFzCd",
|
6
|
+
"names": ["DefaultSecureChannelService_exports", "__export", "DefaultSecureChannelService", "__toCommonJS", "import_inversify", "import_secureChannelTypes", "DefaultSecureChannelService", "dataSource", "deviceInfo", "finalFirmware", "params", "app", "perso", "firmware", "firmwareKey", "hash", "appDelete", "deleteKey", "param", "__decorateClass", "__decorateParam"]
|
7
7
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var i=require("../../../api/command/os/__mocks__/GetOsVersionCommand"),s=require("../../../api/index"),
|
1
|
+
"use strict";var i=require("../../../api/command/os/__mocks__/GetOsVersionCommand"),s=require("../../../api/index"),l=require("../../secure-channel/data/DefaultSecureChannelDataSource"),p=require("./DefaultSecureChannelService");vi.mock("@internal/secure-channel/data/DefaultSecureChannelDataSource");let t,a;describe("SecureChannelService",()=>{beforeEach(()=>{t=new l.DefaultSecureChannelDataSource({}),a=new p.DefaultSecureChannelService(t)}),describe("genuineCheck service",()=>{it("should call genuineCheck data source with passing parameters",()=>{const e=(0,i.getOsVersionCommandResponseMockBuilder)(s.DeviceModelId.NANO_SP),r={perso:"perso"};a.genuineCheck(e,r),expect(t.genuineCheck).toHaveBeenCalledWith({targetId:e.targetId.toString(),perso:"perso"})})}),describe("listInstalledApps service",()=>{it("should call listInstalledApps data source with passing parameters",()=>{const e=(0,i.getOsVersionCommandResponseMockBuilder)(s.DeviceModelId.NANO_SP),r={perso:"perso"};a.listInstalledApps(e,r),expect(t.listInstalledApps).toHaveBeenCalledWith({targetId:e.targetId.toString(),perso:"perso"})})}),describe("updateMcu service",()=>{it("should call updateMcu data source with passing parameters",()=>{const e=(0,i.getOsVersionCommandResponseMockBuilder)(s.DeviceModelId.NANO_SP),r="version";a.updateMcu(e,{version:r}),expect(t.updateMcu).toHaveBeenCalledWith({targetId:e.targetId.toString(),version:r})})}),describe("updateFirmware service",()=>{it("should call updateFirmware data source with passing parameters",()=>{const e=(0,i.getOsVersionCommandResponseMockBuilder)(s.DeviceModelId.NANO_SP),r={perso:"perso",firmware:"firmware",firmwareKey:"firmwareKey"};a.updateFirmware(e,r),expect(t.updateFirmware).toHaveBeenCalledWith({targetId:e.targetId.toString(),perso:"perso",firmware:"firmware",firmwareKey:"firmwareKey"})})}),describe("installApp service",()=>{it("should call installApp data source with passing parameters",()=>{const e=(0,i.getOsVersionCommandResponseMockBuilder)(s.DeviceModelId.NANO_SP),r="perso",n="firmware",o="firmwareKey",c="hash";a.installApp(e,{perso:r,firmware:n,firmwareKey:o,hash:c}),expect(t.installApp).toHaveBeenCalledWith({targetId:e.targetId.toString(),perso:r,firmware:n,firmwareKey:o,hash:c})})}),describe("uninstallApp service",()=>{it("should call uninstallApp data source with passing parameters",()=>{const e=(0,i.getOsVersionCommandResponseMockBuilder)(s.DeviceModelId.NANO_SP),r="perso",n="delete",o="deleteKey",c="hash";a.uninstallApp(e,{perso:r,delete:n,deleteKey:o,hash:c}),expect(t.uninstallApp).toHaveBeenCalledWith({targetId:e.targetId.toString(),perso:r,firmware:n,firmwareKey:o,hash:c})})})});
|
2
2
|
//# sourceMappingURL=DefaultSecureChannelService.test.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../../../src/internal/secure-channel/service/DefaultSecureChannelService.test.ts"],
|
4
|
-
"sourcesContent": ["import { type Mocked } from \"vitest\";\n\nimport { getOsVersionCommandResponseMockBuilder } from \"@api/command/os/__mocks__/GetOsVersionCommand\";\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { DeviceModelId } from \"@api/index\";\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type FinalFirmware } from \"@internal/manager-api/model/Firmware\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\n\nimport { DefaultSecureChannelService } from \"./DefaultSecureChannelService\";\nimport { type SecureChannelService } from \"./SecureChannelService\";\n\nvi.mock(\"@internal/secure-channel/data/DefaultSecureChannelDataSource\");\n\nlet dataSource: Mocked<DefaultSecureChannelDataSource>;\nlet service: SecureChannelService;\n\ndescribe(\"SecureChannelService\", () => {\n beforeEach(() => {\n dataSource = new DefaultSecureChannelDataSource(\n {} as DmkConfig,\n ) as Mocked<DefaultSecureChannelDataSource>;\n\n service = new DefaultSecureChannelService(dataSource);\n });\n\n describe(\"genuineCheck service\", () => {\n it(\"should call genuineCheck data source with passing parameters\", () => {\n // given\n const deviceInfo = getOsVersionCommandResponseMockBuilder(\n DeviceModelId.NANO_SP,\n );\n const finalFirmware = {\n perso: \"perso\",\n } as FinalFirmware;\n\n // when\n service.genuineCheck(deviceInfo, finalFirmware);\n\n // then\n expect(dataSource.genuineCheck).toHaveBeenCalledWith({\n targetId: deviceInfo.targetId.toString(),\n perso: \"perso\",\n });\n });\n });\n\n describe(\"listInstalledApps service\", () => {\n it(\"should call listInstalledApps data source with passing parameters\", () => {\n // given\n const deviceInfo = getOsVersionCommandResponseMockBuilder(\n DeviceModelId.NANO_SP,\n );\n\n const finalFirmware = {\n perso: \"perso\",\n } as FinalFirmware;\n\n // when\n service.listInstalledApps(deviceInfo, finalFirmware);\n\n // then\n expect(dataSource.listInstalledApps).toHaveBeenCalledWith({\n targetId: deviceInfo.targetId.toString(),\n perso: \"perso\",\n });\n });\n });\n\n describe(\"updateMcu service\", () => {\n it(\"should call updateMcu data source with passing parameters\", () => {\n // given\n const deviceInfo = getOsVersionCommandResponseMockBuilder(\n DeviceModelId.NANO_SP,\n );\n const version = \"version\";\n\n // when\n service.updateMcu(deviceInfo, { version });\n\n // then\n expect(dataSource.updateMcu).toHaveBeenCalledWith({\n targetId: deviceInfo.targetId.toString(),\n version,\n });\n });\n });\n\n describe(\"updateFirmware service\", () => {\n it(\"should call updateFirmware data source with passing parameters\", () => {\n // given\n const deviceInfo = getOsVersionCommandResponseMockBuilder(\n DeviceModelId.NANO_SP,\n );\n\n const finalFirmware = {\n perso: \"perso\",\n firmware: \"firmware\",\n firmwareKey: \"firmwareKey\",\n } as FinalFirmware;\n\n // when\n service.updateFirmware(deviceInfo, finalFirmware);\n\n // then\n expect(dataSource.updateFirmware).toHaveBeenCalledWith({\n targetId: deviceInfo.targetId.toString(),\n perso: \"perso\",\n firmware: \"firmware\",\n firmwareKey: \"firmwareKey\",\n });\n });\n });\n\n describe(\"installApp service\", () => {\n it(\"should call installApp data source with passing parameters\", () => {\n // given\n const deviceInfo = getOsVersionCommandResponseMockBuilder(\n DeviceModelId.NANO_SP,\n );\n const perso = \"perso\";\n const firmware = \"firmware\";\n const firmwareKey = \"firmwareKey\";\n const
|
5
|
-
"mappings": "aAEA,IAAAA,EAAuD,yDAEvDC,EAA8B,sBAG9BC,EAA+C,wEAE/CC,EAA4C,yCAG5C,GAAG,KAAK,8DAA8D,EAEtE,IAAIC,EACAC,EAEJ,SAAS,uBAAwB,IAAM,CACrC,WAAW,IAAM,CACfD,EAAa,IAAI,iCACf,CAAC,CACH,EAEAC,EAAU,IAAI,8BAA4BD,CAAU,CACtD,CAAC,EAED,SAAS,uBAAwB,IAAM,CACrC,GAAG,+DAAgE,IAAM,CAEvE,MAAME,KAAa,0CACjB,gBAAc,OAChB,EACMC,EAAgB,CACpB,MAAO,OACT,EAGAF,EAAQ,aAAaC,EAAYC,CAAa,EAG9C,OAAOH,EAAW,YAAY,EAAE,qBAAqB,CACnD,SAAUE,EAAW,SAAS,SAAS,EACvC,MAAO,OACT,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,4BAA6B,IAAM,CAC1C,GAAG,oEAAqE,IAAM,CAE5E,MAAMA,KAAa,0CACjB,gBAAc,OAChB,EAEMC,EAAgB,CACpB,MAAO,OACT,EAGAF,EAAQ,kBAAkBC,EAAYC,CAAa,EAGnD,OAAOH,EAAW,iBAAiB,EAAE,qBAAqB,CACxD,SAAUE,EAAW,SAAS,SAAS,EACvC,MAAO,OACT,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,oBAAqB,IAAM,CAClC,GAAG,4DAA6D,IAAM,CAEpE,MAAMA,KAAa,0CACjB,gBAAc,OAChB,EACME,EAAU,UAGhBH,EAAQ,UAAUC,EAAY,CAAE,QAAAE,CAAQ,CAAC,EAGzC,OAAOJ,EAAW,SAAS,EAAE,qBAAqB,CAChD,SAAUE,EAAW,SAAS,SAAS,EACvC,QAAAE,CACF,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,yBAA0B,IAAM,CACvC,GAAG,iEAAkE,IAAM,CAEzE,MAAMF,KAAa,0CACjB,gBAAc,OAChB,EAEMC,EAAgB,CACpB,MAAO,QACP,SAAU,WACV,YAAa,aACf,EAGAF,EAAQ,eAAeC,EAAYC,CAAa,EAGhD,OAAOH,EAAW,cAAc,EAAE,qBAAqB,CACrD,SAAUE,EAAW,SAAS,SAAS,EACvC,MAAO,QACP,SAAU,WACV,YAAa,aACf,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,qBAAsB,IAAM,CACnC,GAAG,6DAA8D,IAAM,CAErE,MAAMA,KAAa,0CACjB,gBAAc,OAChB,EACMG,EAAQ,QACRC,EAAW,WACXC,EAAc,cACdC,
|
6
|
-
"names": ["import_GetOsVersionCommand", "import_api", "import_DefaultSecureChannelDataSource", "import_DefaultSecureChannelService", "dataSource", "service", "deviceInfo", "finalFirmware", "version", "perso", "firmware", "firmwareKey", "
|
4
|
+
"sourcesContent": ["import { type Mocked } from \"vitest\";\n\nimport { getOsVersionCommandResponseMockBuilder } from \"@api/command/os/__mocks__/GetOsVersionCommand\";\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { DeviceModelId } from \"@api/index\";\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type FinalFirmware } from \"@internal/manager-api/model/Firmware\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\n\nimport { DefaultSecureChannelService } from \"./DefaultSecureChannelService\";\nimport { type SecureChannelService } from \"./SecureChannelService\";\n\nvi.mock(\"@internal/secure-channel/data/DefaultSecureChannelDataSource\");\n\nlet dataSource: Mocked<DefaultSecureChannelDataSource>;\nlet service: SecureChannelService;\n\ndescribe(\"SecureChannelService\", () => {\n beforeEach(() => {\n dataSource = new DefaultSecureChannelDataSource(\n {} as DmkConfig,\n ) as Mocked<DefaultSecureChannelDataSource>;\n\n service = new DefaultSecureChannelService(dataSource);\n });\n\n describe(\"genuineCheck service\", () => {\n it(\"should call genuineCheck data source with passing parameters\", () => {\n // given\n const deviceInfo = getOsVersionCommandResponseMockBuilder(\n DeviceModelId.NANO_SP,\n );\n const finalFirmware = {\n perso: \"perso\",\n } as FinalFirmware;\n\n // when\n service.genuineCheck(deviceInfo, finalFirmware);\n\n // then\n expect(dataSource.genuineCheck).toHaveBeenCalledWith({\n targetId: deviceInfo.targetId.toString(),\n perso: \"perso\",\n });\n });\n });\n\n describe(\"listInstalledApps service\", () => {\n it(\"should call listInstalledApps data source with passing parameters\", () => {\n // given\n const deviceInfo = getOsVersionCommandResponseMockBuilder(\n DeviceModelId.NANO_SP,\n );\n\n const finalFirmware = {\n perso: \"perso\",\n } as FinalFirmware;\n\n // when\n service.listInstalledApps(deviceInfo, finalFirmware);\n\n // then\n expect(dataSource.listInstalledApps).toHaveBeenCalledWith({\n targetId: deviceInfo.targetId.toString(),\n perso: \"perso\",\n });\n });\n });\n\n describe(\"updateMcu service\", () => {\n it(\"should call updateMcu data source with passing parameters\", () => {\n // given\n const deviceInfo = getOsVersionCommandResponseMockBuilder(\n DeviceModelId.NANO_SP,\n );\n const version = \"version\";\n\n // when\n service.updateMcu(deviceInfo, { version });\n\n // then\n expect(dataSource.updateMcu).toHaveBeenCalledWith({\n targetId: deviceInfo.targetId.toString(),\n version,\n });\n });\n });\n\n describe(\"updateFirmware service\", () => {\n it(\"should call updateFirmware data source with passing parameters\", () => {\n // given\n const deviceInfo = getOsVersionCommandResponseMockBuilder(\n DeviceModelId.NANO_SP,\n );\n\n const finalFirmware = {\n perso: \"perso\",\n firmware: \"firmware\",\n firmwareKey: \"firmwareKey\",\n } as FinalFirmware;\n\n // when\n service.updateFirmware(deviceInfo, finalFirmware);\n\n // then\n expect(dataSource.updateFirmware).toHaveBeenCalledWith({\n targetId: deviceInfo.targetId.toString(),\n perso: \"perso\",\n firmware: \"firmware\",\n firmwareKey: \"firmwareKey\",\n });\n });\n });\n\n describe(\"installApp service\", () => {\n it(\"should call installApp data source with passing parameters\", () => {\n // given\n const deviceInfo = getOsVersionCommandResponseMockBuilder(\n DeviceModelId.NANO_SP,\n );\n const perso = \"perso\";\n const firmware = \"firmware\";\n const firmwareKey = \"firmwareKey\";\n const hash = \"hash\";\n\n // when\n service.installApp(deviceInfo, {\n perso,\n firmware,\n firmwareKey,\n hash,\n } as Application);\n\n // then\n expect(dataSource.installApp).toHaveBeenCalledWith({\n targetId: deviceInfo.targetId.toString(),\n perso,\n firmware,\n firmwareKey,\n hash,\n });\n });\n });\n\n describe(\"uninstallApp service\", () => {\n it(\"should call uninstallApp data source with passing parameters\", () => {\n // given\n const deviceInfo = getOsVersionCommandResponseMockBuilder(\n DeviceModelId.NANO_SP,\n );\n const perso = \"perso\";\n const appDelete = \"delete\";\n const deleteKey = \"deleteKey\";\n const hash = \"hash\";\n\n // when\n service.uninstallApp(deviceInfo, {\n perso,\n delete: appDelete,\n deleteKey,\n hash,\n } as Application);\n\n // then\n expect(dataSource.uninstallApp).toHaveBeenCalledWith({\n targetId: deviceInfo.targetId.toString(),\n perso,\n firmware: appDelete,\n firmwareKey: deleteKey,\n hash,\n });\n });\n });\n});\n"],
|
5
|
+
"mappings": "aAEA,IAAAA,EAAuD,yDAEvDC,EAA8B,sBAG9BC,EAA+C,wEAE/CC,EAA4C,yCAG5C,GAAG,KAAK,8DAA8D,EAEtE,IAAIC,EACAC,EAEJ,SAAS,uBAAwB,IAAM,CACrC,WAAW,IAAM,CACfD,EAAa,IAAI,iCACf,CAAC,CACH,EAEAC,EAAU,IAAI,8BAA4BD,CAAU,CACtD,CAAC,EAED,SAAS,uBAAwB,IAAM,CACrC,GAAG,+DAAgE,IAAM,CAEvE,MAAME,KAAa,0CACjB,gBAAc,OAChB,EACMC,EAAgB,CACpB,MAAO,OACT,EAGAF,EAAQ,aAAaC,EAAYC,CAAa,EAG9C,OAAOH,EAAW,YAAY,EAAE,qBAAqB,CACnD,SAAUE,EAAW,SAAS,SAAS,EACvC,MAAO,OACT,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,4BAA6B,IAAM,CAC1C,GAAG,oEAAqE,IAAM,CAE5E,MAAMA,KAAa,0CACjB,gBAAc,OAChB,EAEMC,EAAgB,CACpB,MAAO,OACT,EAGAF,EAAQ,kBAAkBC,EAAYC,CAAa,EAGnD,OAAOH,EAAW,iBAAiB,EAAE,qBAAqB,CACxD,SAAUE,EAAW,SAAS,SAAS,EACvC,MAAO,OACT,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,oBAAqB,IAAM,CAClC,GAAG,4DAA6D,IAAM,CAEpE,MAAMA,KAAa,0CACjB,gBAAc,OAChB,EACME,EAAU,UAGhBH,EAAQ,UAAUC,EAAY,CAAE,QAAAE,CAAQ,CAAC,EAGzC,OAAOJ,EAAW,SAAS,EAAE,qBAAqB,CAChD,SAAUE,EAAW,SAAS,SAAS,EACvC,QAAAE,CACF,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,yBAA0B,IAAM,CACvC,GAAG,iEAAkE,IAAM,CAEzE,MAAMF,KAAa,0CACjB,gBAAc,OAChB,EAEMC,EAAgB,CACpB,MAAO,QACP,SAAU,WACV,YAAa,aACf,EAGAF,EAAQ,eAAeC,EAAYC,CAAa,EAGhD,OAAOH,EAAW,cAAc,EAAE,qBAAqB,CACrD,SAAUE,EAAW,SAAS,SAAS,EACvC,MAAO,QACP,SAAU,WACV,YAAa,aACf,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,qBAAsB,IAAM,CACnC,GAAG,6DAA8D,IAAM,CAErE,MAAMA,KAAa,0CACjB,gBAAc,OAChB,EACMG,EAAQ,QACRC,EAAW,WACXC,EAAc,cACdC,EAAO,OAGbP,EAAQ,WAAWC,EAAY,CAC7B,MAAAG,EACA,SAAAC,EACA,YAAAC,EACA,KAAAC,CACF,CAAgB,EAGhB,OAAOR,EAAW,UAAU,EAAE,qBAAqB,CACjD,SAAUE,EAAW,SAAS,SAAS,EACvC,MAAAG,EACA,SAAAC,EACA,YAAAC,EACA,KAAAC,CACF,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,uBAAwB,IAAM,CACrC,GAAG,+DAAgE,IAAM,CAEvE,MAAMN,KAAa,0CACjB,gBAAc,OAChB,EACMG,EAAQ,QACRI,EAAY,SACZC,EAAY,YACZF,EAAO,OAGbP,EAAQ,aAAaC,EAAY,CAC/B,MAAAG,EACA,OAAQI,EACR,UAAAC,EACA,KAAAF,CACF,CAAgB,EAGhB,OAAOR,EAAW,YAAY,EAAE,qBAAqB,CACnD,SAAUE,EAAW,SAAS,SAAS,EACvC,MAAAG,EACA,SAAUI,EACV,YAAaC,EACb,KAAAF,CACF,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC",
|
6
|
+
"names": ["import_GetOsVersionCommand", "import_api", "import_DefaultSecureChannelDataSource", "import_DefaultSecureChannelService", "dataSource", "service", "deviceInfo", "finalFirmware", "version", "perso", "firmware", "firmwareKey", "hash", "appDelete", "deleteKey"]
|
7
7
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var n=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var a=(
|
1
|
+
"use strict";var n=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var a=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of s(e))!c.call(r,o)&&o!==t&&n(r,o,{get:()=>e[o],enumerable:!(i=p(e,o))||i.enumerable});return r};var m=r=>a(n({},"__esModule",{value:!0}),r);var l={};module.exports=m(l);
|
2
2
|
//# sourceMappingURL=SecureChannelService.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../../../src/internal/secure-channel/service/SecureChannelService.ts"],
|
4
|
-
"sourcesContent": ["import type WebSocket from \"isomorphic-ws\";\nimport { type Either } from \"purify-ts\";\n\nimport { type GetOsVersionResponse } from \"@api/index\";\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type FinalFirmware } from \"@internal/manager-api/model/Firmware\";\nimport { type WebSocketConnectionError } from \"@internal/secure-channel/model/Errors\";\n\n/**\n * Interface representing
|
4
|
+
"sourcesContent": ["import type WebSocket from \"isomorphic-ws\";\nimport { type Either } from \"purify-ts\";\n\nimport { type GetOsVersionResponse } from \"@api/index\";\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type FinalFirmware } from \"@internal/manager-api/model/Firmware\";\nimport { type WebSocketConnectionError } from \"@internal/secure-channel/model/Errors\";\n\n/**\n * Interface representing a secure channel service for device management.\n */\nexport interface SecureChannelService {\n /**\n * Construct a WebSocket connection for genuine check.\n * @param deviceInfo - Response of the GetOsVersionCommand.\n * @param finalFirmware - Response of the GetFirmwareVersion HTTP request in manager API.\n * @returns Either a WebSocketConnectionError or a WebSocket.\n */\n genuineCheck(\n deviceInfo: GetOsVersionResponse,\n finalFirmware: FinalFirmware,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Construct a WebSocket connection for installing an application.\n * @param deviceInfo - Response of the GetOsVersionCommand.\n * @param app - The application to be installed, must have perso, firmware, firmwareKey, and hash properties.\n * @returns Either a WebSocketConnectionError or a WebSocket.\n */\n installApp(\n deviceInfo: GetOsVersionResponse,\n app: Pick<Application, \"perso\" | \"firmware\" | \"firmwareKey\" | \"hash\">,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Construct a WebSocket connection for listing installed applications.\n * @param deviceInfo - Response of the GetOsVersionCommand.\n * @param finalFirmware - Response of the GetFirmwareVersion HTTP request in manager API.\n * @returns Either a WebSocketConnectionError or a WebSocket.\n */\n listInstalledApps(\n deviceInfo: GetOsVersionResponse,\n finalFirmware: FinalFirmware,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Construct a WebSocket connection for uninstalling an application.\n * @param deviceInfo - Response of the GetOsVersionCommand.\n * @param app - The application to be uninstalled, must have perso, delete, deleteKey, and hash properties.\n * @returns Either a WebSocketConnectionError or a WebSocket.\n */\n uninstallApp(\n deviceInfo: GetOsVersionResponse,\n app: Pick<Application, \"perso\" | \"delete\" | \"deleteKey\" | \"hash\">,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Construct a WebSocket connection for updating the firmware of the device.\n * @param deviceInfo - Response of the GetOsVersionCommand.\n * @param finalFirmware - The final firmware to be updated.\n * @returns Either a WebSocketConnectionError or a WebSocket.\n */\n updateFirmware(\n deviceInfo: GetOsVersionResponse,\n finalFirmware: FinalFirmware,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Construct a WebSocket connection for updating the MCU (Microcontroller Unit) of the device.\n * @param deviceInfo - Response of the GetOsVersionCommand.\n * @param param - Parameters for the MCU update, including the version.\n * @returns Either a WebSocketConnectionError or a WebSocket.\n */\n updateMcu(\n deviceInfo: GetOsVersionResponse,\n param: { version: string },\n ): Either<WebSocketConnectionError, WebSocket>;\n}\n"],
|
5
5
|
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
6
6
|
"names": ["SecureChannelService_exports", "__toCommonJS"]
|
7
7
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var
|
1
|
+
"use strict";var f=require("purify-ts"),l=require("../../../api/transport/model/TransportConnectedDevice.stub"),u=require("../../device-session/data/DeviceSessionRefresherConst"),p=require("../../device-session/model/DeviceSession.stub"),i=require("../../device-session/model/Errors"),v=require("../../device-session/service/DefaultDeviceSessionService"),D=require("../../logger-publisher/service/DefaultLoggerPublisherService"),g=require("../../manager-api/data/AxiosManagerApiDataSource"),x=require("../../manager-api/service/DefaultManagerApiService"),A=require("../../secure-channel/data/DefaultSecureChannelDataSource"),C=require("../../secure-channel/service/DefaultSecureChannelService"),s=require("../../send/use-case/SendApduUseCase");vi.mock("@internal/manager-api/data/AxiosManagerApiDataSource");let e,o,m,a,d,t;const c="fakeSessionId";describe("SendApduUseCase",()=>{beforeEach(()=>{e=new D.DefaultLoggerPublisherService([],"send-apdu-use-case"),o=new v.DefaultDeviceSessionService(()=>e),m=new g.AxiosManagerApiDataSource({}),a=new x.DefaultManagerApiService(m),d=new A.DefaultSecureChannelDataSource({}),t=new C.DefaultSecureChannelService(d)}),it("should send an APDU to a connected device",async()=>{const r=(0,p.deviceSessionStubBuilder)({},()=>e,a,t,u.DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS);o.addDeviceSession(r);const S=await new s.SendApduUseCase(o,()=>e).execute({sessionId:c,apdu:new Uint8Array([0,1,2,3])});r.close(),expect(r.connectedDevice.sendApdu).toHaveBeenCalledTimes(1),expect(S).toBeDefined()}),it("should throw an error if the deviceSession is not found",async()=>{const n=new s.SendApduUseCase(o,()=>e).execute({sessionId:c,apdu:new Uint8Array([0,1,2,3])});await expect(n).rejects.toBeInstanceOf(i.DeviceSessionNotFound)}),it("should throw an error if the apdu receiver failed",async()=>{const r=(0,l.connectedDeviceStubBuilder)({sendApdu:vi.fn(async()=>Promise.resolve((0,f.Left)(new i.ReceiverApduError)))}),n=(0,p.deviceSessionStubBuilder)({connectedDevice:r},()=>e,a,t,u.DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS);o.addDeviceSession(n);const h=new s.SendApduUseCase(o,()=>e).execute({sessionId:c,apdu:new Uint8Array([0,1,2,3])});n.close(),await expect(h).rejects.toBeInstanceOf(i.ReceiverApduError)})});
|
2
2
|
//# sourceMappingURL=SendApduUseCase.test.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../../../src/internal/send/use-case/SendApduUseCase.test.ts"],
|
4
|
-
"sourcesContent": ["import { Left } from \"purify-ts\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { connectedDeviceStubBuilder } from \"@api/transport/model/TransportConnectedDevice.stub\";\nimport { deviceSessionStubBuilder } from \"@internal/device-session/model/DeviceSession.stub\";\nimport {\n DeviceSessionNotFound,\n ReceiverApduError,\n} from \"@internal/device-session/model/Errors\";\nimport { DefaultDeviceSessionService } from \"@internal/device-session/service/DefaultDeviceSessionService\";\nimport { type DeviceSessionService } from \"@internal/device-session/service/DeviceSessionService\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\nimport { AxiosManagerApiDataSource } from \"@internal/manager-api/data/AxiosManagerApiDataSource\";\nimport { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\nimport { DefaultManagerApiService } from \"@internal/manager-api/service/DefaultManagerApiService\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { type SecureChannelDataSource } from \"@internal/secure-channel/data/SecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\nimport { SendApduUseCase } from \"@internal/send/use-case/SendApduUseCase\";\n\nvi.mock(\"@internal/manager-api/data/AxiosManagerApiDataSource\");\n\nlet logger: LoggerPublisherService;\nlet sessionService: DeviceSessionService;\nlet managerApiDataSource: ManagerApiDataSource;\nlet managerApi: ManagerApiService;\nlet secureChannelDataSource: SecureChannelDataSource;\nlet secureChannel: SecureChannelService;\nconst fakeSessionId = \"fakeSessionId\";\n\ndescribe(\"SendApduUseCase\", () => {\n beforeEach(() => {\n logger = new DefaultLoggerPublisherService([], \"send-apdu-use-case\");\n sessionService = new DefaultDeviceSessionService(() => logger);\n managerApiDataSource = new AxiosManagerApiDataSource({} as DmkConfig);\n managerApi = new DefaultManagerApiService(managerApiDataSource);\n secureChannelDataSource = new DefaultSecureChannelDataSource(\n {} as DmkConfig,\n );\n secureChannel = new DefaultSecureChannelService(secureChannelDataSource);\n });\n\n it(\"should send an APDU to a connected device\", async () => {\n // given\n const deviceSession = deviceSessionStubBuilder(\n {},\n () => logger,\n managerApi,\n secureChannel,\n );\n sessionService.addDeviceSession(deviceSession);\n const useCase = new SendApduUseCase(sessionService, () => logger);\n\n // when\n const response = await useCase.execute({\n sessionId: fakeSessionId,\n apdu: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n });\n\n deviceSession.close();\n // then\n expect(deviceSession.connectedDevice.sendApdu).toHaveBeenCalledTimes(1);\n expect(response).toBeDefined();\n });\n\n it(\"should throw an error if the deviceSession is not found\", async () => {\n // given\n const useCase = new SendApduUseCase(sessionService, () => logger);\n\n // when\n const response = useCase.execute({\n sessionId: fakeSessionId,\n apdu: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n });\n\n // then\n await expect(response).rejects.toBeInstanceOf(DeviceSessionNotFound);\n });\n\n it(\"should throw an error if the apdu receiver failed\", async () => {\n // given\n const connectedDevice = connectedDeviceStubBuilder({\n sendApdu: vi.fn(async () =>\n Promise.resolve(Left(new ReceiverApduError())),\n ),\n });\n const deviceSession = deviceSessionStubBuilder(\n { connectedDevice },\n () => logger,\n managerApi,\n secureChannel,\n );\n sessionService.addDeviceSession(deviceSession);\n const useCase = new SendApduUseCase(sessionService, () => logger);\n\n // when\n const response = useCase.execute({\n sessionId: fakeSessionId,\n apdu: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n });\n\n deviceSession.close();\n\n // then\n await expect(response).rejects.toBeInstanceOf(ReceiverApduError);\n });\n});\n"],
|
5
|
-
"mappings": "aAAA,IAAAA,EAAqB,qBAIrBC,EAA2C,8DAC3CC,EAAyC,6DACzCC,EAGO,iDACPC,EAA4C,wEAE5CC,EAA8C,4EAC9CC,EAA0C,gEAE1CC,EAAyC,kEAEzCC,EAA+C,wEAE/CC,EAA4C,wEAE5CC,EAAgC,mDAEhC,GAAG,KAAK,sDAAsD,EAE9D,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACJ,MAAMC,EAAgB,gBAEtB,SAAS,kBAAmB,IAAM,CAChC,WAAW,IAAM,CACfN,EAAS,IAAI,gCAA8B,CAAC,EAAG,oBAAoB,EACnEC,EAAiB,IAAI,8BAA4B,IAAMD,CAAM,EAC7DE,EAAuB,IAAI,4BAA0B,CAAC,CAAc,EACpEC,EAAa,IAAI,2BAAyBD,CAAoB,EAC9DE,EAA0B,IAAI,iCAC5B,CAAC,CACH,EACAC,EAAgB,IAAI,8BAA4BD,CAAuB,CACzE,CAAC,EAED,GAAG,4CAA6C,SAAY,CAE1D,MAAMG,KAAgB,4BACpB,CAAC,EACD,IAAMP,EACNG,EACAE,
|
6
|
-
"names": ["import_purify_ts", "import_TransportConnectedDevice", "import_DeviceSession", "import_Errors", "import_DefaultDeviceSessionService", "import_DefaultLoggerPublisherService", "import_AxiosManagerApiDataSource", "import_DefaultManagerApiService", "import_DefaultSecureChannelDataSource", "import_DefaultSecureChannelService", "import_SendApduUseCase", "logger", "sessionService", "managerApiDataSource", "managerApi", "secureChannelDataSource", "secureChannel", "fakeSessionId", "deviceSession", "response", "connectedDevice"]
|
4
|
+
"sourcesContent": ["import { Left } from \"purify-ts\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { connectedDeviceStubBuilder } from \"@api/transport/model/TransportConnectedDevice.stub\";\nimport { DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { deviceSessionStubBuilder } from \"@internal/device-session/model/DeviceSession.stub\";\nimport {\n DeviceSessionNotFound,\n ReceiverApduError,\n} from \"@internal/device-session/model/Errors\";\nimport { DefaultDeviceSessionService } from \"@internal/device-session/service/DefaultDeviceSessionService\";\nimport { type DeviceSessionService } from \"@internal/device-session/service/DeviceSessionService\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\nimport { AxiosManagerApiDataSource } from \"@internal/manager-api/data/AxiosManagerApiDataSource\";\nimport { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\nimport { DefaultManagerApiService } from \"@internal/manager-api/service/DefaultManagerApiService\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { type SecureChannelDataSource } from \"@internal/secure-channel/data/SecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\nimport { SendApduUseCase } from \"@internal/send/use-case/SendApduUseCase\";\n\nvi.mock(\"@internal/manager-api/data/AxiosManagerApiDataSource\");\n\nlet logger: LoggerPublisherService;\nlet sessionService: DeviceSessionService;\nlet managerApiDataSource: ManagerApiDataSource;\nlet managerApi: ManagerApiService;\nlet secureChannelDataSource: SecureChannelDataSource;\nlet secureChannel: SecureChannelService;\nconst fakeSessionId = \"fakeSessionId\";\n\ndescribe(\"SendApduUseCase\", () => {\n beforeEach(() => {\n logger = new DefaultLoggerPublisherService([], \"send-apdu-use-case\");\n sessionService = new DefaultDeviceSessionService(() => logger);\n managerApiDataSource = new AxiosManagerApiDataSource({} as DmkConfig);\n managerApi = new DefaultManagerApiService(managerApiDataSource);\n secureChannelDataSource = new DefaultSecureChannelDataSource(\n {} as DmkConfig,\n );\n secureChannel = new DefaultSecureChannelService(secureChannelDataSource);\n });\n\n it(\"should send an APDU to a connected device\", async () => {\n // given\n const deviceSession = deviceSessionStubBuilder(\n {},\n () => logger,\n managerApi,\n secureChannel,\n DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS,\n );\n sessionService.addDeviceSession(deviceSession);\n const useCase = new SendApduUseCase(sessionService, () => logger);\n\n // when\n const response = await useCase.execute({\n sessionId: fakeSessionId,\n apdu: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n });\n\n deviceSession.close();\n // then\n expect(deviceSession.connectedDevice.sendApdu).toHaveBeenCalledTimes(1);\n expect(response).toBeDefined();\n });\n\n it(\"should throw an error if the deviceSession is not found\", async () => {\n // given\n const useCase = new SendApduUseCase(sessionService, () => logger);\n\n // when\n const response = useCase.execute({\n sessionId: fakeSessionId,\n apdu: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n });\n\n // then\n await expect(response).rejects.toBeInstanceOf(DeviceSessionNotFound);\n });\n\n it(\"should throw an error if the apdu receiver failed\", async () => {\n // given\n const connectedDevice = connectedDeviceStubBuilder({\n sendApdu: vi.fn(async () =>\n Promise.resolve(Left(new ReceiverApduError())),\n ),\n });\n const deviceSession = deviceSessionStubBuilder(\n { connectedDevice },\n () => logger,\n managerApi,\n secureChannel,\n DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS,\n );\n sessionService.addDeviceSession(deviceSession);\n const useCase = new SendApduUseCase(sessionService, () => logger);\n\n // when\n const response = useCase.execute({\n sessionId: fakeSessionId,\n apdu: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n });\n\n deviceSession.close();\n\n // then\n await expect(response).rejects.toBeInstanceOf(ReceiverApduError);\n });\n});\n"],
|
5
|
+
"mappings": "aAAA,IAAAA,EAAqB,qBAIrBC,EAA2C,8DAC3CC,EAAyD,qEACzDC,EAAyC,6DACzCC,EAGO,iDACPC,EAA4C,wEAE5CC,EAA8C,4EAC9CC,EAA0C,gEAE1CC,EAAyC,kEAEzCC,EAA+C,wEAE/CC,EAA4C,wEAE5CC,EAAgC,mDAEhC,GAAG,KAAK,sDAAsD,EAE9D,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACJ,MAAMC,EAAgB,gBAEtB,SAAS,kBAAmB,IAAM,CAChC,WAAW,IAAM,CACfN,EAAS,IAAI,gCAA8B,CAAC,EAAG,oBAAoB,EACnEC,EAAiB,IAAI,8BAA4B,IAAMD,CAAM,EAC7DE,EAAuB,IAAI,4BAA0B,CAAC,CAAc,EACpEC,EAAa,IAAI,2BAAyBD,CAAoB,EAC9DE,EAA0B,IAAI,iCAC5B,CAAC,CACH,EACAC,EAAgB,IAAI,8BAA4BD,CAAuB,CACzE,CAAC,EAED,GAAG,4CAA6C,SAAY,CAE1D,MAAMG,KAAgB,4BACpB,CAAC,EACD,IAAMP,EACNG,EACAE,EACA,0CACF,EACAJ,EAAe,iBAAiBM,CAAa,EAI7C,MAAMC,EAAW,MAHD,IAAI,kBAAgBP,EAAgB,IAAMD,CAAM,EAGjC,QAAQ,CACrC,UAAWM,EACX,KAAM,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,CAC/C,CAAC,EAEDC,EAAc,MAAM,EAEpB,OAAOA,EAAc,gBAAgB,QAAQ,EAAE,sBAAsB,CAAC,EACtE,OAAOC,CAAQ,EAAE,YAAY,CAC/B,CAAC,EAED,GAAG,0DAA2D,SAAY,CAKxE,MAAMA,EAHU,IAAI,kBAAgBP,EAAgB,IAAMD,CAAM,EAGvC,QAAQ,CAC/B,UAAWM,EACX,KAAM,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,CAC/C,CAAC,EAGD,MAAM,OAAOE,CAAQ,EAAE,QAAQ,eAAe,uBAAqB,CACrE,CAAC,EAED,GAAG,oDAAqD,SAAY,CAElE,MAAMC,KAAkB,8BAA2B,CACjD,SAAU,GAAG,GAAG,SACd,QAAQ,WAAQ,QAAK,IAAI,mBAAmB,CAAC,CAC/C,CACF,CAAC,EACKF,KAAgB,4BACpB,CAAE,gBAAAE,CAAgB,EAClB,IAAMT,EACNG,EACAE,EACA,0CACF,EACAJ,EAAe,iBAAiBM,CAAa,EAI7C,MAAMC,EAHU,IAAI,kBAAgBP,EAAgB,IAAMD,CAAM,EAGvC,QAAQ,CAC/B,UAAWM,EACX,KAAM,IAAI,WAAW,CAAC,EAAM,EAAM,EAAM,CAAI,CAAC,CAC/C,CAAC,EAEDC,EAAc,MAAM,EAGpB,MAAM,OAAOC,CAAQ,EAAE,QAAQ,eAAe,mBAAiB,CACjE,CAAC,CACH,CAAC",
|
6
|
+
"names": ["import_purify_ts", "import_TransportConnectedDevice", "import_DeviceSessionRefresherConst", "import_DeviceSession", "import_Errors", "import_DefaultDeviceSessionService", "import_DefaultLoggerPublisherService", "import_AxiosManagerApiDataSource", "import_DefaultManagerApiService", "import_DefaultSecureChannelDataSource", "import_DefaultSecureChannelService", "import_SendApduUseCase", "logger", "sessionService", "managerApiDataSource", "managerApi", "secureChannelDataSource", "secureChannel", "fakeSessionId", "deviceSession", "response", "connectedDevice"]
|
7
7
|
}
|
package/lib/esm/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../src/api/DeviceManagementKit.ts"],
|
4
|
-
"sourcesContent": ["import { type Container } from \"inversify\";\nimport { type Observable } from \"rxjs\";\n\nimport { commandTypes } from \"@api/command/di/commandTypes\";\nimport { type CommandResult } from \"@api/command/model/CommandResult\";\nimport {\n type SendCommandUseCase,\n type SendCommandUseCaseArgs,\n} from \"@api/command/use-case/SendCommandUseCase\";\nimport {\n type ExecuteDeviceActionUseCase,\n type ExecuteDeviceActionUseCaseArgs,\n} from \"@api/device-action/use-case/ExecuteDeviceActionUseCase\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport { type DeviceSessionId } from \"@api/device-session/types\";\nimport { type ConnectedDevice } from \"@api/transport/model/ConnectedDevice\";\nimport {\n type ConnectUseCaseArgs,\n type DisconnectUseCaseArgs,\n type DiscoveredDevice,\n type GetConnectedDeviceUseCaseArgs,\n type SendApduUseCaseArgs,\n type StartDiscoveringUseCaseArgs,\n} from \"@api/types\";\nimport { configTypes } from \"@internal/config/di/configTypes\";\nimport { type GetDmkVersionUseCase } from \"@internal/config/use-case/GetDmkVersionUseCase\";\nimport { deviceSessionTypes } from \"@internal/device-session/di/deviceSessionTypes\";\nimport { type CloseSessionsUseCase } from \"@internal/device-session/use-case/CloseSessionsUseCase\";\nimport { type GetDeviceSessionStateUseCase } from \"@internal/device-session/use-case/GetDeviceSessionStateUseCase\";\nimport { discoveryTypes } from \"@internal/discovery/di/discoveryTypes\";\nimport { type ConnectUseCase } from \"@internal/discovery/use-case/ConnectUseCase\";\nimport { type DisconnectUseCase } from \"@internal/discovery/use-case/DisconnectUseCase\";\nimport { type GetConnectedDeviceUseCase } from \"@internal/discovery/use-case/GetConnectedDeviceUseCase\";\nimport { type ListConnectedDevicesUseCase } from \"@internal/discovery/use-case/ListConnectedDevicesUseCase\";\nimport {\n type ListenToAvailableDevicesUseCase,\n type ListenToAvailableDevicesUseCaseArgs,\n} from \"@internal/discovery/use-case/ListenToAvailableDevicesUseCase\";\nimport { type ListenToConnectedDeviceUseCase } from \"@internal/discovery/use-case/ListenToConnectedDeviceUseCase\";\nimport type { StartDiscoveringUseCase } from \"@internal/discovery/use-case/StartDiscoveringUseCase\";\nimport type { StopDiscoveringUseCase } from \"@internal/discovery/use-case/StopDiscoveringUseCase\";\nimport { sendTypes } from \"@internal/send/di/sendTypes\";\nimport { type SendApduUseCase } from \"@internal/send/use-case/SendApduUseCase\";\nimport { makeContainer, type MakeContainerProps } from \"@root/src/di\";\n\nimport {\n type DeviceActionIntermediateValue,\n type ExecuteDeviceActionReturnType,\n} from \"./device-action/DeviceAction\";\nimport { deviceActionTypes } from \"./device-action/di/deviceActionTypes\";\nimport { type DisableDeviceSessionRefresherUseCase } from \"./device-session/use-case/DisableDeviceSessionRefresher\";\nimport { type DmkError } from \"./Error\";\n\n/**\n * The main class to interact with the Device Management Kit.\n *\n * NB: do not instantiate this class directly, instead, use `LedgerDMKBuilder`.\n */\nexport class DeviceManagementKit {\n readonly container: Container;\n /** @internal */\n constructor({\n stub,\n transports,\n loggers,\n config,\n }: Partial<MakeContainerProps> = {}) {\n // NOTE: MakeContainerProps might not be the exact type here\n // For the init of the project this is sufficient, but we might need to\n // update the constructor arguments as we go (we might have more than just the container config)\n this.container = makeContainer({\n stub,\n transports,\n loggers,\n config,\n });\n }\n\n /**\n * Returns a promise resolving to the version of the SDK.\n */\n getVersion(): Promise<string> {\n return this.container\n .get<GetDmkVersionUseCase>(configTypes.GetDmkVersionUseCase)\n .getDmkVersion();\n }\n\n /**\n * Starts discovering devices connected.\n *\n * For the WeHID implementation, this use-case needs to be called as a result\n * of an user interaction (button \"click\" event for ex).\n *\n * @param {StartDiscoveringUseCaseArgs} args - The transport to use for discover, or undefined to discover from all transports.\n * @returns {Observable<DiscoveredDevice>} An observable of discovered devices.\n */\n startDiscovering(\n args: StartDiscoveringUseCaseArgs,\n ): Observable<DiscoveredDevice> {\n return this.container\n .get<StartDiscoveringUseCase>(discoveryTypes.StartDiscoveringUseCase)\n .execute(args);\n }\n\n /**\n * Stops discovering devices connected.\n */\n stopDiscovering() {\n return this.container\n .get<StopDiscoveringUseCase>(discoveryTypes.StopDiscoveringUseCase)\n .execute();\n }\n\n /**\n * Listen to list of known discovered devices (and later BLE).\n * @param {ListenToAvailableDevicesUseCaseArgs} args - The transport to use for discover, or undefined to discover from all transports.\n * @returns {Observable<DiscoveredDevice[]>} An observable of known discovered devices.\n */\n listenToAvailableDevices(\n args: ListenToAvailableDevicesUseCaseArgs,\n ): Observable<DiscoveredDevice[]> {\n return this.container\n .get<ListenToAvailableDevicesUseCase>(\n discoveryTypes.ListenToAvailableDevicesUseCase,\n )\n .execute(args);\n }\n\n /**\n * Connects to a device previously discovered with `DeviceManagementKit.startDiscovering`.\n * Creates a new device session which:\n * - Represents the connection to the device.\n * - Is terminated upon disconnection of the device.\n * - Exposes the device state through an observable (see `DeviceManagementKit.getDeviceSessionState`)\n * - Should be used for all subsequent communication with the device.\n *\n * @param {ConnectUseCaseArgs} args - The device ID (obtained in discovery) to connect to.\n * @returns The session ID to use for further communication with the device.\n */\n connect(args: ConnectUseCaseArgs): Promise<DeviceSessionId> {\n return this.container\n .get<ConnectUseCase>(discoveryTypes.ConnectUseCase)\n .execute(args);\n }\n\n /**\n * Disconnects to a discovered device.\n *\n * @param {DisconnectUseCaseArgs} args - The session ID to disconnect.\n */\n disconnect(args: DisconnectUseCaseArgs): Promise<void> {\n return this.container\n .get<DisconnectUseCase>(discoveryTypes.DisconnectUseCase)\n .execute(args);\n }\n\n /**\n * Sends an APDU command to a device through a device session.\n *\n * @param {SendApduUseCaseArgs} args - The device session ID and APDU command to send.\n */\n sendApdu(args: SendApduUseCaseArgs): Promise<ApduResponse> {\n return this.container\n .get<SendApduUseCase>(sendTypes.SendApduUseCase)\n .execute(args);\n }\n\n /**\n * Sends a command to a device through a device session.\n *\n * @param {SendCommandUseCaseArgs<Response, Args, ErrorCodes>} args - The device session ID, command, command error codes and command parameters to send.\n * @returns A promise resolving with the response from the command.\n */\n sendCommand<Response, Args, ErrorCodes>(\n args: SendCommandUseCaseArgs<Response, Args, ErrorCodes>,\n ): Promise<CommandResult<Response, ErrorCodes>> {\n return this.container\n .get<SendCommandUseCase>(commandTypes.SendCommandUseCase)\n .execute(args);\n }\n\n executeDeviceAction<\n Output,\n Input,\n Error extends DmkError,\n IntermediateValue extends DeviceActionIntermediateValue,\n >(\n args: ExecuteDeviceActionUseCaseArgs<\n Output,\n Input,\n Error,\n IntermediateValue\n >,\n ): ExecuteDeviceActionReturnType<Output, Error, IntermediateValue> {\n return this.container\n .get<ExecuteDeviceActionUseCase>(\n deviceActionTypes.ExecuteDeviceActionUseCase,\n )\n .execute(args);\n }\n\n /**\n * Gets the connected from its device session ID.\n *\n * @param {GetConnectedDeviceUseCaseArgs} args - The device session ID.\n * @returns {ConnectedDevice} The connected device.\n */\n getConnectedDevice(args: GetConnectedDeviceUseCaseArgs): ConnectedDevice {\n return this.container\n .get<GetConnectedDeviceUseCase>(discoveryTypes.GetConnectedDeviceUseCase)\n .execute(args);\n }\n\n /**\n * Gets the device state of a session.\n *\n * @param {{ sessionId: DeviceSessionId }} args - The device session ID.\n * @returns {Observable<DeviceSessionState>} An observable of the session device state.\n */\n getDeviceSessionState(args: {\n sessionId: DeviceSessionId;\n }): Observable<DeviceSessionState> {\n return this.container\n .get<GetDeviceSessionStateUseCase>(\n deviceSessionTypes.GetDeviceSessionStateUseCase,\n )\n .execute(args);\n }\n\n /**\n * Close the Device Management kit.\n *\n */\n close() {\n return this.container\n .get<CloseSessionsUseCase>(deviceSessionTypes.CloseSessionsUseCase)\n .execute();\n }\n\n /**\n * Lists all connected devices.\n *\n * @returns {ConnectedDevice[]} The list of device sessions.\n */\n listConnectedDevices(): ConnectedDevice[] {\n return this.container\n .get<ListConnectedDevicesUseCase>(\n discoveryTypes.ListConnectedDevicesUseCase,\n )\n .execute();\n }\n\n /**\n * Listen to connected device.\n *\n * @returns {Observable<ConnectedDevice>} An observable of connected device.\n */\n listenToConnectedDevice(): Observable<ConnectedDevice> {\n return this.container\n .get<ListenToConnectedDeviceUseCase>(\n discoveryTypes.ListenToConnectedDeviceUseCase,\n )\n .execute();\n }\n\n /**\n * Disable the device session refresher.\n *\n * @param {DisableDeviceSessionRefresherUseCaseArgs} args - The device session ID and a string to identify the blocker.\n * @returns {() => void} A function to reenable the device session refresher.\n */\n disableDeviceSessionRefresher(args: {\n sessionId: DeviceSessionId;\n blockerId: string;\n }) {\n return this.container\n .get<DisableDeviceSessionRefresherUseCase>(\n deviceSessionTypes.DisableDeviceSessionRefresherUseCase,\n )\n .execute(args);\n }\n}\n"],
|
5
|
-
"mappings": "AAGA,OAAS,gBAAAA,MAAoB,+BAsB7B,OAAS,eAAAC,MAAmB,kCAE5B,OAAS,sBAAAC,MAA0B,iDAGnC,OAAS,kBAAAC,MAAsB,wCAY/B,OAAS,aAAAC,MAAiB,8BAE1B,OAAS,iBAAAC,MAA8C,eAMvD,OAAS,qBAAAC,MAAyB,uCAS3B,MAAMC,CAAoB,CACtB,UAET,YAAY,CACV,KAAAC,EACA,WAAAC,EACA,QAAAC,EACA,OAAAC,CACF,EAAiC,CAAC,EAAG,CAInC,KAAK,UAAYN,EAAc,CAC7B,KAAAG,EACA,WAAAC,EACA,QAAAC,EACA,OAAAC,CACF,CAAC,CACH,CAKA,YAA8B,CAC5B,OAAO,KAAK,UACT,IAA0BV,EAAY,oBAAoB,EAC1D,cAAc,CACnB,CAWA,iBACEW,EAC8B,CAC9B,OAAO,KAAK,UACT,IAA6BT,EAAe,uBAAuB,EACnE,QAAQS,CAAI,CACjB,CAKA,iBAAkB,CAChB,OAAO,KAAK,UACT,IAA4BT,EAAe,sBAAsB,EACjE,QAAQ,CACb,CAOA,yBACES,EACgC,CAChC,OAAO,KAAK,UACT,IACCT,EAAe,+BACjB,EACC,QAAQS,CAAI,CACjB,
|
4
|
+
"sourcesContent": ["import { type Container } from \"inversify\";\nimport { type Observable } from \"rxjs\";\n\nimport { commandTypes } from \"@api/command/di/commandTypes\";\nimport { type CommandResult } from \"@api/command/model/CommandResult\";\nimport {\n type SendCommandUseCase,\n type SendCommandUseCaseArgs,\n} from \"@api/command/use-case/SendCommandUseCase\";\nimport {\n type ExecuteDeviceActionUseCase,\n type ExecuteDeviceActionUseCaseArgs,\n} from \"@api/device-action/use-case/ExecuteDeviceActionUseCase\";\nimport { type ApduResponse } from \"@api/device-session/ApduResponse\";\nimport { type DeviceSessionState } from \"@api/device-session/DeviceSessionState\";\nimport { type DeviceSessionId } from \"@api/device-session/types\";\nimport { type ConnectedDevice } from \"@api/transport/model/ConnectedDevice\";\nimport {\n type ConnectUseCaseArgs,\n type DisconnectUseCaseArgs,\n type DiscoveredDevice,\n type GetConnectedDeviceUseCaseArgs,\n type SendApduUseCaseArgs,\n type StartDiscoveringUseCaseArgs,\n} from \"@api/types\";\nimport { configTypes } from \"@internal/config/di/configTypes\";\nimport { type GetDmkVersionUseCase } from \"@internal/config/use-case/GetDmkVersionUseCase\";\nimport { deviceSessionTypes } from \"@internal/device-session/di/deviceSessionTypes\";\nimport { type CloseSessionsUseCase } from \"@internal/device-session/use-case/CloseSessionsUseCase\";\nimport { type GetDeviceSessionStateUseCase } from \"@internal/device-session/use-case/GetDeviceSessionStateUseCase\";\nimport { discoveryTypes } from \"@internal/discovery/di/discoveryTypes\";\nimport { type ConnectUseCase } from \"@internal/discovery/use-case/ConnectUseCase\";\nimport { type DisconnectUseCase } from \"@internal/discovery/use-case/DisconnectUseCase\";\nimport { type GetConnectedDeviceUseCase } from \"@internal/discovery/use-case/GetConnectedDeviceUseCase\";\nimport { type ListConnectedDevicesUseCase } from \"@internal/discovery/use-case/ListConnectedDevicesUseCase\";\nimport {\n type ListenToAvailableDevicesUseCase,\n type ListenToAvailableDevicesUseCaseArgs,\n} from \"@internal/discovery/use-case/ListenToAvailableDevicesUseCase\";\nimport { type ListenToConnectedDeviceUseCase } from \"@internal/discovery/use-case/ListenToConnectedDeviceUseCase\";\nimport type { StartDiscoveringUseCase } from \"@internal/discovery/use-case/StartDiscoveringUseCase\";\nimport type { StopDiscoveringUseCase } from \"@internal/discovery/use-case/StopDiscoveringUseCase\";\nimport { sendTypes } from \"@internal/send/di/sendTypes\";\nimport { type SendApduUseCase } from \"@internal/send/use-case/SendApduUseCase\";\nimport { makeContainer, type MakeContainerProps } from \"@root/src/di\";\n\nimport {\n type DeviceActionIntermediateValue,\n type ExecuteDeviceActionReturnType,\n} from \"./device-action/DeviceAction\";\nimport { deviceActionTypes } from \"./device-action/di/deviceActionTypes\";\nimport { type DisableDeviceSessionRefresherUseCase } from \"./device-session/use-case/DisableDeviceSessionRefresher\";\nimport { type DmkError } from \"./Error\";\n\n/**\n * The main class to interact with the Device Management Kit.\n *\n * NB: do not instantiate this class directly, instead, use `LedgerDMKBuilder`.\n */\nexport class DeviceManagementKit {\n readonly container: Container;\n /** @internal */\n constructor({\n stub,\n transports,\n loggers,\n config,\n }: Partial<MakeContainerProps> = {}) {\n // NOTE: MakeContainerProps might not be the exact type here\n // For the init of the project this is sufficient, but we might need to\n // update the constructor arguments as we go (we might have more than just the container config)\n this.container = makeContainer({\n stub,\n transports,\n loggers,\n config,\n });\n }\n\n /**\n * Returns a promise resolving to the version of the SDK.\n */\n getVersion(): Promise<string> {\n return this.container\n .get<GetDmkVersionUseCase>(configTypes.GetDmkVersionUseCase)\n .getDmkVersion();\n }\n\n /**\n * Starts discovering devices connected.\n *\n * For the WeHID implementation, this use-case needs to be called as a result\n * of an user interaction (button \"click\" event for ex).\n *\n * @param {StartDiscoveringUseCaseArgs} args - The transport to use for discover, or undefined to discover from all transports.\n * @returns {Observable<DiscoveredDevice>} An observable of discovered devices.\n */\n startDiscovering(\n args: StartDiscoveringUseCaseArgs,\n ): Observable<DiscoveredDevice> {\n return this.container\n .get<StartDiscoveringUseCase>(discoveryTypes.StartDiscoveringUseCase)\n .execute(args);\n }\n\n /**\n * Stops discovering devices connected.\n */\n stopDiscovering() {\n return this.container\n .get<StopDiscoveringUseCase>(discoveryTypes.StopDiscoveringUseCase)\n .execute();\n }\n\n /**\n * Listen to list of known discovered devices (and later BLE).\n * @param {ListenToAvailableDevicesUseCaseArgs} args - The transport to use for discover, or undefined to discover from all transports.\n * @returns {Observable<DiscoveredDevice[]>} An observable of known discovered devices.\n */\n listenToAvailableDevices(\n args: ListenToAvailableDevicesUseCaseArgs,\n ): Observable<DiscoveredDevice[]> {\n return this.container\n .get<ListenToAvailableDevicesUseCase>(\n discoveryTypes.ListenToAvailableDevicesUseCase,\n )\n .execute(args);\n }\n\n /**\n * Connects to a device previously discovered with `DeviceManagementKit.startDiscovering`.\n * Creates a new device session which:\n * - Represents the connection to the device.\n * - Is terminated upon disconnection of the device.\n * - Exposes the device state through an observable (see `DeviceManagementKit.getDeviceSessionState`)\n * - Should be used for all subsequent communication with the device.\n *\n * @param {ConnectUseCaseArgs} args - The arguments for connecting to the device.\n * - `device`: The discovered device obtained from `StartDiscoveringUseCase`.\n * - `sessionRefresherOptions` (optional): Configuration for session refreshing.\n * - `isRefresherDisabled`: Whether the refresher is disabled.\n * - `pollingInterval`: The refresh interval in milliseconds\n * @returns The session ID to use for further communication with the device.\n */\n connect(args: ConnectUseCaseArgs): Promise<DeviceSessionId> {\n return this.container\n .get<ConnectUseCase>(discoveryTypes.ConnectUseCase)\n .execute(args);\n }\n\n /**\n * Disconnects to a discovered device.\n *\n * @param {DisconnectUseCaseArgs} args - The session ID to disconnect.\n */\n disconnect(args: DisconnectUseCaseArgs): Promise<void> {\n return this.container\n .get<DisconnectUseCase>(discoveryTypes.DisconnectUseCase)\n .execute(args);\n }\n\n /**\n * Sends an APDU command to a device through a device session.\n *\n * @param {SendApduUseCaseArgs} args - The device session ID and APDU command to send.\n */\n sendApdu(args: SendApduUseCaseArgs): Promise<ApduResponse> {\n return this.container\n .get<SendApduUseCase>(sendTypes.SendApduUseCase)\n .execute(args);\n }\n\n /**\n * Sends a command to a device through a device session.\n *\n * @param {SendCommandUseCaseArgs<Response, Args, ErrorCodes>} args - The device session ID, command, command error codes and command parameters to send.\n * @returns A promise resolving with the response from the command.\n */\n sendCommand<Response, Args, ErrorCodes>(\n args: SendCommandUseCaseArgs<Response, Args, ErrorCodes>,\n ): Promise<CommandResult<Response, ErrorCodes>> {\n return this.container\n .get<SendCommandUseCase>(commandTypes.SendCommandUseCase)\n .execute(args);\n }\n\n executeDeviceAction<\n Output,\n Input,\n Error extends DmkError,\n IntermediateValue extends DeviceActionIntermediateValue,\n >(\n args: ExecuteDeviceActionUseCaseArgs<\n Output,\n Input,\n Error,\n IntermediateValue\n >,\n ): ExecuteDeviceActionReturnType<Output, Error, IntermediateValue> {\n return this.container\n .get<ExecuteDeviceActionUseCase>(\n deviceActionTypes.ExecuteDeviceActionUseCase,\n )\n .execute(args);\n }\n\n /**\n * Gets the connected from its device session ID.\n *\n * @param {GetConnectedDeviceUseCaseArgs} args - The device session ID.\n * @returns {ConnectedDevice} The connected device.\n */\n getConnectedDevice(args: GetConnectedDeviceUseCaseArgs): ConnectedDevice {\n return this.container\n .get<GetConnectedDeviceUseCase>(discoveryTypes.GetConnectedDeviceUseCase)\n .execute(args);\n }\n\n /**\n * Gets the device state of a session.\n *\n * @param {{ sessionId: DeviceSessionId }} args - The device session ID.\n * @returns {Observable<DeviceSessionState>} An observable of the session device state.\n */\n getDeviceSessionState(args: {\n sessionId: DeviceSessionId;\n }): Observable<DeviceSessionState> {\n return this.container\n .get<GetDeviceSessionStateUseCase>(\n deviceSessionTypes.GetDeviceSessionStateUseCase,\n )\n .execute(args);\n }\n\n /**\n * Close the Device Management kit.\n *\n */\n close() {\n return this.container\n .get<CloseSessionsUseCase>(deviceSessionTypes.CloseSessionsUseCase)\n .execute();\n }\n\n /**\n * Lists all connected devices.\n *\n * @returns {ConnectedDevice[]} The list of device sessions.\n */\n listConnectedDevices(): ConnectedDevice[] {\n return this.container\n .get<ListConnectedDevicesUseCase>(\n discoveryTypes.ListConnectedDevicesUseCase,\n )\n .execute();\n }\n\n /**\n * Listen to connected device.\n *\n * @returns {Observable<ConnectedDevice>} An observable of connected device.\n */\n listenToConnectedDevice(): Observable<ConnectedDevice> {\n return this.container\n .get<ListenToConnectedDeviceUseCase>(\n discoveryTypes.ListenToConnectedDeviceUseCase,\n )\n .execute();\n }\n\n /**\n * Disable the device session refresher.\n *\n * @param {DisableDeviceSessionRefresherUseCaseArgs} args - The device session ID and a string to identify the blocker.\n * @returns {() => void} A function to reenable the device session refresher.\n */\n disableDeviceSessionRefresher(args: {\n sessionId: DeviceSessionId;\n blockerId: string;\n }) {\n return this.container\n .get<DisableDeviceSessionRefresherUseCase>(\n deviceSessionTypes.DisableDeviceSessionRefresherUseCase,\n )\n .execute(args);\n }\n}\n"],
|
5
|
+
"mappings": "AAGA,OAAS,gBAAAA,MAAoB,+BAsB7B,OAAS,eAAAC,MAAmB,kCAE5B,OAAS,sBAAAC,MAA0B,iDAGnC,OAAS,kBAAAC,MAAsB,wCAY/B,OAAS,aAAAC,MAAiB,8BAE1B,OAAS,iBAAAC,MAA8C,eAMvD,OAAS,qBAAAC,MAAyB,uCAS3B,MAAMC,CAAoB,CACtB,UAET,YAAY,CACV,KAAAC,EACA,WAAAC,EACA,QAAAC,EACA,OAAAC,CACF,EAAiC,CAAC,EAAG,CAInC,KAAK,UAAYN,EAAc,CAC7B,KAAAG,EACA,WAAAC,EACA,QAAAC,EACA,OAAAC,CACF,CAAC,CACH,CAKA,YAA8B,CAC5B,OAAO,KAAK,UACT,IAA0BV,EAAY,oBAAoB,EAC1D,cAAc,CACnB,CAWA,iBACEW,EAC8B,CAC9B,OAAO,KAAK,UACT,IAA6BT,EAAe,uBAAuB,EACnE,QAAQS,CAAI,CACjB,CAKA,iBAAkB,CAChB,OAAO,KAAK,UACT,IAA4BT,EAAe,sBAAsB,EACjE,QAAQ,CACb,CAOA,yBACES,EACgC,CAChC,OAAO,KAAK,UACT,IACCT,EAAe,+BACjB,EACC,QAAQS,CAAI,CACjB,CAiBA,QAAQA,EAAoD,CAC1D,OAAO,KAAK,UACT,IAAoBT,EAAe,cAAc,EACjD,QAAQS,CAAI,CACjB,CAOA,WAAWA,EAA4C,CACrD,OAAO,KAAK,UACT,IAAuBT,EAAe,iBAAiB,EACvD,QAAQS,CAAI,CACjB,CAOA,SAASA,EAAkD,CACzD,OAAO,KAAK,UACT,IAAqBR,EAAU,eAAe,EAC9C,QAAQQ,CAAI,CACjB,CAQA,YACEA,EAC8C,CAC9C,OAAO,KAAK,UACT,IAAwBZ,EAAa,kBAAkB,EACvD,QAAQY,CAAI,CACjB,CAEA,oBAMEA,EAMiE,CACjE,OAAO,KAAK,UACT,IACCN,EAAkB,0BACpB,EACC,QAAQM,CAAI,CACjB,CAQA,mBAAmBA,EAAsD,CACvE,OAAO,KAAK,UACT,IAA+BT,EAAe,yBAAyB,EACvE,QAAQS,CAAI,CACjB,CAQA,sBAAsBA,EAEa,CACjC,OAAO,KAAK,UACT,IACCV,EAAmB,4BACrB,EACC,QAAQU,CAAI,CACjB,CAMA,OAAQ,CACN,OAAO,KAAK,UACT,IAA0BV,EAAmB,oBAAoB,EACjE,QAAQ,CACb,CAOA,sBAA0C,CACxC,OAAO,KAAK,UACT,IACCC,EAAe,2BACjB,EACC,QAAQ,CACb,CAOA,yBAAuD,CACrD,OAAO,KAAK,UACT,IACCA,EAAe,8BACjB,EACC,QAAQ,CACb,CAQA,8BAA8BS,EAG3B,CACD,OAAO,KAAK,UACT,IACCV,EAAmB,oCACrB,EACC,QAAQU,CAAI,CACjB,CACF",
|
6
6
|
"names": ["commandTypes", "configTypes", "deviceSessionTypes", "discoveryTypes", "sendTypes", "makeContainer", "deviceActionTypes", "DeviceManagementKit", "stub", "transports", "loggers", "config", "args"]
|
7
7
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import{Left as p}from"purify-ts";import{CommandResultStatus as i}from"../../command/model/CommandResult";import{
|
1
|
+
import{Left as p}from"purify-ts";import{CommandResultStatus as i}from"../../command/model/CommandResult";import{DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS as f}from"../../../internal/device-session/data/DeviceSessionRefresherConst";import{deviceSessionStubBuilder as l}from"../../../internal/device-session/model/DeviceSession.stub";import{DefaultDeviceSessionService as v}from"../../../internal/device-session/service/DefaultDeviceSessionService";import{DefaultLoggerPublisherService as g}from"../../../internal/logger-publisher/service/DefaultLoggerPublisherService";import{AxiosManagerApiDataSource as D}from"../../../internal/manager-api/data/AxiosManagerApiDataSource";import{DefaultManagerApiService as C}from"../../../internal/manager-api/service/DefaultManagerApiService";import{DefaultSecureChannelDataSource as h}from"../../../internal/secure-channel/data/DefaultSecureChannelDataSource";import{DefaultSecureChannelService as y}from"../../../internal/secure-channel/service/DefaultSecureChannelService";import{SendCommandUseCase as a}from"./SendCommandUseCase";let o,t,n,c,m,u;const S="fakeSessionId";let s;describe("SendCommandUseCase",()=>{beforeEach(()=>{o=new g([],"send-command-use-case"),t=new v(()=>o),c=new D({}),n=new C(c),u=new h({}),m=new y(u),s={getApdu:vi.fn(),parseResponse:vi.fn()}}),afterEach(()=>{vi.restoreAllMocks()}),it("should send a command to a connected device",async()=>{const e=l({},()=>o,n,m,f);t.addDeviceSession(e);const r=new a(t,()=>o);vi.spyOn(e,"sendCommand").mockResolvedValue({status:i.Success,data:void 0});const d=await r.execute({sessionId:S,command:s});e.close(),expect(d).toStrictEqual({status:i.Success,data:void 0})}),it("should throw an error if the session is not found",async()=>{const e=new a(t,()=>o);vi.spyOn(t,"getDeviceSessionById").mockReturnValue(p({_tag:"DeviceSessionNotFound"}));const r=e.execute({sessionId:S,command:s});await expect(r).rejects.toMatchObject({_tag:"DeviceSessionNotFound"})})});
|
2
2
|
//# sourceMappingURL=SendCommandUseCase.test.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../../../src/api/command/use-case/SendCommandUseCase.test.ts"],
|
4
|
-
"sourcesContent": ["import { Left } from \"purify-ts\";\n\nimport { type Command } from \"@api/command/Command\";\nimport { CommandResultStatus } from \"@api/command/model/CommandResult\";\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { deviceSessionStubBuilder } from \"@internal/device-session/model/DeviceSession.stub\";\nimport { DefaultDeviceSessionService } from \"@internal/device-session/service/DefaultDeviceSessionService\";\nimport { type DeviceSessionService } from \"@internal/device-session/service/DeviceSessionService\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\nimport { AxiosManagerApiDataSource } from \"@internal/manager-api/data/AxiosManagerApiDataSource\";\nimport { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\nimport { DefaultManagerApiService } from \"@internal/manager-api/service/DefaultManagerApiService\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { type SecureChannelDataSource } from \"@internal/secure-channel/data/SecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\n\nimport { SendCommandUseCase } from \"./SendCommandUseCase\";\n\nlet logger: LoggerPublisherService;\nlet sessionService: DeviceSessionService;\nlet managerApi: ManagerApiService;\nlet managerApiDataSource: ManagerApiDataSource;\nlet secureChannel: SecureChannelService;\nlet secureChannelDataSource: SecureChannelDataSource;\nconst fakeSessionId = \"fakeSessionId\";\nlet command: Command<{ status: string }>;\n\ndescribe(\"SendCommandUseCase\", () => {\n beforeEach(() => {\n logger = new DefaultLoggerPublisherService([], \"send-command-use-case\");\n sessionService = new DefaultDeviceSessionService(() => logger);\n managerApiDataSource = new AxiosManagerApiDataSource({} as DmkConfig);\n managerApi = new DefaultManagerApiService(managerApiDataSource);\n secureChannelDataSource = new DefaultSecureChannelDataSource(\n {} as DmkConfig,\n );\n secureChannel = new DefaultSecureChannelService(secureChannelDataSource);\n command = {\n getApdu: vi.fn(),\n parseResponse: vi.fn(),\n };\n });\n\n afterEach(() => {\n vi.restoreAllMocks();\n });\n\n it(\"should send a command to a connected device\", async () => {\n const deviceSession = deviceSessionStubBuilder(\n {},\n () => logger,\n managerApi,\n secureChannel,\n );\n sessionService.addDeviceSession(deviceSession);\n const useCase = new SendCommandUseCase(sessionService, () => logger);\n\n vi.spyOn(deviceSession, \"sendCommand\").mockResolvedValue({\n status: CommandResultStatus.Success,\n data: undefined,\n });\n\n const response = await useCase.execute<{ status: string }, void, void>({\n sessionId: fakeSessionId,\n command,\n });\n\n deviceSession.close();\n\n expect(response).toStrictEqual({\n status: CommandResultStatus.Success,\n data: undefined,\n });\n });\n\n it(\"should throw an error if the session is not found\", async () => {\n const useCase = new SendCommandUseCase(sessionService, () => logger);\n vi.spyOn(sessionService, \"getDeviceSessionById\").mockReturnValue(\n Left({ _tag: \"DeviceSessionNotFound\" }),\n );\n\n const res = useCase.execute<{ status: string }, void, void>({\n sessionId: fakeSessionId,\n command,\n });\n\n await expect(res).rejects.toMatchObject({ _tag: \"DeviceSessionNotFound\" });\n });\n});\n"],
|
5
|
-
"mappings": "AAAA,OAAS,QAAAA,MAAY,YAGrB,OAAS,uBAAAC,MAA2B,mCAGpC,OAAS,4BAAAC,MAAgC,oDACzC,OAAS,+BAAAC,MAAmC,+DAE5C,OAAS,iCAAAC,MAAqC,mEAC9C,OAAS,6BAAAC,MAAiC,uDAE1C,OAAS,4BAAAC,MAAgC,yDAEzC,OAAS,kCAAAC,MAAsC,+DAE/C,OAAS,+BAAAC,MAAmC,+DAG5C,OAAS,sBAAAC,MAA0B,uBAEnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACJ,MAAMC,EAAgB,gBACtB,IAAIC,EAEJ,SAAS,qBAAsB,IAAM,CACnC,WAAW,IAAM,CACfP,EAAS,IAAIN,EAA8B,CAAC,EAAG,uBAAuB,EACtEO,EAAiB,IAAIR,EAA4B,IAAMO,CAAM,EAC7DG,EAAuB,IAAIR,EAA0B,CAAC,CAAc,EACpEO,EAAa,IAAIN,EAAyBO,CAAoB,EAC9DE,EAA0B,IAAIR,EAC5B,CAAC,CACH,EACAO,EAAgB,IAAIN,EAA4BO,CAAuB,EACvEE,EAAU,CACR,QAAS,GAAG,GAAG,EACf,cAAe,GAAG,GAAG,CACvB,CACF,CAAC,EAED,UAAU,IAAM,CACd,GAAG,gBAAgB,CACrB,CAAC,EAED,GAAG,8CAA+C,SAAY,CAC5D,MAAMC,EAAgBhB,EACpB,CAAC,EACD,IAAMQ,EACNE,EACAE,CACF,
|
6
|
-
"names": ["Left", "CommandResultStatus", "deviceSessionStubBuilder", "DefaultDeviceSessionService", "DefaultLoggerPublisherService", "AxiosManagerApiDataSource", "DefaultManagerApiService", "DefaultSecureChannelDataSource", "DefaultSecureChannelService", "SendCommandUseCase", "logger", "sessionService", "managerApi", "managerApiDataSource", "secureChannel", "secureChannelDataSource", "fakeSessionId", "command", "deviceSession", "useCase", "response", "res"]
|
4
|
+
"sourcesContent": ["import { Left } from \"purify-ts\";\n\nimport { type Command } from \"@api/command/Command\";\nimport { CommandResultStatus } from \"@api/command/model/CommandResult\";\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { deviceSessionStubBuilder } from \"@internal/device-session/model/DeviceSession.stub\";\nimport { DefaultDeviceSessionService } from \"@internal/device-session/service/DefaultDeviceSessionService\";\nimport { type DeviceSessionService } from \"@internal/device-session/service/DeviceSessionService\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\nimport { AxiosManagerApiDataSource } from \"@internal/manager-api/data/AxiosManagerApiDataSource\";\nimport { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\nimport { DefaultManagerApiService } from \"@internal/manager-api/service/DefaultManagerApiService\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { type SecureChannelDataSource } from \"@internal/secure-channel/data/SecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\n\nimport { SendCommandUseCase } from \"./SendCommandUseCase\";\n\nlet logger: LoggerPublisherService;\nlet sessionService: DeviceSessionService;\nlet managerApi: ManagerApiService;\nlet managerApiDataSource: ManagerApiDataSource;\nlet secureChannel: SecureChannelService;\nlet secureChannelDataSource: SecureChannelDataSource;\nconst fakeSessionId = \"fakeSessionId\";\nlet command: Command<{ status: string }>;\n\ndescribe(\"SendCommandUseCase\", () => {\n beforeEach(() => {\n logger = new DefaultLoggerPublisherService([], \"send-command-use-case\");\n sessionService = new DefaultDeviceSessionService(() => logger);\n managerApiDataSource = new AxiosManagerApiDataSource({} as DmkConfig);\n managerApi = new DefaultManagerApiService(managerApiDataSource);\n secureChannelDataSource = new DefaultSecureChannelDataSource(\n {} as DmkConfig,\n );\n secureChannel = new DefaultSecureChannelService(secureChannelDataSource);\n command = {\n getApdu: vi.fn(),\n parseResponse: vi.fn(),\n };\n });\n\n afterEach(() => {\n vi.restoreAllMocks();\n });\n\n it(\"should send a command to a connected device\", async () => {\n const deviceSession = deviceSessionStubBuilder(\n {},\n () => logger,\n managerApi,\n secureChannel,\n DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS,\n );\n sessionService.addDeviceSession(deviceSession);\n const useCase = new SendCommandUseCase(sessionService, () => logger);\n\n vi.spyOn(deviceSession, \"sendCommand\").mockResolvedValue({\n status: CommandResultStatus.Success,\n data: undefined,\n });\n\n const response = await useCase.execute<{ status: string }, void, void>({\n sessionId: fakeSessionId,\n command,\n });\n\n deviceSession.close();\n\n expect(response).toStrictEqual({\n status: CommandResultStatus.Success,\n data: undefined,\n });\n });\n\n it(\"should throw an error if the session is not found\", async () => {\n const useCase = new SendCommandUseCase(sessionService, () => logger);\n vi.spyOn(sessionService, \"getDeviceSessionById\").mockReturnValue(\n Left({ _tag: \"DeviceSessionNotFound\" }),\n );\n\n const res = useCase.execute<{ status: string }, void, void>({\n sessionId: fakeSessionId,\n command,\n });\n\n await expect(res).rejects.toMatchObject({ _tag: \"DeviceSessionNotFound\" });\n });\n});\n"],
|
5
|
+
"mappings": "AAAA,OAAS,QAAAA,MAAY,YAGrB,OAAS,uBAAAC,MAA2B,mCAGpC,OAAS,4CAAAC,MAAgD,4DACzD,OAAS,4BAAAC,MAAgC,oDACzC,OAAS,+BAAAC,MAAmC,+DAE5C,OAAS,iCAAAC,MAAqC,mEAC9C,OAAS,6BAAAC,MAAiC,uDAE1C,OAAS,4BAAAC,MAAgC,yDAEzC,OAAS,kCAAAC,MAAsC,+DAE/C,OAAS,+BAAAC,MAAmC,+DAG5C,OAAS,sBAAAC,MAA0B,uBAEnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACJ,MAAMC,EAAgB,gBACtB,IAAIC,EAEJ,SAAS,qBAAsB,IAAM,CACnC,WAAW,IAAM,CACfP,EAAS,IAAIN,EAA8B,CAAC,EAAG,uBAAuB,EACtEO,EAAiB,IAAIR,EAA4B,IAAMO,CAAM,EAC7DG,EAAuB,IAAIR,EAA0B,CAAC,CAAc,EACpEO,EAAa,IAAIN,EAAyBO,CAAoB,EAC9DE,EAA0B,IAAIR,EAC5B,CAAC,CACH,EACAO,EAAgB,IAAIN,EAA4BO,CAAuB,EACvEE,EAAU,CACR,QAAS,GAAG,GAAG,EACf,cAAe,GAAG,GAAG,CACvB,CACF,CAAC,EAED,UAAU,IAAM,CACd,GAAG,gBAAgB,CACrB,CAAC,EAED,GAAG,8CAA+C,SAAY,CAC5D,MAAMC,EAAgBhB,EACpB,CAAC,EACD,IAAMQ,EACNE,EACAE,EACAb,CACF,EACAU,EAAe,iBAAiBO,CAAa,EAC7C,MAAMC,EAAU,IAAIV,EAAmBE,EAAgB,IAAMD,CAAM,EAEnE,GAAG,MAAMQ,EAAe,aAAa,EAAE,kBAAkB,CACvD,OAAQlB,EAAoB,QAC5B,KAAM,MACR,CAAC,EAED,MAAMoB,EAAW,MAAMD,EAAQ,QAAwC,CACrE,UAAWH,EACX,QAAAC,CACF,CAAC,EAEDC,EAAc,MAAM,EAEpB,OAAOE,CAAQ,EAAE,cAAc,CAC7B,OAAQpB,EAAoB,QAC5B,KAAM,MACR,CAAC,CACH,CAAC,EAED,GAAG,oDAAqD,SAAY,CAClE,MAAMmB,EAAU,IAAIV,EAAmBE,EAAgB,IAAMD,CAAM,EACnE,GAAG,MAAMC,EAAgB,sBAAsB,EAAE,gBAC/CZ,EAAK,CAAE,KAAM,uBAAwB,CAAC,CACxC,EAEA,MAAMsB,EAAMF,EAAQ,QAAwC,CAC1D,UAAWH,EACX,QAAAC,CACF,CAAC,EAED,MAAM,OAAOI,CAAG,EAAE,QAAQ,cAAc,CAAE,KAAM,uBAAwB,CAAC,CAC3E,CAAC,CACH,CAAC",
|
6
|
+
"names": ["Left", "CommandResultStatus", "DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS", "deviceSessionStubBuilder", "DefaultDeviceSessionService", "DefaultLoggerPublisherService", "AxiosManagerApiDataSource", "DefaultManagerApiService", "DefaultSecureChannelDataSource", "DefaultSecureChannelService", "SendCommandUseCase", "logger", "sessionService", "managerApi", "managerApiDataSource", "secureChannel", "secureChannelDataSource", "fakeSessionId", "command", "deviceSession", "useCase", "response", "res"]
|
7
7
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import{Left as
|
1
|
+
import{Left as i,Right as n}from"purify-ts";import{assign as r,createMachine as a}from"xstate";import{UserInteractionRequired as p}from"../../device-action/model/UserInteractionRequired";import{UnknownDAError as c}from"../../device-action/os/Errors";import{GetDeviceStatusDeviceAction as m}from"../../device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction";import{GoToDashboardDeviceAction as s}from"../../device-action/os/GoToDashboard/GoToDashboardDeviceAction";import{ListAppsDeviceAction as d}from"../../device-action/os/ListApps/ListAppsDeviceAction";import{ListInstalledAppsDeviceAction as l}from"../../secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction";const v=(e,o=!1)=>{d.mockImplementation(()=>({makeStateMachine:vi.fn().mockImplementation(()=>a({id:"MockListAppsDeviceAction",initial:"ready",states:{ready:{after:{0:"done"},entry:r({intermediateValue:()=>({requiredUserInteraction:p.AllowListApps})})},done:{type:"final"}},output:()=>o?i(new c("ListApps failed")):n(e)}))}))},h=(e=!1)=>{s.mockImplementation(()=>({makeStateMachine:vi.fn().mockImplementation(()=>a({id:"MockGoToDashboardDeviceAction",initial:"ready",states:{ready:{after:{0:"done"},entry:r({intermediateValue:()=>({requiredUserInteraction:p.None})})},done:{type:"final"}},output:()=>e?i(new c("GoToDashboard failed")):n(void 0)}))}))},L=(e=[{currentApp:"BOLOS",currentAppVersion:"1.0.0"}])=>{const o=vi.fn();for(const t of e)o.mockImplementationOnce(()=>"currentApp"in t?n(t):i(t));m.mockImplementation(()=>({makeStateMachine:vi.fn().mockImplementation(()=>a({id:"MockGetDeviceStatusDeviceAction",initial:"ready",states:{ready:{after:{0:"done"},entry:r({intermediateValue:()=>({requiredUserInteraction:p.None})})},done:{type:"final"}},output:o}))}))},S=(e=[])=>{l.mockImplementation(()=>({makeStateMachine:vi.fn().mockImplementation(()=>a({id:"MockListInstalledAppsDeviceAction",initial:"ready",states:{ready:{after:{0:"done"},entry:r({intermediateValue:()=>({requiredUserInteraction:p.None})})},done:{type:"final"}},output:e.reduce((o,t)=>o.mockImplementationOnce(()=>"installedApps"in t?n(t):i(t)),vi.fn()).mockImplementation(()=>n([]))}))}))};export{L as setupGetDeviceStatusMock,h as setupGoToDashboardMock,v as setupListAppsMock,S as setupListInstalledAppsMock};
|
2
2
|
//# sourceMappingURL=setupTestMachine.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../../../src/api/device-action/__test-utils__/setupTestMachine.ts"],
|
4
|
-
"sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { type Mock } from \"vitest\";\nimport { assign, createMachine } from \"xstate\";\n\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport { UnknownDAError } from \"@api/device-action/os/Errors\";\nimport { GetDeviceStatusDeviceAction } from \"@api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction\";\nimport { GoToDashboardDeviceAction } from \"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\";\nimport { ListAppsDeviceAction } from \"@api/device-action/os/ListApps/ListAppsDeviceAction\";\nimport { type DmkError } from \"@api/Error\";\n\nimport { type BTC_APP } from \"./data\";\n\ntype App = typeof BTC_APP;\n\nexport const setupListAppsMock = (apps: App[], error = false) => {\n (ListAppsDeviceAction as Mock).mockImplementation(() => ({\n makeStateMachine: vi.fn().mockImplementation(() =>\n createMachine({\n id: \"MockListAppsDeviceAction\",\n initial: \"ready\",\n states: {\n ready: {\n after: {\n 0: \"done\",\n },\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n }),\n }),\n },\n done: {\n type: \"final\",\n },\n },\n output: () => {\n return error\n ? Left(new UnknownDAError(\"ListApps failed\"))\n : Right(apps);\n },\n }),\n ),\n }));\n};\n\nexport const setupGoToDashboardMock = (error: boolean = false) => {\n (GoToDashboardDeviceAction as Mock).mockImplementation(() => ({\n makeStateMachine: vi.fn().mockImplementation(() =>\n createMachine({\n id: \"MockGoToDashboardDeviceAction\",\n initial: \"ready\",\n states: {\n ready: {\n after: {\n 0: \"done\",\n },\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n }),\n }),\n },\n done: {\n type: \"final\",\n },\n },\n output: () => {\n return error\n ? Left(new UnknownDAError(\"GoToDashboard failed\"))\n : Right(undefined);\n },\n }),\n ),\n }));\n};\n\nexport const setupGetDeviceStatusMock = (\n outputs: ReadonlyArray<\n { currentApp: string; currentAppVersion: string } | DmkError\n > = [\n {\n currentApp: \"BOLOS\",\n currentAppVersion: \"1.0.0\",\n },\n ],\n) => {\n const outputFn = vi.fn();\n\n for (const output of outputs) {\n outputFn.mockImplementationOnce(() =>\n \"currentApp\" in output ? Right(output) : Left(output),\n );\n }\n (GetDeviceStatusDeviceAction as Mock).mockImplementation(() => ({\n makeStateMachine: vi.fn().mockImplementation(() =>\n createMachine({\n id: \"MockGetDeviceStatusDeviceAction\",\n initial: \"ready\",\n states: {\n ready: {\n after: {\n 0: \"done\",\n },\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n }),\n }),\n },\n done: {\n type: \"final\",\n },\n },\n output: outputFn,\n }),\n ),\n }));\n};\n"],
|
5
|
-
"mappings": "AAAA,OAAS,QAAAA,EAAM,SAAAC,MAAa,YAE5B,OAAS,UAAAC,EAAQ,iBAAAC,MAAqB,SAEtC,OAAS,2BAAAC,MAA+B,mDACxC,OAAS,kBAAAC,MAAsB,+BAC/B,OAAS,+BAAAC,MAAmC,oEAC5C,OAAS,6BAAAC,MAAiC,gEAC1C,OAAS,wBAAAC,MAA4B,
|
6
|
-
"names": ["Left", "Right", "assign", "createMachine", "UserInteractionRequired", "UnknownDAError", "GetDeviceStatusDeviceAction", "GoToDashboardDeviceAction", "ListAppsDeviceAction", "setupListAppsMock", "apps", "error", "setupGoToDashboardMock", "setupGetDeviceStatusMock", "outputs", "outputFn", "output"]
|
4
|
+
"sourcesContent": ["import { Left, Right } from \"purify-ts\";\nimport { type Mock } from \"vitest\";\nimport { assign, createMachine } from \"xstate\";\n\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport { UnknownDAError } from \"@api/device-action/os/Errors\";\nimport { GetDeviceStatusDeviceAction } from \"@api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction\";\nimport { GoToDashboardDeviceAction } from \"@api/device-action/os/GoToDashboard/GoToDashboardDeviceAction\";\nimport { ListAppsDeviceAction } from \"@api/device-action/os/ListApps/ListAppsDeviceAction\";\nimport { type DmkError } from \"@api/Error\";\nimport { ListInstalledAppsDeviceAction } from \"@api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction\";\nimport { type InstalledApp } from \"@api/secure-channel/device-action/ListInstalledApps/types\";\n\nimport { type BTC_APP } from \"./data\";\n\ntype App = typeof BTC_APP;\n\nexport const setupListAppsMock = (apps: App[], error = false) => {\n (ListAppsDeviceAction as Mock).mockImplementation(() => ({\n makeStateMachine: vi.fn().mockImplementation(() =>\n createMachine({\n id: \"MockListAppsDeviceAction\",\n initial: \"ready\",\n states: {\n ready: {\n after: {\n 0: \"done\",\n },\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.AllowListApps,\n }),\n }),\n },\n done: {\n type: \"final\",\n },\n },\n output: () => {\n return error\n ? Left(new UnknownDAError(\"ListApps failed\"))\n : Right(apps);\n },\n }),\n ),\n }));\n};\n\nexport const setupGoToDashboardMock = (error: boolean = false) => {\n (GoToDashboardDeviceAction as Mock).mockImplementation(() => ({\n makeStateMachine: vi.fn().mockImplementation(() =>\n createMachine({\n id: \"MockGoToDashboardDeviceAction\",\n initial: \"ready\",\n states: {\n ready: {\n after: {\n 0: \"done\",\n },\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n }),\n }),\n },\n done: {\n type: \"final\",\n },\n },\n output: () => {\n return error\n ? Left(new UnknownDAError(\"GoToDashboard failed\"))\n : Right(undefined);\n },\n }),\n ),\n }));\n};\n\nexport const setupGetDeviceStatusMock = (\n outputs: ReadonlyArray<\n { currentApp: string; currentAppVersion: string } | DmkError\n > = [\n {\n currentApp: \"BOLOS\",\n currentAppVersion: \"1.0.0\",\n },\n ],\n) => {\n const outputFn = vi.fn();\n\n for (const output of outputs) {\n outputFn.mockImplementationOnce(() =>\n \"currentApp\" in output ? Right(output) : Left(output),\n );\n }\n (GetDeviceStatusDeviceAction as Mock).mockImplementation(() => ({\n makeStateMachine: vi.fn().mockImplementation(() =>\n createMachine({\n id: \"MockGetDeviceStatusDeviceAction\",\n initial: \"ready\",\n states: {\n ready: {\n after: {\n 0: \"done\",\n },\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n }),\n }),\n },\n done: {\n type: \"final\",\n },\n },\n output: outputFn,\n }),\n ),\n }));\n};\n\nexport const setupListInstalledAppsMock = (\n outputs: Array<{ installedApps: InstalledApp[] } | DmkError> = [],\n) => {\n (ListInstalledAppsDeviceAction as Mock).mockImplementation(() => ({\n makeStateMachine: vi.fn().mockImplementation(() =>\n createMachine({\n id: \"MockListInstalledAppsDeviceAction\",\n initial: \"ready\",\n states: {\n ready: {\n after: {\n 0: \"done\",\n },\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n }),\n }),\n },\n done: {\n type: \"final\",\n },\n },\n output: outputs\n .reduce(\n (mockFn, output) =>\n mockFn.mockImplementationOnce(() =>\n \"installedApps\" in output ? Right(output) : Left(output),\n ),\n vi.fn(),\n )\n .mockImplementation(() => Right([])),\n }),\n ),\n }));\n};\n"],
|
5
|
+
"mappings": "AAAA,OAAS,QAAAA,EAAM,SAAAC,MAAa,YAE5B,OAAS,UAAAC,EAAQ,iBAAAC,MAAqB,SAEtC,OAAS,2BAAAC,MAA+B,mDACxC,OAAS,kBAAAC,MAAsB,+BAC/B,OAAS,+BAAAC,MAAmC,oEAC5C,OAAS,6BAAAC,MAAiC,gEAC1C,OAAS,wBAAAC,MAA4B,sDAErC,OAAS,iCAAAC,MAAqC,oFAOvC,MAAMC,EAAoB,CAACC,EAAaC,EAAQ,KAAU,CAC9DJ,EAA8B,mBAAmB,KAAO,CACvD,iBAAkB,GAAG,GAAG,EAAE,mBAAmB,IAC3CL,EAAc,CACZ,GAAI,2BACJ,QAAS,QACT,OAAQ,CACN,MAAO,CACL,MAAO,CACL,EAAG,MACL,EACA,MAAOD,EAAO,CACZ,kBAAmB,KAAO,CACxB,wBAAyBE,EAAwB,aACnD,EACF,CAAC,CACH,EACA,KAAM,CACJ,KAAM,OACR,CACF,EACA,OAAQ,IACCQ,EACHZ,EAAK,IAAIK,EAAe,iBAAiB,CAAC,EAC1CJ,EAAMU,CAAI,CAElB,CAAC,CACH,CACF,EAAE,CACJ,EAEaE,EAAyB,CAACD,EAAiB,KAAU,CAC/DL,EAAmC,mBAAmB,KAAO,CAC5D,iBAAkB,GAAG,GAAG,EAAE,mBAAmB,IAC3CJ,EAAc,CACZ,GAAI,gCACJ,QAAS,QACT,OAAQ,CACN,MAAO,CACL,MAAO,CACL,EAAG,MACL,EACA,MAAOD,EAAO,CACZ,kBAAmB,KAAO,CACxB,wBAAyBE,EAAwB,IACnD,EACF,CAAC,CACH,EACA,KAAM,CACJ,KAAM,OACR,CACF,EACA,OAAQ,IACCQ,EACHZ,EAAK,IAAIK,EAAe,sBAAsB,CAAC,EAC/CJ,EAAM,MAAS,CAEvB,CAAC,CACH,CACF,EAAE,CACJ,EAEaa,EAA2B,CACtCC,EAEI,CACF,CACE,WAAY,QACZ,kBAAmB,OACrB,CACF,IACG,CACH,MAAMC,EAAW,GAAG,GAAG,EAEvB,UAAWC,KAAUF,EACnBC,EAAS,uBAAuB,IAC9B,eAAgBC,EAAShB,EAAMgB,CAAM,EAAIjB,EAAKiB,CAAM,CACtD,EAEDX,EAAqC,mBAAmB,KAAO,CAC9D,iBAAkB,GAAG,GAAG,EAAE,mBAAmB,IAC3CH,EAAc,CACZ,GAAI,kCACJ,QAAS,QACT,OAAQ,CACN,MAAO,CACL,MAAO,CACL,EAAG,MACL,EACA,MAAOD,EAAO,CACZ,kBAAmB,KAAO,CACxB,wBAAyBE,EAAwB,IACnD,EACF,CAAC,CACH,EACA,KAAM,CACJ,KAAM,OACR,CACF,EACA,OAAQY,CACV,CAAC,CACH,CACF,EAAE,CACJ,EAEaE,EAA6B,CACxCH,EAA+D,CAAC,IAC7D,CACFN,EAAuC,mBAAmB,KAAO,CAChE,iBAAkB,GAAG,GAAG,EAAE,mBAAmB,IAC3CN,EAAc,CACZ,GAAI,oCACJ,QAAS,QACT,OAAQ,CACN,MAAO,CACL,MAAO,CACL,EAAG,MACL,EACA,MAAOD,EAAO,CACZ,kBAAmB,KAAO,CACxB,wBAAyBE,EAAwB,IACnD,EACF,CAAC,CACH,EACA,KAAM,CACJ,KAAM,OACR,CACF,EACA,OAAQW,EACL,OACC,CAACI,EAAQF,IACPE,EAAO,uBAAuB,IAC5B,kBAAmBF,EAAShB,EAAMgB,CAAM,EAAIjB,EAAKiB,CAAM,CACzD,EACF,GAAG,GAAG,CACR,EACC,mBAAmB,IAAMhB,EAAM,CAAC,CAAC,CAAC,CACvC,CAAC,CACH,CACF,EAAE,CACJ",
|
6
|
+
"names": ["Left", "Right", "assign", "createMachine", "UserInteractionRequired", "UnknownDAError", "GetDeviceStatusDeviceAction", "GoToDashboardDeviceAction", "ListAppsDeviceAction", "ListInstalledAppsDeviceAction", "setupListAppsMock", "apps", "error", "setupGoToDashboardMock", "setupGetDeviceStatusMock", "outputs", "outputFn", "output", "setupListInstalledAppsMock", "mockFn"]
|
7
7
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import{
|
1
|
+
import{DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS as f}from"../../../internal/device-session/data/DeviceSessionRefresherConst";import{deviceSessionStubBuilder as l}from"../../../internal/device-session/model/DeviceSession.stub";import{DeviceSessionNotFound as S}from"../../../internal/device-session/model/Errors";import{DefaultDeviceSessionService as m}from"../../../internal/device-session/service/DefaultDeviceSessionService";import{DefaultLoggerPublisherService as v}from"../../../internal/logger-publisher/service/DefaultLoggerPublisherService";import{AxiosManagerApiDataSource as d}from"../../../internal/manager-api/data/AxiosManagerApiDataSource";import{DefaultManagerApiService as p}from"../../../internal/manager-api/service/DefaultManagerApiService";import{DefaultSecureChannelDataSource as u}from"../../../internal/secure-channel/data/DefaultSecureChannelDataSource";import{DefaultSecureChannelService as D}from"../../../internal/secure-channel/service/DefaultSecureChannelService";import{DisableDeviceSessionRefresherUseCase as n}from"./DisableDeviceSessionRefresher";vi.mock("uuid",()=>({v4:()=>"fakeUuid"}));let e,r,i,o,t,c;describe("DisableDeviceSessionRefresherUseCase",()=>{beforeEach(()=>{e=new v([],"get-connected-device-use-case-test"),r=new m(()=>e),t=new p(new d({})),c=new D(new u({}))}),afterEach(()=>{vi.clearAllMocks()}),describe("execute",()=>{it("should disable the device session refresher and return a function to reenable it",()=>{o=l({id:"fakeSessionId"},()=>e,t,c,f),r.addDeviceSession(o),i=new n(r,()=>e);const s=vi.spyOn(o,"disableRefresher"),a=i.execute({sessionId:"fakeSessionId",blockerId:"fakeBlockerId"});expect(s).toHaveBeenCalledWith("fakeBlockerId"),a(),o.close()}),it("should throw error when deviceSession is not found",()=>{i=new n(r,()=>e);try{i.execute({sessionId:"fakeSessionId",blockerId:"fakeBlockerId"})}catch(s){expect(s).toBeInstanceOf(S)}})})});
|
2
2
|
//# sourceMappingURL=DisableDeviceSessionRefresher.test.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../../../src/api/device-session/use-case/DisableDeviceSessionRefresher.test.ts"],
|
4
|
-
"sourcesContent": ["import { type DmkConfig } from \"@api/DmkConfig\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { type DeviceSession } from \"@internal/device-session/model/DeviceSession\";\nimport { deviceSessionStubBuilder } from \"@internal/device-session/model/DeviceSession.stub\";\nimport { DeviceSessionNotFound } from \"@internal/device-session/model/Errors\";\nimport { DefaultDeviceSessionService } from \"@internal/device-session/service/DefaultDeviceSessionService\";\nimport { type DeviceSessionService } from \"@internal/device-session/service/DeviceSessionService\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\nimport { AxiosManagerApiDataSource } from \"@internal/manager-api/data/AxiosManagerApiDataSource\";\nimport { DefaultManagerApiService } from \"@internal/manager-api/service/DefaultManagerApiService\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\n\nimport { DisableDeviceSessionRefresherUseCase } from \"./DisableDeviceSessionRefresher\";\n\nvi.mock(\"uuid\", () => ({\n v4: () => \"fakeUuid\",\n}));\n\nlet logger: LoggerPublisherService;\nlet sessionService: DeviceSessionService;\nlet useCase: DisableDeviceSessionRefresherUseCase;\nlet deviceSession: DeviceSession;\nlet managerApi: ManagerApiService;\nlet secureChannel: SecureChannelService;\ndescribe(\"DisableDeviceSessionRefresherUseCase\", () => {\n beforeEach(() => {\n logger = new DefaultLoggerPublisherService(\n [],\n \"get-connected-device-use-case-test\",\n );\n sessionService = new DefaultDeviceSessionService(() => logger);\n managerApi = new DefaultManagerApiService(\n new AxiosManagerApiDataSource({} as DmkConfig),\n );\n secureChannel = new DefaultSecureChannelService(\n new DefaultSecureChannelDataSource({} as DmkConfig),\n );\n });\n\n afterEach(() => {\n vi.clearAllMocks();\n });\n\n describe(\"execute\", () => {\n it(\"should disable the device session refresher and return a function to reenable it\", () => {\n // given\n deviceSession = deviceSessionStubBuilder(\n { id: \"fakeSessionId\" },\n () => logger,\n managerApi,\n secureChannel,\n );\n sessionService.addDeviceSession(deviceSession);\n useCase = new DisableDeviceSessionRefresherUseCase(\n sessionService,\n () => logger,\n );\n\n const spy = vi.spyOn(deviceSession, \"disableRefresher\");\n\n // when\n const reenableRefresher = useCase.execute({\n sessionId: \"fakeSessionId\",\n blockerId: \"fakeBlockerId\",\n });\n\n // then\n expect(spy).toHaveBeenCalledWith(\"fakeBlockerId\");\n reenableRefresher();\n deviceSession.close();\n });\n\n it(\"should throw error when deviceSession is not found\", () => {\n // given\n useCase = new DisableDeviceSessionRefresherUseCase(\n sessionService,\n () => logger,\n );\n\n // when\n try {\n useCase.execute({\n sessionId: \"fakeSessionId\",\n blockerId: \"fakeBlockerId\",\n });\n } catch (error) {\n // then\n expect(error).toBeInstanceOf(DeviceSessionNotFound);\n }\n });\n });\n});\n"],
|
5
|
-
"mappings": "
|
6
|
-
"names": ["deviceSessionStubBuilder", "DeviceSessionNotFound", "DefaultDeviceSessionService", "DefaultLoggerPublisherService", "AxiosManagerApiDataSource", "DefaultManagerApiService", "DefaultSecureChannelDataSource", "DefaultSecureChannelService", "DisableDeviceSessionRefresherUseCase", "logger", "sessionService", "useCase", "deviceSession", "managerApi", "secureChannel", "spy", "reenableRefresher", "error"]
|
4
|
+
"sourcesContent": ["import { type DmkConfig } from \"@api/DmkConfig\";\nimport { type LoggerPublisherService } from \"@api/logger-publisher/service/LoggerPublisherService\";\nimport { DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS } from \"@internal/device-session/data/DeviceSessionRefresherConst\";\nimport { type DeviceSession } from \"@internal/device-session/model/DeviceSession\";\nimport { deviceSessionStubBuilder } from \"@internal/device-session/model/DeviceSession.stub\";\nimport { DeviceSessionNotFound } from \"@internal/device-session/model/Errors\";\nimport { DefaultDeviceSessionService } from \"@internal/device-session/service/DefaultDeviceSessionService\";\nimport { type DeviceSessionService } from \"@internal/device-session/service/DeviceSessionService\";\nimport { DefaultLoggerPublisherService } from \"@internal/logger-publisher/service/DefaultLoggerPublisherService\";\nimport { AxiosManagerApiDataSource } from \"@internal/manager-api/data/AxiosManagerApiDataSource\";\nimport { DefaultManagerApiService } from \"@internal/manager-api/service/DefaultManagerApiService\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\nimport { type SecureChannelService } from \"@internal/secure-channel/service/SecureChannelService\";\n\nimport { DisableDeviceSessionRefresherUseCase } from \"./DisableDeviceSessionRefresher\";\n\nvi.mock(\"uuid\", () => ({\n v4: () => \"fakeUuid\",\n}));\n\nlet logger: LoggerPublisherService;\nlet sessionService: DeviceSessionService;\nlet useCase: DisableDeviceSessionRefresherUseCase;\nlet deviceSession: DeviceSession;\nlet managerApi: ManagerApiService;\nlet secureChannel: SecureChannelService;\ndescribe(\"DisableDeviceSessionRefresherUseCase\", () => {\n beforeEach(() => {\n logger = new DefaultLoggerPublisherService(\n [],\n \"get-connected-device-use-case-test\",\n );\n sessionService = new DefaultDeviceSessionService(() => logger);\n managerApi = new DefaultManagerApiService(\n new AxiosManagerApiDataSource({} as DmkConfig),\n );\n secureChannel = new DefaultSecureChannelService(\n new DefaultSecureChannelDataSource({} as DmkConfig),\n );\n });\n\n afterEach(() => {\n vi.clearAllMocks();\n });\n\n describe(\"execute\", () => {\n it(\"should disable the device session refresher and return a function to reenable it\", () => {\n // given\n deviceSession = deviceSessionStubBuilder(\n { id: \"fakeSessionId\" },\n () => logger,\n managerApi,\n secureChannel,\n DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS,\n );\n sessionService.addDeviceSession(deviceSession);\n useCase = new DisableDeviceSessionRefresherUseCase(\n sessionService,\n () => logger,\n );\n\n const spy = vi.spyOn(deviceSession, \"disableRefresher\");\n\n // when\n const reenableRefresher = useCase.execute({\n sessionId: \"fakeSessionId\",\n blockerId: \"fakeBlockerId\",\n });\n\n // then\n expect(spy).toHaveBeenCalledWith(\"fakeBlockerId\");\n reenableRefresher();\n deviceSession.close();\n });\n\n it(\"should throw error when deviceSession is not found\", () => {\n // given\n useCase = new DisableDeviceSessionRefresherUseCase(\n sessionService,\n () => logger,\n );\n\n // when\n try {\n useCase.execute({\n sessionId: \"fakeSessionId\",\n blockerId: \"fakeBlockerId\",\n });\n } catch (error) {\n // then\n expect(error).toBeInstanceOf(DeviceSessionNotFound);\n }\n });\n });\n});\n"],
|
5
|
+
"mappings": "AAEA,OAAS,4CAAAA,MAAgD,4DAEzD,OAAS,4BAAAC,MAAgC,oDACzC,OAAS,yBAAAC,MAA6B,wCACtC,OAAS,+BAAAC,MAAmC,+DAE5C,OAAS,iCAAAC,MAAqC,mEAC9C,OAAS,6BAAAC,MAAiC,uDAC1C,OAAS,4BAAAC,MAAgC,yDAEzC,OAAS,kCAAAC,MAAsC,+DAC/C,OAAS,+BAAAC,MAAmC,+DAG5C,OAAS,wCAAAC,MAA4C,kCAErD,GAAG,KAAK,OAAQ,KAAO,CACrB,GAAI,IAAM,UACZ,EAAE,EAEF,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACJ,SAAS,uCAAwC,IAAM,CACrD,WAAW,IAAM,CACfL,EAAS,IAAIN,EACX,CAAC,EACD,oCACF,EACAO,EAAiB,IAAIR,EAA4B,IAAMO,CAAM,EAC7DI,EAAa,IAAIR,EACf,IAAID,EAA0B,CAAC,CAAc,CAC/C,EACAU,EAAgB,IAAIP,EAClB,IAAID,EAA+B,CAAC,CAAc,CACpD,CACF,CAAC,EAED,UAAU,IAAM,CACd,GAAG,cAAc,CACnB,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,mFAAoF,IAAM,CAE3FM,EAAgBZ,EACd,CAAE,GAAI,eAAgB,EACtB,IAAMS,EACNI,EACAC,EACAf,CACF,EACAW,EAAe,iBAAiBE,CAAa,EAC7CD,EAAU,IAAIH,EACZE,EACA,IAAMD,CACR,EAEA,MAAMM,EAAM,GAAG,MAAMH,EAAe,kBAAkB,EAGhDI,EAAoBL,EAAQ,QAAQ,CACxC,UAAW,gBACX,UAAW,eACb,CAAC,EAGD,OAAOI,CAAG,EAAE,qBAAqB,eAAe,EAChDC,EAAkB,EAClBJ,EAAc,MAAM,CACtB,CAAC,EAED,GAAG,qDAAsD,IAAM,CAE7DD,EAAU,IAAIH,EACZE,EACA,IAAMD,CACR,EAGA,GAAI,CACFE,EAAQ,QAAQ,CACd,UAAW,gBACX,UAAW,eACb,CAAC,CACH,OAASM,EAAO,CAEd,OAAOA,CAAK,EAAE,eAAehB,CAAqB,CACpD,CACF,CAAC,CACH,CAAC,CACH,CAAC",
|
6
|
+
"names": ["DEVICE_SESSION_REFRESHER_DEFAULT_OPTIONS", "deviceSessionStubBuilder", "DeviceSessionNotFound", "DefaultDeviceSessionService", "DefaultLoggerPublisherService", "AxiosManagerApiDataSource", "DefaultManagerApiService", "DefaultSecureChannelDataSource", "DefaultSecureChannelService", "DisableDeviceSessionRefresherUseCase", "logger", "sessionService", "useCase", "deviceSession", "managerApi", "secureChannel", "spy", "reenableRefresher", "error"]
|
7
7
|
}
|
package/lib/esm/src/api/index.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
import{Apdu as r}from"./apdu/model/Apdu";import{APDU_MAX_PAYLOAD as p,ApduBuilder as i}from"./apdu/utils/ApduBuilder";import{ApduParser as n}from"./apdu/utils/ApduParser";export*from"./apdu/utils/AppBuilderError";import{ByteArrayBuilder as f}from"./apdu/utils/ByteArrayBuilder";import{ByteArrayParser as
|
1
|
+
import{Apdu as r}from"./apdu/model/Apdu";import{APDU_MAX_PAYLOAD as p,ApduBuilder as i}from"./apdu/utils/ApduBuilder";import{ApduParser as n}from"./apdu/utils/ApduParser";export*from"./apdu/utils/AppBuilderError";import{ByteArrayBuilder as f}from"./apdu/utils/ByteArrayBuilder";import{ByteArrayParser as x}from"./apdu/utils/ByteArrayParser";import{InvalidStatusWordError as A}from"./command/Errors";import{CommandResultFactory as D,CommandResultStatus as l,isSuccessCommandResult as v}from"./command/model/CommandResult";import{CloseAppCommand as C}from"./command/os/CloseAppCommand";import{GetAppAndVersionCommand as g}from"./command/os/GetAppAndVersionCommand";import{BatteryStatusType as B,GetBatteryStatusCommand as G}from"./command/os/GetBatteryStatusCommand";import{GetOsVersionCommand as E}from"./command/os/GetOsVersionCommand";import{ListAppsCommand as b}from"./command/os/ListAppsCommand";import{LoadCertificateCommand as T}from"./command/os/LoadCertificateCommand";import{OpenAppCommand as U}from"./command/os/OpenAppCommand";import{isCommandErrorCode as V}from"./command/utils/CommandErrors";import{CommandUtils as _}from"./command/utils/CommandUtils";import{GlobalCommandError as H,GlobalCommandErrorHandler as W}from"./command/utils/GlobalCommandError";import{DeviceModel as K,DeviceModelId as X,LEDGER_VENDOR_ID as q}from"./device/DeviceModel";import{DeviceStatus as N}from"./device/DeviceStatus";import{DeviceActionStatus as j}from"./device-action/model/DeviceActionState";import{UserInteractionRequired as J}from"./device-action/model/UserInteractionRequired";import{CallTaskInAppDeviceAction as Z}from"./device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction";import{UnknownDAError as ee}from"./device-action/os/Errors";import{GetDeviceStatusDeviceAction as re}from"./device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction";import{GoToDashboardDeviceAction as pe}from"./device-action/os/GoToDashboard/GoToDashboardDeviceAction";import{ListAppsDeviceAction as me}from"./device-action/os/ListApps/ListAppsDeviceAction";import{ListAppsWithMetadataDeviceAction as ae}from"./device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction";import{OpenAppDeviceAction as fe}from"./device-action/os/OpenAppDeviceAction/OpenAppDeviceAction";import{SendCommandInAppDeviceAction as xe}from"./device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction";import{XStateDeviceAction as Ae}from"./device-action/xstate-utils/XStateDeviceAction";import{StaticDeviceModelDataSource as De}from"./device-model/data/StaticDeviceModelDataSource";import{BleDeviceInfos as ve}from"./device-model/model/BleDeviceInfos";import{TransportDeviceModel as Ce}from"./device-model/model/DeviceModel";import{ApduResponse as ge}from"./device-session/ApduResponse";export*from"./device-session/data/FramerConst";import{DeviceSessionStateType as Ge}from"./device-session/DeviceSessionState";import{GenuineCheckDeviceAction as Ee}from"./secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction";import{InstallAppDeviceAction as be}from"./secure-channel/device-action/InstallApp/InstallAppDeviceAction";import{ListInstalledAppsDeviceAction as Te}from"./secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction";import{UninstallAppDeviceAction as Ue}from"./secure-channel/device-action/UninstallApp/UninstallAppDeviceAction";import{defaultApduReceiverServiceStubBuilder as Ve}from"./device-session/service/DefaultApduReceiverService.stub";import{defaultApduSenderServiceStubBuilder as _e}from"./device-session/service/DefaultApduSenderService.stub";import{FramerUtils as He}from"./device-session/utils/FramerUtils";import{DeviceManagementKit as Fe}from"./DeviceManagementKit";import{DeviceManagementKitBuilder as Xe}from"./DeviceManagementKitBuilder";export*from"./Error";import{LogLevel as Ne}from"./logger-subscriber/model/LogLevel";import{ConsoleLogger as je}from"./logger-subscriber/service/ConsoleLogger";import{WebLogsExporterLogger as Je}from"./logger-subscriber/service/WebLogsExporterLogger";import{ConnectedDevice as Ze}from"./transport/model/ConnectedDevice";export*from"./transport/model/Errors";import{TransportConnectedDevice as oo}from"./transport/model/TransportConnectedDevice";import{connectedDeviceStubBuilder as to}from"./transport/model/TransportConnectedDevice.stub";export*from"./types";import{base64StringToBuffer as mo,isBase64String as no}from"./utils/Base64String";import{bufferToHexaString as so,hexaStringToBuffer as fo,isHexaString as co}from"./utils/HexaString";export{p as APDU_MAX_PAYLOAD,r as Apdu,i as ApduBuilder,n as ApduParser,ge as ApduResponse,B as BatteryStatusType,ve as BleDeviceInfos,f as ByteArrayBuilder,x as ByteArrayParser,Z as CallTaskInAppDeviceAction,C as CloseAppCommand,D as CommandResultFactory,l as CommandResultStatus,_ as CommandUtils,Ze as ConnectedDevice,je as ConsoleLogger,j as DeviceActionStatus,Fe as DeviceManagementKit,Xe as DeviceManagementKitBuilder,K as DeviceModel,X as DeviceModelId,Ge as DeviceSessionStateType,N as DeviceStatus,He as FramerUtils,Ee as GenuineCheckDeviceAction,g as GetAppAndVersionCommand,G as GetBatteryStatusCommand,re as GetDeviceStatusDeviceAction,E as GetOsVersionCommand,H as GlobalCommandError,W as GlobalCommandErrorHandler,pe as GoToDashboardDeviceAction,be as InstallAppDeviceAction,A as InvalidStatusWordError,q as LEDGER_VENDOR_ID,b as ListAppsCommand,me as ListAppsDeviceAction,ae as ListAppsWithMetadataDeviceAction,Te as ListInstalledAppsDeviceAction,T as LoadCertificateCommand,Ne as LogLevel,U as OpenAppCommand,fe as OpenAppDeviceAction,xe as SendCommandInAppDeviceAction,De as StaticDeviceModelDataSource,oo as TransportConnectedDevice,Ce as TransportDeviceModel,Ue as UninstallAppDeviceAction,ee as UnknownDAError,J as UserInteractionRequired,Je as WebLogsExporterLogger,Ae as XStateDeviceAction,mo as base64StringToBuffer,so as bufferToHexaString,to as connectedDeviceStubBuilder,Ve as defaultApduReceiverServiceStubBuilder,_e as defaultApduSenderServiceStubBuilder,fo as hexaStringToBuffer,no as isBase64String,V as isCommandErrorCode,co as isHexaString,v as isSuccessCommandResult};
|
2
2
|
//# sourceMappingURL=index.js.map
|