@ledgerhq/device-management-kit 0.0.0-develop-20250106155719 → 0.0.0-webhid-20250124103640
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/lib/cjs/package.json +4 -1
- package/lib/cjs/src/api/DeviceManagementKit.test.js +1 -1
- package/lib/cjs/src/api/DeviceManagementKit.test.js.map +2 -2
- package/lib/cjs/src/api/DeviceManagementKitBuilder.js +1 -1
- package/lib/cjs/src/api/DeviceManagementKitBuilder.js.map +2 -2
- package/lib/cjs/src/api/DmkConfig.js +1 -1
- package/lib/cjs/src/api/DmkConfig.js.map +1 -1
- package/lib/cjs/src/api/command/model/CommandResult.js.map +1 -1
- 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 +2 -2
- package/lib/cjs/src/api/command/utils/CommandUtils.js +1 -1
- package/lib/cjs/src/api/command/utils/CommandUtils.js.map +2 -2
- package/lib/cjs/src/api/device-action/DeviceAction.js.map +1 -1
- package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
- package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
- package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
- package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +3 -3
- package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +1 -1
- package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +3 -3
- package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js +1 -1
- package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js.map +2 -2
- package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +1 -1
- package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +3 -3
- package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js +1 -1
- package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js.map +2 -2
- package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
- package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +3 -3
- package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/types.js +1 -1
- package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/types.js.map +1 -1
- package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
- package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +2 -2
- package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js +1 -1
- package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.js.map +1 -1
- package/lib/cjs/src/api/device-session/DeviceSessionState.js +1 -1
- package/lib/cjs/src/api/device-session/DeviceSessionState.js.map +2 -2
- package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js +1 -1
- package/lib/cjs/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js.map +2 -2
- package/lib/cjs/src/api/types.js.map +1 -1
- package/lib/cjs/src/di.js +1 -1
- package/lib/cjs/src/di.js.map +2 -2
- 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/service/DefaultDeviceSessionService.test.js +1 -1
- package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +2 -2
- 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 +2 -2
- 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 +2 -2
- package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js +1 -1
- package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js.map +2 -2
- package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
- package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js.map +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
- package/lib/cjs/src/internal/manager-api/data/AxiosManagerApiDataSource.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 +3 -3
- package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js +1 -1
- package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js.map +1 -1
- package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
- package/lib/cjs/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
- package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js +1 -1
- package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
- package/lib/cjs/src/internal/manager-api/model/Const.js +1 -1
- package/lib/cjs/src/internal/manager-api/model/Const.js.map +3 -3
- package/lib/cjs/src/internal/manager-api/model/Errors.js +1 -1
- package/lib/cjs/src/internal/manager-api/model/Errors.js.map +3 -3
- package/lib/cjs/src/internal/manager-api/model/Params.js +2 -0
- package/lib/cjs/src/internal/manager-api/model/Params.js.map +7 -0
- package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
- package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
- 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 +2 -2
- package/lib/cjs/src/internal/transport/di/transportModule.test.js +1 -1
- package/lib/cjs/src/internal/transport/di/transportModule.test.js.map +2 -2
- package/lib/esm/package.json +4 -1
- package/lib/esm/src/api/DeviceManagementKit.test.js +1 -1
- package/lib/esm/src/api/DeviceManagementKit.test.js.map +2 -2
- package/lib/esm/src/api/DeviceManagementKitBuilder.js +1 -1
- package/lib/esm/src/api/DeviceManagementKitBuilder.js.map +3 -3
- package/lib/esm/src/api/command/model/CommandResult.js.map +1 -1
- 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 +2 -2
- package/lib/esm/src/api/command/utils/CommandUtils.js +1 -1
- package/lib/esm/src/api/command/utils/CommandUtils.js.map +2 -2
- package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js +1 -1
- package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js.map +3 -3
- package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
- package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +3 -3
- package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +1 -1
- package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +3 -3
- package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js +1 -1
- package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.js.map +2 -2
- package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +1 -1
- package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +3 -3
- package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js +1 -1
- package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.js.map +2 -2
- package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +1 -1
- package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +3 -3
- package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js +1 -1
- package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.js.map +2 -2
- package/lib/esm/src/api/device-session/DeviceSessionState.js.map +2 -2
- package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js +1 -1
- package/lib/esm/src/api/device-session/use-case/ToggleDeviceSessionRefresher.test.js.map +2 -2
- package/lib/esm/src/di.js +1 -1
- package/lib/esm/src/di.js.map +3 -3
- 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/service/DefaultDeviceSessionService.test.js +1 -1
- package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +2 -2
- 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 +2 -2
- 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 +2 -2
- package/lib/esm/src/internal/discovery/di/discoveryModule.test.js +1 -1
- package/lib/esm/src/internal/discovery/di/discoveryModule.test.js.map +2 -2
- package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js +1 -1
- package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js.map +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.js +1 -1
- package/lib/esm/src/internal/manager-api/data/AxiosManagerApiDataSource.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 +3 -3
- package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js +1 -1
- package/lib/esm/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.js.map +2 -2
- package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js +1 -1
- package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js.map +2 -2
- package/lib/esm/src/internal/manager-api/model/Const.js +1 -1
- package/lib/esm/src/internal/manager-api/model/Const.js.map +3 -3
- package/lib/esm/src/internal/manager-api/model/Errors.js +1 -1
- package/lib/esm/src/internal/manager-api/model/Errors.js.map +3 -3
- package/lib/esm/src/internal/manager-api/model/Params.js +1 -0
- package/lib/esm/src/internal/manager-api/model/Params.js.map +7 -0
- package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
- package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.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 +2 -2
- package/lib/esm/src/internal/transport/di/transportModule.test.js +1 -1
- package/lib/esm/src/internal/transport/di/transportModule.test.js.map +2 -2
- package/lib/types/src/api/DeviceManagementKitBuilder.d.ts.map +1 -1
- package/lib/types/src/api/DmkConfig.d.ts +1 -0
- package/lib/types/src/api/DmkConfig.d.ts.map +1 -1
- package/lib/types/src/api/command/model/CommandResult.d.ts +1 -2
- package/lib/types/src/api/command/model/CommandResult.d.ts.map +1 -1
- package/lib/types/src/api/device-action/DeviceAction.d.ts +1 -1
- package/lib/types/src/api/device-action/DeviceAction.d.ts.map +1 -1
- package/lib/types/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.d.ts.map +1 -1
- package/lib/types/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.d.ts.map +1 -1
- package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts +1 -0
- package/lib/types/src/api/device-action/os/OpenAppDeviceAction/types.d.ts.map +1 -1
- package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.d.ts.map +1 -1
- package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts +1 -0
- package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/src/api/device-session/DeviceSessionState.d.ts +5 -0
- package/lib/types/src/api/device-session/DeviceSessionState.d.ts.map +1 -1
- package/lib/types/src/api/transport/model/Errors.d.ts +26 -26
- package/lib/types/src/api/transport/model/Errors.d.ts.map +1 -1
- package/lib/types/src/api/types.d.ts +1 -1
- package/lib/types/src/api/types.d.ts.map +1 -1
- package/lib/types/src/di.d.ts.map +1 -1
- package/lib/types/src/internal/device-session/model/DeviceSession.d.ts.map +1 -1
- package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts +15 -5
- package/lib/types/src/internal/manager-api/data/AxiosManagerApiDataSource.d.ts.map +1 -1
- package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts +70 -2
- package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts.map +1 -1
- package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts +6 -0
- package/lib/types/src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.d.ts.map +1 -1
- package/lib/types/src/internal/manager-api/model/Const.d.ts +1 -0
- package/lib/types/src/internal/manager-api/model/Const.d.ts.map +1 -1
- package/lib/types/src/internal/manager-api/model/Errors.d.ts +6 -0
- package/lib/types/src/internal/manager-api/model/Errors.d.ts.map +1 -1
- package/lib/types/src/internal/manager-api/model/Params.d.ts +86 -0
- package/lib/types/src/internal/manager-api/model/Params.d.ts.map +1 -0
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +5 -2
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../../../src/internal/manager-api/data/AxiosManagerApiDataSource.ts"],
|
4
|
-
"sourcesContent": ["import axios from \"axios\";\nimport { inject, injectable } from \"inversify\";\nimport { EitherAsync } from \"purify-ts\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { managerApiTypes } from \"@internal/manager-api/di/managerApiTypes\";\nimport {\n type Application,\n AppType,\n} from \"@internal/manager-api/model/Application\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport {
|
5
|
-
"mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,+BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAClBC,EAAmC,qBACnCC,
|
6
|
-
"names": ["AxiosManagerApiDataSource_exports", "__export", "AxiosManagerApiDataSource", "__toCommonJS", "import_axios", "import_inversify", "import_purify_ts", "import_managerApiTypes", "import_Application", "import_Errors", "import_ManagerApiDto", "AxiosManagerApiDataSource", "
|
4
|
+
"sourcesContent": ["import axios from \"axios\";\nimport { inject, injectable } from \"inversify\";\nimport WebSocket from \"isomorphic-ws\";\nimport { Either, EitherAsync, Left, Right } from \"purify-ts\";\nimport URL from \"url\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { managerApiTypes } from \"@internal/manager-api/di/managerApiTypes\";\nimport {\n type Application,\n AppType,\n} from \"@internal/manager-api/model/Application\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport {\n HttpFetchApiError,\n WebSocketConnectionError,\n} from \"@internal/manager-api/model/Errors\";\nimport { type FinalFirmware } from \"@internal/manager-api/model/Firmware\";\nimport {\n GenuineCheckParams,\n InstallAppsParams,\n ListInstalledAppsParams,\n UninstallAppsParams,\n UpdateFirmwareParams,\n UpdateMcuParams,\n} from \"@internal/manager-api/model/Params\";\n\nimport { ManagerApiDataSource } from \"./ManagerApiDataSource\";\nimport { ApplicationDto, AppTypeDto } from \"./ManagerApiDto\";\n\n@injectable()\nexport class AxiosManagerApiDataSource implements ManagerApiDataSource {\n private readonly managerApiBaseUrl: string;\n private readonly webSocketBaseUrl: string;\n\n constructor(\n @inject(managerApiTypes.DmkConfig)\n { managerApiUrl, webSocketUrl }: DmkConfig,\n ) {\n this.managerApiBaseUrl = managerApiUrl;\n this.webSocketBaseUrl = webSocketUrl;\n console.log(this.webSocketBaseUrl);\n }\n\n getDeviceVersion(\n targetId: string,\n provider: number,\n ): EitherAsync<HttpFetchApiError, DeviceVersion> {\n return EitherAsync(() =>\n axios.get<DeviceVersion>(`${this.managerApiBaseUrl}/get_device_version`, {\n params: {\n target_id: targetId,\n provider,\n },\n }),\n )\n .map((res) => res.data)\n .mapLeft((error) => new HttpFetchApiError(error));\n }\n\n getFirmwareVersion(\n version: string,\n deviceId: number,\n provider: number,\n ): EitherAsync<HttpFetchApiError, FinalFirmware> {\n return EitherAsync(() =>\n axios.get<FinalFirmware>(\n `${this.managerApiBaseUrl}/get_firmware_version`,\n {\n params: {\n device_version: deviceId,\n version_name: version,\n provider,\n },\n },\n ),\n )\n .map((res) => res.data)\n .mapLeft((error) => new HttpFetchApiError(error));\n }\n\n getAppsByHash(\n hashes: string[],\n ): EitherAsync<HttpFetchApiError, Array<Application | null>> {\n return EitherAsync(() =>\n axios.post<Array<ApplicationDto | null>>(\n `${this.managerApiBaseUrl}/v2/apps/hash`,\n hashes,\n ),\n )\n .map((res) => res.data)\n .map((apps) => this.mapApplicationDtoToApplication(apps))\n .mapLeft((error) => new HttpFetchApiError(error));\n }\n\n genuineCheck(\n params: GenuineCheckParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = URL.format({\n pathname: `${this.webSocketBaseUrl}/genuine`,\n query: params,\n });\n return this._connectWebSocket(address);\n }\n\n listInstalledApps(\n params: ListInstalledAppsParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = URL.format({\n pathname: `${this.webSocketBaseUrl}/apps/list`,\n query: params,\n });\n return this._connectWebSocket(address);\n }\n\n updateMcu(\n params: UpdateMcuParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = URL.format({\n pathname: `${this.webSocketBaseUrl}/mcu`,\n query: params,\n });\n return this._connectWebSocket(address);\n }\n\n updateFirmware(\n params: UpdateFirmwareParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = URL.format({\n pathname: `${this.webSocketBaseUrl}/install`,\n query: params,\n });\n return this._connectWebSocket(address);\n }\n\n installApp(\n params: InstallAppsParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = URL.format({\n pathname: `${this.webSocketBaseUrl}/install`,\n query: params,\n });\n return this._connectWebSocket(address);\n }\n\n uninstallApp(\n params: UninstallAppsParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = URL.format({\n pathname: `${this.webSocketBaseUrl}/install`,\n query: params,\n });\n return this._connectWebSocket(address);\n }\n\n _connectWebSocket(\n address: string,\n ): Either<WebSocketConnectionError, WebSocket> {\n try {\n return Right(new WebSocket(address));\n } catch (error) {\n return Left(new WebSocketConnectionError(error));\n }\n }\n\n private mapAppTypeDtoToAppType(appType: AppTypeDto): AppType {\n switch (appType) {\n case AppTypeDto.currency:\n return AppType.currency;\n case AppTypeDto.plugin:\n return AppType.plugin;\n case AppTypeDto.tool:\n return AppType.tool;\n case AppTypeDto.swap:\n return AppType.swap;\n }\n }\n\n private mapApplicationDtoToApplication(\n apps: Array<ApplicationDto | null>,\n ): Array<Application | null> {\n return apps.map((app) => {\n if (app === null) {\n return null;\n }\n\n const { applicationType, ...rest } = app;\n\n return {\n ...rest,\n applicationType: this.mapAppTypeDtoToAppType(applicationType),\n };\n });\n }\n}\n"],
|
5
|
+
"mappings": "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",
|
6
|
+
"names": ["AxiosManagerApiDataSource_exports", "__export", "AxiosManagerApiDataSource", "__toCommonJS", "import_axios", "import_inversify", "import_isomorphic_ws", "import_purify_ts", "import_url", "import_managerApiTypes", "import_Application", "import_Errors", "import_ManagerApiDto", "AxiosManagerApiDataSource", "managerApiUrl", "webSocketUrl", "targetId", "provider", "axios", "res", "error", "version", "deviceId", "hashes", "apps", "params", "address", "URL", "WebSocket", "appType", "app", "applicationType", "rest", "__decorateClass", "__decorateParam"]
|
7
7
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var
|
1
|
+
"use strict";var w=Object.create;var u=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var A=(e,t,a,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of f(t))!b.call(e,i)&&i!==a&&u(e,i,{get:()=>t[i],enumerable:!(p=k(t,i))||p.enumerable});return e};var m=(e,t,a)=>(a=e!=null?w(g(e)):{},A(t||!e||!e.__esModule?u(a,"default",{value:e,enumerable:!0}):a,e));var o=m(require("axios")),l=m(require("isomorphic-ws")),r=require("purify-ts"),s=require("../../../api/device-action/__test-utils__/data"),n=require("../../manager-api/model/Errors"),c=require("./AxiosManagerApiDataSource");jest.mock("axios");jest.mock("isomorphic-ws",()=>jest.fn().mockImplementationOnce(()=>{}).mockImplementationOnce(()=>{throw new Error("WebSocket connection failed")}));const h={id:17,target_id:"857735172"},d={id:361,perso:"perso_11"};describe("AxiosManagerApiDataSource",()=>{describe("getAppsByHash",()=>{describe("success cases",()=>{let e;beforeEach(()=>{e=new c.AxiosManagerApiDataSource({})}),afterEach(()=>{jest.clearAllMocks()}),it("with BTC app, should return the metadata",async()=>{jest.spyOn(o.default,"post").mockResolvedValue({data:[s.BTC_APP_METADATA]});const t=[s.BTC_APP.appFullHash],a=await e.getAppsByHash(t);expect(a).toEqual((0,r.Right)([s.BTC_APP_METADATA]))}),it("with no apps, should return an empty list",async()=>{jest.spyOn(o.default,"post").mockResolvedValue({data:[]});const t=[],a=await e.getAppsByHash(t);expect(a).toEqual((0,r.Right)([]))}),it("with BTC app and custom lock screen, should return the metadata",async()=>{jest.spyOn(o.default,"post").mockResolvedValue({data:[s.BTC_APP_METADATA,s.CUSTOM_LOCK_SCREEN_APP_METADATA]});const t=[s.BTC_APP.appFullHash,s.CUSTOM_LOCK_SCREEN_APP.appFullHash],a=await e.getAppsByHash(t);expect(a).toEqual((0,r.Right)([s.BTC_APP_METADATA,s.CUSTOM_LOCK_SCREEN_APP_METADATA]))})}),describe("error cases",()=>{afterEach(()=>{jest.clearAllMocks()}),it("should throw an error if the request fails",()=>{const e=new c.AxiosManagerApiDataSource({}),t=new Error("fetch error");jest.spyOn(o.default,"post").mockRejectedValue(t);const a=[s.BTC_APP.appFullHash],p=e.getAppsByHash(a);expect(p).resolves.toEqual((0,r.Left)(new n.HttpFetchApiError(t)))})})}),describe("getDeviceVersion",()=>{let e;beforeEach(()=>{e=new c.AxiosManagerApiDataSource({})}),afterEach(()=>{jest.clearAllMocks()}),it("should return a complete device version",()=>{jest.spyOn(o.default,"get").mockResolvedValue({data:h});const t=e.getDeviceVersion("targetId",42);expect(t).resolves.toEqual((0,r.Right)(h))}),it("should return an error if the request fails",()=>{const t=new Error("fetch error");jest.spyOn(o.default,"get").mockRejectedValue(t);const a=e.getDeviceVersion("targetId",42);expect(a).resolves.toEqual((0,r.Left)(new n.HttpFetchApiError(t)))})}),describe("getFirmwareVersion",()=>{let e;beforeEach(()=>{e=new c.AxiosManagerApiDataSource({})}),afterEach(()=>{jest.clearAllMocks()}),it("should return a complete firmware version",()=>{jest.spyOn(o.default,"get").mockResolvedValue({data:d});const t=e.getFirmwareVersion("versionName",42,21);expect(t).resolves.toEqual((0,r.Right)(d))}),it("should return an error if the request fails",()=>{const t=new Error("fetch error");jest.spyOn(o.default,"get").mockRejectedValue(t);const a=e.getFirmwareVersion("versionName",42,21);expect(a).resolves.toEqual((0,r.Left)(new n.HttpFetchApiError(t)))})}),describe("Secure Channel via WebSocket",()=>{describe("Connection establishment",()=>{afterEach(()=>{jest.clearAllMocks()}),it("should return an error if the WebSocket connection fails",()=>{const t=new c.AxiosManagerApiDataSource({webSocketUrl:"wss://test-websocket-url"})._connectWebSocket("wss://test-websocket-url/test");expect(l.default).toHaveBeenCalledWith("wss://test-websocket-url/test"),expect(t.extract()).toBeInstanceOf(l.default)}),it("should return an error if the WebSocket connection fails",()=>{const t=new c.AxiosManagerApiDataSource({webSocketUrl:"wss://test-websocket-url"})._connectWebSocket("wss://test-websocket-url/test");expect(t.extract()).toBeInstanceOf(n.WebSocketConnectionError)})}),describe("Connections with different pathname",()=>{let e;beforeEach(()=>{e=new c.AxiosManagerApiDataSource({webSocketUrl:"wss://test-websocket-url"})}),afterEach(()=>{jest.clearAllMocks()}),it("should call _connectWebSocket with parameters for genuineCheck",()=>{jest.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({})),e.genuineCheck({targetId:"targetId",perso:"perso"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/genuine?targetId=targetId&perso=perso")}),it("should call _connectWebSocket with parameters for listInstalledApps",()=>{jest.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({})),e.listInstalledApps({targetId:"targetId",perso:"perso"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/apps/list?targetId=targetId&perso=perso")}),it("should call _connectWebSocket with parameters for updateMcu",()=>{jest.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({})),e.updateMcu({targetId:"targetId",version:"version"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/mcu?targetId=targetId&version=version")}),it("should call _connectWebSocket with parameters for updateFirmware",()=>{jest.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({})),e.updateFirmware({targetId:"targetId",perso:"perso",firmware:"firmware",firmwareKey:"firmwareKey"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey")}),it("should call _connectWebSocket with parameters for installApp",()=>{jest.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({})),e.installApp({targetId:"targetId",perso:"perso",firmware:"firmware",firmwareKey:"firmwareKey",deleteKey:"deleteKey",hash:"hash"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&deleteKey=deleteKey&hash=hash")}),it("should call _connectWebSocket with parameters for uninstallApp",()=>{jest.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({})),e.uninstallApp({targetId:"targetId",perso:"perso",firmware:"firmware",firmwareKey:"firmwareKey",deleteKey:"deleteKey",hash:"hash"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&deleteKey=deleteKey&hash=hash")})})})});
|
2
2
|
//# sourceMappingURL=AxiosManagerApiDataSource.test.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../../../src/internal/manager-api/data/AxiosManagerApiDataSource.test.ts"],
|
4
|
-
"sourcesContent": ["import axios from \"axios\";\nimport { Left, Right } from \"purify-ts\";\n\nimport {\n BTC_APP,\n BTC_APP_METADATA,\n CUSTOM_LOCK_SCREEN_APP,\n CUSTOM_LOCK_SCREEN_APP_METADATA,\n} from \"@api/device-action/__test-utils__/data\";\nimport {\n DEFAULT_MANAGER_API_BASE_URL,\n DEFAULT_MOCK_SERVER_BASE_URL,\n} from \"@internal/manager-api/model/Const\";\nimport { HttpFetchApiError } from \"@internal/manager-api/model/Errors\";\n\nimport { AxiosManagerApiDataSource } from \"./AxiosManagerApiDataSource\";\n\njest.mock(\"axios\");\n\nconst mockGetDeviceVersion = {\n id: 17,\n target_id: \"857735172\",\n};\n\nconst mockGetFirmwareVersion = {\n id: 361,\n perso: \"perso_11\",\n};\n\ndescribe(\"AxiosManagerApiDataSource\", () => {\n describe(\"getAppsByHash\", () => {\n describe(\"success cases\", () => {\n afterEach(() => {\n jest.clearAllMocks();\n });\n it(\"with BTC app, should return the metadata\", async () => {\n const api = new AxiosManagerApiDataSource({\n managerApiUrl: DEFAULT_MANAGER_API_BASE_URL,\n mockUrl: DEFAULT_MOCK_SERVER_BASE_URL,\n });\n\n jest.spyOn(axios, \"post\").mockResolvedValue({\n data: [BTC_APP_METADATA],\n });\n\n const hashes = [BTC_APP.appFullHash];\n\n const apps = await api.getAppsByHash(hashes);\n\n expect(apps).toEqual(Right([BTC_APP_METADATA]));\n });\n\n it(\"with no apps, should return an empty list\", async () => {\n const api = new AxiosManagerApiDataSource({\n managerApiUrl: DEFAULT_MANAGER_API_BASE_URL,\n mockUrl: DEFAULT_MOCK_SERVER_BASE_URL,\n });\n\n jest.spyOn(axios, \"post\").mockResolvedValue({\n data: [],\n });\n\n const hashes: string[] = [];\n\n const apps = await api.getAppsByHash(hashes);\n\n expect(apps).toEqual(Right([]));\n });\n\n it(\"with BTC app and custom lock screen, should return the metadata\", async () => {\n const api = new AxiosManagerApiDataSource({\n managerApiUrl: DEFAULT_MANAGER_API_BASE_URL,\n mockUrl: DEFAULT_MOCK_SERVER_BASE_URL,\n });\n\n jest.spyOn(axios, \"post\").mockResolvedValue({\n data: [BTC_APP_METADATA, CUSTOM_LOCK_SCREEN_APP_METADATA],\n });\n\n const hashes = [\n BTC_APP.appFullHash,\n CUSTOM_LOCK_SCREEN_APP.appFullHash,\n ];\n\n const apps = await api.getAppsByHash(hashes);\n\n expect(apps).toEqual(\n Right([BTC_APP_METADATA, CUSTOM_LOCK_SCREEN_APP_METADATA]),\n );\n });\n });\n\n describe(\"error cases\", () => {\n afterEach(() => {\n jest.clearAllMocks();\n });\n it(\"should throw an error if the request fails\", () => {\n // given\n const api = new AxiosManagerApiDataSource({\n managerApiUrl: DEFAULT_MANAGER_API_BASE_URL,\n mockUrl: DEFAULT_MOCK_SERVER_BASE_URL,\n });\n const err = new Error(\"fetch error\");\n jest.spyOn(axios, \"post\").mockRejectedValue(err);\n\n const hashes = [BTC_APP.appFullHash];\n\n // when\n const response = api.getAppsByHash(hashes);\n\n // then\n expect(response).resolves.toEqual(Left(new HttpFetchApiError(err)));\n });\n });\n });\n\n describe(\"getDeviceVersion\", () => {\n afterEach(() => {\n jest.clearAllMocks();\n });\n it(\"should return a complete device version\", () => {\n // given\n const api = new AxiosManagerApiDataSource({\n managerApiUrl: DEFAULT_MANAGER_API_BASE_URL,\n mockUrl: DEFAULT_MOCK_SERVER_BASE_URL,\n });\n jest\n .spyOn(axios, \"get\")\n .mockResolvedValue({ data: mockGetDeviceVersion });\n\n // when\n const response = api.getDeviceVersion(\"targetId\", 42);\n\n // then\n expect(response).resolves.toEqual(Right(mockGetDeviceVersion));\n });\n it(\"should return an error if the request fails\", () => {\n // given\n const api = new AxiosManagerApiDataSource({\n managerApiUrl: DEFAULT_MANAGER_API_BASE_URL,\n mockUrl: DEFAULT_MOCK_SERVER_BASE_URL,\n });\n const error = new Error(\"fetch error\");\n jest.spyOn(axios, \"get\").mockRejectedValue(error);\n\n // when\n const response = api.getDeviceVersion(\"targetId\", 42);\n\n // then\n expect(response).resolves.toEqual(Left(new HttpFetchApiError(error)));\n });\n });\n\n describe(\"getFirmwareVersion\", () => {\n afterEach(() => {\n jest.clearAllMocks();\n });\n it(\"should return a complete firmware version\", () => {\n // given\n const api = new AxiosManagerApiDataSource({\n managerApiUrl: DEFAULT_MANAGER_API_BASE_URL,\n mockUrl: DEFAULT_MOCK_SERVER_BASE_URL,\n });\n jest\n .spyOn(axios, \"get\")\n .mockResolvedValue({ data: mockGetFirmwareVersion });\n\n // when\n const response = api.getFirmwareVersion(\"versionName\", 42, 21);\n\n // then\n expect(response).resolves.toEqual(Right(mockGetFirmwareVersion));\n });\n it(\"should return an error if the request fails\", () => {\n // given\n const api = new AxiosManagerApiDataSource({\n managerApiUrl: DEFAULT_MANAGER_API_BASE_URL,\n mockUrl: DEFAULT_MOCK_SERVER_BASE_URL,\n });\n const error = new Error(\"fetch error\");\n jest.spyOn(axios, \"get\").mockRejectedValue(error);\n\n // when\n const response = api.getFirmwareVersion(\"versionName\", 42, 21);\n\n // then\n expect(response).resolves.toEqual(Left(new HttpFetchApiError(error)));\n });\n });\n});\n"],
|
5
|
-
"mappings": "wdAAA,IAAAA,EAAkB,oBAClBC,EAA4B,qBAE5BC,EAKO,
|
6
|
-
"names": ["import_axios", "
|
4
|
+
"sourcesContent": ["import axios from \"axios\";\nimport WebSocket from \"isomorphic-ws\";\nimport { Left, Right } from \"purify-ts\";\n\nimport {\n BTC_APP,\n BTC_APP_METADATA,\n CUSTOM_LOCK_SCREEN_APP,\n CUSTOM_LOCK_SCREEN_APP_METADATA,\n} from \"@api/device-action/__test-utils__/data\";\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport {\n HttpFetchApiError,\n WebSocketConnectionError,\n} from \"@internal/manager-api/model/Errors\";\n\nimport { AxiosManagerApiDataSource } from \"./AxiosManagerApiDataSource\";\nimport { type ManagerApiDataSource } from \"./ManagerApiDataSource\";\n\njest.mock(\"axios\");\njest.mock(\"isomorphic-ws\", () => {\n // The chained mockImplementationOnce is used to simulate the WebSocket connection success and failure respectively, the order is important\n return jest\n .fn()\n .mockImplementationOnce(() => {})\n .mockImplementationOnce(() => {\n throw new Error(\"WebSocket connection failed\");\n });\n});\n\nconst mockGetDeviceVersion = {\n id: 17,\n target_id: \"857735172\",\n};\n\nconst mockGetFirmwareVersion = {\n id: 361,\n perso: \"perso_11\",\n};\n\ndescribe(\"AxiosManagerApiDataSource\", () => {\n describe(\"getAppsByHash\", () => {\n describe(\"success cases\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new AxiosManagerApiDataSource({} as DmkConfig);\n });\n afterEach(() => {\n jest.clearAllMocks();\n });\n it(\"with BTC app, should return the metadata\", async () => {\n jest.spyOn(axios, \"post\").mockResolvedValue({\n data: [BTC_APP_METADATA],\n });\n\n const hashes = [BTC_APP.appFullHash];\n\n const apps = await api.getAppsByHash(hashes);\n\n expect(apps).toEqual(Right([BTC_APP_METADATA]));\n });\n\n it(\"with no apps, should return an empty list\", async () => {\n jest.spyOn(axios, \"post\").mockResolvedValue({\n data: [],\n });\n\n const hashes: string[] = [];\n\n const apps = await api.getAppsByHash(hashes);\n\n expect(apps).toEqual(Right([]));\n });\n\n it(\"with BTC app and custom lock screen, should return the metadata\", async () => {\n jest.spyOn(axios, \"post\").mockResolvedValue({\n data: [BTC_APP_METADATA, CUSTOM_LOCK_SCREEN_APP_METADATA],\n });\n\n const hashes = [\n BTC_APP.appFullHash,\n CUSTOM_LOCK_SCREEN_APP.appFullHash,\n ];\n\n const apps = await api.getAppsByHash(hashes);\n\n expect(apps).toEqual(\n Right([BTC_APP_METADATA, CUSTOM_LOCK_SCREEN_APP_METADATA]),\n );\n });\n });\n\n describe(\"error cases\", () => {\n afterEach(() => {\n jest.clearAllMocks();\n });\n it(\"should throw an error if the request fails\", () => {\n // given\n const api = new AxiosManagerApiDataSource({} as DmkConfig);\n\n const err = new Error(\"fetch error\");\n jest.spyOn(axios, \"post\").mockRejectedValue(err);\n\n const hashes = [BTC_APP.appFullHash];\n\n // when\n const response = api.getAppsByHash(hashes);\n\n // then\n expect(response).resolves.toEqual(Left(new HttpFetchApiError(err)));\n });\n });\n });\n\n describe(\"getDeviceVersion\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new AxiosManagerApiDataSource({} as DmkConfig);\n });\n afterEach(() => {\n jest.clearAllMocks();\n });\n it(\"should return a complete device version\", () => {\n // given\n jest\n .spyOn(axios, \"get\")\n .mockResolvedValue({ data: mockGetDeviceVersion });\n\n // when\n const response = api.getDeviceVersion(\"targetId\", 42);\n\n // then\n expect(response).resolves.toEqual(Right(mockGetDeviceVersion));\n });\n it(\"should return an error if the request fails\", () => {\n // given\n\n const error = new Error(\"fetch error\");\n jest.spyOn(axios, \"get\").mockRejectedValue(error);\n\n // when\n const response = api.getDeviceVersion(\"targetId\", 42);\n\n // then\n expect(response).resolves.toEqual(Left(new HttpFetchApiError(error)));\n });\n });\n\n describe(\"getFirmwareVersion\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new AxiosManagerApiDataSource({} as DmkConfig);\n });\n afterEach(() => {\n jest.clearAllMocks();\n });\n it(\"should return a complete firmware version\", () => {\n // given\n jest\n .spyOn(axios, \"get\")\n .mockResolvedValue({ data: mockGetFirmwareVersion });\n\n // when\n const response = api.getFirmwareVersion(\"versionName\", 42, 21);\n\n // then\n expect(response).resolves.toEqual(Right(mockGetFirmwareVersion));\n });\n it(\"should return an error if the request fails\", () => {\n // given\n const error = new Error(\"fetch error\");\n jest.spyOn(axios, \"get\").mockRejectedValue(error);\n\n // when\n const response = api.getFirmwareVersion(\"versionName\", 42, 21);\n\n // then\n expect(response).resolves.toEqual(Left(new HttpFetchApiError(error)));\n });\n });\n\n describe(\"Secure Channel via WebSocket\", () => {\n describe(\"Connection establishment\", () => {\n afterEach(() => {\n jest.clearAllMocks();\n });\n it(\"should return an error if the WebSocket connection fails\", () => {\n // given\n const api = new AxiosManagerApiDataSource({\n webSocketUrl: \"wss://test-websocket-url\",\n } as DmkConfig);\n // when\n const res = api._connectWebSocket(\"wss://test-websocket-url/test\");\n // then\n expect(WebSocket).toHaveBeenCalledWith(\"wss://test-websocket-url/test\");\n expect(res.extract()).toBeInstanceOf(WebSocket);\n });\n it(\"should return an error if the WebSocket connection fails\", () => {\n // given\n const api = new AxiosManagerApiDataSource({\n webSocketUrl: \"wss://test-websocket-url\",\n } as DmkConfig);\n // when\n const res = api._connectWebSocket(\"wss://test-websocket-url/test\");\n // then\n expect(res.extract()).toBeInstanceOf(WebSocketConnectionError);\n });\n });\n describe(\"Connections with different pathname\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new AxiosManagerApiDataSource({\n webSocketUrl: \"wss://test-websocket-url\",\n } as DmkConfig);\n });\n afterEach(() => {\n jest.clearAllMocks();\n });\n it(\"should call _connectWebSocket with parameters for genuineCheck\", () => {\n // given\n jest\n .spyOn(api as AxiosManagerApiDataSource, \"_connectWebSocket\")\n .mockReturnValue(Right({} as WebSocket));\n // when\n api.genuineCheck({\n targetId: \"targetId\",\n perso: \"perso\",\n });\n // then\n expect(\n (api as AxiosManagerApiDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/genuine?targetId=targetId&perso=perso\",\n );\n });\n it(\"should call _connectWebSocket with parameters for listInstalledApps\", () => {\n // given\n jest\n .spyOn(api as AxiosManagerApiDataSource, \"_connectWebSocket\")\n .mockReturnValue(Right({} as WebSocket));\n // when\n api.listInstalledApps({\n targetId: \"targetId\",\n perso: \"perso\",\n });\n // then\n expect(\n (api as AxiosManagerApiDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/apps/list?targetId=targetId&perso=perso\",\n );\n });\n it(\"should call _connectWebSocket with parameters for updateMcu\", () => {\n // given\n jest\n .spyOn(api as AxiosManagerApiDataSource, \"_connectWebSocket\")\n .mockReturnValue(Right({} as WebSocket));\n\n // when\n api.updateMcu({\n targetId: \"targetId\",\n version: \"version\",\n });\n // then\n expect(\n (api as AxiosManagerApiDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/mcu?targetId=targetId&version=version\",\n );\n });\n it(\"should call _connectWebSocket with parameters for updateFirmware\", () => {\n // given\n jest\n .spyOn(api as AxiosManagerApiDataSource, \"_connectWebSocket\")\n .mockReturnValue(Right({} as WebSocket));\n\n // when\n api.updateFirmware({\n targetId: \"targetId\",\n perso: \"perso\",\n firmware: \"firmware\",\n firmwareKey: \"firmwareKey\",\n });\n // then\n expect(\n (api as AxiosManagerApiDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey\",\n );\n });\n it(\"should call _connectWebSocket with parameters for installApp\", () => {\n // given\n jest\n .spyOn(api as AxiosManagerApiDataSource, \"_connectWebSocket\")\n .mockReturnValue(Right({} as WebSocket));\n\n // when\n api.installApp({\n targetId: \"targetId\",\n perso: \"perso\",\n firmware: \"firmware\",\n firmwareKey: \"firmwareKey\",\n deleteKey: \"deleteKey\",\n hash: \"hash\",\n });\n // then\n expect(\n (api as AxiosManagerApiDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&deleteKey=deleteKey&hash=hash\",\n );\n });\n it(\"should call _connectWebSocket with parameters for uninstallApp\", () => {\n // given\n jest\n .spyOn(api as AxiosManagerApiDataSource, \"_connectWebSocket\")\n .mockReturnValue(Right({} as WebSocket));\n // when\n api.uninstallApp({\n targetId: \"targetId\",\n perso: \"perso\",\n firmware: \"firmware\",\n firmwareKey: \"firmwareKey\",\n deleteKey: \"deleteKey\",\n hash: \"hash\",\n });\n // then\n expect(\n (api as AxiosManagerApiDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&deleteKey=deleteKey&hash=hash\",\n );\n });\n });\n });\n});\n"],
|
5
|
+
"mappings": "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",
|
6
|
+
"names": ["import_axios", "import_isomorphic_ws", "import_purify_ts", "import_data", "import_Errors", "import_AxiosManagerApiDataSource", "mockGetDeviceVersion", "mockGetFirmwareVersion", "api", "axios", "hashes", "apps", "err", "response", "error", "res", "WebSocket"]
|
7
7
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var
|
1
|
+
"use strict";var i=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var m=(r,e,o,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of n(e))!s.call(r,t)&&t!==o&&i(r,t,{get:()=>e[t],enumerable:!(a=p(e,t))||a.enumerable});return r};var c=r=>m(i({},"__esModule",{value:!0}),r);var l={};module.exports=c(l);
|
2
2
|
//# sourceMappingURL=ManagerApiDataSource.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../../../src/internal/manager-api/data/ManagerApiDataSource.ts"],
|
4
|
-
"sourcesContent": ["import { type EitherAsync } from \"purify-ts\";\n\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport {
|
4
|
+
"sourcesContent": ["import type WebSocket from \"isomorphic-ws\";\nimport { type Either, type EitherAsync } from \"purify-ts\";\n\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport {\n type HttpFetchApiError,\n type WebSocketConnectionError,\n} from \"@internal/manager-api/model/Errors\";\nimport { type FinalFirmware } from \"@internal/manager-api/model/Firmware\";\nimport type {\n GenuineCheckParams,\n InstallAppsParams,\n ListInstalledAppsParams,\n UninstallAppsParams,\n UpdateFirmwareParams,\n UpdateMcuParams,\n} from \"@internal/manager-api/model/Params\";\n\n/**\n * Interface representing a data source for the Manager API.\n */\nexport interface ManagerApiDataSource {\n /**\n * Retrieves applications by their hashes.\n *\n * @param hashes - An array of application hashes.\n * @returns EitherAsync containing an array of applications or null values, or an HttpFetchApiError.\n */\n getAppsByHash(\n hashes: string[],\n ): EitherAsync<HttpFetchApiError, Array<Application | null>>;\n\n /**\n * Retrieves the device version for a given target ID and provider.\n *\n * @param targetId - The target ID of the device.\n * @param provider - The provider number.\n * @returns EitherAsync containing the device version or an HttpFetchApiError.\n */\n getDeviceVersion(\n targetId: string,\n provider: number,\n ): EitherAsync<HttpFetchApiError, DeviceVersion>;\n\n /**\n * Retrieves the firmware version for a given version, device ID, and provider.\n *\n * @param version - The firmware version.\n * @param deviceId - The device ID.\n * @param provider - The provider number.\n * @returns EitherAsync containing the final firmware or an HttpFetchApiError.\n */\n getFirmwareVersion(\n version: string,\n deviceId: number,\n provider: number,\n ): EitherAsync<HttpFetchApiError, FinalFirmware>;\n\n /**\n * Performs a genuine check on the device.\n *\n * @param params - The parameters required for the genuine check.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n genuineCheck(\n params: GenuineCheckParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Lists the installed applications on the device.\n *\n * @param params - The parameters required for the genuine check.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n listInstalledApps(\n params: ListInstalledAppsParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Updates the MCU (Microcontroller Unit) of the device.\n *\n * @param params - The parameters required to update the MCU.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n updateMcu(\n params: UpdateMcuParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Updates the firmware of the device.\n *\n * @param params - The parameters required to update the firmware.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n updateFirmware(\n params: UpdateFirmwareParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Installs applications on the device.\n *\n * @param params - The parameters required to install the applications.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n installApp(\n params: InstallAppsParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n\n /**\n * Uninstalls applications from the device.\n *\n * @param params - The parameters required to uninstall the applications.\n * @returns Either containing a WebSocket connection or a WebSocketConnectionError.\n */\n uninstallApp(\n params: UninstallAppsParams,\n ): Either<WebSocketConnectionError, WebSocket>;\n}\n"],
|
5
5
|
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
6
6
|
"names": ["ManagerApiDataSource_exports", "__toCommonJS"]
|
7
7
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var
|
1
|
+
"use strict";var n=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var j=(t,e)=>{for(var a in e)n(t,a,{get:e[a],enumerable:!0})},l=(t,e,a,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of r(e))!f.call(t,s)&&s!==a&&n(t,s,{get:()=>e[s],enumerable:!(p=i(e,s))||p.enumerable});return t};var o=t=>l(n({},"__esModule",{value:!0}),t);var A={};j(A,{AxiosManagerApiDataSource:()=>u});module.exports=o(A);class u{getDeviceVersion=jest.fn();getFirmwareVersion=jest.fn();getAppsByHash=jest.fn();genuineCheck=jest.fn();listInstalledApps=jest.fn();updateMcu=jest.fn();updateFirmware=jest.fn();installApp=jest.fn();uninstallApp=jest.fn()}0&&(module.exports={AxiosManagerApiDataSource});
|
2
2
|
//# sourceMappingURL=AxiosManagerApiDataSource.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../../../../src/internal/manager-api/data/__mocks__/AxiosManagerApiDataSource.ts"],
|
4
|
-
"sourcesContent": ["import { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\n\nexport class AxiosManagerApiDataSource implements ManagerApiDataSource {\n getDeviceVersion = jest.fn();\n getFirmwareVersion = jest.fn();\n getAppsByHash = jest.fn();\n}\n"],
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,+BAAAE,IAAA,eAAAC,EAAAH,GAEO,MAAME,CAA0D,CACrE,iBAAmB,KAAK,GAAG,EAC3B,mBAAqB,KAAK,GAAG,EAC7B,cAAgB,KAAK,GAAG,
|
4
|
+
"sourcesContent": ["import { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\n\nexport class AxiosManagerApiDataSource implements ManagerApiDataSource {\n getDeviceVersion = jest.fn();\n getFirmwareVersion = jest.fn();\n getAppsByHash = jest.fn();\n genuineCheck = jest.fn();\n listInstalledApps = jest.fn();\n updateMcu = jest.fn();\n updateFirmware = jest.fn();\n installApp = jest.fn();\n uninstallApp = jest.fn();\n}\n"],
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,+BAAAE,IAAA,eAAAC,EAAAH,GAEO,MAAME,CAA0D,CACrE,iBAAmB,KAAK,GAAG,EAC3B,mBAAqB,KAAK,GAAG,EAC7B,cAAgB,KAAK,GAAG,EACxB,aAAe,KAAK,GAAG,EACvB,kBAAoB,KAAK,GAAG,EAC5B,UAAY,KAAK,GAAG,EACpB,eAAiB,KAAK,GAAG,EACzB,WAAa,KAAK,GAAG,EACrB,aAAe,KAAK,GAAG,CACzB",
|
6
6
|
"names": ["AxiosManagerApiDataSource_exports", "__export", "AxiosManagerApiDataSource", "__toCommonJS"]
|
7
7
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var
|
1
|
+
"use strict";var n=require("inversify"),u=require("../../manager-api/data/AxiosManagerApiDataSource"),l=require("../../manager-api/service/DefaultManagerApiService"),i=require("../../../../src/di.stub"),p=require("./managerApiModule"),r=require("./managerApiTypes");describe("managerApiModuleFactory",()=>{describe("Default",()=>{let e,t;beforeEach(()=>{t=(0,p.managerApiModuleFactory)({stub:!1,config:{managerApiUrl:"http://fake.url",mockUrl:"http://fake-mock.url",webSocketUrl:"http://fake-websocket.url"}}),e=new n.Container,e.load(t)}),it("should return the config module",()=>{expect(t).toBeDefined()}),it("should return none stubbed use cases",()=>{const a=e.get(r.managerApiTypes.ManagerApiDataSource);expect(a).toBeInstanceOf(u.AxiosManagerApiDataSource);const o=e.get(r.managerApiTypes.ManagerApiService);expect(o).toBeInstanceOf(l.DefaultManagerApiService);const c=e.get(r.managerApiTypes.DmkConfig);expect(c).toEqual({managerApiUrl:"http://fake.url",mockUrl:"http://fake-mock.url",webSocketUrl:"http://fake-websocket.url"})})}),describe("Stubbed",()=>{let e,t;beforeEach(()=>{t=(0,p.managerApiModuleFactory)({stub:!0,config:{managerApiUrl:"http://fake.url",mockUrl:"http://fake-mock.url",webSocketUrl:"http://fake-websocket.url"}}),e=new n.Container,e.load(t)}),it("should return the config module",()=>{expect(t).toBeDefined()}),it("should return stubbed use cases",()=>{const a=e.get(r.managerApiTypes.ManagerApiDataSource);expect(a).toBeInstanceOf(i.StubUseCase);const o=e.get(r.managerApiTypes.ManagerApiService);expect(o).toBeInstanceOf(i.StubUseCase);const c=e.get(r.managerApiTypes.DmkConfig);expect(c).toEqual({managerApiUrl:"http://fake.url",mockUrl:"http://fake-mock.url",webSocketUrl:"http://fake-websocket.url"})})})});
|
2
2
|
//# sourceMappingURL=managerApiModule.test.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../../../src/internal/manager-api/di/managerApiModule.test.ts"],
|
4
|
-
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { AxiosManagerApiDataSource } from \"@internal/manager-api/data/AxiosManagerApiDataSource\";\nimport { DefaultManagerApiService } from \"@internal/manager-api/service/DefaultManagerApiService\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { managerApiModuleFactory } from \"./managerApiModule\";\nimport { managerApiTypes } from \"./managerApiTypes\";\n
|
5
|
-
"mappings": "aAAA,IAAAA,EAA0B,qBAE1BC,EAA0C,gEAC1CC,EAAyC,kEACzCC,EAA4B,6BAE5BC,EAAwC,8BACxCC,EAAgC,
|
4
|
+
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { AxiosManagerApiDataSource } from \"@internal/manager-api/data/AxiosManagerApiDataSource\";\nimport { DefaultManagerApiService } from \"@internal/manager-api/service/DefaultManagerApiService\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { managerApiModuleFactory } from \"./managerApiModule\";\nimport { managerApiTypes } from \"./managerApiTypes\";\n\ndescribe(\"managerApiModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof managerApiModuleFactory>;\n beforeEach(() => {\n mod = managerApiModuleFactory({\n stub: false,\n config: {\n managerApiUrl: \"http://fake.url\",\n mockUrl: \"http://fake-mock.url\",\n webSocketUrl: \"http://fake-websocket.url\",\n },\n });\n container = new Container();\n container.load(mod);\n });\n\n it(\"should return the config module\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should return none stubbed use cases\", () => {\n const managerApiDataSource = container.get(\n managerApiTypes.ManagerApiDataSource,\n );\n expect(managerApiDataSource).toBeInstanceOf(AxiosManagerApiDataSource);\n\n const managerApiService = container.get(\n managerApiTypes.ManagerApiService,\n );\n expect(managerApiService).toBeInstanceOf(DefaultManagerApiService);\n\n const config = container.get(managerApiTypes.DmkConfig);\n expect(config).toEqual({\n managerApiUrl: \"http://fake.url\",\n mockUrl: \"http://fake-mock.url\",\n webSocketUrl: \"http://fake-websocket.url\",\n });\n });\n });\n\n describe(\"Stubbed\", () => {\n let container: Container;\n let mod: ReturnType<typeof managerApiModuleFactory>;\n beforeEach(() => {\n mod = managerApiModuleFactory({\n stub: true,\n config: {\n managerApiUrl: \"http://fake.url\",\n mockUrl: \"http://fake-mock.url\",\n webSocketUrl: \"http://fake-websocket.url\",\n },\n });\n container = new Container();\n container.load(mod);\n });\n\n it(\"should return the config module\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should return stubbed use cases\", () => {\n const managerApiDataSource = container.get(\n managerApiTypes.ManagerApiDataSource,\n );\n expect(managerApiDataSource).toBeInstanceOf(StubUseCase);\n\n const managerApiService = container.get(\n managerApiTypes.ManagerApiService,\n );\n expect(managerApiService).toBeInstanceOf(StubUseCase);\n\n const config = container.get(managerApiTypes.DmkConfig);\n expect(config).toEqual({\n managerApiUrl: \"http://fake.url\",\n mockUrl: \"http://fake-mock.url\",\n webSocketUrl: \"http://fake-websocket.url\",\n });\n });\n });\n});\n"],
|
5
|
+
"mappings": "aAAA,IAAAA,EAA0B,qBAE1BC,EAA0C,gEAC1CC,EAAyC,kEACzCC,EAA4B,6BAE5BC,EAAwC,8BACxCC,EAAgC,6BAEhC,SAAS,0BAA2B,IAAM,CACxC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,KAAM,2BAAwB,CAC5B,KAAM,GACN,OAAQ,CACN,cAAe,kBACf,QAAS,uBACT,aAAc,2BAChB,CACF,CAAC,EACDD,EAAY,IAAI,YAChBA,EAAU,KAAKC,CAAG,CACpB,CAAC,EAED,GAAG,kCAAmC,IAAM,CAC1C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,uCAAwC,IAAM,CAC/C,MAAMC,EAAuBF,EAAU,IACrC,kBAAgB,oBAClB,EACA,OAAOE,CAAoB,EAAE,eAAe,2BAAyB,EAErE,MAAMC,EAAoBH,EAAU,IAClC,kBAAgB,iBAClB,EACA,OAAOG,CAAiB,EAAE,eAAe,0BAAwB,EAEjE,MAAMC,EAASJ,EAAU,IAAI,kBAAgB,SAAS,EACtD,OAAOI,CAAM,EAAE,QAAQ,CACrB,cAAe,kBACf,QAAS,uBACT,aAAc,2BAChB,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,IAAIJ,EACAC,EACJ,WAAW,IAAM,CACfA,KAAM,2BAAwB,CAC5B,KAAM,GACN,OAAQ,CACN,cAAe,kBACf,QAAS,uBACT,aAAc,2BAChB,CACF,CAAC,EACDD,EAAY,IAAI,YAChBA,EAAU,KAAKC,CAAG,CACpB,CAAC,EAED,GAAG,kCAAmC,IAAM,CAC1C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,kCAAmC,IAAM,CAC1C,MAAMC,EAAuBF,EAAU,IACrC,kBAAgB,oBAClB,EACA,OAAOE,CAAoB,EAAE,eAAe,aAAW,EAEvD,MAAMC,EAAoBH,EAAU,IAClC,kBAAgB,iBAClB,EACA,OAAOG,CAAiB,EAAE,eAAe,aAAW,EAEpD,MAAMC,EAASJ,EAAU,IAAI,kBAAgB,SAAS,EACtD,OAAOI,CAAM,EAAE,QAAQ,CACrB,cAAe,kBACf,QAAS,uBACT,aAAc,2BAChB,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC",
|
6
6
|
"names": ["import_inversify", "import_AxiosManagerApiDataSource", "import_DefaultManagerApiService", "import_di", "import_managerApiModule", "import_managerApiTypes", "container", "mod", "managerApiDataSource", "managerApiService", "config"]
|
7
7
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var
|
1
|
+
"use strict";var o=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var a=(e,t)=>{for(var E in t)o(e,E,{get:t[E],enumerable:!0})},c=(e,t,E,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let _ of A(t))!s.call(e,_)&&_!==E&&o(e,_,{get:()=>t[_],enumerable:!(p=r(t,_))||p.enumerable});return e};var i=e=>c(o({},"__esModule",{value:!0}),e);var R={};a(R,{DEFAULT_MANAGER_API_BASE_URL:()=>l,DEFAULT_MOCK_SERVER_BASE_URL:()=>L,DEFAULT_WEB_SOCKET_BASE_URL:()=>n});module.exports=i(R);const l="https://manager.api.live.ledger.com/api",n="wss://scriptrunner.api.live.ledger.com/update",L="http://localhost:8080";0&&(module.exports={DEFAULT_MANAGER_API_BASE_URL,DEFAULT_MOCK_SERVER_BASE_URL,DEFAULT_WEB_SOCKET_BASE_URL});
|
2
2
|
//# sourceMappingURL=Const.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../../../src/internal/manager-api/model/Const.ts"],
|
4
|
-
"sourcesContent": ["export const DEFAULT_MANAGER_API_BASE_URL =\n \"https://manager.api.live.ledger.com/api\";\nexport const DEFAULT_MOCK_SERVER_BASE_URL = \"http://localhost:8080\";\n"],
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kCAAAE,EAAA,iCAAAC,IAAA,eAAAC,
|
6
|
-
"names": ["Const_exports", "__export", "DEFAULT_MANAGER_API_BASE_URL", "DEFAULT_MOCK_SERVER_BASE_URL", "__toCommonJS"]
|
4
|
+
"sourcesContent": ["export const DEFAULT_MANAGER_API_BASE_URL =\n \"https://manager.api.live.ledger.com/api\";\nexport const DEFAULT_WEB_SOCKET_BASE_URL =\n \"wss://scriptrunner.api.live.ledger.com/update\";\nexport const DEFAULT_MOCK_SERVER_BASE_URL = \"http://localhost:8080\";\n"],
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kCAAAE,EAAA,iCAAAC,EAAA,gCAAAC,IAAA,eAAAC,EAAAL,GAAO,MAAME,EACX,0CACWE,EACX,gDACWD,EAA+B",
|
6
|
+
"names": ["Const_exports", "__export", "DEFAULT_MANAGER_API_BASE_URL", "DEFAULT_MOCK_SERVER_BASE_URL", "DEFAULT_WEB_SOCKET_BASE_URL", "__toCommonJS"]
|
7
7
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var i=Object.defineProperty;var
|
1
|
+
"use strict";var i=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var a=(o,r)=>{for(var t in r)i(o,t,{get:r[t],enumerable:!0})},p=(o,r,t,e)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of l(r))!E.call(o,n)&&n!==t&&i(o,n,{get:()=>r[n],enumerable:!(e=c(r,n))||e.enumerable});return o};var s=o=>p(i({},"__esModule",{value:!0}),o);var u={};a(u,{HttpFetchApiError:()=>k,WebSocketConnectionError:()=>m});module.exports=s(u);class k{constructor(r){this.error=r;this.originalError=r}_tag="FetchError";originalError}class m{constructor(r){this.error=r;this.originalError=r}_tag="WebSocketConnectionError";originalError}0&&(module.exports={HttpFetchApiError,WebSocketConnectionError});
|
2
2
|
//# sourceMappingURL=Errors.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../../../src/internal/manager-api/model/Errors.ts"],
|
4
|
-
"sourcesContent": ["import { type DmkError } from \"@api/Error\";\n\nexport class HttpFetchApiError implements DmkError {\n _tag = \"FetchError\";\n originalError?: unknown;\n\n constructor(public readonly error: unknown) {\n this.originalError = error;\n }\n}\n"],
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,
|
6
|
-
"names": ["Errors_exports", "__export", "HttpFetchApiError", "__toCommonJS", "error"]
|
4
|
+
"sourcesContent": ["import { type DmkError } from \"@api/Error\";\n\nexport class HttpFetchApiError implements DmkError {\n _tag = \"FetchError\";\n originalError?: unknown;\n\n constructor(public readonly error: unknown) {\n this.originalError = error;\n }\n}\n\nexport class WebSocketConnectionError implements DmkError {\n _tag = \"WebSocketConnectionError\";\n originalError?: unknown;\n\n constructor(public readonly error: unknown) {\n this.originalError = error;\n }\n}\n"],
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,EAAA,6BAAAC,IAAA,eAAAC,EAAAJ,GAEO,MAAME,CAAsC,CAIjD,YAA4BG,EAAgB,CAAhB,WAAAA,EAC1B,KAAK,cAAgBA,CACvB,CALA,KAAO,aACP,aAKF,CAEO,MAAMF,CAA6C,CAIxD,YAA4BE,EAAgB,CAAhB,WAAAA,EAC1B,KAAK,cAAgBA,CACvB,CALA,KAAO,2BACP,aAKF",
|
6
|
+
"names": ["Errors_exports", "__export", "HttpFetchApiError", "WebSocketConnectionError", "__toCommonJS", "error"]
|
7
7
|
}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
"use strict";var t=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var n=(r,a,p,e)=>{if(a&&typeof a=="object"||typeof a=="function")for(let s of P(a))!i.call(r,s)&&s!==p&&t(r,s,{get:()=>a[s],enumerable:!(e=m(a,s))||e.enumerable});return r};var u=r=>n(t({},"__esModule",{value:!0}),r);var y={};module.exports=u(y);
|
2
|
+
//# sourceMappingURL=Params.js.map
|
@@ -0,0 +1,7 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"sources": ["../../../../../../src/internal/manager-api/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 deleteKey - The key used to delete the app.\n * @property hash - The hash of the app.\n */\ntype AppSubParams = {\n deleteKey: string;\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 & AppSubParams;\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 & AppSubParams;\n"],
|
5
|
+
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
6
|
+
"names": ["Params_exports", "__toCommonJS"]
|
7
|
+
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var t=require("purify-ts"),
|
1
|
+
"use strict";var t=require("purify-ts"),s=require("../../../api/command/os/__mocks__/GetOsVersionCommand"),i=require("../../../api/device/DeviceModel"),e=require("../../../api/device-action/__test-utils__/data"),n=require("../../manager-api/data/AxiosManagerApiDataSource"),p=require("../../manager-api/model/Errors"),h=require("./DefaultManagerApiService");jest.mock("@internal/manager-api/data/AxiosManagerApiDataSource");let r,o;describe("ManagerApiService",()=>{beforeEach(()=>{r=new n.AxiosManagerApiDataSource({}),o=new h.DefaultManagerApiService(r)}),describe("getAppsByHash",()=>{describe("success cases",()=>{it("with no apps, should return an empty list",async()=>{r.getAppsByHash.mockResolvedValue((0,t.Right)([])),expect(await o.getAppsByHash([])).toEqual((0,t.Right)([]))}),it("with one app, should return the metadata",async()=>{r.getAppsByHash.mockResolvedValue((0,t.Right)([e.BTC_APP_METADATA])),expect(await o.getAppsByHash([e.BTC_APP])).toEqual((0,t.Right)([e.BTC_APP_METADATA]))}),it("with two app, should return the metadata of both apps",async()=>{r.getAppsByHash.mockResolvedValue((0,t.Right)([e.BTC_APP_METADATA,e.ETH_APP_METADATA])),expect(await o.getAppsByHash([e.BTC_APP,e.ETH_APP])).toEqual((0,t.Right)([e.BTC_APP_METADATA,e.ETH_APP_METADATA]))}),it("with one app and one without `appFullHash`, should return the metadata of the correct app",async()=>{r.getAppsByHash.mockResolvedValue((0,t.Right)([e.BTC_APP_METADATA]));const a={...e.ETH_APP,appFullHash:""};expect(await o.getAppsByHash([e.BTC_APP,a])).toEqual((0,t.Right)([e.BTC_APP_METADATA]))})}),describe("error cases",()=>{it("should return an error when the data source fails with a known error",async()=>{const a=new p.HttpFetchApiError(new Error("Failed to fetch data"));r.getAppsByHash.mockRejectedValue(a),expect(await o.getAppsByHash([e.BTC_APP])).toEqual((0,t.Left)(a))}),it("should return an error when the data source fails with an unknown error",async()=>{const a=new Error("unkown error");r.getAppsByHash.mockRejectedValue(a),expect(await o.getAppsByHash([e.BTC_APP])).toEqual((0,t.Left)(new p.HttpFetchApiError(a)))})})}),describe("getDeviceVersion",()=>{it("should call api with the correct parameters",()=>{const a=(0,s.getOsVersionCommandResponseMockBuilder)(i.DeviceModelId.STAX);o.getDeviceVersion(a,42),expect(r.getDeviceVersion).toHaveBeenCalledWith("857735172",42)})}),describe("getFirmwareVersion",()=>{it("should call api with the correct parameters",()=>{const a={id:17,target_id:"857735172"},c=(0,s.getOsVersionCommandResponseMockBuilder)(i.DeviceModelId.STAX);o.getFirmwareVersion(c,a,42),expect(r.getFirmwareVersion).toHaveBeenCalledWith("1.3.0",17,42)})})});
|
2
2
|
//# sourceMappingURL=DefaultManagerApiService.test.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../../../src/internal/manager-api/service/DefaultManagerApiService.test.ts"],
|
4
|
-
"sourcesContent": ["import { Left, Right } from \"purify-ts\";\n\nimport { getOsVersionCommandResponseMockBuilder } from \"@api/command/os/__mocks__/GetOsVersionCommand\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport {\n BTC_APP,\n BTC_APP_METADATA,\n ETH_APP,\n ETH_APP_METADATA,\n} from \"@api/device-action/__test-utils__/data\";\nimport {
|
5
|
-
"mappings": "aAAA,IAAAA,EAA4B,qBAE5BC,EAAuD,yDACvDC,EAA8B,mCAC9BC,EAKO,
|
6
|
-
"names": ["import_purify_ts", "import_GetOsVersionCommand", "import_DeviceModel", "import_data", "
|
4
|
+
"sourcesContent": ["import { Left, Right } from \"purify-ts\";\n\nimport { getOsVersionCommandResponseMockBuilder } from \"@api/command/os/__mocks__/GetOsVersionCommand\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport {\n BTC_APP,\n BTC_APP_METADATA,\n ETH_APP,\n ETH_APP_METADATA,\n} from \"@api/device-action/__test-utils__/data\";\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { AxiosManagerApiDataSource } from \"@internal/manager-api/data/AxiosManagerApiDataSource\";\nimport { HttpFetchApiError } from \"@internal/manager-api/model/Errors\";\n\nimport { DefaultManagerApiService } from \"./DefaultManagerApiService\";\nimport { type ManagerApiService } from \"./ManagerApiService\";\n\njest.mock(\"@internal/manager-api/data/AxiosManagerApiDataSource\");\nlet dataSource: jest.Mocked<AxiosManagerApiDataSource>;\nlet service: ManagerApiService;\ndescribe(\"ManagerApiService\", () => {\n beforeEach(() => {\n dataSource = new AxiosManagerApiDataSource(\n {} as DmkConfig,\n ) as jest.Mocked<AxiosManagerApiDataSource>;\n service = new DefaultManagerApiService(dataSource);\n });\n\n describe(\"getAppsByHash\", () => {\n describe(\"success cases\", () => {\n it(\"with no apps, should return an empty list\", async () => {\n dataSource.getAppsByHash.mockResolvedValue(Right([]));\n expect(await service.getAppsByHash([])).toEqual(Right([]));\n });\n\n it(\"with one app, should return the metadata\", async () => {\n dataSource.getAppsByHash.mockResolvedValue(Right([BTC_APP_METADATA]));\n expect(await service.getAppsByHash([BTC_APP])).toEqual(\n Right([BTC_APP_METADATA]),\n );\n });\n\n it(\"with two app, should return the metadata of both apps\", async () => {\n dataSource.getAppsByHash.mockResolvedValue(\n Right([BTC_APP_METADATA, ETH_APP_METADATA]),\n );\n expect(await service.getAppsByHash([BTC_APP, ETH_APP])).toEqual(\n Right([BTC_APP_METADATA, ETH_APP_METADATA]),\n );\n });\n\n it(\"with one app and one without `appFullHash`, should return the metadata of the correct app\", async () => {\n dataSource.getAppsByHash.mockResolvedValue(Right([BTC_APP_METADATA]));\n const APP_WITH_NO_HASH = { ...ETH_APP, appFullHash: \"\" };\n expect(\n await service.getAppsByHash([BTC_APP, APP_WITH_NO_HASH]),\n ).toEqual(Right([BTC_APP_METADATA]));\n });\n });\n\n describe(\"error cases\", () => {\n it(\"should return an error when the data source fails with a known error\", async () => {\n const error = new HttpFetchApiError(new Error(\"Failed to fetch data\"));\n dataSource.getAppsByHash.mockRejectedValue(error);\n expect(await service.getAppsByHash([BTC_APP])).toEqual(Left(error));\n });\n\n it(\"should return an error when the data source fails with an unknown error\", async () => {\n const error = new Error(\"unkown error\");\n dataSource.getAppsByHash.mockRejectedValue(error);\n expect(await service.getAppsByHash([BTC_APP])).toEqual(\n Left(new HttpFetchApiError(error)),\n );\n });\n });\n });\n\n describe(\"getDeviceVersion\", () => {\n it(\"should call api with the correct parameters\", () => {\n // given\n const deviceInfo = getOsVersionCommandResponseMockBuilder(\n DeviceModelId.STAX,\n );\n const provider = 42;\n // when\n service.getDeviceVersion(deviceInfo, provider);\n // then\n expect(dataSource.getDeviceVersion).toHaveBeenCalledWith(\"857735172\", 42);\n });\n });\n describe(\"getFirmwareVersion\", () => {\n it(\"should call api with the correct parameters\", () => {\n // given\n const mockGetDeviceVersion = {\n id: 17,\n target_id: \"857735172\",\n };\n const deviceInfo = getOsVersionCommandResponseMockBuilder(\n DeviceModelId.STAX,\n );\n const provider = 42;\n // when\n service.getFirmwareVersion(deviceInfo, mockGetDeviceVersion, provider);\n // then\n expect(dataSource.getFirmwareVersion).toHaveBeenCalledWith(\n \"1.3.0\",\n 17,\n 42,\n );\n });\n });\n});\n"],
|
5
|
+
"mappings": "aAAA,IAAAA,EAA4B,qBAE5BC,EAAuD,yDACvDC,EAA8B,mCAC9BC,EAKO,kDAEPC,EAA0C,gEAC1CC,EAAkC,8CAElCC,EAAyC,sCAGzC,KAAK,KAAK,sDAAsD,EAChE,IAAIC,EACAC,EACJ,SAAS,oBAAqB,IAAM,CAClC,WAAW,IAAM,CACfD,EAAa,IAAI,4BACf,CAAC,CACH,EACAC,EAAU,IAAI,2BAAyBD,CAAU,CACnD,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,SAAS,gBAAiB,IAAM,CAC9B,GAAG,4CAA6C,SAAY,CAC1DA,EAAW,cAAc,qBAAkB,SAAM,CAAC,CAAC,CAAC,EACpD,OAAO,MAAMC,EAAQ,cAAc,CAAC,CAAC,CAAC,EAAE,WAAQ,SAAM,CAAC,CAAC,CAAC,CAC3D,CAAC,EAED,GAAG,2CAA4C,SAAY,CACzDD,EAAW,cAAc,qBAAkB,SAAM,CAAC,kBAAgB,CAAC,CAAC,EACpE,OAAO,MAAMC,EAAQ,cAAc,CAAC,SAAO,CAAC,CAAC,EAAE,WAC7C,SAAM,CAAC,kBAAgB,CAAC,CAC1B,CACF,CAAC,EAED,GAAG,wDAAyD,SAAY,CACtED,EAAW,cAAc,qBACvB,SAAM,CAAC,mBAAkB,kBAAgB,CAAC,CAC5C,EACA,OAAO,MAAMC,EAAQ,cAAc,CAAC,UAAS,SAAO,CAAC,CAAC,EAAE,WACtD,SAAM,CAAC,mBAAkB,kBAAgB,CAAC,CAC5C,CACF,CAAC,EAED,GAAG,4FAA6F,SAAY,CAC1GD,EAAW,cAAc,qBAAkB,SAAM,CAAC,kBAAgB,CAAC,CAAC,EACpE,MAAME,EAAmB,CAAE,GAAG,UAAS,YAAa,EAAG,EACvD,OACE,MAAMD,EAAQ,cAAc,CAAC,UAASC,CAAgB,CAAC,CACzD,EAAE,WAAQ,SAAM,CAAC,kBAAgB,CAAC,CAAC,CACrC,CAAC,CACH,CAAC,EAED,SAAS,cAAe,IAAM,CAC5B,GAAG,uEAAwE,SAAY,CACrF,MAAMC,EAAQ,IAAI,oBAAkB,IAAI,MAAM,sBAAsB,CAAC,EACrEH,EAAW,cAAc,kBAAkBG,CAAK,EAChD,OAAO,MAAMF,EAAQ,cAAc,CAAC,SAAO,CAAC,CAAC,EAAE,WAAQ,QAAKE,CAAK,CAAC,CACpE,CAAC,EAED,GAAG,0EAA2E,SAAY,CACxF,MAAMA,EAAQ,IAAI,MAAM,cAAc,EACtCH,EAAW,cAAc,kBAAkBG,CAAK,EAChD,OAAO,MAAMF,EAAQ,cAAc,CAAC,SAAO,CAAC,CAAC,EAAE,WAC7C,QAAK,IAAI,oBAAkBE,CAAK,CAAC,CACnC,CACF,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,mBAAoB,IAAM,CACjC,GAAG,8CAA+C,IAAM,CAEtD,MAAMC,KAAa,0CACjB,gBAAc,IAChB,EAGAH,EAAQ,iBAAiBG,EAFR,EAE4B,EAE7C,OAAOJ,EAAW,gBAAgB,EAAE,qBAAqB,YAAa,EAAE,CAC1E,CAAC,CACH,CAAC,EACD,SAAS,qBAAsB,IAAM,CACnC,GAAG,8CAA+C,IAAM,CAEtD,MAAMK,EAAuB,CAC3B,GAAI,GACJ,UAAW,WACb,EACMD,KAAa,0CACjB,gBAAc,IAChB,EAGAH,EAAQ,mBAAmBG,EAAYC,EAFtB,EAEoD,EAErE,OAAOL,EAAW,kBAAkB,EAAE,qBACpC,QACA,GACA,EACF,CACF,CAAC,CACH,CAAC,CACH,CAAC",
|
6
|
+
"names": ["import_purify_ts", "import_GetOsVersionCommand", "import_DeviceModel", "import_data", "import_AxiosManagerApiDataSource", "import_Errors", "import_DefaultManagerApiService", "dataSource", "service", "APP_WITH_NO_HASH", "error", "deviceInfo", "mockGetDeviceVersion"]
|
7
7
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var u=require("purify-ts"),m=require("../../../api/transport/model/TransportConnectedDevice.stub"),c=require("../../device-session/model/DeviceSession.stub"),
|
1
|
+
"use strict";var u=require("purify-ts"),m=require("../../../api/transport/model/TransportConnectedDevice.stub"),c=require("../../device-session/model/DeviceSession.stub"),r=require("../../device-session/model/Errors"),f=require("../../device-session/service/DefaultDeviceSessionService"),S=require("../../logger-publisher/service/DefaultLoggerPublisherService"),v=require("../../manager-api/data/AxiosManagerApiDataSource"),l=require("../../manager-api/service/DefaultManagerApiService"),n=require("../../send/use-case/SendApduUseCase");jest.mock("@internal/manager-api/data/AxiosManagerApiDataSource");let e,o,p,t;const a="fakeSessionId";describe("SendApduUseCase",()=>{beforeEach(()=>{e=new S.DefaultLoggerPublisherService([],"send-apdu-use-case"),o=new f.DefaultDeviceSessionService(()=>e),p=new v.AxiosManagerApiDataSource({}),t=new l.DefaultManagerApiService(p)}),it("should send an APDU to a connected device",async()=>{const s=(0,c.deviceSessionStubBuilder)({},()=>e,t);o.addDeviceSession(s);const d=await new n.SendApduUseCase(o,()=>e).execute({sessionId:a,apdu:new Uint8Array([0,1,2,3])});s.close(),expect(s.connectedDevice.sendApdu).toHaveBeenCalledTimes(1),expect(d).toBeDefined()}),it("should throw an error if the deviceSession is not found",async()=>{const i=new n.SendApduUseCase(o,()=>e).execute({sessionId:a,apdu:new Uint8Array([0,1,2,3])});await expect(i).rejects.toBeInstanceOf(r.DeviceSessionNotFound)}),it("should throw an error if the apdu receiver failed",async()=>{const s=(0,m.connectedDeviceStubBuilder)({sendApdu:jest.fn(async()=>Promise.resolve((0,u.Left)(new r.ReceiverApduError)))}),i=(0,c.deviceSessionStubBuilder)({connectedDevice:s},()=>e,t);o.addDeviceSession(i);const x=new n.SendApduUseCase(o,()=>e).execute({sessionId:a,apdu:new Uint8Array([0,1,2,3])});i.close(),await expect(x).rejects.toBeInstanceOf(r.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 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 { SendApduUseCase } from \"@internal/send/use-case/SendApduUseCase\";\n\njest.mock(\"@internal/manager-api/data/AxiosManagerApiDataSource\");\n\nlet logger: LoggerPublisherService;\nlet sessionService: DeviceSessionService;\nlet managerApiDataSource: ManagerApiDataSource;\nlet managerApi: ManagerApiService;\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({
|
5
|
-
"mappings": "aAAA,IAAAA,EAAqB,
|
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 { SendApduUseCase } from \"@internal/send/use-case/SendApduUseCase\";\n\njest.mock(\"@internal/manager-api/data/AxiosManagerApiDataSource\");\n\nlet logger: LoggerPublisherService;\nlet sessionService: DeviceSessionService;\nlet managerApiDataSource: ManagerApiDataSource;\nlet managerApi: ManagerApiService;\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 });\n\n it(\"should send an APDU to a connected device\", async () => {\n // given\n const deviceSession = deviceSessionStubBuilder(\n {},\n () => logger,\n managerApi,\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: jest.fn(async () =>\n Promise.resolve(Left(new ReceiverApduError())),\n ),\n });\n const deviceSession = deviceSessionStubBuilder(\n { connectedDevice },\n () => logger,\n managerApi,\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,EAAgC,mDAEhC,KAAK,KAAK,sDAAsD,EAEhE,IAAIC,EACAC,EACAC,EACAC,EACJ,MAAMC,EAAgB,gBAEtB,SAAS,kBAAmB,IAAM,CAChC,WAAW,IAAM,CACfJ,EAAS,IAAI,gCAA8B,CAAC,EAAG,oBAAoB,EACnEC,EAAiB,IAAI,8BAA4B,IAAMD,CAAM,EAC7DE,EAAuB,IAAI,4BAA0B,CAAC,CAAc,EACpEC,EAAa,IAAI,2BAAyBD,CAAoB,CAChE,CAAC,EAED,GAAG,4CAA6C,SAAY,CAE1D,MAAMG,KAAgB,4BACpB,CAAC,EACD,IAAML,EACNG,CACF,EACAF,EAAe,iBAAiBI,CAAa,EAI7C,MAAMC,EAAW,MAHD,IAAI,kBAAgBL,EAAgB,IAAMD,CAAM,EAGjC,QAAQ,CACrC,UAAWI,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,kBAAgBL,EAAgB,IAAMD,CAAM,EAGvC,QAAQ,CAC/B,UAAWI,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,KAAK,GAAG,SAChB,QAAQ,WAAQ,QAAK,IAAI,mBAAmB,CAAC,CAC/C,CACF,CAAC,EACKF,KAAgB,4BACpB,CAAE,gBAAAE,CAAgB,EAClB,IAAMP,EACNG,CACF,EACAF,EAAe,iBAAiBI,CAAa,EAI7C,MAAMC,EAHU,IAAI,kBAAgBL,EAAgB,IAAMD,CAAM,EAGvC,QAAQ,CAC/B,UAAWI,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
6
|
"names": ["import_purify_ts", "import_TransportConnectedDevice", "import_DeviceSession", "import_Errors", "import_DefaultDeviceSessionService", "import_DefaultLoggerPublisherService", "import_AxiosManagerApiDataSource", "import_DefaultManagerApiService", "import_SendApduUseCase", "logger", "sessionService", "managerApiDataSource", "managerApi", "fakeSessionId", "deviceSession", "response", "connectedDevice"]
|
7
7
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var o=require("inversify"),a=require("../../../api/transport/model/__mocks__/TransportMock"),i=require("../../device-model/di/deviceModelModule"),
|
1
|
+
"use strict";var o=require("inversify"),a=require("../../../api/transport/model/__mocks__/TransportMock"),i=require("../../device-model/di/deviceModelModule"),c=require("../../device-session/di/deviceSessionModule"),p=require("../../logger-publisher/di/loggerModule"),s=require("./transportDiTypes"),n=require("./transportModule");describe("transportModuleFactory",()=>{describe("Default",()=>{let e,t;beforeEach(()=>{t=(0,n.transportModuleFactory)(),e=new o.Container,e.load(t)}),it("should create the transport module",()=>{expect(t).toBeDefined()}),it("should not bind the TransportService when transports is empty",()=>{try{e.get(s.transportDiTypes.TransportService)}catch(r){expect(r).toBeDefined()}})}),describe("With transports",()=>{let e,t,r;beforeEach(()=>{r=new a.TransportMock,jest.spyOn(r,"getIdentifier").mockReturnValue("MOCK");const d=(0,p.loggerModuleFactory)(),l=(0,i.deviceModelModuleFactory)({stub:!0}),u=(0,c.deviceSessionModuleFactory)({stub:!0});t=(0,n.transportModuleFactory)({transports:[()=>r],config:{managerApiUrl:"http://fake.url/api",mockUrl:"http://fake.url",webSocketUrl:"ws://fake.websocket.url"}}),e=new o.Container,e.load(d,l,u,t)}),it("should bind the TransportService",()=>{expect(e.get(s.transportDiTypes.TransportService)).toBeDefined()})}),describe("With stub",()=>{let e,t,r;beforeEach(()=>{r=new a.TransportMock,jest.spyOn(r,"getIdentifier").mockReturnValue("MOCK"),t=(0,n.transportModuleFactory)({stub:!0,transports:[()=>r]}),e=new o.Container,e.load(t)}),it("should create the transport module",()=>{expect(t).toBeDefined()})})});
|
2
2
|
//# sourceMappingURL=transportModule.test.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../../../src/internal/transport/di/transportModule.test.ts"],
|
4
|
-
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { TransportMock } from \"@api/transport/model/__mocks__/TransportMock\";\nimport { deviceModelModuleFactory } from \"@internal/device-model/di/deviceModelModule\";\nimport { deviceSessionModuleFactory } from \"@internal/device-session/di/deviceSessionModule\";\nimport { loggerModuleFactory } from \"@internal/logger-publisher/di/loggerModule\";\n\nimport { transportDiTypes } from \"./transportDiTypes\";\nimport { transportModuleFactory } from \"./transportModule\";\n\ndescribe(\"transportModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof transportModuleFactory>;\n beforeEach(() => {\n mod = transportModuleFactory();\n container = new Container();\n container.load(mod);\n });\n\n it(\"should create the transport module\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should not bind the TransportService when transports is empty\", () => {\n try {\n container.get(transportDiTypes.TransportService);\n } catch (error) {\n expect(error).toBeDefined();\n }\n });\n });\n\n describe(\"With transports\", () => {\n let container: Container;\n let mod: ReturnType<typeof transportModuleFactory>;\n let transport: TransportMock;\n beforeEach(() => {\n transport = new TransportMock();\n jest.spyOn(transport, \"getIdentifier\").mockReturnValue(\"MOCK\");\n const logger = loggerModuleFactory();\n const deviceModel = deviceModelModuleFactory({ stub: true });\n const deviceSession = deviceSessionModuleFactory({ stub: true });\n mod = transportModuleFactory({\n transports: [() => transport],\n config: {\n managerApiUrl: \"http://fake.url/api\",\n mockUrl: \"http://fake.url\",\n },\n });\n container = new Container();\n container.load(logger, deviceModel, deviceSession, mod);\n });\n\n it(\"should bind the TransportService\", () => {\n expect(container.get(transportDiTypes.TransportService)).toBeDefined();\n });\n });\n\n describe(\"With stub\", () => {\n let container: Container;\n let mod: ReturnType<typeof transportModuleFactory>;\n let transport: TransportMock;\n beforeEach(() => {\n transport = new TransportMock();\n jest.spyOn(transport, \"getIdentifier\").mockReturnValue(\"MOCK\");\n mod = transportModuleFactory({\n stub: true,\n transports: [() => transport],\n });\n container = new Container();\n container.load(mod);\n });\n\n it(\"should create the transport module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
|
5
|
-
"mappings": "aAAA,IAAAA,EAA0B,qBAE1BC,EAA8B,wDAC9BC,EAAyC,uDACzCC,EAA2C,2DAC3CC,EAAoC,sDAEpCC,EAAiC,8BACjCC,EAAuC,6BAEvC,SAAS,yBAA0B,IAAM,CACvC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,KAAM,0BAAuB,EAC7BD,EAAY,IAAI,YAChBA,EAAU,KAAKC,CAAG,CACpB,CAAC,EAED,GAAG,qCAAsC,IAAM,CAC7C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,gEAAiE,IAAM,CACxE,GAAI,CACFD,EAAU,IAAI,mBAAiB,gBAAgB,CACjD,OAASE,EAAO,CACd,OAAOA,CAAK,EAAE,YAAY,CAC5B,CACF,CAAC,CACH,CAAC,EAED,SAAS,kBAAmB,IAAM,CAChC,IAAIF,EACAC,EACAE,EACJ,WAAW,IAAM,CACfA,EAAY,IAAI,gBAChB,KAAK,MAAMA,EAAW,eAAe,EAAE,gBAAgB,MAAM,EAC7D,MAAMC,KAAS,uBAAoB,EAC7BC,KAAc,4BAAyB,CAAE,KAAM,EAAK,CAAC,EACrDC,KAAgB,8BAA2B,CAAE,KAAM,EAAK,CAAC,EAC/DL,KAAM,0BAAuB,CAC3B,WAAY,CAAC,IAAME,CAAS,EAC5B,OAAQ,CACN,cAAe,sBACf,QAAS,
|
4
|
+
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { TransportMock } from \"@api/transport/model/__mocks__/TransportMock\";\nimport { deviceModelModuleFactory } from \"@internal/device-model/di/deviceModelModule\";\nimport { deviceSessionModuleFactory } from \"@internal/device-session/di/deviceSessionModule\";\nimport { loggerModuleFactory } from \"@internal/logger-publisher/di/loggerModule\";\n\nimport { transportDiTypes } from \"./transportDiTypes\";\nimport { transportModuleFactory } from \"./transportModule\";\n\ndescribe(\"transportModuleFactory\", () => {\n describe(\"Default\", () => {\n let container: Container;\n let mod: ReturnType<typeof transportModuleFactory>;\n beforeEach(() => {\n mod = transportModuleFactory();\n container = new Container();\n container.load(mod);\n });\n\n it(\"should create the transport module\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should not bind the TransportService when transports is empty\", () => {\n try {\n container.get(transportDiTypes.TransportService);\n } catch (error) {\n expect(error).toBeDefined();\n }\n });\n });\n\n describe(\"With transports\", () => {\n let container: Container;\n let mod: ReturnType<typeof transportModuleFactory>;\n let transport: TransportMock;\n beforeEach(() => {\n transport = new TransportMock();\n jest.spyOn(transport, \"getIdentifier\").mockReturnValue(\"MOCK\");\n const logger = loggerModuleFactory();\n const deviceModel = deviceModelModuleFactory({ stub: true });\n const deviceSession = deviceSessionModuleFactory({ stub: true });\n mod = transportModuleFactory({\n transports: [() => transport],\n config: {\n managerApiUrl: \"http://fake.url/api\",\n mockUrl: \"http://fake.url\",\n webSocketUrl: \"ws://fake.websocket.url\",\n },\n });\n container = new Container();\n container.load(logger, deviceModel, deviceSession, mod);\n });\n\n it(\"should bind the TransportService\", () => {\n expect(container.get(transportDiTypes.TransportService)).toBeDefined();\n });\n });\n\n describe(\"With stub\", () => {\n let container: Container;\n let mod: ReturnType<typeof transportModuleFactory>;\n let transport: TransportMock;\n beforeEach(() => {\n transport = new TransportMock();\n jest.spyOn(transport, \"getIdentifier\").mockReturnValue(\"MOCK\");\n mod = transportModuleFactory({\n stub: true,\n transports: [() => transport],\n });\n container = new Container();\n container.load(mod);\n });\n\n it(\"should create the transport module\", () => {\n expect(mod).toBeDefined();\n });\n });\n});\n"],
|
5
|
+
"mappings": "aAAA,IAAAA,EAA0B,qBAE1BC,EAA8B,wDAC9BC,EAAyC,uDACzCC,EAA2C,2DAC3CC,EAAoC,sDAEpCC,EAAiC,8BACjCC,EAAuC,6BAEvC,SAAS,yBAA0B,IAAM,CACvC,SAAS,UAAW,IAAM,CACxB,IAAIC,EACAC,EACJ,WAAW,IAAM,CACfA,KAAM,0BAAuB,EAC7BD,EAAY,IAAI,YAChBA,EAAU,KAAKC,CAAG,CACpB,CAAC,EAED,GAAG,qCAAsC,IAAM,CAC7C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,gEAAiE,IAAM,CACxE,GAAI,CACFD,EAAU,IAAI,mBAAiB,gBAAgB,CACjD,OAASE,EAAO,CACd,OAAOA,CAAK,EAAE,YAAY,CAC5B,CACF,CAAC,CACH,CAAC,EAED,SAAS,kBAAmB,IAAM,CAChC,IAAIF,EACAC,EACAE,EACJ,WAAW,IAAM,CACfA,EAAY,IAAI,gBAChB,KAAK,MAAMA,EAAW,eAAe,EAAE,gBAAgB,MAAM,EAC7D,MAAMC,KAAS,uBAAoB,EAC7BC,KAAc,4BAAyB,CAAE,KAAM,EAAK,CAAC,EACrDC,KAAgB,8BAA2B,CAAE,KAAM,EAAK,CAAC,EAC/DL,KAAM,0BAAuB,CAC3B,WAAY,CAAC,IAAME,CAAS,EAC5B,OAAQ,CACN,cAAe,sBACf,QAAS,kBACT,aAAc,yBAChB,CACF,CAAC,EACDH,EAAY,IAAI,YAChBA,EAAU,KAAKI,EAAQC,EAAaC,EAAeL,CAAG,CACxD,CAAC,EAED,GAAG,mCAAoC,IAAM,CAC3C,OAAOD,EAAU,IAAI,mBAAiB,gBAAgB,CAAC,EAAE,YAAY,CACvE,CAAC,CACH,CAAC,EAED,SAAS,YAAa,IAAM,CAC1B,IAAIA,EACAC,EACAE,EACJ,WAAW,IAAM,CACfA,EAAY,IAAI,gBAChB,KAAK,MAAMA,EAAW,eAAe,EAAE,gBAAgB,MAAM,EAC7DF,KAAM,0BAAuB,CAC3B,KAAM,GACN,WAAY,CAAC,IAAME,CAAS,CAC9B,CAAC,EACDH,EAAY,IAAI,YAChBA,EAAU,KAAKC,CAAG,CACpB,CAAC,EAED,GAAG,qCAAsC,IAAM,CAC7C,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,CACH,CAAC,CACH,CAAC",
|
6
6
|
"names": ["import_inversify", "import_TransportMock", "import_deviceModelModule", "import_deviceSessionModule", "import_loggerModule", "import_transportDiTypes", "import_transportModule", "container", "mod", "error", "transport", "logger", "deviceModel", "deviceSession"]
|
7
7
|
}
|
package/lib/esm/package.json
CHANGED
@@ -37,11 +37,13 @@
|
|
37
37
|
"axios": "^1.7.9",
|
38
38
|
"inversify": "^6.2.1",
|
39
39
|
"inversify-logger-middleware": "^3.1.0",
|
40
|
+
"isomorphic-ws": "^5.0.0",
|
40
41
|
"purify-ts": "^2.1.0",
|
41
42
|
"reflect-metadata": "^0.2.2",
|
42
43
|
"semver": "^7.6.3",
|
43
44
|
"uuid": "^11.0.3",
|
44
|
-
"
|
45
|
+
"ws": "^8.18.0",
|
46
|
+
"xstate": "^5.19.2"
|
45
47
|
},
|
46
48
|
"peerDependencies": {
|
47
49
|
"rxjs": "^7.8.1"
|
@@ -54,6 +56,7 @@
|
|
54
56
|
"@ledgerhq/tsconfig-dsdk": "workspace:*",
|
55
57
|
"@types/semver": "^7.5.8",
|
56
58
|
"@types/uuid": "^10.0.0",
|
59
|
+
"@types/ws": "^8.5.13",
|
57
60
|
"rxjs": "^7.8.1",
|
58
61
|
"ts-node": "^10.9.2"
|
59
62
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import{StubLocalConfigDataSource as c}from"../internal/config/data/LocalConfigDataSource.stub";import{configTypes as r}from"../internal/config/di/configTypes";import{deviceSessionTypes as a}from"../internal/device-session/di/deviceSessionTypes";import{discoveryTypes as t}from"../internal/discovery/di/discoveryTypes";import{sendTypes as d}from"../internal/send/di/sendTypes";import m from"../../package.json";import{StubUseCase as p}from"../../src/di.stub";import{commandTypes as f}from"./command/di/commandTypes";import{ConsoleLogger as
|
1
|
+
import{StubLocalConfigDataSource as c}from"../internal/config/data/LocalConfigDataSource.stub";import{configTypes as r}from"../internal/config/di/configTypes";import{deviceSessionTypes as a}from"../internal/device-session/di/deviceSessionTypes";import{discoveryTypes as t}from"../internal/discovery/di/discoveryTypes";import{sendTypes as d}from"../internal/send/di/sendTypes";import m from"../../package.json";import{StubUseCase as p}from"../../src/di.stub";import{commandTypes as f}from"./command/di/commandTypes";import{ConsoleLogger as l}from"./logger-subscriber/service/ConsoleLogger";import{DeviceManagementKit as o}from"./DeviceManagementKit";jest.mock("./logger-subscriber/service/ConsoleLogger");let e,n;describe("DeviceManagementKit",()=>{describe("clean",()=>{beforeEach(()=>{n=new l,e=new o({stub:!1,loggers:[n],config:{managerApiUrl:"http://fake.url",mockUrl:"http://fake-mock.url",webSocketUrl:"http://fake-websocket.url"}})}),it("should create an instance",()=>{expect(e).toBeDefined(),expect(e).toBeInstanceOf(o)}),it("should return a clean `version`",async()=>{expect(await e.getVersion()).toBe(m.version)}),it("should have startDiscovery method",()=>{expect(e.startDiscovering).toBeDefined()}),it("should have stopDiscovery method",()=>{expect(e.stopDiscovering).toBeDefined()}),it("should have connect method",()=>{expect(e.connect).toBeDefined()}),it("should have sendApdu method",()=>{expect(e.sendApdu).toBeDefined()}),it("should have getConnectedDevice method",()=>{expect(e.getConnectedDevice).toBeDefined()}),it("should have sendCommand method",()=>{expect(e.sendCommand).toBeDefined()}),it("should have listConnectedDevices method",()=>{expect(e.listConnectedDevices).toBeDefined()}),it("should have listenToConnectedDevice method",()=>{expect(e.listenToConnectedDevice).toBeDefined()}),it("should have toggleDeviceSessionRefresher method",()=>{expect(e.toggleDeviceSessionRefresher).toBeDefined()})}),describe("stubbed",()=>{beforeEach(()=>{e=new o({stub:!0,loggers:[],config:{managerApiUrl:"http://fake.url",mockUrl:"http://fake-mock.url",webSocketUrl:"http://fake-websocket.url"}})}),it("should create a stubbed dmk",()=>{expect(e).toBeDefined(),expect(e).toBeInstanceOf(o)}),it("should return a stubbed config",()=>{expect(e.container.get(r.LocalConfigDataSource)).toBeInstanceOf(c)}),it("should return a stubbed version",async()=>{expect(await e.getVersion()).toBe("0.0.0-stub.1")}),it.each([[t.StartDiscoveringUseCase],[t.StopDiscoveringUseCase],[t.ConnectUseCase],[d.SendApduUseCase],[f.SendCommandUseCase],[t.GetConnectedDeviceUseCase],[t.DisconnectUseCase],[a.GetDeviceSessionStateUseCase],[t.ListConnectedDevicesUseCase],[t.ListenToConnectedDeviceUseCase]])("should have %p use case",i=>{const s=e.container.get(i);expect(s).toBeInstanceOf(p),expect(s.execute()).toBe("stub")})})});
|
2
2
|
//# sourceMappingURL=DeviceManagementKit.test.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../src/api/DeviceManagementKit.test.ts"],
|
4
|
-
"sourcesContent": ["import { type interfaces } from \"inversify\";\n\nimport { type LocalConfigDataSource } from \"@internal/config/data/ConfigDataSource\";\nimport { StubLocalConfigDataSource } from \"@internal/config/data/LocalConfigDataSource.stub\";\nimport { configTypes } from \"@internal/config/di/configTypes\";\nimport { deviceSessionTypes } from \"@internal/device-session/di/deviceSessionTypes\";\nimport { discoveryTypes } from \"@internal/discovery/di/discoveryTypes\";\nimport { sendTypes } from \"@internal/send/di/sendTypes\";\nimport pkg from \"@root/package.json\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { commandTypes } from \"./command/di/commandTypes\";\nimport { ConsoleLogger } from \"./logger-subscriber/service/ConsoleLogger\";\nimport { DeviceManagementKit } from \"./DeviceManagementKit\";\n\njest.mock(\"./logger-subscriber/service/ConsoleLogger\");\n\nlet dmk: DeviceManagementKit;\nlet logger: ConsoleLogger;\ndescribe(\"DeviceManagementKit\", () => {\n describe(\"clean\", () => {\n beforeEach(() => {\n logger = new ConsoleLogger();\n dmk = new DeviceManagementKit({\n stub: false,\n loggers: [logger],\n config: {\n managerApiUrl: \"http://fake.url\",\n mockUrl: \"http://fake-mock.url\",\n },\n });\n });\n\n it(\"should create an instance\", () => {\n expect(dmk).toBeDefined();\n expect(dmk).toBeInstanceOf(DeviceManagementKit);\n });\n\n it(\"should return a clean `version`\", async () => {\n expect(await dmk.getVersion()).toBe(pkg.version);\n });\n\n it(\"should have startDiscovery method\", () => {\n expect(dmk.startDiscovering).toBeDefined();\n });\n\n it(\"should have stopDiscovery method\", () => {\n expect(dmk.stopDiscovering).toBeDefined();\n });\n\n it(\"should have connect method\", () => {\n expect(dmk.connect).toBeDefined();\n });\n\n it(\"should have sendApdu method\", () => {\n expect(dmk.sendApdu).toBeDefined();\n });\n\n it(\"should have getConnectedDevice method\", () => {\n expect(dmk.getConnectedDevice).toBeDefined();\n });\n\n it(\"should have sendCommand method\", () => {\n expect(dmk.sendCommand).toBeDefined();\n });\n\n it(\"should have listConnectedDevices method\", () => {\n expect(dmk.listConnectedDevices).toBeDefined();\n });\n\n it(\"should have listenToConnectedDevice method\", () => {\n expect(dmk.listenToConnectedDevice).toBeDefined();\n });\n\n it(\"should have toggleDeviceSessionRefresher method\", () => {\n expect(dmk.toggleDeviceSessionRefresher).toBeDefined();\n });\n });\n\n describe(\"stubbed\", () => {\n beforeEach(() => {\n dmk = new DeviceManagementKit({\n stub: true,\n loggers: [],\n config: {\n managerApiUrl: \"http://fake.url\",\n mockUrl: \"http://fake-mock.url\",\n },\n });\n });\n\n it(\"should create a stubbed dmk\", () => {\n expect(dmk).toBeDefined();\n expect(dmk).toBeInstanceOf(DeviceManagementKit);\n });\n\n it(\"should return a stubbed config\", () => {\n expect(\n dmk.container.get<LocalConfigDataSource>(\n configTypes.LocalConfigDataSource,\n ),\n ).toBeInstanceOf(StubLocalConfigDataSource);\n });\n\n it(\"should return a stubbed version\", async () => {\n expect(await dmk.getVersion()).toBe(\"0.0.0-stub.1\");\n });\n\n it.each([\n [discoveryTypes.StartDiscoveringUseCase],\n [discoveryTypes.StopDiscoveringUseCase],\n [discoveryTypes.ConnectUseCase],\n [sendTypes.SendApduUseCase],\n [commandTypes.SendCommandUseCase],\n [discoveryTypes.GetConnectedDeviceUseCase],\n [discoveryTypes.DisconnectUseCase],\n [deviceSessionTypes.GetDeviceSessionStateUseCase],\n [discoveryTypes.ListConnectedDevicesUseCase],\n [discoveryTypes.ListenToConnectedDeviceUseCase],\n ])(\n \"should have %p use case\",\n (diSymbol: interfaces.ServiceIdentifier<StubUseCase>) => {\n const uc = dmk.container.get<StubUseCase>(diSymbol);\n expect(uc).toBeInstanceOf(StubUseCase);\n expect(uc.execute()).toBe(\"stub\");\n },\n );\n });\n});\n"],
|
5
|
-
"mappings": "AAGA,OAAS,6BAAAA,MAAiC,mDAC1C,OAAS,eAAAC,MAAmB,kCAC5B,OAAS,sBAAAC,MAA0B,iDACnC,OAAS,kBAAAC,MAAsB,wCAC/B,OAAS,aAAAC,MAAiB,8BAC1B,OAAOC,MAAS,qBAChB,OAAS,eAAAC,MAAmB,oBAE5B,OAAS,gBAAAC,MAAoB,4BAC7B,OAAS,iBAAAC,MAAqB,4CAC9B,OAAS,uBAAAC,MAA2B,wBAEpC,KAAK,KAAK,2CAA2C,EAErD,IAAIC,EACAC,EACJ,SAAS,sBAAuB,IAAM,CACpC,SAAS,QAAS,IAAM,CACtB,WAAW,IAAM,CACfA,EAAS,IAAIH,EACbE,EAAM,IAAID,EAAoB,CAC5B,KAAM,GACN,QAAS,CAACE,CAAM,EAChB,OAAQ,CACN,cAAe,kBACf,QAAS,
|
4
|
+
"sourcesContent": ["import { type interfaces } from \"inversify\";\n\nimport { type LocalConfigDataSource } from \"@internal/config/data/ConfigDataSource\";\nimport { StubLocalConfigDataSource } from \"@internal/config/data/LocalConfigDataSource.stub\";\nimport { configTypes } from \"@internal/config/di/configTypes\";\nimport { deviceSessionTypes } from \"@internal/device-session/di/deviceSessionTypes\";\nimport { discoveryTypes } from \"@internal/discovery/di/discoveryTypes\";\nimport { sendTypes } from \"@internal/send/di/sendTypes\";\nimport pkg from \"@root/package.json\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { commandTypes } from \"./command/di/commandTypes\";\nimport { ConsoleLogger } from \"./logger-subscriber/service/ConsoleLogger\";\nimport { DeviceManagementKit } from \"./DeviceManagementKit\";\n\njest.mock(\"./logger-subscriber/service/ConsoleLogger\");\n\nlet dmk: DeviceManagementKit;\nlet logger: ConsoleLogger;\ndescribe(\"DeviceManagementKit\", () => {\n describe(\"clean\", () => {\n beforeEach(() => {\n logger = new ConsoleLogger();\n dmk = new DeviceManagementKit({\n stub: false,\n loggers: [logger],\n config: {\n managerApiUrl: \"http://fake.url\",\n mockUrl: \"http://fake-mock.url\",\n webSocketUrl: \"http://fake-websocket.url\",\n },\n });\n });\n\n it(\"should create an instance\", () => {\n expect(dmk).toBeDefined();\n expect(dmk).toBeInstanceOf(DeviceManagementKit);\n });\n\n it(\"should return a clean `version`\", async () => {\n expect(await dmk.getVersion()).toBe(pkg.version);\n });\n\n it(\"should have startDiscovery method\", () => {\n expect(dmk.startDiscovering).toBeDefined();\n });\n\n it(\"should have stopDiscovery method\", () => {\n expect(dmk.stopDiscovering).toBeDefined();\n });\n\n it(\"should have connect method\", () => {\n expect(dmk.connect).toBeDefined();\n });\n\n it(\"should have sendApdu method\", () => {\n expect(dmk.sendApdu).toBeDefined();\n });\n\n it(\"should have getConnectedDevice method\", () => {\n expect(dmk.getConnectedDevice).toBeDefined();\n });\n\n it(\"should have sendCommand method\", () => {\n expect(dmk.sendCommand).toBeDefined();\n });\n\n it(\"should have listConnectedDevices method\", () => {\n expect(dmk.listConnectedDevices).toBeDefined();\n });\n\n it(\"should have listenToConnectedDevice method\", () => {\n expect(dmk.listenToConnectedDevice).toBeDefined();\n });\n\n it(\"should have toggleDeviceSessionRefresher method\", () => {\n expect(dmk.toggleDeviceSessionRefresher).toBeDefined();\n });\n });\n\n describe(\"stubbed\", () => {\n beforeEach(() => {\n dmk = new DeviceManagementKit({\n stub: true,\n loggers: [],\n config: {\n managerApiUrl: \"http://fake.url\",\n mockUrl: \"http://fake-mock.url\",\n webSocketUrl: \"http://fake-websocket.url\",\n },\n });\n });\n\n it(\"should create a stubbed dmk\", () => {\n expect(dmk).toBeDefined();\n expect(dmk).toBeInstanceOf(DeviceManagementKit);\n });\n\n it(\"should return a stubbed config\", () => {\n expect(\n dmk.container.get<LocalConfigDataSource>(\n configTypes.LocalConfigDataSource,\n ),\n ).toBeInstanceOf(StubLocalConfigDataSource);\n });\n\n it(\"should return a stubbed version\", async () => {\n expect(await dmk.getVersion()).toBe(\"0.0.0-stub.1\");\n });\n\n it.each([\n [discoveryTypes.StartDiscoveringUseCase],\n [discoveryTypes.StopDiscoveringUseCase],\n [discoveryTypes.ConnectUseCase],\n [sendTypes.SendApduUseCase],\n [commandTypes.SendCommandUseCase],\n [discoveryTypes.GetConnectedDeviceUseCase],\n [discoveryTypes.DisconnectUseCase],\n [deviceSessionTypes.GetDeviceSessionStateUseCase],\n [discoveryTypes.ListConnectedDevicesUseCase],\n [discoveryTypes.ListenToConnectedDeviceUseCase],\n ])(\n \"should have %p use case\",\n (diSymbol: interfaces.ServiceIdentifier<StubUseCase>) => {\n const uc = dmk.container.get<StubUseCase>(diSymbol);\n expect(uc).toBeInstanceOf(StubUseCase);\n expect(uc.execute()).toBe(\"stub\");\n },\n );\n });\n});\n"],
|
5
|
+
"mappings": "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",
|
6
6
|
"names": ["StubLocalConfigDataSource", "configTypes", "deviceSessionTypes", "discoveryTypes", "sendTypes", "pkg", "StubUseCase", "commandTypes", "ConsoleLogger", "DeviceManagementKit", "dmk", "logger", "diSymbol", "uc"]
|
7
7
|
}
|