@ledgerhq/device-management-kit 1.9.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/lib/cjs/package.json +1 -1
- package/lib/cjs/src/api/DeviceManagementKit.js +1 -1
- package/lib/cjs/src/api/DeviceManagementKit.js.map +3 -3
- package/lib/cjs/src/api/DeviceManagementKit.test.js +1 -1
- package/lib/cjs/src/api/DeviceManagementKit.test.js.map +3 -3
- package/lib/cjs/src/api/command/os/GetOsVersionCommand.js +1 -1
- package/lib/cjs/src/api/command/os/GetOsVersionCommand.js.map +3 -3
- package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js +1 -1
- package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js.map +3 -3
- package/lib/cjs/src/api/command/os/SecureElementFlagsParser.js +1 -1
- package/lib/cjs/src/api/command/os/SecureElementFlagsParser.js.map +3 -3
- package/lib/cjs/src/api/command/os/SecureElementFlagsParser.test.js +1 -1
- package/lib/cjs/src/api/command/os/SecureElementFlagsParser.test.js.map +3 -3
- package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js +1 -1
- package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +3 -3
- package/lib/cjs/src/api/device/SecureElementFlags.js +1 -1
- package/lib/cjs/src/api/device/SecureElementFlags.js.map +3 -3
- package/lib/cjs/src/api/index.js +1 -1
- package/lib/cjs/src/api/index.js.map +3 -3
- package/lib/cjs/src/internal/manager-api/data/HttpManagerApiDataSource.js +1 -1
- package/lib/cjs/src/internal/manager-api/data/HttpManagerApiDataSource.js.map +3 -3
- package/lib/cjs/src/internal/manager-api/data/HttpManagerApiDataSource.test.js +1 -1
- package/lib/cjs/src/internal/manager-api/data/HttpManagerApiDataSource.test.js.map +3 -3
- package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js +1 -1
- package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js.map +2 -2
- package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +1 -1
- package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +2 -2
- package/lib/cjs/src/internal/secure-channel/data/SecureChannelDataSource.js +1 -1
- package/lib/cjs/src/internal/secure-channel/data/SecureChannelDataSource.js.map +1 -1
- package/lib/cjs/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js +1 -1
- package/lib/cjs/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js.map +2 -2
- package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.js +1 -1
- package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.js.map +3 -3
- package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js +1 -1
- package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js.map +3 -3
- package/lib/cjs/src/internal/secure-channel/di/secureChannelTypes.js +1 -1
- package/lib/cjs/src/internal/secure-channel/di/secureChannelTypes.js.map +2 -2
- package/lib/cjs/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.js +2 -0
- package/lib/cjs/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.js.map +7 -0
- package/lib/cjs/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.js +2 -0
- package/lib/cjs/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.js.map +7 -0
- package/lib/esm/package.json +1 -1
- package/lib/esm/src/api/DeviceManagementKit.js +1 -1
- package/lib/esm/src/api/DeviceManagementKit.js.map +3 -3
- package/lib/esm/src/api/DeviceManagementKit.test.js +1 -1
- package/lib/esm/src/api/DeviceManagementKit.test.js.map +3 -3
- package/lib/esm/src/api/command/os/GetOsVersionCommand.js +1 -1
- package/lib/esm/src/api/command/os/GetOsVersionCommand.js.map +3 -3
- package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js +1 -1
- package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js.map +3 -3
- package/lib/esm/src/api/command/os/SecureElementFlagsParser.js +1 -1
- package/lib/esm/src/api/command/os/SecureElementFlagsParser.js.map +3 -3
- package/lib/esm/src/api/command/os/SecureElementFlagsParser.test.js +1 -1
- package/lib/esm/src/api/command/os/SecureElementFlagsParser.test.js.map +3 -3
- package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js +1 -1
- package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +3 -3
- package/lib/esm/src/api/device/SecureElementFlags.js +1 -0
- package/lib/esm/src/api/device/SecureElementFlags.js.map +4 -4
- package/lib/esm/src/api/index.js +1 -1
- package/lib/esm/src/api/index.js.map +3 -3
- package/lib/esm/src/internal/manager-api/data/HttpManagerApiDataSource.js +1 -1
- package/lib/esm/src/internal/manager-api/data/HttpManagerApiDataSource.js.map +3 -3
- package/lib/esm/src/internal/manager-api/data/HttpManagerApiDataSource.test.js +1 -1
- package/lib/esm/src/internal/manager-api/data/HttpManagerApiDataSource.test.js.map +3 -3
- package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js +1 -1
- package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.js.map +2 -2
- package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +1 -1
- package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +2 -2
- package/lib/esm/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js +1 -1
- package/lib/esm/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js.map +2 -2
- package/lib/esm/src/internal/secure-channel/di/secureChannelModule.js +1 -1
- package/lib/esm/src/internal/secure-channel/di/secureChannelModule.js.map +3 -3
- package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js +1 -1
- package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js.map +3 -3
- package/lib/esm/src/internal/secure-channel/di/secureChannelTypes.js +1 -1
- package/lib/esm/src/internal/secure-channel/di/secureChannelTypes.js.map +2 -2
- package/lib/esm/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.js +2 -0
- package/lib/esm/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.js.map +7 -0
- package/lib/esm/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.js +2 -0
- package/lib/esm/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.js.map +7 -0
- package/lib/types/src/api/DeviceManagementKit.d.ts +10 -0
- package/lib/types/src/api/DeviceManagementKit.d.ts.map +1 -1
- package/lib/types/src/api/command/os/GetOsVersionCommand.d.ts +2 -2
- package/lib/types/src/api/command/os/GetOsVersionCommand.d.ts.map +1 -1
- package/lib/types/src/api/command/os/SecureElementFlagsParser.d.ts +0 -3
- package/lib/types/src/api/command/os/SecureElementFlagsParser.d.ts.map +1 -1
- package/lib/types/src/api/command/os/__mocks__/GetOsVersionCommand.d.ts.map +1 -1
- package/lib/types/src/api/device/SecureElementFlags.d.ts +78 -3
- package/lib/types/src/api/device/SecureElementFlags.d.ts.map +1 -1
- package/lib/types/src/api/index.d.ts +2 -1
- package/lib/types/src/api/index.d.ts.map +1 -1
- package/lib/types/src/internal/manager-api/data/HttpManagerApiDataSource.d.ts.map +1 -1
- package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.d.ts +3 -1
- package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.d.ts.map +1 -1
- package/lib/types/src/internal/secure-channel/data/SecureChannelDataSource.d.ts +10 -0
- package/lib/types/src/internal/secure-channel/data/SecureChannelDataSource.d.ts.map +1 -1
- package/lib/types/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.d.ts +2 -0
- package/lib/types/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.d.ts.map +1 -1
- package/lib/types/src/internal/secure-channel/di/secureChannelModule.d.ts.map +1 -1
- package/lib/types/src/internal/secure-channel/di/secureChannelTypes.d.ts +1 -0
- package/lib/types/src/internal/secure-channel/di/secureChannelTypes.d.ts.map +1 -1
- package/lib/types/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.d.ts +10 -0
- package/lib/types/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.d.ts.map +1 -0
- package/lib/types/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.d.ts +2 -0
- package/lib/types/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.d.ts.map +1 -0
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var s=require("purify-ts"),t=require("../../../api/device-action/__test-utils__/data"),i=require("../../manager-api/model/Errors"),o=require("./HttpManagerApiDataSource");describe("HttpManagerApiDataSource",()=>{describe("getAppList",()=>{let r;beforeEach(()=>{r=new o.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return a list of applications",async()=>{const e=[t.BTC_APP_METADATA,t.ETH_APP_METADATA];vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify(e)));const a=await r.getAppList({targetId:"targetId",firmwareVersionName:"firmwareVersionName"});expect(a).toEqual((0,s.Right)(e))}),it("should return an error if payload don't match the dto",async()=>{const{versionId:e,...a}=t.BTC_APP_METADATA,n=[{versionId:"invalidVersion",...a}];vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify(n)));const l=await r.getAppList({targetId:"targetId",firmwareVersionName:"firmwareVersionName"});expect(l.isRight()).toEqual(!1)}),it("should return an error if the request fails",async()=>{const e=new Error("fetch error");vi.spyOn(globalThis,"fetch").mockRejectedValue(e);const a=await r.getAppList({targetId:"targetId",firmwareVersionName:"firmwareVersionName"});expect(a).toEqual((0,s.Left)(new i.HttpFetchApiError(e)))})}),describe("getAppsByHash",()=>{describe("success cases",()=>{let r;beforeEach(()=>{r=new o.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("with BTC app, should return the metadata",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([t.BTC_APP_METADATA])));const e=[t.BTC_APP.appFullHash],a=await r.getAppsByHash({hashes:e});expect(a).toEqual((0,s.Right)([t.BTC_APP_METADATA]))}),it("with no apps, should return an empty list",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([])));const e=[],a=await r.getAppsByHash({hashes:e});expect(a).toEqual((0,s.Right)([]))}),it("with BTC app and custom lock screen, should return the metadata",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([t.BTC_APP_METADATA,t.CUSTOM_LOCK_SCREEN_APP_METADATA])));const e=[t.BTC_APP.appFullHash,t.CUSTOM_LOCK_SCREEN_APP.appFullHash],a=await r.getAppsByHash({hashes:e});expect(a).toEqual((0,s.Right)([t.BTC_APP_METADATA,t.CUSTOM_LOCK_SCREEN_APP_METADATA]))})}),describe("error cases",()=>{let r;beforeEach(()=>{r=new o.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("with BTC app, should fail if payload don't match the dto",async()=>{const{versionId:e,...a}=t.BTC_APP_METADATA;vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([{versionId:"invalidVersion",...a}])));const n=[t.BTC_APP.appFullHash],l=await r.getAppsByHash({hashes:n});expect(l.isRight()).toEqual(!1)}),it("should throw an error if the request fails",async()=>{const e=new o.HttpManagerApiDataSource({managerApiUrl:"http://localhost"}),a=new Error("fetch error");vi.spyOn(globalThis,"fetch").mockRejectedValue(a);const n=[t.BTC_APP.appFullHash],l=await e.getAppsByHash({hashes:n});expect(l).toEqual((0,s.Left)(new i.HttpFetchApiError(a)))})})}),describe("getDeviceVersion",()=>{let r;beforeEach(()=>{r=new o.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return a complete device version",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({id:17,target_id:"857735172"})));const e=await r.getDeviceVersion({targetId:"targetId"});expect(e).toEqual((0,s.Right)({id:17}))}),it("should return an error if payload don't match dto",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({target_id:"857735172"})));const e=await r.getDeviceVersion({targetId:"targetId"});expect(e.isRight()).toEqual(!1)}),it("should return an error if the request fails",async()=>{const e=new Error("fetch error");vi.spyOn(globalThis,"fetch").mockRejectedValue(e);const a=await r.getDeviceVersion({targetId:"targetId"});expect(a).toEqual((0,s.Left)(new i.HttpFetchApiError(e)))})}),describe("getFirmwareVersion",()=>{let r;beforeEach(()=>{r=new o.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return a complete firmware version",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({id:361,version:"1.6.0",perso:"perso_11",firmware:null,firmware_key:"testKey",hash:"hash",bytes:194,mcu_versions:[1,5,7]})));const e=await r.getFirmwareVersion({version:"versionName",deviceId:42});expect(e).toEqual((0,s.Right)({id:361,version:"1.6.0",perso:"perso_11",firmware:null,firmwareKey:"testKey",hash:"hash",bytes:194,mcuVersions:[1,5,7]}))}),it("should return an error if payload don't match the dto",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({id:"invalidId",version:"1.6.0",perso:"perso_11",firmware:null,firmware_key:"testKey",hash:"hash",bytes:194,mcu_versions:[1,5,7]})));const e=await r.getFirmwareVersion({version:"versionName",deviceId:42});expect(e.isRight()).toEqual(!1)}),it("should return an error if the request fails",async()=>{const e=new Error("fetch error");vi.spyOn(globalThis,"fetch").mockRejectedValue(e);const a=await r.getFirmwareVersion({version:"versionName",deviceId:42});expect(a).toEqual((0,s.Left)(new i.HttpFetchApiError(e)))})}),describe("setProvider",()=>{let r;beforeEach(()=>{r=new o.HttpManagerApiDataSource({managerApiUrl:"http://fake-url.com",provider:1})}),it("should not change the provider if the new value is the same",()=>{const e=r._provider;r.setProvider(e),expect(r._provider).toBe(e)}),it("should not change the provider if the new value is less than 1",()=>{const e=r._provider;r.setProvider(0),r.setProvider(-5),expect(r._provider).toBe(e)}),it("should update the provider if a valid and different value is provided",()=>{r.setProvider(2),expect(r._provider).toBe(2)})}),describe("getFirmwareVersionById",()=>{let r;beforeEach(()=>{r=new o.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return a complete firmware version",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({id:361,version:"1.6.0",perso:"perso_11",firmware:null,firmware_key:"testKey",hash:"hash",bytes:194,mcu_versions:[1,5,7]})));const e=await r.getFirmwareVersionById(42);expect(e).toEqual((0,s.Right)({id:361,version:"1.6.0",perso:"perso_11",firmware:null,firmwareKey:"testKey",hash:"hash",bytes:194,mcuVersions:[1,5,7]}))})}),describe("getLatestFirmwareVersion",()=>{let r;beforeEach(()=>{r=new o.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return the latest firmware version",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({result:"success",se_firmware_osu_version:{id:361,perso:"perso_11",notes:"notes",firmware:"test",firmware_key:"testKey",hash:"hash",next_se_firmware_final_version:567}})));const e=await r.getLatestFirmwareVersion({currentFinalFirmwareId:200,deviceId:42});expect(e).toEqual((0,s.Right)((0,s.Just)({id:361,perso:"perso_11",notes:"notes",firmware:"test",firmwareKey:"testKey",hash:"hash",nextFinalFirmware:567})))}),it("should return nothing when no latest firmware version is available",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({result:"null",se_firmware_osu_version:null})));const e=await r.getLatestFirmwareVersion({currentFinalFirmwareId:200,deviceId:42});expect(e).toEqual((0,s.Right)(s.Nothing))}),it("should return an error if result is not success",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({result:"failed",se_firmware_osu_version:null})));const e=await r.getLatestFirmwareVersion({currentFinalFirmwareId:200,deviceId:42});expect(e.isRight()).toEqual(!1)}),it("should return an error if payload don't match the dto",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({result:"success",se_firmware_osu_version:{id:"InvalidId",perso:"perso_11",firmware:"test",firmware_key:"testKey",hash:"hash",next_se_firmware_final_version:567}})));const e=await r.getLatestFirmwareVersion({currentFinalFirmwareId:200,deviceId:42});expect(e.isRight()).toEqual(!1)}),it("should return an error if the request fails",async()=>{const e=new Error("fetch error");vi.spyOn(globalThis,"fetch").mockRejectedValue(e);const a=await r.getLatestFirmwareVersion({currentFinalFirmwareId:200,deviceId:42});expect(a).toEqual((0,s.Left)(new i.HttpFetchApiError(e)))})}),describe("getOsuFirmwareVersion",()=>{let r;beforeEach(()=>{r=new o.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return a complete OSU firmware version",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({id:361,perso:"perso_11",notes:"notes",firmware:"test",firmware_key:"testKey",hash:"hash",next_se_firmware_final_version:567})));const e=await r.getOsuFirmwareVersion({version:"versionName",deviceId:42});expect(e).toEqual((0,s.Right)({id:361,perso:"perso_11",notes:"notes",firmware:"test",firmwareKey:"testKey",hash:"hash",nextFinalFirmware:567}))}),it("should return an error if payload don't match the dto",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({id:"invalidId",perso:"perso_11",firmware:"test",firmware_key:"testKey",hash:"hash",next_se_firmware_final_version:567})));const e=await r.getOsuFirmwareVersion({version:"versionName",deviceId:42});expect(e.isRight()).toEqual(!1)}),it("should return an error if the request fails",async()=>{const e=new Error("fetch error");vi.spyOn(globalThis,"fetch").mockRejectedValue(e);const a=await r.getOsuFirmwareVersion({version:"versionName",deviceId:42});expect(a).toEqual((0,s.Left)(new i.HttpFetchApiError(e)))})}),describe("getLanguagePackages",()=>{let r;beforeEach(()=>{r=new o.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return the langage packages version",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([{language:"turkish",languagePackageVersionId:474,version:"0.0.4",language_package_id:57,apdu_install_url:"https://download.languages.ledger.com/stax/turkish/bolos_1.6.2_pack_0.0.4_tr.apdu",apdu_uninstall_url:"https://download.languages.ledger.com/stax/turkish/bolos_1.6.2_pack_0.0.4_tr_del.apdu",device_versions:[17],se_firmware_final_versions:[432],bytes:20800,date_creation:"2025-03-04T10:48:27.910630Z",date_last_modified:"2025-03-04T10:48:27.910630Z"},{language:"russian",languagePackageVersionId:470,version:"0.0.4",language_package_id:56,apdu_install_url:"https://download.languages.ledger.com/stax/russian/bolos_1.6.2_pack_0.0.4_ru.apdu",apdu_uninstall_url:"https://download.languages.ledger.com/stax/russian/bolos_1.6.2_pack_0.0.4_ru_del.apdu",device_versions:[17],se_firmware_final_versions:[432],bytes:46592,date_creation:"2025-03-04T10:48:26.218729Z",date_last_modified:"2025-03-04T10:48:26.218729Z"}])));const e=await r.getLanguagePackages({deviceId:1,currentFinalFirmwareId:42});expect(e).toEqual((0,s.Right)([{language:"turkish",languagePackageVersionId:474,version:"0.0.4",languagePackageId:57,apduInstallUrl:"https://download.languages.ledger.com/stax/turkish/bolos_1.6.2_pack_0.0.4_tr.apdu",apduUninstallUrl:"https://download.languages.ledger.com/stax/turkish/bolos_1.6.2_pack_0.0.4_tr_del.apdu",bytes:20800,dateCreation:"2025-03-04T10:48:27.910630Z",dateLastModified:"2025-03-04T10:48:27.910630Z"},{language:"russian",languagePackageVersionId:470,version:"0.0.4",languagePackageId:56,apduInstallUrl:"https://download.languages.ledger.com/stax/russian/bolos_1.6.2_pack_0.0.4_ru.apdu",apduUninstallUrl:"https://download.languages.ledger.com/stax/russian/bolos_1.6.2_pack_0.0.4_ru_del.apdu",bytes:46592,dateCreation:"2025-03-04T10:48:26.218729Z",dateLastModified:"2025-03-04T10:48:26.218729Z"}]))}),it("should return an error if payload don't match the dto",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([{language:"turkish",version:"0.0.4",language_package_id:"invalid"}])));const e=await r.getLanguagePackages({deviceId:1,currentFinalFirmwareId:42});expect(e.isRight()).toEqual(!1)}),it("should return an error if the request fails",async()=>{const e=new Error("fetch error");vi.spyOn(globalThis,"fetch").mockRejectedValue(e);const a=await r.getLanguagePackages({deviceId:1,currentFinalFirmwareId:42});expect(a).toEqual((0,s.Left)(new i.HttpFetchApiError(e)))})}),describe("getMcuList",()=>{let r;beforeEach(()=>{r=new o.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return the list of MCUs",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([{id:1,mcu:1,name:"1.0",description:null,providers:[1],device_versions:[1,2],from_bootloader_version:"1.0",from_bootloader_version_id:2,se_firmware_final_versions:[7,12,13,14,15],date_creation:"2018-09-20T13:30:50.156394Z",date_last_modified:"2018-09-20T13:30:50.156453Z"},{id:2,mcu:1,name:"1.1",description:null,providers:[1,2],device_versions:[1,2],from_bootloader_version:"1.0",from_bootloader_version_id:2,se_firmware_final_versions:[7,12,13,14,15],date_creation:"2018-09-20T13:30:50.339966Z",date_last_modified:"2018-09-20T13:30:50.340031Z"}])));const e=await r.getMcuList();expect(e).toEqual((0,s.Right)([{id:1,name:"1.0",fromBootloaderVersion:"1.0",providers:[1]},{id:2,name:"1.1",fromBootloaderVersion:"1.0",providers:[1,2]}]))}),it("should return an error when the payload don't match the dto",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([{id:"invalid id",mcu:1,name:"1.0",description:null,providers:[],se_firmware_final_versions:[7,12,13,14,15],date_creation:"2018-09-20T13:30:50.156394Z",date_last_modified:"2018-09-20T13:30:50.156453Z"}])));const e=await r.getMcuList();expect(e.isRight()).toEqual(!1)}),it("should return an error if the request fails",async()=>{const e=new Error("fetch error");vi.spyOn(globalThis,"fetch").mockRejectedValue(e);const a=await r.getMcuList();expect(a).toEqual((0,s.Left)(new i.HttpFetchApiError(e)))})}),describe("getProvider",()=>{let r;beforeEach(()=>{r=new o.HttpManagerApiDataSource({managerApiUrl:"http://fake-url.com",provider:123})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return the initial provider",()=>{expect(r.getProvider()).toBe(123)}),it("should return the updated provider after setProvider is called",()=>{r.setProvider(321),expect(r.getProvider()).toBe(321)})})});
|
|
1
|
+
"use strict";var s=require("purify-ts"),t=require("../../../api/device-action/__test-utils__/data"),o=require("../../manager-api/model/Errors"),i=require("./HttpManagerApiDataSource");describe("HttpManagerApiDataSource",()=>{describe("getAppList",()=>{let r;beforeEach(()=>{r=new i.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return a list of applications",async()=>{const e=[t.BTC_APP_METADATA,t.ETH_APP_METADATA];vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify(e)));const a=await r.getAppList({targetId:"targetId",firmwareVersionName:"firmwareVersionName"});expect(a).toEqual((0,s.Right)(e))}),it("should return an error if payload don't match the dto",async()=>{const{versionId:e,...a}=t.BTC_APP_METADATA,n=[{versionId:"invalidVersion",...a}];vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify(n)));const l=await r.getAppList({targetId:"targetId",firmwareVersionName:"firmwareVersionName"});expect(l.isRight()).toEqual(!1)}),it("should return an error if the request fails",async()=>{const e=new Error("fetch error");vi.spyOn(globalThis,"fetch").mockRejectedValue(e);const a=await r.getAppList({targetId:"targetId",firmwareVersionName:"firmwareVersionName"});expect(a).toEqual((0,s.Left)(new o.HttpFetchApiError(e)))})}),describe("getAppsByHash",()=>{describe("success cases",()=>{let r;beforeEach(()=>{r=new i.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("with BTC app, should return the metadata",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([t.BTC_APP_METADATA])));const e=[t.BTC_APP.appFullHash],a=await r.getAppsByHash({hashes:e});expect(a).toEqual((0,s.Right)([t.BTC_APP_METADATA]))}),it("with no apps, should return an empty list",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([])));const e=[],a=await r.getAppsByHash({hashes:e});expect(a).toEqual((0,s.Right)([]))}),it("with BTC app and custom lock screen, should return the metadata",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([t.BTC_APP_METADATA,t.CUSTOM_LOCK_SCREEN_APP_METADATA])));const e=[t.BTC_APP.appFullHash,t.CUSTOM_LOCK_SCREEN_APP.appFullHash],a=await r.getAppsByHash({hashes:e});expect(a).toEqual((0,s.Right)([t.BTC_APP_METADATA,t.CUSTOM_LOCK_SCREEN_APP_METADATA]))})}),describe("error cases",()=>{let r;beforeEach(()=>{r=new i.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("with BTC app, should fail if payload don't match the dto",async()=>{const{versionId:e,...a}=t.BTC_APP_METADATA;vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([{versionId:"invalidVersion",...a}])));const n=[t.BTC_APP.appFullHash],l=await r.getAppsByHash({hashes:n});expect(l.isRight()).toEqual(!1)}),it("should throw an error if the request fails",async()=>{const e=new i.HttpManagerApiDataSource({managerApiUrl:"http://localhost"}),a=new Error("fetch error");vi.spyOn(globalThis,"fetch").mockRejectedValue(a);const n=[t.BTC_APP.appFullHash],l=await e.getAppsByHash({hashes:n});expect(l).toEqual((0,s.Left)(new o.HttpFetchApiError(a)))})})}),describe("getDeviceVersion",()=>{let r;beforeEach(()=>{r=new i.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return a complete device version",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({id:17,target_id:"857735172"})));const e=await r.getDeviceVersion({targetId:"targetId"});expect(e).toEqual((0,s.Right)({id:17}))}),it("should return an error if payload don't match dto",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({target_id:"857735172"})));const e=await r.getDeviceVersion({targetId:"targetId"});expect(e.isRight()).toEqual(!1)}),it("should return an error if the request fails",async()=>{const e=new Error("fetch error");vi.spyOn(globalThis,"fetch").mockRejectedValue(e);const a=await r.getDeviceVersion({targetId:"targetId"});expect(a).toEqual((0,s.Left)(new o.HttpFetchApiError(e)))})}),describe("getFirmwareVersion",()=>{let r;beforeEach(()=>{r=new i.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return a complete firmware version",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({id:361,version:"1.6.0",perso:"perso_11",firmware:null,firmware_key:"testKey",hash:"hash",bytes:194,mcu_versions:[1,5,7]})));const e=await r.getFirmwareVersion({version:"versionName",deviceId:42});expect(e).toEqual((0,s.Right)({id:361,version:"1.6.0",perso:"perso_11",firmware:null,firmwareKey:"testKey",hash:"hash",bytes:194,mcuVersions:[1,5,7]}))}),it("should return an error if payload don't match the dto",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({id:"invalidId",version:"1.6.0",perso:"perso_11",firmware:null,firmware_key:"testKey",hash:"hash",bytes:194,mcu_versions:[1,5,7]})));const e=await r.getFirmwareVersion({version:"versionName",deviceId:42});expect(e.isRight()).toEqual(!1)}),it("should return an error if the request fails",async()=>{const e=new Error("fetch error");vi.spyOn(globalThis,"fetch").mockRejectedValue(e);const a=await r.getFirmwareVersion({version:"versionName",deviceId:42});expect(a).toEqual((0,s.Left)(new o.HttpFetchApiError(e)))})}),describe("setProvider",()=>{let r;beforeEach(()=>{r=new i.HttpManagerApiDataSource({managerApiUrl:"http://fake-url.com",provider:1})}),it("should not change the provider if the new value is the same",()=>{const e=r._provider;r.setProvider(e),expect(r._provider).toBe(e)}),it("should not change the provider if the new value is less than 1",()=>{const e=r._provider;r.setProvider(0),r.setProvider(-5),expect(r._provider).toBe(e)}),it("should update the provider if a valid and different value is provided",()=>{r.setProvider(2),expect(r._provider).toBe(2)})}),describe("getFirmwareVersionById",()=>{let r;beforeEach(()=>{r=new i.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return a complete firmware version",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({id:361,version:"1.6.0",perso:"perso_11",firmware:null,firmware_key:"testKey",hash:"hash",bytes:194,mcu_versions:[1,5,7]})));const e=await r.getFirmwareVersionById(42);expect(e).toEqual((0,s.Right)({id:361,version:"1.6.0",perso:"perso_11",firmware:null,firmwareKey:"testKey",hash:"hash",bytes:194,mcuVersions:[1,5,7]}))})}),describe("getLatestFirmwareVersion",()=>{let r;beforeEach(()=>{r=new i.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return the latest firmware version",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({result:"success",se_firmware_osu_version:{id:361,perso:"perso_11",notes:"notes",firmware:"test",firmware_key:"testKey",hash:"hash",next_se_firmware_final_version:567}})));const e=await r.getLatestFirmwareVersion({currentFinalFirmwareId:200,deviceId:42});expect(e).toEqual((0,s.Right)((0,s.Just)({id:361,perso:"perso_11",notes:"notes",firmware:"test",firmwareKey:"testKey",hash:"hash",nextFinalFirmware:567})))}),it("should return nothing when no latest firmware version is available",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({result:"null",se_firmware_osu_version:null})));const e=await r.getLatestFirmwareVersion({currentFinalFirmwareId:200,deviceId:42});expect(e).toEqual((0,s.Right)(s.Nothing))}),it("should return an error if result is not success",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({result:"failed",se_firmware_osu_version:null})));const e=await r.getLatestFirmwareVersion({currentFinalFirmwareId:200,deviceId:42});expect(e.isRight()).toEqual(!1)}),it("should return an error if payload don't match the dto",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({result:"success",se_firmware_osu_version:{id:"InvalidId",perso:"perso_11",firmware:"test",firmware_key:"testKey",hash:"hash",next_se_firmware_final_version:567}})));const e=await r.getLatestFirmwareVersion({currentFinalFirmwareId:200,deviceId:42});expect(e.isRight()).toEqual(!1)}),it("should return an error if the request fails",async()=>{const e=new Error("fetch error");vi.spyOn(globalThis,"fetch").mockRejectedValue(e);const a=await r.getLatestFirmwareVersion({currentFinalFirmwareId:200,deviceId:42});expect(a).toEqual((0,s.Left)(new o.HttpFetchApiError(e)))}),it("should request the firmware params without the legacy livecommonversion param",async()=>{r=new i.HttpManagerApiDataSource({managerApiUrl:"http://localhost",provider:82,firmwareDistributionSalt:"distribution-salt"});const e=vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({result:"null",se_firmware_osu_version:null})));await r.getLatestFirmwareVersion({currentFinalFirmwareId:200,deviceId:42});const a=new URL(String(e.mock.calls[0][0]));expect(a.pathname).toEqual("/get_latest_firmware"),expect(a.searchParams.has("livecommonversion")).toEqual(!1),expect(Object.fromEntries(a.searchParams)).toEqual({current_se_firmware_final_version:"200",device_version:"42",provider:"82",salt:"distribution-salt"})})}),describe("getOsuFirmwareVersion",()=>{let r;beforeEach(()=>{r=new i.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return a complete OSU firmware version",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({id:361,perso:"perso_11",notes:"notes",firmware:"test",firmware_key:"testKey",hash:"hash",next_se_firmware_final_version:567})));const e=await r.getOsuFirmwareVersion({version:"versionName",deviceId:42});expect(e).toEqual((0,s.Right)({id:361,perso:"perso_11",notes:"notes",firmware:"test",firmwareKey:"testKey",hash:"hash",nextFinalFirmware:567}))}),it("should return an error if payload don't match the dto",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify({id:"invalidId",perso:"perso_11",firmware:"test",firmware_key:"testKey",hash:"hash",next_se_firmware_final_version:567})));const e=await r.getOsuFirmwareVersion({version:"versionName",deviceId:42});expect(e.isRight()).toEqual(!1)}),it("should return an error if the request fails",async()=>{const e=new Error("fetch error");vi.spyOn(globalThis,"fetch").mockRejectedValue(e);const a=await r.getOsuFirmwareVersion({version:"versionName",deviceId:42});expect(a).toEqual((0,s.Left)(new o.HttpFetchApiError(e)))})}),describe("getLanguagePackages",()=>{let r;beforeEach(()=>{r=new i.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return the langage packages version",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([{language:"turkish",languagePackageVersionId:474,version:"0.0.4",language_package_id:57,apdu_install_url:"https://download.languages.ledger.com/stax/turkish/bolos_1.6.2_pack_0.0.4_tr.apdu",apdu_uninstall_url:"https://download.languages.ledger.com/stax/turkish/bolos_1.6.2_pack_0.0.4_tr_del.apdu",device_versions:[17],se_firmware_final_versions:[432],bytes:20800,date_creation:"2025-03-04T10:48:27.910630Z",date_last_modified:"2025-03-04T10:48:27.910630Z"},{language:"russian",languagePackageVersionId:470,version:"0.0.4",language_package_id:56,apdu_install_url:"https://download.languages.ledger.com/stax/russian/bolos_1.6.2_pack_0.0.4_ru.apdu",apdu_uninstall_url:"https://download.languages.ledger.com/stax/russian/bolos_1.6.2_pack_0.0.4_ru_del.apdu",device_versions:[17],se_firmware_final_versions:[432],bytes:46592,date_creation:"2025-03-04T10:48:26.218729Z",date_last_modified:"2025-03-04T10:48:26.218729Z"}])));const e=await r.getLanguagePackages({deviceId:1,currentFinalFirmwareId:42});expect(e).toEqual((0,s.Right)([{language:"turkish",languagePackageVersionId:474,version:"0.0.4",languagePackageId:57,apduInstallUrl:"https://download.languages.ledger.com/stax/turkish/bolos_1.6.2_pack_0.0.4_tr.apdu",apduUninstallUrl:"https://download.languages.ledger.com/stax/turkish/bolos_1.6.2_pack_0.0.4_tr_del.apdu",bytes:20800,dateCreation:"2025-03-04T10:48:27.910630Z",dateLastModified:"2025-03-04T10:48:27.910630Z"},{language:"russian",languagePackageVersionId:470,version:"0.0.4",languagePackageId:56,apduInstallUrl:"https://download.languages.ledger.com/stax/russian/bolos_1.6.2_pack_0.0.4_ru.apdu",apduUninstallUrl:"https://download.languages.ledger.com/stax/russian/bolos_1.6.2_pack_0.0.4_ru_del.apdu",bytes:46592,dateCreation:"2025-03-04T10:48:26.218729Z",dateLastModified:"2025-03-04T10:48:26.218729Z"}]))}),it("should return an error if payload don't match the dto",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([{language:"turkish",version:"0.0.4",language_package_id:"invalid"}])));const e=await r.getLanguagePackages({deviceId:1,currentFinalFirmwareId:42});expect(e.isRight()).toEqual(!1)}),it("should return an error if the request fails",async()=>{const e=new Error("fetch error");vi.spyOn(globalThis,"fetch").mockRejectedValue(e);const a=await r.getLanguagePackages({deviceId:1,currentFinalFirmwareId:42});expect(a).toEqual((0,s.Left)(new o.HttpFetchApiError(e)))})}),describe("getMcuList",()=>{let r;beforeEach(()=>{r=new i.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return the list of MCUs",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([{id:1,mcu:1,name:"1.0",description:null,providers:[1],device_versions:[1,2],from_bootloader_version:"1.0",from_bootloader_version_id:2,se_firmware_final_versions:[7,12,13,14,15],date_creation:"2018-09-20T13:30:50.156394Z",date_last_modified:"2018-09-20T13:30:50.156453Z"},{id:2,mcu:1,name:"1.1",description:null,providers:[1,2],device_versions:[1,2],from_bootloader_version:"1.0",from_bootloader_version_id:2,se_firmware_final_versions:[7,12,13,14,15],date_creation:"2018-09-20T13:30:50.339966Z",date_last_modified:"2018-09-20T13:30:50.340031Z"}])));const e=await r.getMcuList();expect(e).toEqual((0,s.Right)([{id:1,name:"1.0",fromBootloaderVersion:"1.0",providers:[1]},{id:2,name:"1.1",fromBootloaderVersion:"1.0",providers:[1,2]}]))}),it("should return an error when the payload don't match the dto",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([{id:"invalid id",mcu:1,name:"1.0",description:null,providers:[],se_firmware_final_versions:[7,12,13,14,15],date_creation:"2018-09-20T13:30:50.156394Z",date_last_modified:"2018-09-20T13:30:50.156453Z"}])));const e=await r.getMcuList();expect(e.isRight()).toEqual(!1)}),it("should return an error if the request fails",async()=>{const e=new Error("fetch error");vi.spyOn(globalThis,"fetch").mockRejectedValue(e);const a=await r.getMcuList();expect(a).toEqual((0,s.Left)(new o.HttpFetchApiError(e)))})}),describe("getProvider",()=>{let r;beforeEach(()=>{r=new i.HttpManagerApiDataSource({managerApiUrl:"http://fake-url.com",provider:123})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return the initial provider",()=>{expect(r.getProvider()).toBe(123)}),it("should return the updated provider after setProvider is called",()=>{r.setProvider(321),expect(r.getProvider()).toBe(321)})})});
|
|
2
2
|
//# sourceMappingURL=HttpManagerApiDataSource.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/manager-api/data/HttpManagerApiDataSource.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { Just, Left, Nothing, 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 ETH_APP_METADATA,\n} from \"@api/device-action/__test-utils__/data\";\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { HttpFetchApiError } from \"@internal/manager-api/model/Errors\";\n\nimport { HttpManagerApiDataSource } from \"./HttpManagerApiDataSource\";\nimport { type ManagerApiDataSource } from \"./ManagerApiDataSource\";\n\ndescribe(\"HttpManagerApiDataSource\", () => {\n describe(\"getAppList\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"should return a list of applications\", async () => {\n // given\n const apps = [BTC_APP_METADATA, ETH_APP_METADATA];\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(JSON.stringify(apps)),\n );\n\n // when\n const response = await api.getAppList({\n targetId: \"targetId\",\n firmwareVersionName: \"firmwareVersionName\",\n });\n\n // then\n expect(response).toEqual(Right(apps));\n });\n it(\"should return an error if payload don't match the dto\", async () => {\n // given\n const { versionId, ...rest } = BTC_APP_METADATA;\n const apps = [{ versionId: \"invalidVersion\", ...rest }];\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(JSON.stringify(apps)),\n );\n\n // when\n const response = await api.getAppList({\n targetId: \"targetId\",\n firmwareVersionName: \"firmwareVersionName\",\n });\n\n // then\n expect(response.isRight()).toEqual(false);\n });\n it(\"should return an error if the request fails\", async () => {\n // given\n const error = new Error(\"fetch error\");\n vi.spyOn(globalThis, \"fetch\").mockRejectedValue(error);\n\n // when\n const response = await api.getAppList({\n targetId: \"targetId\",\n firmwareVersionName: \"firmwareVersionName\",\n });\n\n // then\n expect(response).toEqual(Left(new HttpFetchApiError(error)));\n });\n });\n describe(\"getAppsByHash\", () => {\n describe(\"success cases\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"with BTC app, should return the metadata\", async () => {\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(JSON.stringify([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 vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(JSON.stringify([])),\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 vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify([BTC_APP_METADATA, CUSTOM_LOCK_SCREEN_APP_METADATA]),\n ),\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 let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"with BTC app, should fail if payload don't match the dto\", async () => {\n const { versionId, ...rest } = BTC_APP_METADATA;\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify([{ versionId: \"invalidVersion\", ...rest }]),\n ),\n );\n\n const hashes = [BTC_APP.appFullHash];\n\n const apps = await api.getAppsByHash({ hashes });\n\n expect(apps.isRight()).toEqual(false);\n });\n\n it(\"should throw an error if the request fails\", async () => {\n // given\n const api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n\n const err = new Error(\"fetch error\");\n vi.spyOn(globalThis, \"fetch\").mockRejectedValue(err);\n\n const hashes = [BTC_APP.appFullHash];\n\n // when\n const response = await api.getAppsByHash({ hashes });\n\n // then\n expect(response).toEqual(Left(new HttpFetchApiError(err)));\n });\n });\n });\n\n describe(\"getDeviceVersion\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"should return a complete device version\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n id: 17,\n target_id: \"857735172\",\n }),\n ),\n );\n\n // when\n const response = await api.getDeviceVersion({\n targetId: \"targetId\",\n });\n\n // then\n expect(response).toEqual(Right({ id: 17 }));\n });\n\n it(\"should return an error if payload don't match dto\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n target_id: \"857735172\",\n }),\n ),\n );\n\n // when\n const response = await api.getDeviceVersion({\n targetId: \"targetId\",\n });\n\n // then\n expect(response.isRight()).toEqual(false);\n });\n\n it(\"should return an error if the request fails\", async () => {\n // given\n\n const error = new Error(\"fetch error\");\n vi.spyOn(globalThis, \"fetch\").mockRejectedValue(error);\n\n // when\n const response = await api.getDeviceVersion({\n targetId: \"targetId\",\n });\n\n // then\n expect(response).toEqual(Left(new HttpFetchApiError(error)));\n });\n });\n\n describe(\"getFirmwareVersion\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"should return a complete firmware version\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n id: 361,\n version: \"1.6.0\",\n perso: \"perso_11\",\n firmware: null,\n firmware_key: \"testKey\",\n hash: \"hash\",\n bytes: 194,\n mcu_versions: [1, 5, 7],\n }),\n ),\n );\n\n // when\n const response = await api.getFirmwareVersion({\n version: \"versionName\",\n deviceId: 42,\n });\n\n // then\n expect(response).toEqual(\n Right({\n id: 361,\n version: \"1.6.0\",\n perso: \"perso_11\",\n firmware: null,\n firmwareKey: \"testKey\",\n hash: \"hash\",\n bytes: 194,\n mcuVersions: [1, 5, 7],\n }),\n );\n });\n it(\"should return an error if payload don't match the dto\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n id: \"invalidId\",\n version: \"1.6.0\",\n perso: \"perso_11\",\n firmware: null,\n firmware_key: \"testKey\",\n hash: \"hash\",\n bytes: 194,\n mcu_versions: [1, 5, 7],\n }),\n ),\n );\n\n // when\n const response = await api.getFirmwareVersion({\n version: \"versionName\",\n deviceId: 42,\n });\n\n // then\n expect(response.isRight()).toEqual(false);\n });\n it(\"should return an error if the request fails\", async () => {\n // given\n const error = new Error(\"fetch error\");\n vi.spyOn(globalThis, \"fetch\").mockRejectedValue(error);\n\n // when\n const response = await api.getFirmwareVersion({\n version: \"versionName\",\n deviceId: 42,\n });\n\n // then\n expect(response).toEqual(Left(new HttpFetchApiError(error)));\n });\n });\n\n describe(\"setProvider\", () => {\n let api: HttpManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://fake-url.com\",\n provider: 1,\n } as DmkConfig);\n });\n\n it(\"should not change the provider if the new value is the same\", () => {\n // given\n const initialProvider = (api as unknown as { _provider: number })\n ._provider;\n\n // when\n api.setProvider(initialProvider);\n\n // then\n expect((api as unknown as { _provider: number })._provider).toBe(\n initialProvider,\n );\n });\n\n it(\"should not change the provider if the new value is less than 1\", () => {\n // given\n const initialProvider = (api as unknown as { _provider: number })\n ._provider;\n\n // when\n api.setProvider(0); // invalid\n api.setProvider(-5); // invalid\n\n // then\n expect((api as unknown as { _provider: number })._provider).toBe(\n initialProvider,\n );\n });\n\n it(\"should update the provider if a valid and different value is provided\", () => {\n // given\n const newProvider = 2;\n\n // when\n api.setProvider(newProvider);\n\n // then\n expect((api as unknown as { _provider: number })._provider).toBe(\n newProvider,\n );\n });\n });\n\n describe(\"getFirmwareVersionById\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"should return a complete firmware version\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n id: 361,\n version: \"1.6.0\",\n perso: \"perso_11\",\n firmware: null,\n firmware_key: \"testKey\",\n hash: \"hash\",\n bytes: 194,\n mcu_versions: [1, 5, 7],\n }),\n ),\n );\n\n // when\n const response = await api.getFirmwareVersionById(42);\n\n // then\n expect(response).toEqual(\n Right({\n id: 361,\n version: \"1.6.0\",\n perso: \"perso_11\",\n firmware: null,\n firmwareKey: \"testKey\",\n hash: \"hash\",\n bytes: 194,\n mcuVersions: [1, 5, 7],\n }),\n );\n });\n });\n\n describe(\"getLatestFirmwareVersion\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"should return the latest firmware version\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n result: \"success\",\n se_firmware_osu_version: {\n id: 361,\n perso: \"perso_11\",\n notes: \"notes\",\n firmware: \"test\",\n firmware_key: \"testKey\",\n hash: \"hash\",\n next_se_firmware_final_version: 567,\n },\n }),\n ),\n );\n\n // when\n const response = await api.getLatestFirmwareVersion({\n currentFinalFirmwareId: 200,\n deviceId: 42,\n });\n\n // then\n expect(response).toEqual(\n Right(\n Just({\n id: 361,\n perso: \"perso_11\",\n notes: \"notes\",\n firmware: \"test\",\n firmwareKey: \"testKey\",\n hash: \"hash\",\n nextFinalFirmware: 567,\n }),\n ),\n );\n });\n\n it(\"should return nothing when no latest firmware version is available\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n result: \"null\",\n se_firmware_osu_version: null,\n }),\n ),\n );\n\n // when\n const response = await api.getLatestFirmwareVersion({\n currentFinalFirmwareId: 200,\n deviceId: 42,\n });\n\n // then\n expect(response).toEqual(Right(Nothing));\n });\n\n it(\"should return an error if result is not success\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n result: \"failed\",\n se_firmware_osu_version: null,\n }),\n ),\n );\n\n // when\n const response = await api.getLatestFirmwareVersion({\n currentFinalFirmwareId: 200,\n deviceId: 42,\n });\n\n // then\n expect(response.isRight()).toEqual(false);\n });\n it(\"should return an error if payload don't match the dto\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n result: \"success\",\n se_firmware_osu_version: {\n id: \"InvalidId\",\n perso: \"perso_11\",\n firmware: \"test\",\n firmware_key: \"testKey\",\n hash: \"hash\",\n next_se_firmware_final_version: 567,\n },\n }),\n ),\n );\n\n // when\n const response = await api.getLatestFirmwareVersion({\n currentFinalFirmwareId: 200,\n deviceId: 42,\n });\n\n // then\n expect(response.isRight()).toEqual(false);\n });\n it(\"should return an error if the request fails\", async () => {\n // given\n const error = new Error(\"fetch error\");\n vi.spyOn(globalThis, \"fetch\").mockRejectedValue(error);\n\n // when\n const response = await api.getLatestFirmwareVersion({\n currentFinalFirmwareId: 200,\n deviceId: 42,\n });\n\n // then\n expect(response).toEqual(Left(new HttpFetchApiError(error)));\n });\n });\n\n describe(\"getOsuFirmwareVersion\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"should return a complete OSU firmware version\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n id: 361,\n perso: \"perso_11\",\n notes: \"notes\",\n firmware: \"test\",\n firmware_key: \"testKey\",\n hash: \"hash\",\n next_se_firmware_final_version: 567,\n }),\n ),\n );\n\n // when\n const response = await api.getOsuFirmwareVersion({\n version: \"versionName\",\n deviceId: 42,\n });\n\n // then\n expect(response).toEqual(\n Right({\n id: 361,\n perso: \"perso_11\",\n notes: \"notes\",\n firmware: \"test\",\n firmwareKey: \"testKey\",\n hash: \"hash\",\n nextFinalFirmware: 567,\n }),\n );\n });\n it(\"should return an error if payload don't match the dto\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n id: \"invalidId\",\n perso: \"perso_11\",\n firmware: \"test\",\n firmware_key: \"testKey\",\n hash: \"hash\",\n next_se_firmware_final_version: 567,\n }),\n ),\n );\n\n // when\n const response = await api.getOsuFirmwareVersion({\n version: \"versionName\",\n deviceId: 42,\n });\n\n // then\n expect(response.isRight()).toEqual(false);\n });\n it(\"should return an error if the request fails\", async () => {\n // given\n const error = new Error(\"fetch error\");\n vi.spyOn(globalThis, \"fetch\").mockRejectedValue(error);\n\n // when\n const response = await api.getOsuFirmwareVersion({\n version: \"versionName\",\n deviceId: 42,\n });\n\n // then\n expect(response).toEqual(Left(new HttpFetchApiError(error)));\n });\n });\n\n describe(\"getLanguagePackages\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"should return the langage packages version\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify([\n {\n language: \"turkish\",\n languagePackageVersionId: 474,\n version: \"0.0.4\",\n language_package_id: 57,\n apdu_install_url:\n \"https://download.languages.ledger.com/stax/turkish/bolos_1.6.2_pack_0.0.4_tr.apdu\",\n apdu_uninstall_url:\n \"https://download.languages.ledger.com/stax/turkish/bolos_1.6.2_pack_0.0.4_tr_del.apdu\",\n device_versions: [17],\n se_firmware_final_versions: [432],\n bytes: 20800,\n date_creation: \"2025-03-04T10:48:27.910630Z\",\n date_last_modified: \"2025-03-04T10:48:27.910630Z\",\n },\n {\n language: \"russian\",\n languagePackageVersionId: 470,\n version: \"0.0.4\",\n language_package_id: 56,\n apdu_install_url:\n \"https://download.languages.ledger.com/stax/russian/bolos_1.6.2_pack_0.0.4_ru.apdu\",\n apdu_uninstall_url:\n \"https://download.languages.ledger.com/stax/russian/bolos_1.6.2_pack_0.0.4_ru_del.apdu\",\n device_versions: [17],\n se_firmware_final_versions: [432],\n bytes: 46592,\n date_creation: \"2025-03-04T10:48:26.218729Z\",\n date_last_modified: \"2025-03-04T10:48:26.218729Z\",\n },\n ]),\n ),\n );\n\n // when\n const response = await api.getLanguagePackages({\n deviceId: 1,\n currentFinalFirmwareId: 42,\n });\n\n // then\n expect(response).toEqual(\n Right([\n {\n language: \"turkish\",\n languagePackageVersionId: 474,\n version: \"0.0.4\",\n languagePackageId: 57,\n apduInstallUrl:\n \"https://download.languages.ledger.com/stax/turkish/bolos_1.6.2_pack_0.0.4_tr.apdu\",\n apduUninstallUrl:\n \"https://download.languages.ledger.com/stax/turkish/bolos_1.6.2_pack_0.0.4_tr_del.apdu\",\n bytes: 20800,\n dateCreation: \"2025-03-04T10:48:27.910630Z\",\n dateLastModified: \"2025-03-04T10:48:27.910630Z\",\n },\n {\n language: \"russian\",\n languagePackageVersionId: 470,\n version: \"0.0.4\",\n languagePackageId: 56,\n apduInstallUrl:\n \"https://download.languages.ledger.com/stax/russian/bolos_1.6.2_pack_0.0.4_ru.apdu\",\n apduUninstallUrl:\n \"https://download.languages.ledger.com/stax/russian/bolos_1.6.2_pack_0.0.4_ru_del.apdu\",\n bytes: 46592,\n dateCreation: \"2025-03-04T10:48:26.218729Z\",\n dateLastModified: \"2025-03-04T10:48:26.218729Z\",\n },\n ]),\n );\n });\n it(\"should return an error if payload don't match the dto\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify([\n {\n language: \"turkish\",\n version: \"0.0.4\",\n language_package_id: \"invalid\",\n },\n ]),\n ),\n );\n\n // when\n const response = await api.getLanguagePackages({\n deviceId: 1,\n currentFinalFirmwareId: 42,\n });\n\n // then\n expect(response.isRight()).toEqual(false);\n });\n it(\"should return an error if the request fails\", async () => {\n // given\n const error = new Error(\"fetch error\");\n vi.spyOn(globalThis, \"fetch\").mockRejectedValue(error);\n\n // when\n const response = await api.getLanguagePackages({\n deviceId: 1,\n currentFinalFirmwareId: 42,\n });\n\n // then\n expect(response).toEqual(Left(new HttpFetchApiError(error)));\n });\n });\n\n describe(\"getMcuList\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"should return the list of MCUs\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify([\n {\n id: 1,\n mcu: 1,\n name: \"1.0\",\n description: null,\n providers: [1],\n device_versions: [1, 2],\n from_bootloader_version: \"1.0\",\n from_bootloader_version_id: 2,\n se_firmware_final_versions: [7, 12, 13, 14, 15],\n date_creation: \"2018-09-20T13:30:50.156394Z\",\n date_last_modified: \"2018-09-20T13:30:50.156453Z\",\n },\n {\n id: 2,\n mcu: 1,\n name: \"1.1\",\n description: null,\n providers: [1, 2],\n device_versions: [1, 2],\n from_bootloader_version: \"1.0\",\n from_bootloader_version_id: 2,\n se_firmware_final_versions: [7, 12, 13, 14, 15],\n date_creation: \"2018-09-20T13:30:50.339966Z\",\n date_last_modified: \"2018-09-20T13:30:50.340031Z\",\n },\n ]),\n ),\n );\n\n // when\n const response = await api.getMcuList();\n\n // then\n expect(response).toEqual(\n Right([\n {\n id: 1,\n name: \"1.0\",\n fromBootloaderVersion: \"1.0\",\n providers: [1],\n },\n {\n id: 2,\n name: \"1.1\",\n fromBootloaderVersion: \"1.0\",\n providers: [1, 2],\n },\n ]),\n );\n });\n\n it(\"should return an error when the payload don't match the dto\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify([\n {\n id: \"invalid id\",\n mcu: 1,\n name: \"1.0\",\n description: null,\n providers: [],\n se_firmware_final_versions: [7, 12, 13, 14, 15],\n date_creation: \"2018-09-20T13:30:50.156394Z\",\n date_last_modified: \"2018-09-20T13:30:50.156453Z\",\n },\n ]),\n ),\n );\n\n // when\n const response = await api.getMcuList();\n\n // then\n expect(response.isRight()).toEqual(false);\n });\n\n it(\"should return an error if the request fails\", async () => {\n // given\n const error = new Error(\"fetch error\");\n vi.spyOn(globalThis, \"fetch\").mockRejectedValue(error);\n\n // when\n const response = await api.getMcuList();\n\n // then\n expect(response).toEqual(Left(new HttpFetchApiError(error)));\n });\n });\n describe(\"getProvider\", () => {\n let api: HttpManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://fake-url.com\",\n provider: 123,\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n\n it(\"should return the initial provider\", () => {\n expect(api.getProvider()).toBe(123);\n });\n\n it(\"should return the updated provider after setProvider is called\", () => {\n api.setProvider(321);\n expect(api.getProvider()).toBe(321);\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "aAAA,IAAAA,EAA2C,qBAE3CC,EAMO,kDAEPC,EAAkC,8CAElCC,EAAyC,sCAGzC,SAAS,2BAA4B,IAAM,CACzC,SAAS,aAAc,IAAM,CAC3B,IAAIC,EACJ,WAAW,IAAM,CACfA,EAAM,IAAI,2BAAyB,CACjC,cAAe,kBACjB,CAAc,CAChB,CAAC,EACD,UAAU,IAAM,CACd,GAAG,gBAAgB,CACrB,CAAC,EACD,GAAG,uCAAwC,SAAY,CAErD,MAAMC,EAAO,CAAC,mBAAkB,kBAAgB,EAChD,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SAAS,KAAK,UAAUA,CAAI,CAAC,CACnC,EAGA,MAAMC,EAAW,MAAMF,EAAI,WAAW,CACpC,SAAU,WACV,oBAAqB,qBACvB,CAAC,EAGD,OAAOE,CAAQ,EAAE,WAAQ,SAAMD,CAAI,CAAC,CACtC,CAAC,EACD,GAAG,wDAAyD,SAAY,CAEtE,KAAM,CAAE,UAAAE,EAAW,GAAGC,CAAK,EAAI,mBACzBH,EAAO,CAAC,CAAE,UAAW,iBAAkB,GAAGG,CAAK,CAAC,EACtD,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SAAS,KAAK,UAAUH,CAAI,CAAC,CACnC,EAGA,MAAMC,EAAW,MAAMF,EAAI,WAAW,CACpC,SAAU,WACV,oBAAqB,qBACvB,CAAC,EAGD,OAAOE,EAAS,QAAQ,CAAC,EAAE,QAAQ,EAAK,CAC1C,CAAC,EACD,GAAG,8CAA+C,SAAY,CAE5D,MAAMG,EAAQ,IAAI,MAAM,aAAa,EACrC,GAAG,MAAM,WAAY,OAAO,EAAE,kBAAkBA,CAAK,EAGrD,MAAMH,EAAW,MAAMF,EAAI,WAAW,CACpC,SAAU,WACV,oBAAqB,qBACvB,CAAC,EAGD,OAAOE,CAAQ,EAAE,WAAQ,QAAK,IAAI,oBAAkBG,CAAK,CAAC,CAAC,CAC7D,CAAC,CACH,CAAC,EACD,SAAS,gBAAiB,IAAM,CAC9B,SAAS,gBAAiB,IAAM,CAC9B,IAAIL,EACJ,WAAW,IAAM,CACfA,EAAM,IAAI,2BAAyB,CACjC,cAAe,kBACjB,CAAc,CAChB,CAAC,EACD,UAAU,IAAM,CACd,GAAG,gBAAgB,CACrB,CAAC,EACD,GAAG,2CAA4C,SAAY,CACzD,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SAAS,KAAK,UAAU,CAAC,kBAAgB,CAAC,CAAC,CACjD,EAEA,MAAMM,EAAS,CAAC,UAAQ,WAAW,EAE7BL,EAAO,MAAMD,EAAI,cAAc,CAAE,OAAAM,CAAO,CAAC,EAE/C,OAAOL,CAAI,EAAE,WAAQ,SAAM,CAAC,kBAAgB,CAAC,CAAC,CAChD,CAAC,EAED,GAAG,4CAA6C,SAAY,CAC1D,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,CACjC,EAEA,MAAMK,EAAmB,CAAC,EAEpBL,EAAO,MAAMD,EAAI,cAAc,CAAE,OAAAM,CAAO,CAAC,EAE/C,OAAOL,CAAI,EAAE,WAAQ,SAAM,CAAC,CAAC,CAAC,CAChC,CAAC,EAED,GAAG,kEAAmE,SAAY,CAChF,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CAAC,mBAAkB,iCAA+B,CAAC,CACpE,CACF,EAEA,MAAMK,EAAS,CACb,UAAQ,YACR,yBAAuB,WACzB,EAEML,EAAO,MAAMD,EAAI,cAAc,CAAE,OAAAM,CAAO,CAAC,EAE/C,OAAOL,CAAI,EAAE,WACX,SAAM,CAAC,mBAAkB,iCAA+B,CAAC,CAC3D,CACF,CAAC,CACH,CAAC,EAED,SAAS,cAAe,IAAM,CAC5B,IAAID,EACJ,WAAW,IAAM,CACfA,EAAM,IAAI,2BAAyB,CACjC,cAAe,kBACjB,CAAc,CAChB,CAAC,EACD,UAAU,IAAM,CACd,GAAG,gBAAgB,CACrB,CAAC,EACD,GAAG,2DAA4D,SAAY,CACzE,KAAM,CAAE,UAAAG,EAAW,GAAGC,CAAK,EAAI,mBAC/B,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CAAC,CAAE,UAAW,iBAAkB,GAAGA,CAAK,CAAC,CAAC,CAC3D,CACF,EAEA,MAAME,EAAS,CAAC,UAAQ,WAAW,EAE7BL,EAAO,MAAMD,EAAI,cAAc,CAAE,OAAAM,CAAO,CAAC,EAE/C,OAAOL,EAAK,QAAQ,CAAC,EAAE,QAAQ,EAAK,CACtC,CAAC,EAED,GAAG,6CAA8C,SAAY,CAE3D,MAAMD,EAAM,IAAI,2BAAyB,CACvC,cAAe,kBACjB,CAAc,EAERO,EAAM,IAAI,MAAM,aAAa,EACnC,GAAG,MAAM,WAAY,OAAO,EAAE,kBAAkBA,CAAG,EAEnD,MAAMD,EAAS,CAAC,UAAQ,WAAW,EAG7BJ,EAAW,MAAMF,EAAI,cAAc,CAAE,OAAAM,CAAO,CAAC,EAGnD,OAAOJ,CAAQ,EAAE,WAAQ,QAAK,IAAI,oBAAkBK,CAAG,CAAC,CAAC,CAC3D,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,mBAAoB,IAAM,CACjC,IAAIP,EACJ,WAAW,IAAM,CACfA,EAAM,IAAI,2BAAyB,CACjC,cAAe,kBACjB,CAAc,CAChB,CAAC,EACD,UAAU,IAAM,CACd,GAAG,gBAAgB,CACrB,CAAC,EACD,GAAG,0CAA2C,SAAY,CAExD,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CACb,GAAI,GACJ,UAAW,WACb,CAAC,CACH,CACF,EAGA,MAAME,EAAW,MAAMF,EAAI,iBAAiB,CAC1C,SAAU,UACZ,CAAC,EAGD,OAAOE,CAAQ,EAAE,WAAQ,SAAM,CAAE,GAAI,EAAG,CAAC,CAAC,CAC5C,CAAC,EAED,GAAG,oDAAqD,SAAY,CAElE,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CACb,UAAW,WACb,CAAC,CACH,CACF,EAGA,MAAMA,EAAW,MAAMF,EAAI,iBAAiB,CAC1C,SAAU,UACZ,CAAC,EAGD,OAAOE,EAAS,QAAQ,CAAC,EAAE,QAAQ,EAAK,CAC1C,CAAC,EAED,GAAG,8CAA+C,SAAY,CAG5D,MAAMG,EAAQ,IAAI,MAAM,aAAa,EACrC,GAAG,MAAM,WAAY,OAAO,EAAE,kBAAkBA,CAAK,EAGrD,MAAMH,EAAW,MAAMF,EAAI,iBAAiB,CAC1C,SAAU,UACZ,CAAC,EAGD,OAAOE,CAAQ,EAAE,WAAQ,QAAK,IAAI,oBAAkBG,CAAK,CAAC,CAAC,CAC7D,CAAC,CACH,CAAC,EAED,SAAS,qBAAsB,IAAM,CACnC,IAAIL,EACJ,WAAW,IAAM,CACfA,EAAM,IAAI,2BAAyB,CACjC,cAAe,kBACjB,CAAc,CAChB,CAAC,EACD,UAAU,IAAM,CACd,GAAG,gBAAgB,CACrB,CAAC,EACD,GAAG,4CAA6C,SAAY,CAE1D,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CACb,GAAI,IACJ,QAAS,QACT,MAAO,WACP,SAAU,KACV,aAAc,UACd,KAAM,OACN,MAAO,IACP,aAAc,CAAC,EAAG,EAAG,CAAC,CACxB,CAAC,CACH,CACF,EAGA,MAAME,EAAW,MAAMF,EAAI,mBAAmB,CAC5C,QAAS,cACT,SAAU,EACZ,CAAC,EAGD,OAAOE,CAAQ,EAAE,WACf,SAAM,CACJ,GAAI,IACJ,QAAS,QACT,MAAO,WACP,SAAU,KACV,YAAa,UACb,KAAM,OACN,MAAO,IACP,YAAa,CAAC,EAAG,EAAG,CAAC,CACvB,CAAC,CACH,CACF,CAAC,EACD,GAAG,wDAAyD,SAAY,CAEtE,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CACb,GAAI,YACJ,QAAS,QACT,MAAO,WACP,SAAU,KACV,aAAc,UACd,KAAM,OACN,MAAO,IACP,aAAc,CAAC,EAAG,EAAG,CAAC,CACxB,CAAC,CACH,CACF,EAGA,MAAMA,EAAW,MAAMF,EAAI,mBAAmB,CAC5C,QAAS,cACT,SAAU,EACZ,CAAC,EAGD,OAAOE,EAAS,QAAQ,CAAC,EAAE,QAAQ,EAAK,CAC1C,CAAC,EACD,GAAG,8CAA+C,SAAY,CAE5D,MAAMG,EAAQ,IAAI,MAAM,aAAa,EACrC,GAAG,MAAM,WAAY,OAAO,EAAE,kBAAkBA,CAAK,EAGrD,MAAMH,EAAW,MAAMF,EAAI,mBAAmB,CAC5C,QAAS,cACT,SAAU,EACZ,CAAC,EAGD,OAAOE,CAAQ,EAAE,WAAQ,QAAK,IAAI,oBAAkBG,CAAK,CAAC,CAAC,CAC7D,CAAC,CACH,CAAC,EAED,SAAS,cAAe,IAAM,CAC5B,IAAIL,EACJ,WAAW,IAAM,CACfA,EAAM,IAAI,2BAAyB,CACjC,cAAe,sBACf,SAAU,CACZ,CAAc,CAChB,CAAC,EAED,GAAG,8DAA+D,IAAM,CAEtE,MAAMQ,EAAmBR,EACtB,UAGHA,EAAI,YAAYQ,CAAe,EAG/B,OAAQR,EAAyC,SAAS,EAAE,KAC1DQ,CACF,CACF,CAAC,EAED,GAAG,iEAAkE,IAAM,CAEzE,MAAMA,EAAmBR,EACtB,UAGHA,EAAI,YAAY,CAAC,EACjBA,EAAI,YAAY,EAAE,EAGlB,OAAQA,EAAyC,SAAS,EAAE,KAC1DQ,CACF,CACF,CAAC,EAED,GAAG,wEAAyE,IAAM,CAKhFR,EAAI,YAAY,CAAW,EAG3B,OAAQA,EAAyC,SAAS,EAAE,KAC1D,CACF,CACF,CAAC,CACH,CAAC,EAED,SAAS,yBAA0B,IAAM,CACvC,IAAIA,EACJ,WAAW,IAAM,CACfA,EAAM,IAAI,2BAAyB,CACjC,cAAe,kBACjB,CAAc,CAChB,CAAC,EACD,UAAU,IAAM,CACd,GAAG,gBAAgB,CACrB,CAAC,EACD,GAAG,4CAA6C,SAAY,CAE1D,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CACb,GAAI,IACJ,QAAS,QACT,MAAO,WACP,SAAU,KACV,aAAc,UACd,KAAM,OACN,MAAO,IACP,aAAc,CAAC,EAAG,EAAG,CAAC,CACxB,CAAC,CACH,CACF,EAGA,MAAME,EAAW,MAAMF,EAAI,uBAAuB,EAAE,EAGpD,OAAOE,CAAQ,EAAE,WACf,SAAM,CACJ,GAAI,IACJ,QAAS,QACT,MAAO,WACP,SAAU,KACV,YAAa,UACb,KAAM,OACN,MAAO,IACP,YAAa,CAAC,EAAG,EAAG,CAAC,CACvB,CAAC,CACH,CACF,CAAC,CACH,CAAC,EAED,SAAS,2BAA4B,IAAM,CACzC,IAAIF,EACJ,WAAW,IAAM,CACfA,EAAM,IAAI,2BAAyB,CACjC,cAAe,kBACjB,CAAc,CAChB,CAAC,EACD,UAAU,IAAM,CACd,GAAG,gBAAgB,CACrB,CAAC,EACD,GAAG,4CAA6C,SAAY,CAE1D,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CACb,OAAQ,UACR,wBAAyB,CACvB,GAAI,IACJ,MAAO,WACP,MAAO,QACP,SAAU,OACV,aAAc,UACd,KAAM,OACN,+BAAgC,GAClC,CACF,CAAC,CACH,CACF,EAGA,MAAME,EAAW,MAAMF,EAAI,yBAAyB,CAClD,uBAAwB,IACxB,SAAU,EACZ,CAAC,EAGD,OAAOE,CAAQ,EAAE,WACf,YACE,QAAK,CACH,GAAI,IACJ,MAAO,WACP,MAAO,QACP,SAAU,OACV,YAAa,UACb,KAAM,OACN,kBAAmB,GACrB,CAAC,CACH,CACF,CACF,CAAC,EAED,GAAG,qEAAsE,SAAY,CAEnF,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CACb,OAAQ,OACR,wBAAyB,IAC3B,CAAC,CACH,CACF,EAGA,MAAMA,EAAW,MAAMF,EAAI,yBAAyB,CAClD,uBAAwB,IACxB,SAAU,EACZ,CAAC,EAGD,OAAOE,CAAQ,EAAE,WAAQ,SAAM,SAAO,CAAC,CACzC,CAAC,EAED,GAAG,kDAAmD,SAAY,CAEhE,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CACb,OAAQ,SACR,wBAAyB,IAC3B,CAAC,CACH,CACF,EAGA,MAAMA,EAAW,MAAMF,EAAI,yBAAyB,CAClD,uBAAwB,IACxB,SAAU,EACZ,CAAC,EAGD,OAAOE,EAAS,QAAQ,CAAC,EAAE,QAAQ,EAAK,CAC1C,CAAC,EACD,GAAG,wDAAyD,SAAY,CAEtE,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CACb,OAAQ,UACR,wBAAyB,CACvB,GAAI,YACJ,MAAO,WACP,SAAU,OACV,aAAc,UACd,KAAM,OACN,+BAAgC,GAClC,CACF,CAAC,CACH,CACF,EAGA,MAAMA,EAAW,MAAMF,EAAI,yBAAyB,CAClD,uBAAwB,IACxB,SAAU,EACZ,CAAC,EAGD,OAAOE,EAAS,QAAQ,CAAC,EAAE,QAAQ,EAAK,CAC1C,CAAC,EACD,GAAG,8CAA+C,SAAY,CAE5D,MAAMG,EAAQ,IAAI,MAAM,aAAa,EACrC,GAAG,MAAM,WAAY,OAAO,EAAE,kBAAkBA,CAAK,EAGrD,MAAMH,EAAW,MAAMF,EAAI,yBAAyB,CAClD,uBAAwB,IACxB,SAAU,EACZ,CAAC,EAGD,OAAOE,CAAQ,EAAE,WAAQ,QAAK,IAAI,oBAAkBG,CAAK,CAAC,CAAC,CAC7D,CAAC,CACH,CAAC,EAED,SAAS,wBAAyB,IAAM,CACtC,IAAIL,EACJ,WAAW,IAAM,CACfA,EAAM,IAAI,2BAAyB,CACjC,cAAe,kBACjB,CAAc,CAChB,CAAC,EACD,UAAU,IAAM,CACd,GAAG,gBAAgB,CACrB,CAAC,EACD,GAAG,gDAAiD,SAAY,CAE9D,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CACb,GAAI,IACJ,MAAO,WACP,MAAO,QACP,SAAU,OACV,aAAc,UACd,KAAM,OACN,+BAAgC,GAClC,CAAC,CACH,CACF,EAGA,MAAME,EAAW,MAAMF,EAAI,sBAAsB,CAC/C,QAAS,cACT,SAAU,EACZ,CAAC,EAGD,OAAOE,CAAQ,EAAE,WACf,SAAM,CACJ,GAAI,IACJ,MAAO,WACP,MAAO,QACP,SAAU,OACV,YAAa,UACb,KAAM,OACN,kBAAmB,GACrB,CAAC,CACH,CACF,CAAC,EACD,GAAG,wDAAyD,SAAY,CAEtE,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CACb,GAAI,YACJ,MAAO,WACP,SAAU,OACV,aAAc,UACd,KAAM,OACN,+BAAgC,GAClC,CAAC,CACH,CACF,EAGA,MAAMA,EAAW,MAAMF,EAAI,sBAAsB,CAC/C,QAAS,cACT,SAAU,EACZ,CAAC,EAGD,OAAOE,EAAS,QAAQ,CAAC,EAAE,QAAQ,EAAK,CAC1C,CAAC,EACD,GAAG,8CAA+C,SAAY,CAE5D,MAAMG,EAAQ,IAAI,MAAM,aAAa,EACrC,GAAG,MAAM,WAAY,OAAO,EAAE,kBAAkBA,CAAK,EAGrD,MAAMH,EAAW,MAAMF,EAAI,sBAAsB,CAC/C,QAAS,cACT,SAAU,EACZ,CAAC,EAGD,OAAOE,CAAQ,EAAE,WAAQ,QAAK,IAAI,oBAAkBG,CAAK,CAAC,CAAC,CAC7D,CAAC,CACH,CAAC,EAED,SAAS,sBAAuB,IAAM,CACpC,IAAIL,EACJ,WAAW,IAAM,CACfA,EAAM,IAAI,2BAAyB,CACjC,cAAe,kBACjB,CAAc,CAChB,CAAC,EACD,UAAU,IAAM,CACd,GAAG,gBAAgB,CACrB,CAAC,EACD,GAAG,6CAA8C,SAAY,CAE3D,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CACb,CACE,SAAU,UACV,yBAA0B,IAC1B,QAAS,QACT,oBAAqB,GACrB,iBACE,oFACF,mBACE,wFACF,gBAAiB,CAAC,EAAE,EACpB,2BAA4B,CAAC,GAAG,EAChC,MAAO,MACP,cAAe,8BACf,mBAAoB,6BACtB,EACA,CACE,SAAU,UACV,yBAA0B,IAC1B,QAAS,QACT,oBAAqB,GACrB,iBACE,oFACF,mBACE,wFACF,gBAAiB,CAAC,EAAE,EACpB,2BAA4B,CAAC,GAAG,EAChC,MAAO,MACP,cAAe,8BACf,mBAAoB,6BACtB,CACF,CAAC,CACH,CACF,EAGA,MAAME,EAAW,MAAMF,EAAI,oBAAoB,CAC7C,SAAU,EACV,uBAAwB,EAC1B,CAAC,EAGD,OAAOE,CAAQ,EAAE,WACf,SAAM,CACJ,CACE,SAAU,UACV,yBAA0B,IAC1B,QAAS,QACT,kBAAmB,GACnB,eACE,oFACF,iBACE,wFACF,MAAO,MACP,aAAc,8BACd,iBAAkB,6BACpB,EACA,CACE,SAAU,UACV,yBAA0B,IAC1B,QAAS,QACT,kBAAmB,GACnB,eACE,oFACF,iBACE,wFACF,MAAO,MACP,aAAc,8BACd,iBAAkB,6BACpB,CACF,CAAC,CACH,CACF,CAAC,EACD,GAAG,wDAAyD,SAAY,CAEtE,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CACb,CACE,SAAU,UACV,QAAS,QACT,oBAAqB,SACvB,CACF,CAAC,CACH,CACF,EAGA,MAAMA,EAAW,MAAMF,EAAI,oBAAoB,CAC7C,SAAU,EACV,uBAAwB,EAC1B,CAAC,EAGD,OAAOE,EAAS,QAAQ,CAAC,EAAE,QAAQ,EAAK,CAC1C,CAAC,EACD,GAAG,8CAA+C,SAAY,CAE5D,MAAMG,EAAQ,IAAI,MAAM,aAAa,EACrC,GAAG,MAAM,WAAY,OAAO,EAAE,kBAAkBA,CAAK,EAGrD,MAAMH,EAAW,MAAMF,EAAI,oBAAoB,CAC7C,SAAU,EACV,uBAAwB,EAC1B,CAAC,EAGD,OAAOE,CAAQ,EAAE,WAAQ,QAAK,IAAI,oBAAkBG,CAAK,CAAC,CAAC,CAC7D,CAAC,CACH,CAAC,EAED,SAAS,aAAc,IAAM,CAC3B,IAAIL,EACJ,WAAW,IAAM,CACfA,EAAM,IAAI,2BAAyB,CACjC,cAAe,kBACjB,CAAc,CAChB,CAAC,EACD,UAAU,IAAM,CACd,GAAG,gBAAgB,CACrB,CAAC,EACD,GAAG,iCAAkC,SAAY,CAE/C,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CACb,CACE,GAAI,EACJ,IAAK,EACL,KAAM,MACN,YAAa,KACb,UAAW,CAAC,CAAC,EACb,gBAAiB,CAAC,EAAG,CAAC,EACtB,wBAAyB,MACzB,2BAA4B,EAC5B,2BAA4B,CAAC,EAAG,GAAI,GAAI,GAAI,EAAE,EAC9C,cAAe,8BACf,mBAAoB,6BACtB,EACA,CACE,GAAI,EACJ,IAAK,EACL,KAAM,MACN,YAAa,KACb,UAAW,CAAC,EAAG,CAAC,EAChB,gBAAiB,CAAC,EAAG,CAAC,EACtB,wBAAyB,MACzB,2BAA4B,EAC5B,2BAA4B,CAAC,EAAG,GAAI,GAAI,GAAI,EAAE,EAC9C,cAAe,8BACf,mBAAoB,6BACtB,CACF,CAAC,CACH,CACF,EAGA,MAAME,EAAW,MAAMF,EAAI,WAAW,EAGtC,OAAOE,CAAQ,EAAE,WACf,SAAM,CACJ,CACE,GAAI,EACJ,KAAM,MACN,sBAAuB,MACvB,UAAW,CAAC,CAAC,CACf,EACA,CACE,GAAI,EACJ,KAAM,MACN,sBAAuB,MACvB,UAAW,CAAC,EAAG,CAAC,CAClB,CACF,CAAC,CACH,CACF,CAAC,EAED,GAAG,8DAA+D,SAAY,CAE5E,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CACb,CACE,GAAI,aACJ,IAAK,EACL,KAAM,MACN,YAAa,KACb,UAAW,CAAC,EACZ,2BAA4B,CAAC,EAAG,GAAI,GAAI,GAAI,EAAE,EAC9C,cAAe,8BACf,mBAAoB,6BACtB,CACF,CAAC,CACH,CACF,EAGA,MAAMA,EAAW,MAAMF,EAAI,WAAW,EAGtC,OAAOE,EAAS,QAAQ,CAAC,EAAE,QAAQ,EAAK,CAC1C,CAAC,EAED,GAAG,8CAA+C,SAAY,CAE5D,MAAMG,EAAQ,IAAI,MAAM,aAAa,EACrC,GAAG,MAAM,WAAY,OAAO,EAAE,kBAAkBA,CAAK,EAGrD,MAAMH,EAAW,MAAMF,EAAI,WAAW,EAGtC,OAAOE,CAAQ,EAAE,WAAQ,QAAK,IAAI,oBAAkBG,CAAK,CAAC,CAAC,CAC7D,CAAC,CACH,CAAC,EACD,SAAS,cAAe,IAAM,CAC5B,IAAIL,EACJ,WAAW,IAAM,CACfA,EAAM,IAAI,2BAAyB,CACjC,cAAe,sBACf,SAAU,GACZ,CAAc,CAChB,CAAC,EACD,UAAU,IAAM,CACd,GAAG,gBAAgB,CACrB,CAAC,EAED,GAAG,qCAAsC,IAAM,CAC7C,OAAOA,EAAI,YAAY,CAAC,EAAE,KAAK,GAAG,CACpC,CAAC,EAED,GAAG,iEAAkE,IAAM,CACzEA,EAAI,YAAY,GAAG,EACnB,OAAOA,EAAI,YAAY,CAAC,EAAE,KAAK,GAAG,CACpC,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
|
-
"names": ["import_purify_ts", "import_data", "import_Errors", "import_HttpManagerApiDataSource", "api", "apps", "response", "versionId", "rest", "error", "hashes", "err", "initialProvider"]
|
|
4
|
+
"sourcesContent": ["import { Just, Left, Nothing, 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 ETH_APP_METADATA,\n} from \"@api/device-action/__test-utils__/data\";\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { HttpFetchApiError } from \"@internal/manager-api/model/Errors\";\n\nimport { HttpManagerApiDataSource } from \"./HttpManagerApiDataSource\";\nimport { type ManagerApiDataSource } from \"./ManagerApiDataSource\";\n\ndescribe(\"HttpManagerApiDataSource\", () => {\n describe(\"getAppList\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"should return a list of applications\", async () => {\n // given\n const apps = [BTC_APP_METADATA, ETH_APP_METADATA];\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(JSON.stringify(apps)),\n );\n\n // when\n const response = await api.getAppList({\n targetId: \"targetId\",\n firmwareVersionName: \"firmwareVersionName\",\n });\n\n // then\n expect(response).toEqual(Right(apps));\n });\n it(\"should return an error if payload don't match the dto\", async () => {\n // given\n const { versionId, ...rest } = BTC_APP_METADATA;\n const apps = [{ versionId: \"invalidVersion\", ...rest }];\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(JSON.stringify(apps)),\n );\n\n // when\n const response = await api.getAppList({\n targetId: \"targetId\",\n firmwareVersionName: \"firmwareVersionName\",\n });\n\n // then\n expect(response.isRight()).toEqual(false);\n });\n it(\"should return an error if the request fails\", async () => {\n // given\n const error = new Error(\"fetch error\");\n vi.spyOn(globalThis, \"fetch\").mockRejectedValue(error);\n\n // when\n const response = await api.getAppList({\n targetId: \"targetId\",\n firmwareVersionName: \"firmwareVersionName\",\n });\n\n // then\n expect(response).toEqual(Left(new HttpFetchApiError(error)));\n });\n });\n describe(\"getAppsByHash\", () => {\n describe(\"success cases\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"with BTC app, should return the metadata\", async () => {\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(JSON.stringify([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 vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(JSON.stringify([])),\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 vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify([BTC_APP_METADATA, CUSTOM_LOCK_SCREEN_APP_METADATA]),\n ),\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 let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"with BTC app, should fail if payload don't match the dto\", async () => {\n const { versionId, ...rest } = BTC_APP_METADATA;\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify([{ versionId: \"invalidVersion\", ...rest }]),\n ),\n );\n\n const hashes = [BTC_APP.appFullHash];\n\n const apps = await api.getAppsByHash({ hashes });\n\n expect(apps.isRight()).toEqual(false);\n });\n\n it(\"should throw an error if the request fails\", async () => {\n // given\n const api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n\n const err = new Error(\"fetch error\");\n vi.spyOn(globalThis, \"fetch\").mockRejectedValue(err);\n\n const hashes = [BTC_APP.appFullHash];\n\n // when\n const response = await api.getAppsByHash({ hashes });\n\n // then\n expect(response).toEqual(Left(new HttpFetchApiError(err)));\n });\n });\n });\n\n describe(\"getDeviceVersion\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"should return a complete device version\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n id: 17,\n target_id: \"857735172\",\n }),\n ),\n );\n\n // when\n const response = await api.getDeviceVersion({\n targetId: \"targetId\",\n });\n\n // then\n expect(response).toEqual(Right({ id: 17 }));\n });\n\n it(\"should return an error if payload don't match dto\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n target_id: \"857735172\",\n }),\n ),\n );\n\n // when\n const response = await api.getDeviceVersion({\n targetId: \"targetId\",\n });\n\n // then\n expect(response.isRight()).toEqual(false);\n });\n\n it(\"should return an error if the request fails\", async () => {\n // given\n\n const error = new Error(\"fetch error\");\n vi.spyOn(globalThis, \"fetch\").mockRejectedValue(error);\n\n // when\n const response = await api.getDeviceVersion({\n targetId: \"targetId\",\n });\n\n // then\n expect(response).toEqual(Left(new HttpFetchApiError(error)));\n });\n });\n\n describe(\"getFirmwareVersion\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"should return a complete firmware version\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n id: 361,\n version: \"1.6.0\",\n perso: \"perso_11\",\n firmware: null,\n firmware_key: \"testKey\",\n hash: \"hash\",\n bytes: 194,\n mcu_versions: [1, 5, 7],\n }),\n ),\n );\n\n // when\n const response = await api.getFirmwareVersion({\n version: \"versionName\",\n deviceId: 42,\n });\n\n // then\n expect(response).toEqual(\n Right({\n id: 361,\n version: \"1.6.0\",\n perso: \"perso_11\",\n firmware: null,\n firmwareKey: \"testKey\",\n hash: \"hash\",\n bytes: 194,\n mcuVersions: [1, 5, 7],\n }),\n );\n });\n it(\"should return an error if payload don't match the dto\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n id: \"invalidId\",\n version: \"1.6.0\",\n perso: \"perso_11\",\n firmware: null,\n firmware_key: \"testKey\",\n hash: \"hash\",\n bytes: 194,\n mcu_versions: [1, 5, 7],\n }),\n ),\n );\n\n // when\n const response = await api.getFirmwareVersion({\n version: \"versionName\",\n deviceId: 42,\n });\n\n // then\n expect(response.isRight()).toEqual(false);\n });\n it(\"should return an error if the request fails\", async () => {\n // given\n const error = new Error(\"fetch error\");\n vi.spyOn(globalThis, \"fetch\").mockRejectedValue(error);\n\n // when\n const response = await api.getFirmwareVersion({\n version: \"versionName\",\n deviceId: 42,\n });\n\n // then\n expect(response).toEqual(Left(new HttpFetchApiError(error)));\n });\n });\n\n describe(\"setProvider\", () => {\n let api: HttpManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://fake-url.com\",\n provider: 1,\n } as DmkConfig);\n });\n\n it(\"should not change the provider if the new value is the same\", () => {\n // given\n const initialProvider = (api as unknown as { _provider: number })\n ._provider;\n\n // when\n api.setProvider(initialProvider);\n\n // then\n expect((api as unknown as { _provider: number })._provider).toBe(\n initialProvider,\n );\n });\n\n it(\"should not change the provider if the new value is less than 1\", () => {\n // given\n const initialProvider = (api as unknown as { _provider: number })\n ._provider;\n\n // when\n api.setProvider(0); // invalid\n api.setProvider(-5); // invalid\n\n // then\n expect((api as unknown as { _provider: number })._provider).toBe(\n initialProvider,\n );\n });\n\n it(\"should update the provider if a valid and different value is provided\", () => {\n // given\n const newProvider = 2;\n\n // when\n api.setProvider(newProvider);\n\n // then\n expect((api as unknown as { _provider: number })._provider).toBe(\n newProvider,\n );\n });\n });\n\n describe(\"getFirmwareVersionById\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"should return a complete firmware version\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n id: 361,\n version: \"1.6.0\",\n perso: \"perso_11\",\n firmware: null,\n firmware_key: \"testKey\",\n hash: \"hash\",\n bytes: 194,\n mcu_versions: [1, 5, 7],\n }),\n ),\n );\n\n // when\n const response = await api.getFirmwareVersionById(42);\n\n // then\n expect(response).toEqual(\n Right({\n id: 361,\n version: \"1.6.0\",\n perso: \"perso_11\",\n firmware: null,\n firmwareKey: \"testKey\",\n hash: \"hash\",\n bytes: 194,\n mcuVersions: [1, 5, 7],\n }),\n );\n });\n });\n\n describe(\"getLatestFirmwareVersion\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"should return the latest firmware version\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n result: \"success\",\n se_firmware_osu_version: {\n id: 361,\n perso: \"perso_11\",\n notes: \"notes\",\n firmware: \"test\",\n firmware_key: \"testKey\",\n hash: \"hash\",\n next_se_firmware_final_version: 567,\n },\n }),\n ),\n );\n\n // when\n const response = await api.getLatestFirmwareVersion({\n currentFinalFirmwareId: 200,\n deviceId: 42,\n });\n\n // then\n expect(response).toEqual(\n Right(\n Just({\n id: 361,\n perso: \"perso_11\",\n notes: \"notes\",\n firmware: \"test\",\n firmwareKey: \"testKey\",\n hash: \"hash\",\n nextFinalFirmware: 567,\n }),\n ),\n );\n });\n\n it(\"should return nothing when no latest firmware version is available\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n result: \"null\",\n se_firmware_osu_version: null,\n }),\n ),\n );\n\n // when\n const response = await api.getLatestFirmwareVersion({\n currentFinalFirmwareId: 200,\n deviceId: 42,\n });\n\n // then\n expect(response).toEqual(Right(Nothing));\n });\n\n it(\"should return an error if result is not success\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n result: \"failed\",\n se_firmware_osu_version: null,\n }),\n ),\n );\n\n // when\n const response = await api.getLatestFirmwareVersion({\n currentFinalFirmwareId: 200,\n deviceId: 42,\n });\n\n // then\n expect(response.isRight()).toEqual(false);\n });\n it(\"should return an error if payload don't match the dto\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n result: \"success\",\n se_firmware_osu_version: {\n id: \"InvalidId\",\n perso: \"perso_11\",\n firmware: \"test\",\n firmware_key: \"testKey\",\n hash: \"hash\",\n next_se_firmware_final_version: 567,\n },\n }),\n ),\n );\n\n // when\n const response = await api.getLatestFirmwareVersion({\n currentFinalFirmwareId: 200,\n deviceId: 42,\n });\n\n // then\n expect(response.isRight()).toEqual(false);\n });\n it(\"should return an error if the request fails\", async () => {\n // given\n const error = new Error(\"fetch error\");\n vi.spyOn(globalThis, \"fetch\").mockRejectedValue(error);\n\n // when\n const response = await api.getLatestFirmwareVersion({\n currentFinalFirmwareId: 200,\n deviceId: 42,\n });\n\n // then\n expect(response).toEqual(Left(new HttpFetchApiError(error)));\n });\n it(\"should request the firmware params without the legacy livecommonversion param\", async () => {\n // given\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n provider: 82,\n firmwareDistributionSalt: \"distribution-salt\",\n } as DmkConfig);\n const fetchSpy = vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n result: \"null\",\n se_firmware_osu_version: null,\n }),\n ),\n );\n\n // when\n await api.getLatestFirmwareVersion({\n currentFinalFirmwareId: 200,\n deviceId: 42,\n });\n\n // then\n const requestUrl = new URL(String(fetchSpy.mock.calls[0]![0]));\n expect(requestUrl.pathname).toEqual(\"/get_latest_firmware\");\n expect(requestUrl.searchParams.has(\"livecommonversion\")).toEqual(false);\n expect(Object.fromEntries(requestUrl.searchParams)).toEqual({\n current_se_firmware_final_version: \"200\",\n device_version: \"42\",\n provider: \"82\",\n salt: \"distribution-salt\",\n });\n });\n });\n\n describe(\"getOsuFirmwareVersion\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"should return a complete OSU firmware version\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n id: 361,\n perso: \"perso_11\",\n notes: \"notes\",\n firmware: \"test\",\n firmware_key: \"testKey\",\n hash: \"hash\",\n next_se_firmware_final_version: 567,\n }),\n ),\n );\n\n // when\n const response = await api.getOsuFirmwareVersion({\n version: \"versionName\",\n deviceId: 42,\n });\n\n // then\n expect(response).toEqual(\n Right({\n id: 361,\n perso: \"perso_11\",\n notes: \"notes\",\n firmware: \"test\",\n firmwareKey: \"testKey\",\n hash: \"hash\",\n nextFinalFirmware: 567,\n }),\n );\n });\n it(\"should return an error if payload don't match the dto\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify({\n id: \"invalidId\",\n perso: \"perso_11\",\n firmware: \"test\",\n firmware_key: \"testKey\",\n hash: \"hash\",\n next_se_firmware_final_version: 567,\n }),\n ),\n );\n\n // when\n const response = await api.getOsuFirmwareVersion({\n version: \"versionName\",\n deviceId: 42,\n });\n\n // then\n expect(response.isRight()).toEqual(false);\n });\n it(\"should return an error if the request fails\", async () => {\n // given\n const error = new Error(\"fetch error\");\n vi.spyOn(globalThis, \"fetch\").mockRejectedValue(error);\n\n // when\n const response = await api.getOsuFirmwareVersion({\n version: \"versionName\",\n deviceId: 42,\n });\n\n // then\n expect(response).toEqual(Left(new HttpFetchApiError(error)));\n });\n });\n\n describe(\"getLanguagePackages\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"should return the langage packages version\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify([\n {\n language: \"turkish\",\n languagePackageVersionId: 474,\n version: \"0.0.4\",\n language_package_id: 57,\n apdu_install_url:\n \"https://download.languages.ledger.com/stax/turkish/bolos_1.6.2_pack_0.0.4_tr.apdu\",\n apdu_uninstall_url:\n \"https://download.languages.ledger.com/stax/turkish/bolos_1.6.2_pack_0.0.4_tr_del.apdu\",\n device_versions: [17],\n se_firmware_final_versions: [432],\n bytes: 20800,\n date_creation: \"2025-03-04T10:48:27.910630Z\",\n date_last_modified: \"2025-03-04T10:48:27.910630Z\",\n },\n {\n language: \"russian\",\n languagePackageVersionId: 470,\n version: \"0.0.4\",\n language_package_id: 56,\n apdu_install_url:\n \"https://download.languages.ledger.com/stax/russian/bolos_1.6.2_pack_0.0.4_ru.apdu\",\n apdu_uninstall_url:\n \"https://download.languages.ledger.com/stax/russian/bolos_1.6.2_pack_0.0.4_ru_del.apdu\",\n device_versions: [17],\n se_firmware_final_versions: [432],\n bytes: 46592,\n date_creation: \"2025-03-04T10:48:26.218729Z\",\n date_last_modified: \"2025-03-04T10:48:26.218729Z\",\n },\n ]),\n ),\n );\n\n // when\n const response = await api.getLanguagePackages({\n deviceId: 1,\n currentFinalFirmwareId: 42,\n });\n\n // then\n expect(response).toEqual(\n Right([\n {\n language: \"turkish\",\n languagePackageVersionId: 474,\n version: \"0.0.4\",\n languagePackageId: 57,\n apduInstallUrl:\n \"https://download.languages.ledger.com/stax/turkish/bolos_1.6.2_pack_0.0.4_tr.apdu\",\n apduUninstallUrl:\n \"https://download.languages.ledger.com/stax/turkish/bolos_1.6.2_pack_0.0.4_tr_del.apdu\",\n bytes: 20800,\n dateCreation: \"2025-03-04T10:48:27.910630Z\",\n dateLastModified: \"2025-03-04T10:48:27.910630Z\",\n },\n {\n language: \"russian\",\n languagePackageVersionId: 470,\n version: \"0.0.4\",\n languagePackageId: 56,\n apduInstallUrl:\n \"https://download.languages.ledger.com/stax/russian/bolos_1.6.2_pack_0.0.4_ru.apdu\",\n apduUninstallUrl:\n \"https://download.languages.ledger.com/stax/russian/bolos_1.6.2_pack_0.0.4_ru_del.apdu\",\n bytes: 46592,\n dateCreation: \"2025-03-04T10:48:26.218729Z\",\n dateLastModified: \"2025-03-04T10:48:26.218729Z\",\n },\n ]),\n );\n });\n it(\"should return an error if payload don't match the dto\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify([\n {\n language: \"turkish\",\n version: \"0.0.4\",\n language_package_id: \"invalid\",\n },\n ]),\n ),\n );\n\n // when\n const response = await api.getLanguagePackages({\n deviceId: 1,\n currentFinalFirmwareId: 42,\n });\n\n // then\n expect(response.isRight()).toEqual(false);\n });\n it(\"should return an error if the request fails\", async () => {\n // given\n const error = new Error(\"fetch error\");\n vi.spyOn(globalThis, \"fetch\").mockRejectedValue(error);\n\n // when\n const response = await api.getLanguagePackages({\n deviceId: 1,\n currentFinalFirmwareId: 42,\n });\n\n // then\n expect(response).toEqual(Left(new HttpFetchApiError(error)));\n });\n });\n\n describe(\"getMcuList\", () => {\n let api: ManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://localhost\",\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n it(\"should return the list of MCUs\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify([\n {\n id: 1,\n mcu: 1,\n name: \"1.0\",\n description: null,\n providers: [1],\n device_versions: [1, 2],\n from_bootloader_version: \"1.0\",\n from_bootloader_version_id: 2,\n se_firmware_final_versions: [7, 12, 13, 14, 15],\n date_creation: \"2018-09-20T13:30:50.156394Z\",\n date_last_modified: \"2018-09-20T13:30:50.156453Z\",\n },\n {\n id: 2,\n mcu: 1,\n name: \"1.1\",\n description: null,\n providers: [1, 2],\n device_versions: [1, 2],\n from_bootloader_version: \"1.0\",\n from_bootloader_version_id: 2,\n se_firmware_final_versions: [7, 12, 13, 14, 15],\n date_creation: \"2018-09-20T13:30:50.339966Z\",\n date_last_modified: \"2018-09-20T13:30:50.340031Z\",\n },\n ]),\n ),\n );\n\n // when\n const response = await api.getMcuList();\n\n // then\n expect(response).toEqual(\n Right([\n {\n id: 1,\n name: \"1.0\",\n fromBootloaderVersion: \"1.0\",\n providers: [1],\n },\n {\n id: 2,\n name: \"1.1\",\n fromBootloaderVersion: \"1.0\",\n providers: [1, 2],\n },\n ]),\n );\n });\n\n it(\"should return an error when the payload don't match the dto\", async () => {\n // given\n vi.spyOn(globalThis, \"fetch\").mockResolvedValue(\n new Response(\n JSON.stringify([\n {\n id: \"invalid id\",\n mcu: 1,\n name: \"1.0\",\n description: null,\n providers: [],\n se_firmware_final_versions: [7, 12, 13, 14, 15],\n date_creation: \"2018-09-20T13:30:50.156394Z\",\n date_last_modified: \"2018-09-20T13:30:50.156453Z\",\n },\n ]),\n ),\n );\n\n // when\n const response = await api.getMcuList();\n\n // then\n expect(response.isRight()).toEqual(false);\n });\n\n it(\"should return an error if the request fails\", async () => {\n // given\n const error = new Error(\"fetch error\");\n vi.spyOn(globalThis, \"fetch\").mockRejectedValue(error);\n\n // when\n const response = await api.getMcuList();\n\n // then\n expect(response).toEqual(Left(new HttpFetchApiError(error)));\n });\n });\n describe(\"getProvider\", () => {\n let api: HttpManagerApiDataSource;\n beforeEach(() => {\n api = new HttpManagerApiDataSource({\n managerApiUrl: \"http://fake-url.com\",\n provider: 123,\n } as DmkConfig);\n });\n afterEach(() => {\n vi.restoreAllMocks();\n });\n\n it(\"should return the initial provider\", () => {\n expect(api.getProvider()).toBe(123);\n });\n\n it(\"should return the updated provider after setProvider is called\", () => {\n api.setProvider(321);\n expect(api.getProvider()).toBe(321);\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_purify_ts", "import_data", "import_Errors", "import_HttpManagerApiDataSource", "api", "apps", "response", "versionId", "rest", "error", "hashes", "err", "initialProvider", "fetchSpy", "requestUrl"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var d=Object.create;var c=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var g=(r,e)=>{for(var t in e)c(r,t,{get:e[t],enumerable:!0})},m=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of E(e))!C.call(r,s)&&s!==t&&c(r,s,{get:()=>e[s],enumerable:!(o=p(e,s))||o.enumerable});return r};var P=(r,e,t)=>(t=r!=null?d(w(r)):{},m(e||!r||!r.__esModule?c(t,"default",{value:r,enumerable:!0}):t,r)),f=r=>m(c({},"__esModule",{value:!0}),r),S=(r,e,t,o)=>{for(var s=o>1?void 0:o?p(e,t):e,b=r.length-1,k;b>=0;b--)(k=r[b])&&(s=(o?k(e,t,s):k(s))||s);return o&&s&&c(e,t,s),s},h=(r,e)=>(t,o)=>e(t,o,r);var B={};g(B,{DefaultSecureChannelDataSource:()=>i});module.exports=f(B);var a=require("inversify"),u=P(require("isomorphic-ws")),l=require("purify-ts"),n=require("../../../api/network/DmkNetworkClientHelpers"),W=require("../../secure-channel/di/secureChannelTypes"),U=require("../../secure-channel/model/Errors");let i=class{webSocketBaseUrl;constructor({webSocketUrl:e}){this.webSocketBaseUrl=e}setWebSocketUrl(e){this.webSocketBaseUrl===e||e.length===0||(this.webSocketBaseUrl=e)}getWebSocketUrl(){return this.webSocketBaseUrl}genuineCheck(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/genuine",params:e});return this._connectWebSocket(t)}installApp(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/install",params:e});return this._connectWebSocket(t)}listInstalledApps(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/apps/list",params:e});return this._connectWebSocket(t)}uninstallApp(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/install",params:e});return this._connectWebSocket(t)}updateFirmware(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/install",params:e});return this._connectWebSocket(t)}updateMcu(e){const t=(0,n.buildUrl)({baseUrl:this.webSocketBaseUrl,url:"/mcu",params:e});return this._connectWebSocket(t)}_connectWebSocket(e){try{return(0,l.Right)(new u.default(e))}catch(t){return(0,l.Left)(new U.WebSocketConnectionError(t))}}};i=S([(0,a.injectable)(),h(0,(0,a.inject)(W.secureChannelTypes.DmkConfig))],i);0&&(module.exports={DefaultSecureChannelDataSource});
|
|
2
2
|
//# sourceMappingURL=DefaultSecureChannelDataSource.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/secure-channel/data/DefaultSecureChannelDataSource.ts"],
|
|
4
|
-
"sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport WebSocket from \"isomorphic-ws\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { buildUrl } from \"@api/network/DmkNetworkClientHelpers\";\nimport { secureChannelTypes } from \"@internal/secure-channel/di/secureChannelTypes\";\nimport { WebSocketConnectionError } from \"@internal/secure-channel/model/Errors\";\nimport {\n GenuineCheckParams,\n InstallAppsParams,\n ListInstalledAppsParams,\n UninstallAppsParams,\n UpdateFirmwareParams,\n UpdateMcuParams,\n} from \"@internal/secure-channel/model/Params\";\n\nimport { SecureChannelDataSource } from \"./SecureChannelDataSource\";\n\n@injectable()\nexport class DefaultSecureChannelDataSource implements SecureChannelDataSource {\n private
|
|
5
|
-
"mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBACnCC,EAAsB,4BACtBC,EAAoC,qBAGpCC,EAAyB,gDACzBC,EAAmC,0DACnCC,EAAyC,iDAalC,IAAMC,EAAN,KAAwE,
|
|
4
|
+
"sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport WebSocket from \"isomorphic-ws\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { buildUrl } from \"@api/network/DmkNetworkClientHelpers\";\nimport { secureChannelTypes } from \"@internal/secure-channel/di/secureChannelTypes\";\nimport { WebSocketConnectionError } from \"@internal/secure-channel/model/Errors\";\nimport {\n GenuineCheckParams,\n InstallAppsParams,\n ListInstalledAppsParams,\n UninstallAppsParams,\n UpdateFirmwareParams,\n UpdateMcuParams,\n} from \"@internal/secure-channel/model/Params\";\n\nimport { SecureChannelDataSource } from \"./SecureChannelDataSource\";\n\n@injectable()\nexport class DefaultSecureChannelDataSource implements SecureChannelDataSource {\n private webSocketBaseUrl: string;\n\n constructor(\n @inject(secureChannelTypes.DmkConfig)\n { webSocketUrl }: DmkConfig,\n ) {\n this.webSocketBaseUrl = webSocketUrl;\n }\n\n setWebSocketUrl(webSocketUrl: string): void {\n if (this.webSocketBaseUrl === webSocketUrl || webSocketUrl.length === 0) {\n return;\n }\n this.webSocketBaseUrl = webSocketUrl;\n }\n\n getWebSocketUrl(): string {\n return this.webSocketBaseUrl;\n }\n\n genuineCheck(\n params: GenuineCheckParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/genuine\",\n params,\n });\n return this._connectWebSocket(address);\n }\n\n installApp(\n params: InstallAppsParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/install\",\n params,\n });\n return this._connectWebSocket(address);\n }\n\n listInstalledApps(\n params: ListInstalledAppsParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/apps/list\",\n params,\n });\n return this._connectWebSocket(address);\n }\n\n uninstallApp(\n params: UninstallAppsParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/install\",\n params,\n });\n return this._connectWebSocket(address);\n }\n\n updateFirmware(\n params: UpdateFirmwareParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/install\",\n params,\n });\n return this._connectWebSocket(address);\n }\n\n updateMcu(\n params: UpdateMcuParams,\n ): Either<WebSocketConnectionError, WebSocket> {\n const address = buildUrl({\n baseUrl: this.webSocketBaseUrl,\n url: \"/mcu\",\n 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"],
|
|
5
|
+
"mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBACnCC,EAAsB,4BACtBC,EAAoC,qBAGpCC,EAAyB,gDACzBC,EAAmC,0DACnCC,EAAyC,iDAalC,IAAMC,EAAN,KAAwE,CACrE,iBAER,YAEE,CAAE,aAAAC,CAAa,EACf,CACA,KAAK,iBAAmBA,CAC1B,CAEA,gBAAgBA,EAA4B,CACtC,KAAK,mBAAqBA,GAAgBA,EAAa,SAAW,IAGtE,KAAK,iBAAmBA,EAC1B,CAEA,iBAA0B,CACxB,OAAO,KAAK,gBACd,CAEA,aACEC,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,WACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,WACED,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,WACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,kBACED,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,aACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,aACED,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,WACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,eACED,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,WACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,UACED,EAC6C,CAC7C,MAAMC,KAAU,YAAS,CACvB,QAAS,KAAK,iBACd,IAAK,OACL,OAAAD,CACF,CAAC,EACD,OAAO,KAAK,kBAAkBC,CAAO,CACvC,CAEA,kBACEA,EAC6C,CAC7C,GAAI,CACF,SAAO,SAAM,IAAI,EAAAC,QAAUD,CAAO,CAAC,CACrC,OAASE,EAAO,CACd,SAAO,QAAK,IAAI,2BAAyBA,CAAK,CAAC,CACjD,CACF,CACF,EAhGaL,EAANM,EAAA,IADN,cAAW,EAKPC,EAAA,eAAO,qBAAmB,SAAS,IAJ3BP",
|
|
6
6
|
"names": ["DefaultSecureChannelDataSource_exports", "__export", "DefaultSecureChannelDataSource", "__toCommonJS", "import_inversify", "import_isomorphic_ws", "import_purify_ts", "import_DmkNetworkClientHelpers", "import_secureChannelTypes", "import_Errors", "DefaultSecureChannelDataSource", "webSocketUrl", "params", "address", "WebSocket", "error", "__decorateClass", "__decorateParam"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var u=Object.create;var l=Object.defineProperty;var
|
|
1
|
+
"use strict";var u=Object.create;var l=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var S=(e,t,c,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of h(t))!w.call(e,o)&&o!==c&&l(e,o,{get:()=>t[o],enumerable:!(n=k(t,o))||n.enumerable});return e};var b=(e,t,c)=>(c=e!=null?u(p(e)):{},S(t||!e||!e.__esModule?l(c,"default",{value:e,enumerable:!0}):c,e));var s=b(require("isomorphic-ws")),r=require("purify-ts"),i=require("../../secure-channel/model/Errors"),a=require("./DefaultSecureChannelDataSource");vi.mock("isomorphic-ws",()=>({default:vi.fn().mockImplementationOnce(()=>{}).mockImplementationOnce(()=>{throw new Error("WebSocket connection failed")})}));describe("Secure Channel Data Source",()=>{describe("Connection establishment",()=>{afterEach(()=>{vi.clearAllMocks()}),it("should return a WebSocket if the WebSocket connection succeeds",()=>{const t=new a.DefaultSecureChannelDataSource({webSocketUrl:"wss://test-websocket-url"})._connectWebSocket("wss://test-websocket-url/test");expect(s.default).toHaveBeenCalledWith("wss://test-websocket-url/test"),expect(t.extract()).toBeInstanceOf(s.default)}),it("should return an error if the WebSocket connection fails",()=>{const t=new a.DefaultSecureChannelDataSource({webSocketUrl:"wss://test-websocket-url"})._connectWebSocket("wss://test-websocket-url/test");expect(t.extract()).toBeInstanceOf(i.WebSocketConnectionError)})}),describe("Connections with different pathname",()=>{let e;beforeEach(()=>{e=new a.DefaultSecureChannelDataSource({webSocketUrl:"wss://test-websocket-url"})}),afterEach(()=>{vi.clearAllMocks()}),it("should call _connectWebSocket with parameters for genuineCheck",()=>{vi.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("GIVEN a trailing slash base URL and special query characters WHEN genuineCheck connects THEN it builds one encoded URL string",()=>{e=new a.DefaultSecureChannelDataSource({webSocketUrl:"wss://test-websocket-url/"}),vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({})),e.genuineCheck({targetId:"target id",perso:"perso&value"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/genuine?targetId=target%20id&perso=perso%26value")}),it("should call _connectWebSocket with parameters for listInstalledApps",()=>{vi.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",()=>{vi.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",()=>{vi.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",()=>{vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({})),e.installApp({targetId:"targetId",perso:"perso",firmware:"firmware",firmwareKey:"firmwareKey",hash:"hash"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&hash=hash")}),it("should call _connectWebSocket with parameters for uninstallApp",()=>{vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({})),e.uninstallApp({targetId:"targetId",perso:"perso",firmware:"firmware",firmwareKey:"firmwareKey",hash:"hash"}),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&hash=hash")})}),describe("Given a configured WebSocket base URL",()=>{let e;beforeEach(()=>{e=new a.DefaultSecureChannelDataSource({webSocketUrl:"wss://test-websocket-url"}),vi.spyOn(e,"_connectWebSocket").mockReturnValue((0,r.Right)({}))}),afterEach(()=>{vi.clearAllMocks()}),describe("When getWebSocketUrl is called",()=>{it("Then it should return the configured URL",()=>{expect(e.getWebSocketUrl()).toBe("wss://test-websocket-url")})}),describe("When setWebSocketUrl is called with a different URL",()=>{it("Then it should use the new URL for subsequent connections",()=>{e.setWebSocketUrl("wss://overridden-websocket-url"),e.genuineCheck({targetId:"targetId",perso:"perso"}),expect(e.getWebSocketUrl()).toBe("wss://overridden-websocket-url"),expect(e._connectWebSocket).toHaveBeenCalledWith("wss://overridden-websocket-url/genuine?targetId=targetId&perso=perso")})}),describe("When setWebSocketUrl is called with an empty string",()=>{it("Then it should keep the current URL",()=>{e.setWebSocketUrl(""),expect(e.getWebSocketUrl()).toBe("wss://test-websocket-url")})}),describe("When setWebSocketUrl is called with the same URL",()=>{it("Then it should keep the current URL",()=>{e.setWebSocketUrl("wss://test-websocket-url"),expect(e.getWebSocketUrl()).toBe("wss://test-websocket-url")})})})});
|
|
2
2
|
//# sourceMappingURL=DefaultSecureChannelDataSource.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.ts"],
|
|
4
|
-
"sourcesContent": ["import WebSocket from \"isomorphic-ws\";\nimport { Right } from \"purify-ts\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { WebSocketConnectionError } from \"@internal/secure-channel/model/Errors\";\n\nimport { DefaultSecureChannelDataSource } from \"./DefaultSecureChannelDataSource\";\nimport { type SecureChannelDataSource } from \"./SecureChannelDataSource\";\n\nvi.mock(\"isomorphic-ws\", () => {\n // The chained mockImplementationOnce is used to simulate the WebSocket connection success and failure respectively, the order is important\n return {\n default: vi\n .fn()\n .mockImplementationOnce(() => {})\n .mockImplementationOnce(() => {\n throw new Error(\"WebSocket connection failed\");\n }),\n };\n});\n\ndescribe(\"Secure Channel Data Source\", () => {\n describe(\"Connection establishment\", () => {\n afterEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"should return a WebSocket if the WebSocket connection succeeds\", () => {\n // given\n const api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url\",\n } as DmkConfig);\n\n // when\n const res = api._connectWebSocket(\"wss://test-websocket-url/test\");\n\n // then\n expect(WebSocket).toHaveBeenCalledWith(\"wss://test-websocket-url/test\");\n expect(res.extract()).toBeInstanceOf(WebSocket);\n });\n\n it(\"should return an error if the WebSocket connection fails\", () => {\n // given\n const api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url\",\n } as DmkConfig);\n\n // when\n const res = api._connectWebSocket(\"wss://test-websocket-url/test\");\n\n // then\n expect(res.extract()).toBeInstanceOf(WebSocketConnectionError);\n });\n });\n describe(\"Connections with different pathname\", () => {\n let api: SecureChannelDataSource;\n\n beforeEach(() => {\n api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url\",\n } as DmkConfig);\n });\n\n afterEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"should call _connectWebSocket with parameters for genuineCheck\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.genuineCheck({\n targetId: \"targetId\",\n perso: \"perso\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/genuine?targetId=targetId&perso=perso\",\n );\n });\n\n it(\"GIVEN a trailing slash base URL and special query characters WHEN genuineCheck connects THEN it builds one encoded URL string\", () => {\n // given\n api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url/\",\n } as DmkConfig);\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.genuineCheck({\n targetId: \"target id\",\n perso: \"perso&value\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/genuine?targetId=target%20id&perso=perso%26value\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for listInstalledApps\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.listInstalledApps({\n targetId: \"targetId\",\n perso: \"perso\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/apps/list?targetId=targetId&perso=perso\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for updateMcu\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.updateMcu({\n targetId: \"targetId\",\n version: \"version\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/mcu?targetId=targetId&version=version\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for updateFirmware\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_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\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for installApp\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_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 hash: \"hash\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&hash=hash\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for uninstallApp\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.uninstallApp({\n targetId: \"targetId\",\n perso: \"perso\",\n firmware: \"firmware\",\n firmwareKey: \"firmwareKey\",\n hash: \"hash\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&hash=hash\",\n );\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import WebSocket from \"isomorphic-ws\";\nimport { Right } from \"purify-ts\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { WebSocketConnectionError } from \"@internal/secure-channel/model/Errors\";\n\nimport { DefaultSecureChannelDataSource } from \"./DefaultSecureChannelDataSource\";\nimport { type SecureChannelDataSource } from \"./SecureChannelDataSource\";\n\nvi.mock(\"isomorphic-ws\", () => {\n // The chained mockImplementationOnce is used to simulate the WebSocket connection success and failure respectively, the order is important\n return {\n default: vi\n .fn()\n .mockImplementationOnce(() => {})\n .mockImplementationOnce(() => {\n throw new Error(\"WebSocket connection failed\");\n }),\n };\n});\n\ndescribe(\"Secure Channel Data Source\", () => {\n describe(\"Connection establishment\", () => {\n afterEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"should return a WebSocket if the WebSocket connection succeeds\", () => {\n // given\n const api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url\",\n } as DmkConfig);\n\n // when\n const res = api._connectWebSocket(\"wss://test-websocket-url/test\");\n\n // then\n expect(WebSocket).toHaveBeenCalledWith(\"wss://test-websocket-url/test\");\n expect(res.extract()).toBeInstanceOf(WebSocket);\n });\n\n it(\"should return an error if the WebSocket connection fails\", () => {\n // given\n const api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url\",\n } as DmkConfig);\n\n // when\n const res = api._connectWebSocket(\"wss://test-websocket-url/test\");\n\n // then\n expect(res.extract()).toBeInstanceOf(WebSocketConnectionError);\n });\n });\n describe(\"Connections with different pathname\", () => {\n let api: SecureChannelDataSource;\n\n beforeEach(() => {\n api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url\",\n } as DmkConfig);\n });\n\n afterEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"should call _connectWebSocket with parameters for genuineCheck\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.genuineCheck({\n targetId: \"targetId\",\n perso: \"perso\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/genuine?targetId=targetId&perso=perso\",\n );\n });\n\n it(\"GIVEN a trailing slash base URL and special query characters WHEN genuineCheck connects THEN it builds one encoded URL string\", () => {\n // given\n api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url/\",\n } as DmkConfig);\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.genuineCheck({\n targetId: \"target id\",\n perso: \"perso&value\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/genuine?targetId=target%20id&perso=perso%26value\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for listInstalledApps\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.listInstalledApps({\n targetId: \"targetId\",\n perso: \"perso\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/apps/list?targetId=targetId&perso=perso\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for updateMcu\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.updateMcu({\n targetId: \"targetId\",\n version: \"version\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/mcu?targetId=targetId&version=version\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for updateFirmware\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_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\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for installApp\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_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 hash: \"hash\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&hash=hash\",\n );\n });\n\n it(\"should call _connectWebSocket with parameters for uninstallApp\", () => {\n // given\n vi.spyOn(\n api as DefaultSecureChannelDataSource,\n \"_connectWebSocket\",\n ).mockReturnValue(Right({} as WebSocket));\n\n // when\n api.uninstallApp({\n targetId: \"targetId\",\n perso: \"perso\",\n firmware: \"firmware\",\n firmwareKey: \"firmwareKey\",\n hash: \"hash\",\n });\n\n // then\n expect(\n (api as DefaultSecureChannelDataSource)._connectWebSocket,\n ).toHaveBeenCalledWith(\n \"wss://test-websocket-url/install?targetId=targetId&perso=perso&firmware=firmware&firmwareKey=firmwareKey&hash=hash\",\n );\n });\n });\n\n describe(\"Given a configured WebSocket base URL\", () => {\n let api: DefaultSecureChannelDataSource;\n\n beforeEach(() => {\n api = new DefaultSecureChannelDataSource({\n webSocketUrl: \"wss://test-websocket-url\",\n } as DmkConfig);\n vi.spyOn(api, \"_connectWebSocket\").mockReturnValue(\n Right({} as WebSocket),\n );\n });\n\n afterEach(() => {\n vi.clearAllMocks();\n });\n\n describe(\"When getWebSocketUrl is called\", () => {\n it(\"Then it should return the configured URL\", () => {\n expect(api.getWebSocketUrl()).toBe(\"wss://test-websocket-url\");\n });\n });\n\n describe(\"When setWebSocketUrl is called with a different URL\", () => {\n it(\"Then it should use the new URL for subsequent connections\", () => {\n api.setWebSocketUrl(\"wss://overridden-websocket-url\");\n\n api.genuineCheck({\n targetId: \"targetId\",\n perso: \"perso\",\n });\n\n expect(api.getWebSocketUrl()).toBe(\"wss://overridden-websocket-url\");\n expect(api._connectWebSocket).toHaveBeenCalledWith(\n \"wss://overridden-websocket-url/genuine?targetId=targetId&perso=perso\",\n );\n });\n });\n\n describe(\"When setWebSocketUrl is called with an empty string\", () => {\n it(\"Then it should keep the current URL\", () => {\n api.setWebSocketUrl(\"\");\n\n expect(api.getWebSocketUrl()).toBe(\"wss://test-websocket-url\");\n });\n });\n\n describe(\"When setWebSocketUrl is called with the same URL\", () => {\n it(\"Then it should keep the current URL\", () => {\n api.setWebSocketUrl(\"wss://test-websocket-url\");\n\n expect(api.getWebSocketUrl()).toBe(\"wss://test-websocket-url\");\n });\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_isomorphic_ws", "import_purify_ts", "import_Errors", "import_DefaultSecureChannelDataSource", "res", "WebSocket", "api"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var o=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var c=(r,e,n,
|
|
1
|
+
"use strict";var o=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var c=(r,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of p(e))!i.call(r,t)&&t!==n&&o(r,t,{get:()=>e[t],enumerable:!(a=s(e,t))||a.enumerable});return r};var m=r=>c(o({},"__esModule",{value:!0}),r);var l={};module.exports=m(l);
|
|
2
2
|
//# sourceMappingURL=SecureChannelDataSource.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/secure-channel/data/SecureChannelDataSource.ts"],
|
|
4
|
-
"sourcesContent": ["import type WebSocket from \"isomorphic-ws\";\nimport { type Either } from \"purify-ts\";\n\nimport { type WebSocketConnectionError } from \"@internal/secure-channel/model/Errors\";\nimport type {\n GenuineCheckParams,\n InstallAppsParams,\n ListInstalledAppsParams,\n UninstallAppsParams,\n UpdateFirmwareParams,\n UpdateMcuParams,\n} from \"@internal/secure-channel/model/Params\";\n\n/**\n * Interface representing a data source for the Manager API.\n */\nexport interface SecureChannelDataSource {\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 * 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 * 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 * 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 /**\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 * 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"],
|
|
4
|
+
"sourcesContent": ["import type WebSocket from \"isomorphic-ws\";\nimport { type Either } from \"purify-ts\";\n\nimport { type WebSocketConnectionError } from \"@internal/secure-channel/model/Errors\";\nimport type {\n GenuineCheckParams,\n InstallAppsParams,\n ListInstalledAppsParams,\n UninstallAppsParams,\n UpdateFirmwareParams,\n UpdateMcuParams,\n} from \"@internal/secure-channel/model/Params\";\n\n/**\n * Interface representing a data source for the Manager API.\n */\nexport interface SecureChannelDataSource {\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 * 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 * 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 * 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 /**\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 * 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 * Sets the secure channel WebSocket base URL at runtime.\n *\n * @param webSocketUrl - The WebSocket base URL to use for subsequent connections.\n */\n setWebSocketUrl(webSocketUrl: string): void;\n\n /**\n * Returns the current secure channel WebSocket base URL.\n */\n getWebSocketUrl(): string;\n}\n"],
|
|
5
5
|
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
6
|
"names": ["SecureChannelDataSource_exports", "__toCommonJS"]
|
|
7
7
|
}
|
package/lib/cjs/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var i=Object.defineProperty;var
|
|
1
|
+
"use strict";var i=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var a in e)i(n,a,{get:e[a],enumerable:!0})},f=(n,e,a,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of p(e))!u.call(n,t)&&t!==a&&i(n,t,{get:()=>e[t],enumerable:!(l=r(e,t))||l.enumerable});return n};var s=n=>f(i({},"__esModule",{value:!0}),n);var v={};c(v,{DefaultSecureChannelDataSource:()=>o});module.exports=s(v);class o{genuineCheck=vi.fn();listInstalledApps=vi.fn();updateMcu=vi.fn();updateFirmware=vi.fn();installApp=vi.fn();uninstallApp=vi.fn();setWebSocketUrl=vi.fn();getWebSocketUrl=vi.fn()}0&&(module.exports={DefaultSecureChannelDataSource});
|
|
2
2
|
//# sourceMappingURL=DefaultSecureChannelDataSource.js.map
|
package/lib/cjs/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.ts"],
|
|
4
|
-
"sourcesContent": ["import { type SecureChannelDataSource } from \"@internal/secure-channel/data/SecureChannelDataSource\";\n\nexport class DefaultSecureChannelDataSource implements SecureChannelDataSource {\n genuineCheck = vi.fn();\n listInstalledApps = vi.fn();\n updateMcu = vi.fn();\n updateFirmware = vi.fn();\n installApp = vi.fn();\n uninstallApp = vi.fn();\n}\n"],
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oCAAAE,IAAA,eAAAC,EAAAH,GAEO,MAAME,CAAkE,CAC7E,aAAe,GAAG,GAAG,EACrB,kBAAoB,GAAG,GAAG,EAC1B,UAAY,GAAG,GAAG,EAClB,eAAiB,GAAG,GAAG,EACvB,WAAa,GAAG,GAAG,EACnB,aAAe,GAAG,GAAG,
|
|
4
|
+
"sourcesContent": ["import { type SecureChannelDataSource } from \"@internal/secure-channel/data/SecureChannelDataSource\";\n\nexport class DefaultSecureChannelDataSource implements SecureChannelDataSource {\n genuineCheck = vi.fn();\n listInstalledApps = vi.fn();\n updateMcu = vi.fn();\n updateFirmware = vi.fn();\n installApp = vi.fn();\n uninstallApp = vi.fn();\n setWebSocketUrl = vi.fn();\n getWebSocketUrl = vi.fn();\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oCAAAE,IAAA,eAAAC,EAAAH,GAEO,MAAME,CAAkE,CAC7E,aAAe,GAAG,GAAG,EACrB,kBAAoB,GAAG,GAAG,EAC1B,UAAY,GAAG,GAAG,EAClB,eAAiB,GAAG,GAAG,EACvB,WAAa,GAAG,GAAG,EACnB,aAAe,GAAG,GAAG,EACrB,gBAAkB,GAAG,GAAG,EACxB,gBAAkB,GAAG,GAAG,CAC1B",
|
|
6
6
|
"names": ["DefaultSecureChannelDataSource_exports", "__export", "DefaultSecureChannelDataSource", "__toCommonJS"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var c=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var p=(o,e)=>{for(var t in e)c(o,t,{get:e[t],enumerable:!0})},D=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of f(e))!i.call(o,a)&&a!==t&&c(o,a,{get:()=>e[a],enumerable:!(n=C(e,a))||n.enumerable});return o};var U=o=>D(c({},"__esModule",{value:!0}),o);var k={};p(k,{secureChannelModuleFactory:()=>h});module.exports=U(k);var m=require("inversify"),S=require("../../secure-channel/data/DefaultSecureChannelDataSource"),l=require("../../secure-channel/service/DefaultSecureChannelService"),s=require("../../secure-channel/use-case/SetWebSocketUrlUseCase"),u=require("../../../../src/di.stub"),r=require("./secureChannelTypes");const h=({stub:o,config:e})=>new m.ContainerModule(({bind:t,rebindSync:n})=>{t(r.secureChannelTypes.DmkConfig).toConstantValue(e),t(r.secureChannelTypes.SecureChannelDataSource).to(S.DefaultSecureChannelDataSource).inSingletonScope(),t(r.secureChannelTypes.SecureChannelService).to(l.DefaultSecureChannelService),t(r.secureChannelTypes.SetWebSocketUrlUseCase).to(s.SetWebSocketUrlUseCase),o&&n(r.secureChannelTypes.SetWebSocketUrlUseCase).to(u.StubUseCase)});0&&(module.exports={secureChannelModuleFactory});
|
|
2
2
|
//# sourceMappingURL=secureChannelModule.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/secure-channel/di/secureChannelModule.ts"],
|
|
4
|
-
"sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\n\nimport { secureChannelTypes } from \"./secureChannelTypes\";\n\ntype FactoryProps = {\n stub?: boolean;\n config: DmkConfig;\n};\n\nexport const secureChannelModuleFactory = ({ stub, config }: FactoryProps) =>\n new ContainerModule(({ bind }) => {\n bind(secureChannelTypes.DmkConfig).toConstantValue(config);\n\n bind(secureChannelTypes.SecureChannelDataSource).to(\n
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAGhCC,EAA+C,wEAC/CC,EAA4C,
|
|
6
|
-
"names": ["secureChannelModule_exports", "__export", "secureChannelModuleFactory", "__toCommonJS", "import_inversify", "import_DefaultSecureChannelDataSource", "import_DefaultSecureChannelService", "import_secureChannelTypes", "stub", "config", "bind"]
|
|
4
|
+
"sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\nimport { SetWebSocketUrlUseCase } from \"@internal/secure-channel/use-case/SetWebSocketUrlUseCase\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { secureChannelTypes } from \"./secureChannelTypes\";\n\ntype FactoryProps = {\n stub?: boolean;\n config: DmkConfig;\n};\n\nexport const secureChannelModuleFactory = ({ stub, config }: FactoryProps) =>\n new ContainerModule(({ bind, rebindSync }) => {\n bind(secureChannelTypes.DmkConfig).toConstantValue(config);\n\n bind(secureChannelTypes.SecureChannelDataSource)\n .to(DefaultSecureChannelDataSource)\n .inSingletonScope();\n bind(secureChannelTypes.SecureChannelService).to(\n DefaultSecureChannelService,\n );\n bind(secureChannelTypes.SetWebSocketUrlUseCase).to(SetWebSocketUrlUseCase);\n\n if (stub) {\n rebindSync(secureChannelTypes.SetWebSocketUrlUseCase).to(StubUseCase);\n }\n });\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAGhCC,EAA+C,wEAC/CC,EAA4C,wEAC5CC,EAAuC,oEACvCC,EAA4B,6BAE5BC,EAAmC,gCAO5B,MAAMP,EAA6B,CAAC,CAAE,KAAAQ,EAAM,OAAAC,CAAO,IACxD,IAAI,kBAAgB,CAAC,CAAE,KAAAC,EAAM,WAAAC,CAAW,IAAM,CAC5CD,EAAK,qBAAmB,SAAS,EAAE,gBAAgBD,CAAM,EAEzDC,EAAK,qBAAmB,uBAAuB,EAC5C,GAAG,gCAA8B,EACjC,iBAAiB,EACpBA,EAAK,qBAAmB,oBAAoB,EAAE,GAC5C,6BACF,EACAA,EAAK,qBAAmB,sBAAsB,EAAE,GAAG,wBAAsB,EAErEF,GACFG,EAAW,qBAAmB,sBAAsB,EAAE,GAAG,aAAW,CAExE,CAAC",
|
|
6
|
+
"names": ["secureChannelModule_exports", "__export", "secureChannelModuleFactory", "__toCommonJS", "import_inversify", "import_DefaultSecureChannelDataSource", "import_DefaultSecureChannelService", "import_SetWebSocketUrlUseCase", "import_di", "import_secureChannelTypes", "stub", "config", "bind", "rebindSync"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var r=require("inversify"),u=require("../../secure-channel/data/DefaultSecureChannelDataSource"),l=require("../../secure-channel/service/DefaultSecureChannelService"),f=require("../../secure-channel/use-case/SetWebSocketUrlUseCase"),i=require("../../../../src/di.stub"),a=require("./secureChannelModule"),t=require("./secureChannelTypes");describe("secureChannelModuleFactory default use case",()=>{const n={webSocketUrl:"http://fake-websocket.url"};let e,o;beforeEach(()=>{o=(0,a.secureChannelModuleFactory)({stub:!1,config:n}),e=new r.Container,e.loadSync(o)}),it("the secure channel module should be defined",()=>{expect(o).toBeDefined()}),it("should return default use cases instead of stub",()=>{const c=e.get(t.secureChannelTypes.DmkConfig);expect(c).toEqual({webSocketUrl:"http://fake-websocket.url"});const s=e.get(t.secureChannelTypes.SecureChannelDataSource);expect(s).toBeInstanceOf(u.DefaultSecureChannelDataSource),expect(e.get(t.secureChannelTypes.SecureChannelDataSource)).toBe(s);const C=e.get(t.secureChannelTypes.SecureChannelService);expect(C).toBeInstanceOf(l.DefaultSecureChannelService);const S=e.get(t.secureChannelTypes.SetWebSocketUrlUseCase);expect(S).toBeInstanceOf(f.SetWebSocketUrlUseCase)})});describe("secureChannelModuleFactory stubbed",()=>{const n={webSocketUrl:"http://fake-websocket.url"};let e,o;beforeEach(()=>{o=(0,a.secureChannelModuleFactory)({stub:!0,config:n}),e=new r.Container,e.loadSync(o)}),it("should return a stubbed SetWebSocketUrlUseCase",()=>{const c=e.get(t.secureChannelTypes.SetWebSocketUrlUseCase);expect(c).toBeInstanceOf(i.StubUseCase)})});
|
|
2
2
|
//# sourceMappingURL=secureChannelModule.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/secure-channel/di/secureChannelModule.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { type DmkConfig } from \"@api/index\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\n\nimport { secureChannelModuleFactory } from \"./secureChannelModule\";\nimport { secureChannelTypes } from \"./secureChannelTypes\";\n\ndescribe(\"secureChannelModuleFactory default use case\", () => {\n const mockDmkConfig = {\n webSocketUrl: \"http://fake-websocket.url\",\n } as DmkConfig;\n\n let container: Container;\n let mod: ReturnType<typeof secureChannelModuleFactory>;\n\n beforeEach(() => {\n mod = secureChannelModuleFactory({\n stub: false,\n config: mockDmkConfig,\n });\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"the secure channel module should be defined\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should return default use cases instead of stub\", () => {\n const config = container.get(secureChannelTypes.DmkConfig);\n expect(config).toEqual({\n webSocketUrl: \"http://fake-websocket.url\",\n });\n\n const secureChannelDataSource = container.get(\n secureChannelTypes.SecureChannelDataSource,\n );\n expect(secureChannelDataSource).toBeInstanceOf(\n DefaultSecureChannelDataSource,\n );\n\n const secureChannelService = container.get(\n secureChannelTypes.SecureChannelService,\n );\n expect(secureChannelService).toBeInstanceOf(DefaultSecureChannelService);\n });\n});\n"],
|
|
5
|
-
"mappings": "aAAA,IAAAA,EAA0B,qBAG1BC,EAA+C,wEAC/CC,EAA4C,
|
|
6
|
-
"names": ["import_inversify", "import_DefaultSecureChannelDataSource", "import_DefaultSecureChannelService", "import_secureChannelModule", "import_secureChannelTypes", "mockDmkConfig", "container", "mod", "config", "secureChannelDataSource", "secureChannelService"]
|
|
4
|
+
"sourcesContent": ["import { Container } from \"inversify\";\n\nimport { type DmkConfig } from \"@api/index\";\nimport { DefaultSecureChannelDataSource } from \"@internal/secure-channel/data/DefaultSecureChannelDataSource\";\nimport { DefaultSecureChannelService } from \"@internal/secure-channel/service/DefaultSecureChannelService\";\nimport { SetWebSocketUrlUseCase } from \"@internal/secure-channel/use-case/SetWebSocketUrlUseCase\";\nimport { StubUseCase } from \"@root/src/di.stub\";\n\nimport { secureChannelModuleFactory } from \"./secureChannelModule\";\nimport { secureChannelTypes } from \"./secureChannelTypes\";\n\ndescribe(\"secureChannelModuleFactory default use case\", () => {\n const mockDmkConfig = {\n webSocketUrl: \"http://fake-websocket.url\",\n } as DmkConfig;\n\n let container: Container;\n let mod: ReturnType<typeof secureChannelModuleFactory>;\n\n beforeEach(() => {\n mod = secureChannelModuleFactory({\n stub: false,\n config: mockDmkConfig,\n });\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"the secure channel module should be defined\", () => {\n expect(mod).toBeDefined();\n });\n\n it(\"should return default use cases instead of stub\", () => {\n const config = container.get(secureChannelTypes.DmkConfig);\n expect(config).toEqual({\n webSocketUrl: \"http://fake-websocket.url\",\n });\n\n const secureChannelDataSource = container.get(\n secureChannelTypes.SecureChannelDataSource,\n );\n expect(secureChannelDataSource).toBeInstanceOf(\n DefaultSecureChannelDataSource,\n );\n expect(container.get(secureChannelTypes.SecureChannelDataSource)).toBe(\n secureChannelDataSource,\n );\n\n const secureChannelService = container.get(\n secureChannelTypes.SecureChannelService,\n );\n expect(secureChannelService).toBeInstanceOf(DefaultSecureChannelService);\n\n const setWebSocketUrlUseCase = container.get(\n secureChannelTypes.SetWebSocketUrlUseCase,\n );\n expect(setWebSocketUrlUseCase).toBeInstanceOf(SetWebSocketUrlUseCase);\n });\n});\n\ndescribe(\"secureChannelModuleFactory stubbed\", () => {\n const mockDmkConfig = {\n webSocketUrl: \"http://fake-websocket.url\",\n } as DmkConfig;\n\n let container: Container;\n let mod: ReturnType<typeof secureChannelModuleFactory>;\n\n beforeEach(() => {\n mod = secureChannelModuleFactory({\n stub: true,\n config: mockDmkConfig,\n });\n container = new Container();\n container.loadSync(mod);\n });\n\n it(\"should return a stubbed SetWebSocketUrlUseCase\", () => {\n const setWebSocketUrlUseCase = container.get(\n secureChannelTypes.SetWebSocketUrlUseCase,\n );\n expect(setWebSocketUrlUseCase).toBeInstanceOf(StubUseCase);\n });\n});\n"],
|
|
5
|
+
"mappings": "aAAA,IAAAA,EAA0B,qBAG1BC,EAA+C,wEAC/CC,EAA4C,wEAC5CC,EAAuC,oEACvCC,EAA4B,6BAE5BC,EAA2C,iCAC3CC,EAAmC,gCAEnC,SAAS,8CAA+C,IAAM,CAC5D,MAAMC,EAAgB,CACpB,aAAc,2BAChB,EAEA,IAAIC,EACAC,EAEJ,WAAW,IAAM,CACfA,KAAM,8BAA2B,CAC/B,KAAM,GACN,OAAQF,CACV,CAAC,EACDC,EAAY,IAAI,YAChBA,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,8CAA+C,IAAM,CACtD,OAAOA,CAAG,EAAE,YAAY,CAC1B,CAAC,EAED,GAAG,kDAAmD,IAAM,CAC1D,MAAMC,EAASF,EAAU,IAAI,qBAAmB,SAAS,EACzD,OAAOE,CAAM,EAAE,QAAQ,CACrB,aAAc,2BAChB,CAAC,EAED,MAAMC,EAA0BH,EAAU,IACxC,qBAAmB,uBACrB,EACA,OAAOG,CAAuB,EAAE,eAC9B,gCACF,EACA,OAAOH,EAAU,IAAI,qBAAmB,uBAAuB,CAAC,EAAE,KAChEG,CACF,EAEA,MAAMC,EAAuBJ,EAAU,IACrC,qBAAmB,oBACrB,EACA,OAAOI,CAAoB,EAAE,eAAe,6BAA2B,EAEvE,MAAMC,EAAyBL,EAAU,IACvC,qBAAmB,sBACrB,EACA,OAAOK,CAAsB,EAAE,eAAe,wBAAsB,CACtE,CAAC,CACH,CAAC,EAED,SAAS,qCAAsC,IAAM,CACnD,MAAMN,EAAgB,CACpB,aAAc,2BAChB,EAEA,IAAIC,EACAC,EAEJ,WAAW,IAAM,CACfA,KAAM,8BAA2B,CAC/B,KAAM,GACN,OAAQF,CACV,CAAC,EACDC,EAAY,IAAI,YAChBA,EAAU,SAASC,CAAG,CACxB,CAAC,EAED,GAAG,iDAAkD,IAAM,CACzD,MAAMI,EAAyBL,EAAU,IACvC,qBAAmB,sBACrB,EACA,OAAOK,CAAsB,EAAE,eAAe,aAAW,CAC3D,CAAC,CACH,CAAC",
|
|
6
|
+
"names": ["import_inversify", "import_DefaultSecureChannelDataSource", "import_DefaultSecureChannelService", "import_SetWebSocketUrlUseCase", "import_di", "import_secureChannelModule", "import_secureChannelTypes", "mockDmkConfig", "container", "mod", "config", "secureChannelDataSource", "secureChannelService", "setWebSocketUrlUseCase"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var t=(r,e)=>{for(var o in e)n(r,o,{get:e[o],enumerable:!0})},u=(r,e,o,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let S of l(e))!C.call(r,S)&&S!==o&&n(r,S,{get:()=>e[S],enumerable:!(c=a(e,S))||c.enumerable});return r};var s=r=>u(n({},"__esModule",{value:!0}),r);var f={};t(f,{secureChannelTypes:()=>b});module.exports=s(f);const b={SecureChannelService:Symbol.for("SecureChannelService"),SecureChannelDataSource:Symbol.for("SecureChannelDataSource"),DmkConfig:Symbol.for("SecureChannelDmkConfig"),SetWebSocketUrlUseCase:Symbol.for("SetWebSocketUrlUseCase")};0&&(module.exports={secureChannelTypes});
|
|
2
2
|
//# sourceMappingURL=secureChannelTypes.js.map
|