@ledgerhq/device-management-kit 1.7.1 → 1.8.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.
Files changed (180) hide show
  1. package/README.md +0 -3
  2. package/lib/cjs/package.json +1 -1
  3. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  4. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
  5. package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js +1 -1
  6. package/lib/cjs/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
  7. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  8. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +3 -3
  9. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  10. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +3 -3
  11. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/types.js +1 -1
  12. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/types.js.map +2 -2
  13. package/lib/cjs/src/api/device-action/os/InstallLanguagePackage/types.js +1 -1
  14. package/lib/cjs/src/api/device-action/os/InstallLanguagePackage/types.js.map +3 -3
  15. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.js +1 -1
  16. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.js.map +3 -3
  17. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js +1 -1
  18. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +3 -3
  19. package/lib/cjs/src/api/index.js +1 -1
  20. package/lib/cjs/src/api/index.js.map +3 -3
  21. package/lib/cjs/src/api/types.js +1 -1
  22. package/lib/cjs/src/api/types.js.map +3 -3
  23. package/lib/cjs/src/api/utils/apduLogs.js +1 -1
  24. package/lib/cjs/src/api/utils/apduLogs.js.map +3 -3
  25. package/lib/cjs/src/api/utils/apduLogs.test.js +1 -1
  26. package/lib/cjs/src/api/utils/apduLogs.test.js.map +3 -3
  27. package/lib/cjs/src/internal/device-session/model/DeviceSession.js +1 -1
  28. package/lib/cjs/src/internal/device-session/model/DeviceSession.js.map +3 -3
  29. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.js +1 -1
  30. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.js.map +2 -2
  31. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
  32. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +2 -2
  33. package/lib/cjs/src/internal/manager-api/data/HttpManagerApiDataSource.js +1 -1
  34. package/lib/cjs/src/internal/manager-api/data/HttpManagerApiDataSource.js.map +2 -2
  35. package/lib/cjs/src/internal/manager-api/data/HttpManagerApiDataSource.test.js +1 -1
  36. package/lib/cjs/src/internal/manager-api/data/HttpManagerApiDataSource.test.js.map +2 -2
  37. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js +1 -1
  38. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js.map +1 -1
  39. package/lib/cjs/src/internal/manager-api/model/Const.js +1 -1
  40. package/lib/cjs/src/internal/manager-api/model/Const.js.map +1 -1
  41. package/lib/cjs/src/internal/manager-api/model/Firmware.js +1 -1
  42. package/lib/cjs/src/internal/manager-api/model/Firmware.js.map +1 -1
  43. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  44. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.js.map +2 -2
  45. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  46. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  47. package/lib/cjs/src/internal/manager-api/service/ManagerApiService.js +1 -1
  48. package/lib/cjs/src/internal/manager-api/service/ManagerApiService.js.map +1 -1
  49. package/lib/cjs/src/internal/secure-channel/model/Errors.js +1 -1
  50. package/lib/cjs/src/internal/secure-channel/model/Errors.js.map +2 -2
  51. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js +1 -1
  52. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +3 -3
  53. package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js +1 -1
  54. package/lib/cjs/src/internal/secure-channel/service/SecureChannelService.js.map +1 -1
  55. package/lib/esm/package.json +1 -1
  56. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js +1 -1
  57. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js.map +3 -3
  58. package/lib/esm/src/api/device-action/model/UserInteractionRequired.js +1 -1
  59. package/lib/esm/src/api/device-action/model/UserInteractionRequired.js.map +2 -2
  60. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js +1 -1
  61. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.js.map +3 -3
  62. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +1 -1
  63. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +3 -3
  64. package/lib/esm/src/api/device-action/os/GetDeviceStatus/types.js +1 -1
  65. package/lib/esm/src/api/device-action/os/GetDeviceStatus/types.js.map +2 -2
  66. package/lib/esm/src/api/device-action/os/InstallLanguagePackage/types.js +1 -1
  67. package/lib/esm/src/api/device-action/os/InstallLanguagePackage/types.js.map +3 -3
  68. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.js +1 -1
  69. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.js.map +3 -3
  70. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js +1 -1
  71. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +3 -3
  72. package/lib/esm/src/api/index.js +1 -1
  73. package/lib/esm/src/api/index.js.map +3 -3
  74. package/lib/esm/src/api/types.js +1 -0
  75. package/lib/esm/src/api/types.js.map +4 -4
  76. package/lib/esm/src/api/utils/apduLogs.js +1 -1
  77. package/lib/esm/src/api/utils/apduLogs.js.map +3 -3
  78. package/lib/esm/src/api/utils/apduLogs.test.js +1 -1
  79. package/lib/esm/src/api/utils/apduLogs.test.js.map +3 -3
  80. package/lib/esm/src/internal/device-session/model/DeviceSession.js +1 -1
  81. package/lib/esm/src/internal/device-session/model/DeviceSession.js.map +3 -3
  82. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.js +1 -1
  83. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.js.map +2 -2
  84. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js +1 -1
  85. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +2 -2
  86. package/lib/esm/src/internal/manager-api/data/HttpManagerApiDataSource.js +1 -1
  87. package/lib/esm/src/internal/manager-api/data/HttpManagerApiDataSource.js.map +3 -3
  88. package/lib/esm/src/internal/manager-api/data/HttpManagerApiDataSource.test.js +1 -1
  89. package/lib/esm/src/internal/manager-api/data/HttpManagerApiDataSource.test.js.map +3 -3
  90. package/lib/esm/src/internal/manager-api/model/Const.js +1 -1
  91. package/lib/esm/src/internal/manager-api/model/Const.js.map +1 -1
  92. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js +1 -1
  93. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.js.map +2 -2
  94. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js +1 -1
  95. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +3 -3
  96. package/lib/esm/src/internal/secure-channel/model/Errors.js +1 -1
  97. package/lib/esm/src/internal/secure-channel/model/Errors.js.map +3 -3
  98. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.js +1 -1
  99. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.js.map +3 -3
  100. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts +3 -0
  101. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts.map +1 -1
  102. package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts +3 -1
  103. package/lib/types/src/api/device-action/model/UserInteractionRequired.d.ts.map +1 -1
  104. package/lib/types/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.d.ts +0 -9
  105. package/lib/types/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.d.ts.map +1 -1
  106. package/lib/types/src/api/device-action/os/GetDeviceStatus/types.d.ts +4 -4
  107. package/lib/types/src/api/device-action/os/GetDeviceStatus/types.d.ts.map +1 -1
  108. package/lib/types/src/api/device-action/os/InstallLanguagePackage/types.d.ts +1 -0
  109. package/lib/types/src/api/device-action/os/InstallLanguagePackage/types.d.ts.map +1 -1
  110. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.d.ts +2 -0
  111. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.d.ts.map +1 -1
  112. package/lib/types/src/api/index.d.ts +3 -4
  113. package/lib/types/src/api/index.d.ts.map +1 -1
  114. package/lib/types/src/api/types.d.ts +1 -1
  115. package/lib/types/src/api/types.d.ts.map +1 -1
  116. package/lib/types/src/api/utils/apduLogs.d.ts +15 -0
  117. package/lib/types/src/api/utils/apduLogs.d.ts.map +1 -1
  118. package/lib/types/src/internal/device-session/model/DeviceSession.d.ts.map +1 -1
  119. package/lib/types/src/internal/device-session/model/DeviceSessionRefresher.d.ts.map +1 -1
  120. package/lib/types/src/internal/manager-api/data/HttpManagerApiDataSource.d.ts +2 -2
  121. package/lib/types/src/internal/manager-api/data/HttpManagerApiDataSource.d.ts.map +1 -1
  122. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts +4 -4
  123. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts.map +1 -1
  124. package/lib/types/src/internal/manager-api/model/Const.d.ts +1 -1
  125. package/lib/types/src/internal/manager-api/model/Firmware.d.ts +3 -0
  126. package/lib/types/src/internal/manager-api/model/Firmware.d.ts.map +1 -1
  127. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.d.ts +2 -1
  128. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.d.ts.map +1 -1
  129. package/lib/types/src/internal/manager-api/service/ManagerApiService.d.ts +9 -3
  130. package/lib/types/src/internal/manager-api/service/ManagerApiService.d.ts.map +1 -1
  131. package/lib/types/src/internal/secure-channel/model/Errors.d.ts +8 -1
  132. package/lib/types/src/internal/secure-channel/model/Errors.d.ts.map +1 -1
  133. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts +1 -1
  134. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.d.ts.map +1 -1
  135. package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts +2 -2
  136. package/lib/types/src/internal/secure-channel/service/SecureChannelService.d.ts.map +1 -1
  137. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  138. package/package.json +4 -4
  139. package/lib/cjs/src/api/command/os/BackupStorageCommand.js +0 -2
  140. package/lib/cjs/src/api/command/os/BackupStorageCommand.js.map +0 -7
  141. package/lib/cjs/src/api/command/os/BackupStorageCommand.test.js +0 -2
  142. package/lib/cjs/src/api/command/os/BackupStorageCommand.test.js.map +0 -7
  143. package/lib/cjs/src/api/command/os/GetAppStorageInfoCommand.js +0 -2
  144. package/lib/cjs/src/api/command/os/GetAppStorageInfoCommand.js.map +0 -7
  145. package/lib/cjs/src/api/command/os/GetAppStorageInfoCommand.test.js +0 -2
  146. package/lib/cjs/src/api/command/os/GetAppStorageInfoCommand.test.js.map +0 -7
  147. package/lib/cjs/src/api/device-action/task/BackupAppStorageTask.js +0 -2
  148. package/lib/cjs/src/api/device-action/task/BackupAppStorageTask.js.map +0 -7
  149. package/lib/cjs/src/api/device-action/task/BackupAppStorageTask.test.js +0 -2
  150. package/lib/cjs/src/api/device-action/task/BackupAppStorageTask.test.js.map +0 -7
  151. package/lib/cjs/src/api/storage/KeyValueStorage.js +0 -2
  152. package/lib/cjs/src/api/storage/KeyValueStorage.js.map +0 -7
  153. package/lib/esm/src/api/command/os/BackupStorageCommand.js +0 -2
  154. package/lib/esm/src/api/command/os/BackupStorageCommand.js.map +0 -7
  155. package/lib/esm/src/api/command/os/BackupStorageCommand.test.js +0 -2
  156. package/lib/esm/src/api/command/os/BackupStorageCommand.test.js.map +0 -7
  157. package/lib/esm/src/api/command/os/GetAppStorageInfoCommand.js +0 -2
  158. package/lib/esm/src/api/command/os/GetAppStorageInfoCommand.js.map +0 -7
  159. package/lib/esm/src/api/command/os/GetAppStorageInfoCommand.test.js +0 -2
  160. package/lib/esm/src/api/command/os/GetAppStorageInfoCommand.test.js.map +0 -7
  161. package/lib/esm/src/api/device-action/task/BackupAppStorageTask.js +0 -2
  162. package/lib/esm/src/api/device-action/task/BackupAppStorageTask.js.map +0 -7
  163. package/lib/esm/src/api/device-action/task/BackupAppStorageTask.test.js +0 -2
  164. package/lib/esm/src/api/device-action/task/BackupAppStorageTask.test.js.map +0 -7
  165. package/lib/esm/src/api/storage/KeyValueStorage.js +0 -2
  166. package/lib/esm/src/api/storage/KeyValueStorage.js.map +0 -7
  167. package/lib/types/src/api/command/os/BackupStorageCommand.d.ts +0 -23
  168. package/lib/types/src/api/command/os/BackupStorageCommand.d.ts.map +0 -1
  169. package/lib/types/src/api/command/os/BackupStorageCommand.test.d.ts +0 -2
  170. package/lib/types/src/api/command/os/BackupStorageCommand.test.d.ts.map +0 -1
  171. package/lib/types/src/api/command/os/GetAppStorageInfoCommand.d.ts +0 -31
  172. package/lib/types/src/api/command/os/GetAppStorageInfoCommand.d.ts.map +0 -1
  173. package/lib/types/src/api/command/os/GetAppStorageInfoCommand.test.d.ts +0 -2
  174. package/lib/types/src/api/command/os/GetAppStorageInfoCommand.test.d.ts.map +0 -1
  175. package/lib/types/src/api/device-action/task/BackupAppStorageTask.d.ts +0 -23
  176. package/lib/types/src/api/device-action/task/BackupAppStorageTask.d.ts.map +0 -1
  177. package/lib/types/src/api/device-action/task/BackupAppStorageTask.test.d.ts +0 -2
  178. package/lib/types/src/api/device-action/task/BackupAppStorageTask.test.d.ts.map +0 -1
  179. package/lib/types/src/api/storage/KeyValueStorage.d.ts +0 -7
  180. package/lib/types/src/api/storage/KeyValueStorage.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/manager-api/data/HttpManagerApiDataSource.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { EitherAsync } from \"purify-ts\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { DmkNetworkClient } from \"@api/network/DmkNetworkClient\";\nimport { DmkNetworkClientError } from \"@api/network/DmkNetworkClientError\";\nimport { managerApiTypes } from \"@internal/manager-api/di/managerApiTypes\";\nimport {\n type Application,\n AppType,\n} from \"@internal/manager-api/model/Application\";\nimport { DEFAULT_PROVIDER } from \"@internal/manager-api/model/Const\";\nimport { DEFAULT_FIRMWARE_DISTRIBUTION_SALT } from \"@internal/manager-api/model/Const\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport { HttpFetchApiError } from \"@internal/manager-api/model/Errors\";\nimport type {\n FinalFirmware,\n McuFirmware,\n OsuFirmware,\n} from \"@internal/manager-api/model/Firmware\";\nimport { type LanguagePackage } from \"@internal/manager-api/model/Language\";\nimport {\n type GetAppByHashParams,\n type GetAppListParams,\n type GetDeviceVersionParams,\n type GetFirmwareVersionParams,\n type GetLanguagePackagesParams,\n type GetLatestFirmwareVersionParams,\n} from \"@internal/manager-api/model/Params\";\n\nimport { ManagerApiDataSource } from \"./ManagerApiDataSource\";\nimport {\n ApplicationDto,\n AppTypeDto,\n DeviceVersionDto,\n FirmwareFinalVersionDto,\n FirmwareOsuVersionDto,\n LanguagePackageVersionDto,\n LatestFirmwareOsuVersionResponseDto,\n McuVersionDto,\n} from \"./ManagerApiDto\";\n\nconst toHttpFetchApiError = (error: unknown): HttpFetchApiError => {\n // The network client wraps fetch errors in DmkNetworkClientError. Unwrap the\n // original cause when available so consumers (and tests) keep seeing the\n // underlying error.\n if (error instanceof DmkNetworkClientError && error.cause !== undefined) {\n return new HttpFetchApiError(error.cause);\n }\n return new HttpFetchApiError(error);\n};\n\n@injectable()\nexport class HttpManagerApiDataSource implements ManagerApiDataSource {\n private readonly http: DmkNetworkClient;\n private _provider: number = DEFAULT_PROVIDER;\n private _firmwareDistributionSalt: string =\n DEFAULT_FIRMWARE_DISTRIBUTION_SALT;\n\n constructor(\n @inject(managerApiTypes.DmkConfig)\n { managerApiUrl, provider, firmwareDistributionSalt }: DmkConfig,\n ) {\n this.http = new DmkNetworkClient({ baseUrl: managerApiUrl });\n this._provider = provider;\n this._firmwareDistributionSalt = firmwareDistributionSalt;\n }\n\n setProvider(provider: number): void {\n if (this._provider === provider || provider < 1) {\n return;\n }\n this._provider = provider;\n }\n\n getProvider(): number {\n return this._provider;\n }\n\n getAppList(\n params: GetAppListParams,\n ): EitherAsync<HttpFetchApiError, Array<Application>> {\n const { targetId, firmwareVersionName } = params;\n return EitherAsync(() =>\n this.http.get(\"/v2/apps/by-target\", {\n params: {\n target_id: targetId,\n provider: this._provider,\n firmware_version_name: firmwareVersionName,\n },\n }),\n )\n .chain((apps) =>\n this.mapApplicationDtoToApplication(apps as Array<ApplicationDto>),\n )\n .mapLeft(toHttpFetchApiError);\n }\n\n getMcuList(): EitherAsync<HttpFetchApiError, Array<McuFirmware>> {\n return EitherAsync(() => this.http.get(\"/mcu_versions\"))\n .chain((mcus) => this.mapMcuDtoToMcu(mcus as Array<McuVersionDto>))\n .mapLeft(toHttpFetchApiError);\n }\n\n getDeviceVersion(\n params: GetDeviceVersionParams,\n ): EitherAsync<HttpFetchApiError, DeviceVersion> {\n const { targetId } = params;\n return EitherAsync(() =>\n this.http.get(\"/get_device_version\", {\n params: { target_id: targetId, provider: this._provider },\n }),\n )\n .chain((deviceVersion) =>\n this.mapDeviceVersionDto(deviceVersion as DeviceVersionDto),\n )\n .mapLeft(toHttpFetchApiError);\n }\n\n getFirmwareVersion(\n params: GetFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, FinalFirmware> {\n const { deviceId, version } = params;\n return EitherAsync(() =>\n this.http.get(\"/get_firmware_version\", {\n params: {\n device_version: deviceId,\n version_name: version,\n provider: this._provider,\n },\n }),\n )\n .chain((finalFirmware) =>\n this.mapFinalFirmwareDto(finalFirmware as FirmwareFinalVersionDto),\n )\n .mapLeft(toHttpFetchApiError);\n }\n\n getFirmwareVersionById(\n finalFirmwareId: number,\n ): EitherAsync<HttpFetchApiError, FinalFirmware> {\n return EitherAsync(() =>\n this.http.get(`/firmware_final_versions/${finalFirmwareId}`),\n )\n .chain((finalFirmware) =>\n this.mapFinalFirmwareDto(finalFirmware as FirmwareFinalVersionDto),\n )\n .mapLeft(toHttpFetchApiError);\n }\n\n getOsuFirmwareVersion(\n params: GetFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, OsuFirmware> {\n const { deviceId, version } = params;\n return EitherAsync(() =>\n this.http.get(\"/get_osu_version\", {\n params: {\n device_version: deviceId,\n version_name: version,\n provider: this._provider,\n },\n }),\n )\n .chain((osuFirmware) =>\n this.mapOsuFirmwareDto(osuFirmware as FirmwareOsuVersionDto),\n )\n .mapLeft(toHttpFetchApiError);\n }\n\n getLatestFirmwareVersion(\n params: GetLatestFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, OsuFirmware> {\n const livecommonversion = \"34.27.0\"; // Legacy parameter that should just be a too old\n const { currentFinalFirmwareId, deviceId } = params;\n return EitherAsync(() =>\n this.http.get(\"/get_latest_firmware\", {\n params: {\n current_se_firmware_final_version: currentFinalFirmwareId,\n device_version: deviceId,\n provider: this._provider,\n salt: this._firmwareDistributionSalt,\n livecommonversion,\n },\n }),\n )\n .chain((latestFirmware) =>\n this.mapLatestFirmwareDto(\n latestFirmware as LatestFirmwareOsuVersionResponseDto,\n ),\n )\n .mapLeft(toHttpFetchApiError);\n }\n\n getAppsByHash(\n params: GetAppByHashParams,\n ): EitherAsync<HttpFetchApiError, Array<Application | null>> {\n const { hashes } = params;\n return EitherAsync(() => this.http.post(\"/v2/apps/hash\", hashes))\n .chain((apps) =>\n this.mapNullableApplicationDtoToApplication(\n apps as Array<ApplicationDto | null>,\n ),\n )\n .mapLeft(toHttpFetchApiError);\n }\n\n getLanguagePackages(\n params: GetLanguagePackagesParams,\n ): EitherAsync<HttpFetchApiError, Array<LanguagePackage>> {\n const { deviceId, currentFinalFirmwareId } = params;\n return EitherAsync(() =>\n this.http.get(\"/language-packages\", {\n params: {\n device_version: deviceId,\n current_se_firmware_final_version: currentFinalFirmwareId,\n },\n }),\n )\n .chain((apps) =>\n this.mapLanguagesDtoToLanguages(\n apps as Array<LanguagePackageVersionDto>,\n ),\n )\n .mapLeft(toHttpFetchApiError);\n }\n\n private mapAppTypeDtoToAppType(appType: AppTypeDto | null): AppType | null {\n if (appType === null) {\n return null;\n }\n switch (appType) {\n case AppTypeDto.currency:\n return AppType.currency;\n case AppTypeDto.plugin:\n return AppType.plugin;\n case AppTypeDto.tool:\n return AppType.tool;\n case AppTypeDto.swap:\n return AppType.swap;\n }\n }\n\n private mapApplicationDtoToApplication(\n apps: Array<ApplicationDto>,\n ): EitherAsync<Error, Array<Application>> {\n return EitherAsync(() =>\n Promise.resolve(apps.map((app) => this.mapApplicationDto(app))),\n );\n }\n\n private mapNullableApplicationDtoToApplication(\n apps: Array<ApplicationDto | null>,\n ): EitherAsync<Error, Array<Application | null>> {\n return EitherAsync(() =>\n Promise.resolve(\n apps.map((app) => {\n if (app === null) {\n return null;\n }\n return this.mapApplicationDto(app);\n }),\n ),\n );\n }\n\n private mapApplicationDto(app: ApplicationDto): Application {\n if (\n typeof app !== \"object\" ||\n typeof app.versionId !== \"number\" ||\n typeof app.versionName !== \"string\" ||\n (app.versionDisplayName !== null &&\n typeof app.versionDisplayName !== \"string\") ||\n typeof app.version !== \"string\" ||\n (app.currencyId !== null && typeof app.currencyId !== \"string\") ||\n (app.description !== null && typeof app.description !== \"string\") ||\n (app.applicationType !== null &&\n typeof app.applicationType !== \"string\") ||\n typeof app.dateModified !== \"string\" ||\n (app.icon !== null && typeof app.icon !== \"string\") ||\n (app.authorName !== null && typeof app.authorName !== \"string\") ||\n (app.supportURL !== null && typeof app.supportURL !== \"string\") ||\n (app.contactURL !== null && typeof app.contactURL !== \"string\") ||\n (app.sourceURL !== null && typeof app.sourceURL !== \"string\") ||\n (app.compatibleWallets !== null &&\n typeof app.compatibleWallets !== \"string\") ||\n typeof app.hash !== \"string\" ||\n typeof app.perso !== \"string\" ||\n typeof app.firmware !== \"string\" ||\n typeof app.firmwareKey !== \"string\" ||\n typeof app.delete !== \"string\" ||\n typeof app.deleteKey !== \"string\" ||\n (app.bytes !== null && typeof app.bytes !== \"number\") ||\n (app.warning !== null && typeof app.warning !== \"string\") ||\n typeof app.isDevTools !== \"boolean\" ||\n (app.category !== null && typeof app.category !== \"number\") ||\n (app.parent !== null && typeof app.parent !== \"number\") ||\n (app.parentName !== null && typeof app.parentName !== \"string\")\n ) {\n throw new Error(`Incomplete application: ${JSON.stringify(app)}`);\n }\n const {\n applicationType,\n hash,\n perso,\n firmware,\n firmwareKey,\n delete: del,\n deleteKey,\n ...rest\n } = app;\n const ret: Application = {\n ...rest,\n hash: hash!,\n perso: perso!,\n firmware: firmware!,\n firmwareKey: firmwareKey!,\n delete: del!,\n deleteKey: deleteKey!,\n applicationType: this.mapAppTypeDtoToAppType(applicationType),\n };\n return ret;\n }\n\n private mapMcuDtoToMcu(\n mcus: Array<McuVersionDto>,\n ): EitherAsync<Error, Array<McuFirmware>> {\n return EitherAsync(() =>\n Promise.resolve(\n mcus.map((mcu) => {\n if (\n typeof mcu !== \"object\" ||\n typeof mcu.id !== \"number\" ||\n typeof mcu.name !== \"string\"\n ) {\n throw new Error(`Incomplete MCU version: ${JSON.stringify(mcu)}`);\n }\n const ret: McuFirmware = {\n id: mcu.id,\n name: mcu.name,\n };\n return ret;\n }),\n ),\n );\n }\n\n private mapDeviceVersionDto(\n deviceVersion: DeviceVersionDto,\n ): EitherAsync<Error, DeviceVersion> {\n return EitherAsync(() => {\n if (\n typeof deviceVersion !== \"object\" ||\n typeof deviceVersion.id !== \"number\"\n ) {\n throw new Error(\n `Incomplete device version: ${JSON.stringify(deviceVersion)}`,\n );\n }\n const ret: DeviceVersion = {\n id: deviceVersion.id,\n };\n return Promise.resolve(ret);\n });\n }\n\n private mapFinalFirmwareDto(\n finalFirmware: FirmwareFinalVersionDto,\n ): EitherAsync<Error, FinalFirmware> {\n return EitherAsync(() => {\n if (\n typeof finalFirmware !== \"object\" ||\n typeof finalFirmware.id !== \"number\" ||\n typeof finalFirmware.version !== \"string\" ||\n typeof finalFirmware.perso !== \"string\" ||\n (finalFirmware.firmware !== null &&\n typeof finalFirmware.firmware !== \"string\") ||\n (finalFirmware.firmware_key !== null &&\n typeof finalFirmware.firmware_key !== \"string\") ||\n (finalFirmware.hash !== null &&\n typeof finalFirmware.hash !== \"string\") ||\n (finalFirmware.bytes !== null &&\n typeof finalFirmware.bytes !== \"number\") ||\n !Array.isArray(finalFirmware.mcu_versions)\n ) {\n throw new Error(\n `Incomplete final firmware: ${JSON.stringify(finalFirmware)}`,\n );\n }\n const ret: FinalFirmware = {\n id: finalFirmware.id,\n version: finalFirmware.version,\n perso: finalFirmware.perso,\n firmware: finalFirmware.firmware,\n firmwareKey: finalFirmware.firmware_key,\n hash: finalFirmware.hash,\n bytes: finalFirmware.bytes,\n mcuVersions: finalFirmware.mcu_versions,\n };\n return Promise.resolve(ret);\n });\n }\n\n private mapLatestFirmwareDto(\n latestFirmware: LatestFirmwareOsuVersionResponseDto,\n ): EitherAsync<Error, OsuFirmware> {\n return EitherAsync<Error, FirmwareOsuVersionDto>(() => {\n if (\n latestFirmware.result !== \"success\" ||\n !latestFirmware.se_firmware_osu_version\n ) {\n throw new Error(\n `Latest firmware could not be retrieved: ${latestFirmware.result}`,\n );\n }\n const osuDto = latestFirmware.se_firmware_osu_version;\n return Promise.resolve(osuDto);\n }).chain((osuDto) => this.mapOsuFirmwareDto(osuDto));\n }\n\n private mapOsuFirmwareDto(\n osuDto: FirmwareOsuVersionDto,\n ): EitherAsync<Error, OsuFirmware> {\n return EitherAsync(() => {\n if (\n typeof osuDto !== \"object\" ||\n typeof osuDto.id !== \"number\" ||\n typeof osuDto.perso !== \"string\" ||\n typeof osuDto.firmware !== \"string\" ||\n typeof osuDto.firmware_key !== \"string\" ||\n (osuDto.hash !== null && typeof osuDto.hash !== \"string\") ||\n typeof osuDto.next_se_firmware_final_version !== \"number\"\n ) {\n throw new Error(\n `Incomplete latest firmware: ${JSON.stringify(osuDto)}`,\n );\n }\n const ret: OsuFirmware = {\n id: osuDto.id,\n perso: osuDto.perso,\n firmware: osuDto.firmware,\n firmwareKey: osuDto.firmware_key,\n hash: osuDto.hash,\n nextFinalFirmware: osuDto.next_se_firmware_final_version,\n };\n return Promise.resolve(ret);\n });\n }\n\n private mapLanguagesDtoToLanguages(\n languages: Array<LanguagePackageVersionDto>,\n ): EitherAsync<Error, Array<LanguagePackage>> {\n return EitherAsync(() =>\n Promise.resolve(\n languages.map((language) => this.mapLanguageDto(language)),\n ),\n );\n }\n\n private mapLanguageDto(language: LanguagePackageVersionDto): LanguagePackage {\n if (\n typeof language !== \"object\" ||\n typeof language.language !== \"string\" ||\n typeof language.languagePackageVersionId !== \"number\" ||\n typeof language.version !== \"string\" ||\n typeof language.language_package_id !== \"number\" ||\n typeof language.apdu_install_url !== \"string\" ||\n typeof language.apdu_uninstall_url !== \"string\" ||\n typeof language.bytes !== \"number\" ||\n typeof language.date_creation !== \"string\" ||\n typeof language.date_last_modified !== \"string\"\n ) {\n throw new Error(\n `Incomplete language version: ${JSON.stringify(language)}`,\n );\n }\n const ret: LanguagePackage = {\n language: language.language,\n languagePackageVersionId: language.languagePackageVersionId,\n version: language.version,\n languagePackageId: language.language_package_id,\n apduInstallUrl: language.apdu_install_url,\n apduUninstallUrl: language.apdu_uninstall_url,\n bytes: language.bytes,\n dateCreation: language.date_creation,\n dateLastModified: language.date_last_modified,\n };\n return ret;\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { EitherAsync, Just, Maybe, Nothing } from \"purify-ts\";\n\nimport { type DmkConfig } from \"@api/DmkConfig\";\nimport { DmkNetworkClient } from \"@api/network/DmkNetworkClient\";\nimport { DmkNetworkClientError } from \"@api/network/DmkNetworkClientError\";\nimport { managerApiTypes } from \"@internal/manager-api/di/managerApiTypes\";\nimport {\n type Application,\n AppType,\n} from \"@internal/manager-api/model/Application\";\nimport { DEFAULT_PROVIDER } from \"@internal/manager-api/model/Const\";\nimport { DEFAULT_FIRMWARE_DISTRIBUTION_SALT } from \"@internal/manager-api/model/Const\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport { HttpFetchApiError } from \"@internal/manager-api/model/Errors\";\nimport type {\n FinalFirmware,\n McuFirmware,\n OsuFirmware,\n} from \"@internal/manager-api/model/Firmware\";\nimport { type LanguagePackage } from \"@internal/manager-api/model/Language\";\nimport {\n type GetAppByHashParams,\n type GetAppListParams,\n type GetDeviceVersionParams,\n type GetFirmwareVersionParams,\n type GetLanguagePackagesParams,\n type GetLatestFirmwareVersionParams,\n} from \"@internal/manager-api/model/Params\";\n\nimport { ManagerApiDataSource } from \"./ManagerApiDataSource\";\nimport {\n ApplicationDto,\n AppTypeDto,\n DeviceVersionDto,\n FirmwareFinalVersionDto,\n FirmwareOsuVersionDto,\n LanguagePackageVersionDto,\n LatestFirmwareOsuVersionResponseDto,\n McuVersionDto,\n} from \"./ManagerApiDto\";\n\nconst toHttpFetchApiError = (error: unknown): HttpFetchApiError => {\n // The network client wraps fetch errors in DmkNetworkClientError. Unwrap the\n // original cause when available so consumers (and tests) keep seeing the\n // underlying error.\n if (error instanceof DmkNetworkClientError && error.cause !== undefined) {\n return new HttpFetchApiError(error.cause);\n }\n return new HttpFetchApiError(error);\n};\n\n@injectable()\nexport class HttpManagerApiDataSource implements ManagerApiDataSource {\n private readonly http: DmkNetworkClient;\n private _provider: number = DEFAULT_PROVIDER;\n private _firmwareDistributionSalt: string =\n DEFAULT_FIRMWARE_DISTRIBUTION_SALT;\n\n constructor(\n @inject(managerApiTypes.DmkConfig)\n { managerApiUrl, provider, firmwareDistributionSalt }: DmkConfig,\n ) {\n this.http = new DmkNetworkClient({ baseUrl: managerApiUrl });\n this._provider = provider;\n this._firmwareDistributionSalt = firmwareDistributionSalt;\n }\n\n setProvider(provider: number): void {\n if (this._provider === provider || provider < 1) {\n return;\n }\n this._provider = provider;\n }\n\n getProvider(): number {\n return this._provider;\n }\n\n getAppList(\n params: GetAppListParams,\n ): EitherAsync<HttpFetchApiError, Array<Application>> {\n const { targetId, firmwareVersionName } = params;\n return EitherAsync(() =>\n this.http.get(\"/v2/apps/by-target\", {\n params: {\n target_id: targetId,\n provider: this._provider,\n firmware_version_name: firmwareVersionName,\n },\n }),\n )\n .chain((apps) =>\n this.mapApplicationDtoToApplication(apps as Array<ApplicationDto>),\n )\n .mapLeft(toHttpFetchApiError);\n }\n\n getMcuList(): EitherAsync<HttpFetchApiError, Array<McuFirmware>> {\n return EitherAsync(() => this.http.get(\"/mcu_versions\"))\n .chain((mcus) => this.mapMcuDtoToMcu(mcus as Array<McuVersionDto>))\n .mapLeft(toHttpFetchApiError);\n }\n\n getDeviceVersion(\n params: GetDeviceVersionParams,\n ): EitherAsync<HttpFetchApiError, DeviceVersion> {\n const { targetId } = params;\n return EitherAsync(() =>\n this.http.get(\"/get_device_version\", {\n params: { target_id: targetId, provider: this._provider },\n }),\n )\n .chain((deviceVersion) =>\n this.mapDeviceVersionDto(deviceVersion as DeviceVersionDto),\n )\n .mapLeft(toHttpFetchApiError);\n }\n\n getFirmwareVersion(\n params: GetFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, FinalFirmware> {\n const { deviceId, version } = params;\n return EitherAsync(() =>\n this.http.get(\"/get_firmware_version\", {\n params: {\n device_version: deviceId,\n version_name: version,\n provider: this._provider,\n },\n }),\n )\n .chain((finalFirmware) =>\n this.mapFinalFirmwareDto(finalFirmware as FirmwareFinalVersionDto),\n )\n .mapLeft(toHttpFetchApiError);\n }\n\n getFirmwareVersionById(\n finalFirmwareId: number,\n ): EitherAsync<HttpFetchApiError, FinalFirmware> {\n return EitherAsync(() =>\n this.http.get(`/firmware_final_versions/${finalFirmwareId}`),\n )\n .chain((finalFirmware) =>\n this.mapFinalFirmwareDto(finalFirmware as FirmwareFinalVersionDto),\n )\n .mapLeft(toHttpFetchApiError);\n }\n\n getOsuFirmwareVersion(\n params: GetFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, OsuFirmware> {\n const { deviceId, version } = params;\n return EitherAsync(() =>\n this.http.get(\"/get_osu_version\", {\n params: {\n device_version: deviceId,\n version_name: version,\n provider: this._provider,\n },\n }),\n )\n .chain((osuFirmware) =>\n this.mapOsuFirmwareDto(osuFirmware as FirmwareOsuVersionDto),\n )\n .mapLeft(toHttpFetchApiError);\n }\n\n getLatestFirmwareVersion(\n params: GetLatestFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, Maybe<OsuFirmware>> {\n const livecommonversion = \"34.27.0\"; // Legacy parameter that should just be a too old\n const { currentFinalFirmwareId, deviceId } = params;\n return EitherAsync(() =>\n this.http.get(\"/get_latest_firmware\", {\n params: {\n current_se_firmware_final_version: currentFinalFirmwareId,\n device_version: deviceId,\n provider: this._provider,\n salt: this._firmwareDistributionSalt,\n livecommonversion,\n },\n }),\n )\n .chain((latestFirmware) =>\n this.mapLatestFirmwareDto(\n latestFirmware as LatestFirmwareOsuVersionResponseDto,\n ),\n )\n .mapLeft(toHttpFetchApiError);\n }\n\n getAppsByHash(\n params: GetAppByHashParams,\n ): EitherAsync<HttpFetchApiError, Array<Application | null>> {\n const { hashes } = params;\n return EitherAsync(() => this.http.post(\"/v2/apps/hash\", hashes))\n .chain((apps) =>\n this.mapNullableApplicationDtoToApplication(\n apps as Array<ApplicationDto | null>,\n ),\n )\n .mapLeft(toHttpFetchApiError);\n }\n\n getLanguagePackages(\n params: GetLanguagePackagesParams,\n ): EitherAsync<HttpFetchApiError, Array<LanguagePackage>> {\n const { deviceId, currentFinalFirmwareId } = params;\n return EitherAsync(() =>\n this.http.get(\"/language-packages\", {\n params: {\n device_version: deviceId,\n current_se_firmware_final_version: currentFinalFirmwareId,\n },\n }),\n )\n .chain((apps) =>\n this.mapLanguagesDtoToLanguages(\n apps as Array<LanguagePackageVersionDto>,\n ),\n )\n .mapLeft(toHttpFetchApiError);\n }\n\n private mapAppTypeDtoToAppType(appType: AppTypeDto | null): AppType | null {\n if (appType === null) {\n return null;\n }\n switch (appType) {\n case AppTypeDto.currency:\n return AppType.currency;\n case AppTypeDto.plugin:\n return AppType.plugin;\n case AppTypeDto.tool:\n return AppType.tool;\n case AppTypeDto.swap:\n return AppType.swap;\n }\n }\n\n private mapApplicationDtoToApplication(\n apps: Array<ApplicationDto>,\n ): EitherAsync<Error, Array<Application>> {\n return EitherAsync(() =>\n Promise.resolve(apps.map((app) => this.mapApplicationDto(app))),\n );\n }\n\n private mapNullableApplicationDtoToApplication(\n apps: Array<ApplicationDto | null>,\n ): EitherAsync<Error, Array<Application | null>> {\n return EitherAsync(() =>\n Promise.resolve(\n apps.map((app) => {\n if (app === null) {\n return null;\n }\n return this.mapApplicationDto(app);\n }),\n ),\n );\n }\n\n private mapApplicationDto(app: ApplicationDto): Application {\n if (\n typeof app !== \"object\" ||\n typeof app.versionId !== \"number\" ||\n typeof app.versionName !== \"string\" ||\n (app.versionDisplayName !== null &&\n typeof app.versionDisplayName !== \"string\") ||\n typeof app.version !== \"string\" ||\n (app.currencyId !== null && typeof app.currencyId !== \"string\") ||\n (app.description !== null && typeof app.description !== \"string\") ||\n (app.applicationType !== null &&\n typeof app.applicationType !== \"string\") ||\n typeof app.dateModified !== \"string\" ||\n (app.icon !== null && typeof app.icon !== \"string\") ||\n (app.authorName !== null && typeof app.authorName !== \"string\") ||\n (app.supportURL !== null && typeof app.supportURL !== \"string\") ||\n (app.contactURL !== null && typeof app.contactURL !== \"string\") ||\n (app.sourceURL !== null && typeof app.sourceURL !== \"string\") ||\n (app.compatibleWallets !== null &&\n typeof app.compatibleWallets !== \"string\") ||\n typeof app.hash !== \"string\" ||\n typeof app.perso !== \"string\" ||\n typeof app.firmware !== \"string\" ||\n typeof app.firmwareKey !== \"string\" ||\n typeof app.delete !== \"string\" ||\n typeof app.deleteKey !== \"string\" ||\n (app.bytes !== null && typeof app.bytes !== \"number\") ||\n (app.warning !== null && typeof app.warning !== \"string\") ||\n typeof app.isDevTools !== \"boolean\" ||\n (app.category !== null && typeof app.category !== \"number\") ||\n (app.parent !== null && typeof app.parent !== \"number\") ||\n (app.parentName !== null && typeof app.parentName !== \"string\")\n ) {\n throw new Error(`Incomplete application: ${JSON.stringify(app)}`);\n }\n const {\n applicationType,\n hash,\n perso,\n firmware,\n firmwareKey,\n delete: del,\n deleteKey,\n ...rest\n } = app;\n const ret: Application = {\n ...rest,\n hash: hash!,\n perso: perso!,\n firmware: firmware!,\n firmwareKey: firmwareKey!,\n delete: del!,\n deleteKey: deleteKey!,\n applicationType: this.mapAppTypeDtoToAppType(applicationType),\n };\n return ret;\n }\n\n private mapMcuDtoToMcu(\n mcus: Array<McuVersionDto>,\n ): EitherAsync<Error, Array<McuFirmware>> {\n return EitherAsync(() =>\n Promise.resolve(\n mcus.map((mcu) => {\n if (\n typeof mcu !== \"object\" ||\n typeof mcu.id !== \"number\" ||\n typeof mcu.name !== \"string\" ||\n typeof mcu.from_bootloader_version !== \"string\"\n ) {\n throw new Error(`Incomplete MCU version: ${JSON.stringify(mcu)}`);\n }\n const ret: McuFirmware = {\n id: mcu.id,\n name: mcu.name,\n fromBootloaderVersion: mcu.from_bootloader_version,\n providers: mcu.providers,\n };\n return ret;\n }),\n ),\n );\n }\n\n private mapDeviceVersionDto(\n deviceVersion: DeviceVersionDto,\n ): EitherAsync<Error, DeviceVersion> {\n return EitherAsync(() => {\n if (\n typeof deviceVersion !== \"object\" ||\n typeof deviceVersion.id !== \"number\"\n ) {\n throw new Error(\n `Incomplete device version: ${JSON.stringify(deviceVersion)}`,\n );\n }\n const ret: DeviceVersion = {\n id: deviceVersion.id,\n };\n return Promise.resolve(ret);\n });\n }\n\n private mapFinalFirmwareDto(\n finalFirmware: FirmwareFinalVersionDto,\n ): EitherAsync<Error, FinalFirmware> {\n return EitherAsync(() => {\n if (\n typeof finalFirmware !== \"object\" ||\n typeof finalFirmware.id !== \"number\" ||\n typeof finalFirmware.version !== \"string\" ||\n typeof finalFirmware.perso !== \"string\" ||\n (finalFirmware.firmware !== null &&\n typeof finalFirmware.firmware !== \"string\") ||\n (finalFirmware.firmware_key !== null &&\n typeof finalFirmware.firmware_key !== \"string\") ||\n (finalFirmware.hash !== null &&\n typeof finalFirmware.hash !== \"string\") ||\n (finalFirmware.bytes !== null &&\n typeof finalFirmware.bytes !== \"number\") ||\n !Array.isArray(finalFirmware.mcu_versions)\n ) {\n throw new Error(\n `Incomplete final firmware: ${JSON.stringify(finalFirmware)}`,\n );\n }\n const ret: FinalFirmware = {\n id: finalFirmware.id,\n version: finalFirmware.version,\n perso: finalFirmware.perso,\n firmware: finalFirmware.firmware,\n firmwareKey: finalFirmware.firmware_key,\n hash: finalFirmware.hash,\n bytes: finalFirmware.bytes,\n mcuVersions: finalFirmware.mcu_versions,\n };\n return Promise.resolve(ret);\n });\n }\n\n private mapLatestFirmwareDto(\n latestFirmware: LatestFirmwareOsuVersionResponseDto,\n ): EitherAsync<Error, Maybe<OsuFirmware>> {\n return EitherAsync<Error, FirmwareOsuVersionDto | null>(() => {\n /**\n * This is how we know that there is no update available.\n * See the {@link https://github.com/LedgerHQ/ledger-live/blob/develop/libs/device-core/src/managerApi/repositories/HttpManagerApiRepository.ts#L59-L61 | ledger-live implementation}.\n */\n if (latestFirmware.result === \"null\") {\n return Promise.resolve(null);\n }\n if (\n latestFirmware.result !== \"success\" ||\n !latestFirmware.se_firmware_osu_version\n ) {\n throw new Error(\n `Latest firmware could not be retrieved: ${latestFirmware.result}`,\n );\n }\n const osuDto = latestFirmware.se_firmware_osu_version;\n return Promise.resolve(osuDto);\n }).chain((osuDto) => {\n if (null === osuDto) {\n return EitherAsync(() => Promise.resolve(Nothing));\n }\n return this.mapOsuFirmwareDto(osuDto).map((osuFirmware) =>\n Just(osuFirmware),\n );\n });\n }\n\n private mapOsuFirmwareDto(\n osuDto: FirmwareOsuVersionDto,\n ): EitherAsync<Error, OsuFirmware> {\n return EitherAsync(() => {\n if (\n typeof osuDto !== \"object\" ||\n typeof osuDto.id !== \"number\" ||\n (osuDto.notes !== null && typeof osuDto.notes !== \"string\") ||\n typeof osuDto.perso !== \"string\" ||\n typeof osuDto.firmware !== \"string\" ||\n typeof osuDto.firmware_key !== \"string\" ||\n (osuDto.hash !== null && typeof osuDto.hash !== \"string\") ||\n typeof osuDto.next_se_firmware_final_version !== \"number\"\n ) {\n throw new Error(\n `Incomplete latest firmware: ${JSON.stringify(osuDto)}`,\n );\n }\n const ret: OsuFirmware = {\n id: osuDto.id,\n notes: osuDto.notes,\n perso: osuDto.perso,\n firmware: osuDto.firmware,\n firmwareKey: osuDto.firmware_key,\n hash: osuDto.hash,\n nextFinalFirmware: osuDto.next_se_firmware_final_version,\n };\n return Promise.resolve(ret);\n });\n }\n\n private mapLanguagesDtoToLanguages(\n languages: Array<LanguagePackageVersionDto>,\n ): EitherAsync<Error, Array<LanguagePackage>> {\n return EitherAsync(() =>\n Promise.resolve(\n languages.map((language) => this.mapLanguageDto(language)),\n ),\n );\n }\n\n private mapLanguageDto(language: LanguagePackageVersionDto): LanguagePackage {\n if (\n typeof language !== \"object\" ||\n typeof language.language !== \"string\" ||\n typeof language.languagePackageVersionId !== \"number\" ||\n typeof language.version !== \"string\" ||\n typeof language.language_package_id !== \"number\" ||\n typeof language.apdu_install_url !== \"string\" ||\n typeof language.apdu_uninstall_url !== \"string\" ||\n typeof language.bytes !== \"number\" ||\n typeof language.date_creation !== \"string\" ||\n typeof language.date_last_modified !== \"string\"\n ) {\n throw new Error(\n `Incomplete language version: ${JSON.stringify(language)}`,\n );\n }\n const ret: LanguagePackage = {\n language: language.language,\n languagePackageVersionId: language.languagePackageVersionId,\n version: language.version,\n languagePackageId: language.language_package_id,\n apduInstallUrl: language.apdu_install_url,\n apduUninstallUrl: language.apdu_uninstall_url,\n bytes: language.bytes,\n dateCreation: language.date_creation,\n dateLastModified: language.date_last_modified,\n };\n return ret;\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBACnCC,EAAkD,qBAGlDC,EAAiC,yCACjCC,EAAsC,8CACtCC,EAAgC,oDAChCC,EAGO,mDACPC,EAAiC,6CACjCA,EAAmD,6CAEnDC,EAAkC,8CAiBlCC,EASO,2BAEP,MAAMC,EAAuBC,GAIvBA,aAAiB,yBAAyBA,EAAM,QAAU,OACrD,IAAI,oBAAkBA,EAAM,KAAK,EAEnC,IAAI,oBAAkBA,CAAK,EAI7B,IAAMC,EAAN,KAA+D,CACnD,KACT,UAAoB,mBACpB,0BACN,qCAEF,YAEE,CAAE,cAAAC,EAAe,SAAAC,EAAU,yBAAAC,CAAyB,EACpD,CACA,KAAK,KAAO,IAAI,mBAAiB,CAAE,QAASF,CAAc,CAAC,EAC3D,KAAK,UAAYC,EACjB,KAAK,0BAA4BC,CACnC,CAEA,YAAYD,EAAwB,CAC9B,KAAK,YAAcA,GAAYA,EAAW,IAG9C,KAAK,UAAYA,EACnB,CAEA,aAAsB,CACpB,OAAO,KAAK,SACd,CAEA,WACEE,EACoD,CACpD,KAAM,CAAE,SAAAC,EAAU,oBAAAC,CAAoB,EAAIF,EAC1C,SAAO,eAAY,IACjB,KAAK,KAAK,IAAI,qBAAsB,CAClC,OAAQ,CACN,UAAWC,EACX,SAAU,KAAK,UACf,sBAAuBC,CACzB,CACF,CAAC,CACH,EACG,MAAOC,GACN,KAAK,+BAA+BA,CAA6B,CACnE,EACC,QAAQT,CAAmB,CAChC,CAEA,YAAiE,CAC/D,SAAO,eAAY,IAAM,KAAK,KAAK,IAAI,eAAe,CAAC,EACpD,MAAOU,GAAS,KAAK,eAAeA,CAA4B,CAAC,EACjE,QAAQV,CAAmB,CAChC,CAEA,iBACEM,EAC+C,CAC/C,KAAM,CAAE,SAAAC,CAAS,EAAID,EACrB,SAAO,eAAY,IACjB,KAAK,KAAK,IAAI,sBAAuB,CACnC,OAAQ,CAAE,UAAWC,EAAU,SAAU,KAAK,SAAU,CAC1D,CAAC,CACH,EACG,MAAOI,GACN,KAAK,oBAAoBA,CAAiC,CAC5D,EACC,QAAQX,CAAmB,CAChC,CAEA,mBACEM,EAC+C,CAC/C,KAAM,CAAE,SAAAM,EAAU,QAAAC,CAAQ,EAAIP,EAC9B,SAAO,eAAY,IACjB,KAAK,KAAK,IAAI,wBAAyB,CACrC,OAAQ,CACN,eAAgBM,EAChB,aAAcC,EACd,SAAU,KAAK,SACjB,CACF,CAAC,CACH,EACG,MAAOC,GACN,KAAK,oBAAoBA,CAAwC,CACnE,EACC,QAAQd,CAAmB,CAChC,CAEA,uBACEe,EAC+C,CAC/C,SAAO,eAAY,IACjB,KAAK,KAAK,IAAI,4BAA4BA,CAAe,EAAE,CAC7D,EACG,MAAOD,GACN,KAAK,oBAAoBA,CAAwC,CACnE,EACC,QAAQd,CAAmB,CAChC,CAEA,sBACEM,EAC6C,CAC7C,KAAM,CAAE,SAAAM,EAAU,QAAAC,CAAQ,EAAIP,EAC9B,SAAO,eAAY,IACjB,KAAK,KAAK,IAAI,mBAAoB,CAChC,OAAQ,CACN,eAAgBM,EAChB,aAAcC,EACd,SAAU,KAAK,SACjB,CACF,CAAC,CACH,EACG,MAAOG,GACN,KAAK,kBAAkBA,CAAoC,CAC7D,EACC,QAAQhB,CAAmB,CAChC,CAEA,yBACEM,EACoD,CACpD,MAAMW,EAAoB,UACpB,CAAE,uBAAAC,EAAwB,SAAAN,CAAS,EAAIN,EAC7C,SAAO,eAAY,IACjB,KAAK,KAAK,IAAI,uBAAwB,CACpC,OAAQ,CACN,kCAAmCY,EACnC,eAAgBN,EAChB,SAAU,KAAK,UACf,KAAM,KAAK,0BACX,kBAAAK,CACF,CACF,CAAC,CACH,EACG,MAAOE,GACN,KAAK,qBACHA,CACF,CACF,EACC,QAAQnB,CAAmB,CAChC,CAEA,cACEM,EAC2D,CAC3D,KAAM,CAAE,OAAAc,CAAO,EAAId,EACnB,SAAO,eAAY,IAAM,KAAK,KAAK,KAAK,gBAAiBc,CAAM,CAAC,EAC7D,MAAOX,GACN,KAAK,uCACHA,CACF,CACF,EACC,QAAQT,CAAmB,CAChC,CAEA,oBACEM,EACwD,CACxD,KAAM,CAAE,SAAAM,EAAU,uBAAAM,CAAuB,EAAIZ,EAC7C,SAAO,eAAY,IACjB,KAAK,KAAK,IAAI,qBAAsB,CAClC,OAAQ,CACN,eAAgBM,EAChB,kCAAmCM,CACrC,CACF,CAAC,CACH,EACG,MAAOT,GACN,KAAK,2BACHA,CACF,CACF,EACC,QAAQT,CAAmB,CAChC,CAEQ,uBAAuBqB,EAA4C,CACzE,GAAIA,IAAY,KACd,OAAO,KAET,OAAQA,EAAS,CACf,KAAK,aAAW,SACd,OAAO,UAAQ,SACjB,KAAK,aAAW,OACd,OAAO,UAAQ,OACjB,KAAK,aAAW,KACd,OAAO,UAAQ,KACjB,KAAK,aAAW,KACd,OAAO,UAAQ,IACnB,CACF,CAEQ,+BACNZ,EACwC,CACxC,SAAO,eAAY,IACjB,QAAQ,QAAQA,EAAK,IAAKa,GAAQ,KAAK,kBAAkBA,CAAG,CAAC,CAAC,CAChE,CACF,CAEQ,uCACNb,EAC+C,CAC/C,SAAO,eAAY,IACjB,QAAQ,QACNA,EAAK,IAAKa,GACJA,IAAQ,KACH,KAEF,KAAK,kBAAkBA,CAAG,CAClC,CACH,CACF,CACF,CAEQ,kBAAkBA,EAAkC,CAC1D,GACE,OAAOA,GAAQ,UACf,OAAOA,EAAI,WAAc,UACzB,OAAOA,EAAI,aAAgB,UAC1BA,EAAI,qBAAuB,MAC1B,OAAOA,EAAI,oBAAuB,UACpC,OAAOA,EAAI,SAAY,UACtBA,EAAI,aAAe,MAAQ,OAAOA,EAAI,YAAe,UACrDA,EAAI,cAAgB,MAAQ,OAAOA,EAAI,aAAgB,UACvDA,EAAI,kBAAoB,MACvB,OAAOA,EAAI,iBAAoB,UACjC,OAAOA,EAAI,cAAiB,UAC3BA,EAAI,OAAS,MAAQ,OAAOA,EAAI,MAAS,UACzCA,EAAI,aAAe,MAAQ,OAAOA,EAAI,YAAe,UACrDA,EAAI,aAAe,MAAQ,OAAOA,EAAI,YAAe,UACrDA,EAAI,aAAe,MAAQ,OAAOA,EAAI,YAAe,UACrDA,EAAI,YAAc,MAAQ,OAAOA,EAAI,WAAc,UACnDA,EAAI,oBAAsB,MACzB,OAAOA,EAAI,mBAAsB,UACnC,OAAOA,EAAI,MAAS,UACpB,OAAOA,EAAI,OAAU,UACrB,OAAOA,EAAI,UAAa,UACxB,OAAOA,EAAI,aAAgB,UAC3B,OAAOA,EAAI,QAAW,UACtB,OAAOA,EAAI,WAAc,UACxBA,EAAI,QAAU,MAAQ,OAAOA,EAAI,OAAU,UAC3CA,EAAI,UAAY,MAAQ,OAAOA,EAAI,SAAY,UAChD,OAAOA,EAAI,YAAe,WACzBA,EAAI,WAAa,MAAQ,OAAOA,EAAI,UAAa,UACjDA,EAAI,SAAW,MAAQ,OAAOA,EAAI,QAAW,UAC7CA,EAAI,aAAe,MAAQ,OAAOA,EAAI,YAAe,SAEtD,MAAM,IAAI,MAAM,2BAA2B,KAAK,UAAUA,CAAG,CAAC,EAAE,EAElE,KAAM,CACJ,gBAAAC,EACA,KAAAC,EACA,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,OAAQC,EACR,UAAAC,EACA,GAAGC,CACL,EAAIR,EAWJ,MAVyB,CACvB,GAAGQ,EACH,KAAMN,EACN,MAAOC,EACP,SAAUC,EACV,YAAaC,EACb,OAAQC,EACR,UAAWC,EACX,gBAAiB,KAAK,uBAAuBN,CAAe,CAC9D,CAEF,CAEQ,eACNb,EACwC,CACxC,SAAO,eAAY,IACjB,QAAQ,QACNA,EAAK,IAAKqB,GAAQ,CAChB,GACE,OAAOA,GAAQ,UACf,OAAOA,EAAI,IAAO,UAClB,OAAOA,EAAI,MAAS,UACpB,OAAOA,EAAI,yBAA4B,SAEvC,MAAM,IAAI,MAAM,2BAA2B,KAAK,UAAUA,CAAG,CAAC,EAAE,EAQlE,MANyB,CACvB,GAAIA,EAAI,GACR,KAAMA,EAAI,KACV,sBAAuBA,EAAI,wBAC3B,UAAWA,EAAI,SACjB,CAEF,CAAC,CACH,CACF,CACF,CAEQ,oBACNpB,EACmC,CACnC,SAAO,eAAY,IAAM,CACvB,GACE,OAAOA,GAAkB,UACzB,OAAOA,EAAc,IAAO,SAE5B,MAAM,IAAI,MACR,8BAA8B,KAAK,UAAUA,CAAa,CAAC,EAC7D,EAEF,MAAMqB,EAAqB,CACzB,GAAIrB,EAAc,EACpB,EACA,OAAO,QAAQ,QAAQqB,CAAG,CAC5B,CAAC,CACH,CAEQ,oBACNlB,EACmC,CACnC,SAAO,eAAY,IAAM,CACvB,GACE,OAAOA,GAAkB,UACzB,OAAOA,EAAc,IAAO,UAC5B,OAAOA,EAAc,SAAY,UACjC,OAAOA,EAAc,OAAU,UAC9BA,EAAc,WAAa,MAC1B,OAAOA,EAAc,UAAa,UACnCA,EAAc,eAAiB,MAC9B,OAAOA,EAAc,cAAiB,UACvCA,EAAc,OAAS,MACtB,OAAOA,EAAc,MAAS,UAC/BA,EAAc,QAAU,MACvB,OAAOA,EAAc,OAAU,UACjC,CAAC,MAAM,QAAQA,EAAc,YAAY,EAEzC,MAAM,IAAI,MACR,8BAA8B,KAAK,UAAUA,CAAa,CAAC,EAC7D,EAEF,MAAMkB,EAAqB,CACzB,GAAIlB,EAAc,GAClB,QAASA,EAAc,QACvB,MAAOA,EAAc,MACrB,SAAUA,EAAc,SACxB,YAAaA,EAAc,aAC3B,KAAMA,EAAc,KACpB,MAAOA,EAAc,MACrB,YAAaA,EAAc,YAC7B,EACA,OAAO,QAAQ,QAAQkB,CAAG,CAC5B,CAAC,CACH,CAEQ,qBACNb,EACwC,CACxC,SAAO,eAAiD,IAAM,CAK5D,GAAIA,EAAe,SAAW,OAC5B,OAAO,QAAQ,QAAQ,IAAI,EAE7B,GACEA,EAAe,SAAW,WAC1B,CAACA,EAAe,wBAEhB,MAAM,IAAI,MACR,2CAA2CA,EAAe,MAAM,EAClE,EAEF,MAAMc,EAASd,EAAe,wBAC9B,OAAO,QAAQ,QAAQc,CAAM,CAC/B,CAAC,EAAE,MAAOA,GACKA,IAAT,QACK,eAAY,IAAM,QAAQ,QAAQ,SAAO,CAAC,EAE5C,KAAK,kBAAkBA,CAAM,EAAE,IAAKjB,MACzC,QAAKA,CAAW,CAClB,CACD,CACH,CAEQ,kBACNiB,EACiC,CACjC,SAAO,eAAY,IAAM,CACvB,GACE,OAAOA,GAAW,UAClB,OAAOA,EAAO,IAAO,UACpBA,EAAO,QAAU,MAAQ,OAAOA,EAAO,OAAU,UAClD,OAAOA,EAAO,OAAU,UACxB,OAAOA,EAAO,UAAa,UAC3B,OAAOA,EAAO,cAAiB,UAC9BA,EAAO,OAAS,MAAQ,OAAOA,EAAO,MAAS,UAChD,OAAOA,EAAO,gCAAmC,SAEjD,MAAM,IAAI,MACR,+BAA+B,KAAK,UAAUA,CAAM,CAAC,EACvD,EAEF,MAAMD,EAAmB,CACvB,GAAIC,EAAO,GACX,MAAOA,EAAO,MACd,MAAOA,EAAO,MACd,SAAUA,EAAO,SACjB,YAAaA,EAAO,aACpB,KAAMA,EAAO,KACb,kBAAmBA,EAAO,8BAC5B,EACA,OAAO,QAAQ,QAAQD,CAAG,CAC5B,CAAC,CACH,CAEQ,2BACNE,EAC4C,CAC5C,SAAO,eAAY,IACjB,QAAQ,QACNA,EAAU,IAAKC,GAAa,KAAK,eAAeA,CAAQ,CAAC,CAC3D,CACF,CACF,CAEQ,eAAeA,EAAsD,CAC3E,GACE,OAAOA,GAAa,UACpB,OAAOA,EAAS,UAAa,UAC7B,OAAOA,EAAS,0BAA6B,UAC7C,OAAOA,EAAS,SAAY,UAC5B,OAAOA,EAAS,qBAAwB,UACxC,OAAOA,EAAS,kBAAqB,UACrC,OAAOA,EAAS,oBAAuB,UACvC,OAAOA,EAAS,OAAU,UAC1B,OAAOA,EAAS,eAAkB,UAClC,OAAOA,EAAS,oBAAuB,SAEvC,MAAM,IAAI,MACR,gCAAgC,KAAK,UAAUA,CAAQ,CAAC,EAC1D,EAaF,MAX6B,CAC3B,SAAUA,EAAS,SACnB,yBAA0BA,EAAS,yBACnC,QAASA,EAAS,QAClB,kBAAmBA,EAAS,oBAC5B,eAAgBA,EAAS,iBACzB,iBAAkBA,EAAS,mBAC3B,MAAOA,EAAS,MAChB,aAAcA,EAAS,cACvB,iBAAkBA,EAAS,kBAC7B,CAEF,CACF,EAtcajC,EAANkC,EAAA,IADN,cAAW,EAQPC,EAAA,eAAO,kBAAgB,SAAS,IAPxBnC",
6
6
  "names": ["HttpManagerApiDataSource_exports", "__export", "HttpManagerApiDataSource", "__toCommonJS", "import_inversify", "import_purify_ts", "import_DmkNetworkClient", "import_DmkNetworkClientError", "import_managerApiTypes", "import_Application", "import_Const", "import_Errors", "import_ManagerApiDto", "toHttpFetchApiError", "error", "HttpManagerApiDataSource", "managerApiUrl", "provider", "firmwareDistributionSalt", "params", "targetId", "firmwareVersionName", "apps", "mcus", "deviceVersion", "deviceId", "version", "finalFirmware", "finalFirmwareId", "osuFirmware", "livecommonversion", "currentFinalFirmwareId", "latestFirmware", "hashes", "appType", "app", "applicationType", "hash", "perso", "firmware", "firmwareKey", "del", "deleteKey", "rest", "mcu", "ret", "osuDto", "languages", "language", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -1,2 +1,2 @@
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 a;beforeEach(()=>{a=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 r=await a.getAppList({targetId:"targetId",firmwareVersionName:"firmwareVersionName"});expect(r).toEqual((0,s.Right)(e))}),it("should return an error if payload don't match the dto",async()=>{const{versionId:e,...r}=t.BTC_APP_METADATA,n=[{versionId:"invalidVersion",...r}];vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify(n)));const l=await a.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 r=await a.getAppList({targetId:"targetId",firmwareVersionName:"firmwareVersionName"});expect(r).toEqual((0,s.Left)(new o.HttpFetchApiError(e)))})}),describe("getAppsByHash",()=>{describe("success cases",()=>{let a;beforeEach(()=>{a=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],r=await a.getAppsByHash({hashes:e});expect(r).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=[],r=await a.getAppsByHash({hashes:e});expect(r).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],r=await a.getAppsByHash({hashes:e});expect(r).toEqual((0,s.Right)([t.BTC_APP_METADATA,t.CUSTOM_LOCK_SCREEN_APP_METADATA]))})}),describe("error cases",()=>{let a;beforeEach(()=>{a=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,...r}=t.BTC_APP_METADATA;vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([{versionId:"invalidVersion",...r}])));const n=[t.BTC_APP.appFullHash],l=await a.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"}),r=new Error("fetch error");vi.spyOn(globalThis,"fetch").mockRejectedValue(r);const n=[t.BTC_APP.appFullHash],l=await e.getAppsByHash({hashes:n});expect(l).toEqual((0,s.Left)(new o.HttpFetchApiError(r)))})})}),describe("getDeviceVersion",()=>{let a;beforeEach(()=>{a=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 a.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 a.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 r=await a.getDeviceVersion({targetId:"targetId"});expect(r).toEqual((0,s.Left)(new o.HttpFetchApiError(e)))})}),describe("getFirmwareVersion",()=>{let a;beforeEach(()=>{a=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 a.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 a.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 r=await a.getFirmwareVersion({version:"versionName",deviceId:42});expect(r).toEqual((0,s.Left)(new o.HttpFetchApiError(e)))})}),describe("setProvider",()=>{let a;beforeEach(()=>{a=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=a._provider;a.setProvider(e),expect(a._provider).toBe(e)}),it("should not change the provider if the new value is less than 1",()=>{const e=a._provider;a.setProvider(0),a.setProvider(-5),expect(a._provider).toBe(e)}),it("should update the provider if a valid and different value is provided",()=>{a.setProvider(2),expect(a._provider).toBe(2)})}),describe("getFirmwareVersionById",()=>{let a;beforeEach(()=>{a=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 a.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 a;beforeEach(()=>{a=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",firmware:"test",firmware_key:"testKey",hash:"hash",next_se_firmware_final_version:567}})));const e=await a.getLatestFirmwareVersion({currentFinalFirmwareId:200,deviceId:42});expect(e).toEqual((0,s.Right)({id:361,perso:"perso_11",firmware:"test",firmwareKey:"testKey",hash:"hash",nextFinalFirmware:567}))}),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 a.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 a.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 r=await a.getLatestFirmwareVersion({currentFinalFirmwareId:200,deviceId:42});expect(r).toEqual((0,s.Left)(new o.HttpFetchApiError(e)))})}),describe("getOsuFirmwareVersion",()=>{let a;beforeEach(()=>{a=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",firmware:"test",firmware_key:"testKey",hash:"hash",next_se_firmware_final_version:567})));const e=await a.getOsuFirmwareVersion({version:"versionName",deviceId:42});expect(e).toEqual((0,s.Right)({id:361,perso:"perso_11",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 a.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 r=await a.getOsuFirmwareVersion({version:"versionName",deviceId:42});expect(r).toEqual((0,s.Left)(new o.HttpFetchApiError(e)))})}),describe("getLanguagePackages",()=>{let a;beforeEach(()=>{a=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 a.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 a.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 r=await a.getLanguagePackages({deviceId:1,currentFinalFirmwareId:42});expect(r).toEqual((0,s.Left)(new o.HttpFetchApiError(e)))})}),describe("getMcuList",()=>{let a;beforeEach(()=>{a=new i.HttpManagerApiDataSource({managerApiUrl:"http://localhost"})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return a the list of MCUs",async()=>{vi.spyOn(globalThis,"fetch").mockResolvedValue(new Response(JSON.stringify([{id:1,mcu:1,name:"1.0",description:null,providers:[],device_versions:[1,2],from_bootloader_version:"",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:[],device_versions:[1,2],from_bootloader_version:"",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 a.getMcuList();expect(e).toEqual((0,s.Right)([{id:1,name:"1.0"},{id:2,name:"1.1"}]))}),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 a.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 r=await a.getMcuList();expect(r).toEqual((0,s.Left)(new o.HttpFetchApiError(e)))})}),describe("getProvider",()=>{let a;beforeEach(()=>{a=new i.HttpManagerApiDataSource({managerApiUrl:"http://fake-url.com",provider:123})}),afterEach(()=>{vi.restoreAllMocks()}),it("should return the initial provider",()=>{expect(a.getProvider()).toBe(123)}),it("should return the updated provider after setProvider is called",()=>{a.setProvider(321),expect(a.getProvider()).toBe(321)})})});
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)})})});
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 { Left, Right } from \"purify-ts\";\n\nimport {\n BTC_APP,\n BTC_APP_METADATA,\n CUSTOM_LOCK_SCREEN_APP,\n CUSTOM_LOCK_SCREEN_APP_METADATA,\n 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 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 id: 361,\n perso: \"perso_11\",\n firmware: \"test\",\n firmwareKey: \"testKey\",\n hash: \"hash\",\n nextFinalFirmware: 567,\n }),\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 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 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 a 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: [],\n device_versions: [1, 2],\n from_bootloader_version: \"\",\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: [],\n device_versions: [1, 2],\n from_bootloader_version: \"\",\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 },\n {\n id: 2,\n name: \"1.1\",\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,EAA4B,qBAE5BC,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,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,SAAM,CACJ,GAAI,IACJ,MAAO,WACP,SAAU,OACV,YAAa,UACb,KAAM,OACN,kBAAmB,GACrB,CAAC,CACH,CACF,CAAC,EACD,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,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,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,mCAAoC,SAAY,CAEjD,GAAG,MAAM,WAAY,OAAO,EAAE,kBAC5B,IAAI,SACF,KAAK,UAAU,CACb,CACE,GAAI,EACJ,IAAK,EACL,KAAM,MACN,YAAa,KACb,UAAW,CAAC,EACZ,gBAAiB,CAAC,EAAG,CAAC,EACtB,wBAAyB,GACzB,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,EACZ,gBAAiB,CAAC,EAAG,CAAC,EACtB,wBAAyB,GACzB,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,KACR,EACA,CACE,GAAI,EACJ,KAAM,KACR,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",
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": "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",
6
6
  "names": ["import_purify_ts", "import_data", "import_Errors", "import_HttpManagerApiDataSource", "api", "apps", "response", "versionId", "rest", "error", "hashes", "err", "initialProvider"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var i=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var n=(e,r,p,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of m(r))!o.call(e,t)&&t!==p&&i(e,t,{get:()=>r[t],enumerable:!(a=s(r,t))||a.enumerable});return e};var c=e=>n(i({},"__esModule",{value:!0}),e);var A={};module.exports=c(A);
1
+ "use strict";var i=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var n=(e,r,p,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of m(r))!o.call(e,a)&&a!==p&&i(e,a,{get:()=>r[a],enumerable:!(t=s(r,a))||t.enumerable});return e};var c=e=>n(i({},"__esModule",{value:!0}),e);var y={};module.exports=c(y);
2
2
  //# sourceMappingURL=ManagerApiDataSource.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/manager-api/data/ManagerApiDataSource.ts"],
4
- "sourcesContent": ["import { type EitherAsync } from \"purify-ts\";\n\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport { type HttpFetchApiError } from \"@internal/manager-api/model/Errors\";\nimport {\n type FinalFirmware,\n type McuFirmware,\n type OsuFirmware,\n} from \"@internal/manager-api/model/Firmware\";\nimport { type LanguagePackage } from \"@internal/manager-api/model/Language\";\nimport {\n type GetAppByHashParams,\n type GetAppListParams,\n type GetDeviceVersionParams,\n type GetFirmwareVersionParams,\n type GetLanguagePackagesParams,\n type GetLatestFirmwareVersionParams,\n} from \"@internal/manager-api/model/Params\";\n\n/**\n * Interface representing a data source for the Manager API.\n */\nexport interface ManagerApiDataSource {\n /**\n * Retrieves the list of applications for a given target ID and firmware version.\n *\n * @param params - The parameters for getting the application list.\n * @returns EitherAsync containing an array of applications or an HttpFetchApiError.\n */\n getAppList(\n params: GetAppListParams,\n ): EitherAsync<HttpFetchApiError, Array<Application>>;\n\n /**\n * Retrieves applications by their hashes.\n *\n * @param hashes - An array of application hashes, can be got from the response of the ListAppsCommand.\n * @returns EitherAsync containing an array of applications or null values, or an HttpFetchApiError.\n */\n getAppsByHash(\n params: GetAppByHashParams,\n ): EitherAsync<HttpFetchApiError, Array<Application | null>>;\n\n /**\n * Retrieves the device version for a given target ID.\n *\n * @param params - The parameters for getting the device version.\n * @returns EitherAsync containing the device version or an HttpFetchApiError.\n */\n getDeviceVersion(\n params: GetDeviceVersionParams,\n ): EitherAsync<HttpFetchApiError, DeviceVersion>;\n\n /**\n * Retrieves the firmware version for a given version, device ID.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing the final firmware or an HttpFetchApiError.\n */\n getFirmwareVersion(\n params: GetFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, FinalFirmware>;\n\n /**\n * Sets the provider identifier.\n *\n * @param provider - The provider identifier.\n */\n setProvider(provider: number): void;\n\n /**\n * Returns the current provider.\n */\n getProvider(): number;\n\n /**\n * Retrieves a firmware version from a final firmware ID.\n *\n * @param finalFirmwareId - The ID of the final firmware to retrieve.\n * @returns EitherAsync containing the final firmware or an HttpFetchApiError.\n */\n getFirmwareVersionById(\n finalFirmwareId: number,\n ): EitherAsync<HttpFetchApiError, FinalFirmware>;\n\n /**\n * Retrieves the an OSU firmware version for a given version, device ID.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing the OSU firmware or an HttpFetchApiError.\n */\n getOsuFirmwareVersion(\n params: GetFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, OsuFirmware>;\n\n /**\n * Retrieves the latest firmware available for a given current firmware, device ID.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing the OSU firmware or an HttpFetchApiError.\n */\n getLatestFirmwareVersion(\n params: GetLatestFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, OsuFirmware>;\n\n /**\n * Retrieves the available language packages for a device.\n *\n * @param params - The parameters for getting the language packages.\n * @returns EitherAsync containing the list of language packages or an HttpFetchApiError.\n */\n getLanguagePackages(\n params: GetLanguagePackagesParams,\n ): EitherAsync<HttpFetchApiError, Array<LanguagePackage>>;\n\n /**\n * Retrieves the list of available MCU firmwares.\n *\n * @returns EitherAsync containing an array of mcu firmwares or an HttpFetchApiError.\n */\n getMcuList(): EitherAsync<HttpFetchApiError, Array<McuFirmware>>;\n}\n"],
4
+ "sourcesContent": ["import { type EitherAsync, type Maybe } from \"purify-ts\";\n\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport { type HttpFetchApiError } from \"@internal/manager-api/model/Errors\";\nimport {\n type FinalFirmware,\n type McuFirmware,\n type OsuFirmware,\n} from \"@internal/manager-api/model/Firmware\";\nimport { type LanguagePackage } from \"@internal/manager-api/model/Language\";\nimport {\n type GetAppByHashParams,\n type GetAppListParams,\n type GetDeviceVersionParams,\n type GetFirmwareVersionParams,\n type GetLanguagePackagesParams,\n type GetLatestFirmwareVersionParams,\n} from \"@internal/manager-api/model/Params\";\n\n/**\n * Interface representing a data source for the Manager API.\n */\nexport interface ManagerApiDataSource {\n /**\n * Retrieves the list of applications for a given target ID and firmware version.\n *\n * @param params - The parameters for getting the application list.\n * @returns EitherAsync containing an array of applications or an HttpFetchApiError.\n */\n getAppList(\n params: GetAppListParams,\n ): EitherAsync<HttpFetchApiError, Array<Application>>;\n\n /**\n * Retrieves applications by their hashes.\n *\n * @param hashes - An array of application hashes, can be got from the response of the ListAppsCommand.\n * @returns EitherAsync containing an array of applications or null values, or an HttpFetchApiError.\n */\n getAppsByHash(\n params: GetAppByHashParams,\n ): EitherAsync<HttpFetchApiError, Array<Application | null>>;\n\n /**\n * Retrieves the device version for a given target ID.\n *\n * @param params - The parameters for getting the device version.\n * @returns EitherAsync containing the device version or an HttpFetchApiError.\n */\n getDeviceVersion(\n params: GetDeviceVersionParams,\n ): EitherAsync<HttpFetchApiError, DeviceVersion>;\n\n /**\n * Retrieves the firmware version for a given version, device ID.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing the final firmware or an HttpFetchApiError.\n */\n getFirmwareVersion(\n params: GetFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, FinalFirmware>;\n\n /**\n * Sets the provider identifier.\n *\n * @param provider - The provider identifier.\n */\n setProvider(provider: number): void;\n\n /**\n * Returns the current provider.\n */\n getProvider(): number;\n\n /**\n * Retrieves a firmware version from a final firmware ID.\n *\n * @param finalFirmwareId - The ID of the final firmware to retrieve.\n * @returns EitherAsync containing the final firmware or an HttpFetchApiError.\n */\n getFirmwareVersionById(\n finalFirmwareId: number,\n ): EitherAsync<HttpFetchApiError, FinalFirmware>;\n\n /**\n * Retrieves the an OSU firmware version for a given version, device ID.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing the OSU firmware or an HttpFetchApiError.\n */\n getOsuFirmwareVersion(\n params: GetFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, OsuFirmware>;\n\n /**\n * Retrieves the latest firmware available, if any, for a given device.\n *\n * @param params - The parameters for getting the firmware version.\n * @returns EitherAsync containing either an `HttpFetchApiError` or a `Maybe<OsuFirmware>` (Nothing when no update is available).\n */\n getLatestFirmwareVersion(\n params: GetLatestFirmwareVersionParams,\n ): EitherAsync<HttpFetchApiError, Maybe<OsuFirmware>>;\n\n /**\n * Retrieves the available language packages for a device.\n *\n * @param params - The parameters for getting the language packages.\n * @returns EitherAsync containing the list of language packages or an HttpFetchApiError.\n */\n getLanguagePackages(\n params: GetLanguagePackagesParams,\n ): EitherAsync<HttpFetchApiError, Array<LanguagePackage>>;\n\n /**\n * Retrieves the list of available MCU firmwares.\n *\n * @returns EitherAsync containing an array of mcu firmwares or an HttpFetchApiError.\n */\n getMcuList(): EitherAsync<HttpFetchApiError, Array<McuFirmware>>;\n}\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["ManagerApiDataSource_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var E=Object.defineProperty;var e=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var L=Object.prototype.hasOwnProperty;var T=(_,t)=>{for(var A in t)E(_,A,{get:t[A],enumerable:!0})},U=(_,t,A,R)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of p(t))!L.call(_,o)&&o!==A&&E(_,o,{get:()=>t[o],enumerable:!(R=e(t,o))||R.enumerable});return _};var c=_=>U(E({},"__esModule",{value:!0}),_);var a={};T(a,{DEFAULT_FIRMWARE_DISTRIBUTION_SALT:()=>I,DEFAULT_MANAGER_API_BASE_URL:()=>r,DEFAULT_MOCK_SERVER_BASE_URL:()=>s,DEFAULT_PROVIDER:()=>D});module.exports=c(a);const r="https://manager.api.live.ledger.com/api",s="http://localhost:8080",D=1,I="0";0&&(module.exports={DEFAULT_FIRMWARE_DISTRIBUTION_SALT,DEFAULT_MANAGER_API_BASE_URL,DEFAULT_MOCK_SERVER_BASE_URL,DEFAULT_PROVIDER});
1
+ "use strict";var E=Object.defineProperty;var e=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var L=Object.prototype.hasOwnProperty;var T=(_,t)=>{for(var A in t)E(_,A,{get:t[A],enumerable:!0})},U=(_,t,A,R)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of p(t))!L.call(_,o)&&o!==A&&E(_,o,{get:()=>t[o],enumerable:!(R=e(t,o))||R.enumerable});return _};var c=_=>U(E({},"__esModule",{value:!0}),_);var a={};T(a,{DEFAULT_FIRMWARE_DISTRIBUTION_SALT:()=>I,DEFAULT_MANAGER_API_BASE_URL:()=>r,DEFAULT_MOCK_SERVER_BASE_URL:()=>s,DEFAULT_PROVIDER:()=>D});module.exports=c(a);const r="https://manager.api.live.ledger.com/api",s="http://localhost:9752",D=1,I="0";0&&(module.exports={DEFAULT_FIRMWARE_DISTRIBUTION_SALT,DEFAULT_MANAGER_API_BASE_URL,DEFAULT_MOCK_SERVER_BASE_URL,DEFAULT_PROVIDER});
2
2
  //# sourceMappingURL=Const.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/manager-api/model/Const.ts"],
4
- "sourcesContent": ["export const DEFAULT_MANAGER_API_BASE_URL =\n \"https://manager.api.live.ledger.com/api\";\nexport const DEFAULT_MOCK_SERVER_BASE_URL = \"http://localhost:8080\";\nexport const DEFAULT_PROVIDER = 1;\nexport const DEFAULT_FIRMWARE_DISTRIBUTION_SALT = \"0\";\n"],
4
+ "sourcesContent": ["export const DEFAULT_MANAGER_API_BASE_URL =\n \"https://manager.api.live.ledger.com/api\";\nexport const DEFAULT_MOCK_SERVER_BASE_URL = \"http://localhost:9752\";\nexport const DEFAULT_PROVIDER = 1;\nexport const DEFAULT_FIRMWARE_DISTRIBUTION_SALT = \"0\";\n"],
5
5
  "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wCAAAE,EAAA,iCAAAC,EAAA,iCAAAC,EAAA,qBAAAC,IAAA,eAAAC,EAAAN,GAAO,MAAMG,EACX,0CACWC,EAA+B,wBAC/BC,EAAmB,EACnBH,EAAqC",
6
6
  "names": ["Const_exports", "__export", "DEFAULT_FIRMWARE_DISTRIBUTION_SALT", "DEFAULT_MANAGER_API_BASE_URL", "DEFAULT_MOCK_SERVER_BASE_URL", "DEFAULT_PROVIDER", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var s=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var l=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of u(r))!a.call(e,n)&&n!==t&&s(e,n,{get:()=>r[n],enumerable:!(i=m(r,n))||i.enumerable});return e};var g=e=>l(s({},"__esModule",{value:!0}),e);var p={};module.exports=g(p);
1
+ "use strict";var s=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var a=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of u(r))!l.call(e,n)&&n!==t&&s(e,n,{get:()=>r[n],enumerable:!(i=m(r,n))||i.enumerable});return e};var o=e=>a(s({},"__esModule",{value:!0}),e);var g={};module.exports=o(g);
2
2
  //# sourceMappingURL=Firmware.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/manager-api/model/Firmware.ts"],
4
- "sourcesContent": ["export type OsuFirmware = {\n id: number;\n perso: string;\n firmware: string;\n firmwareKey: string;\n hash: string | null;\n nextFinalFirmware: number;\n};\n\nexport type FinalFirmware = {\n id: number;\n version: string;\n perso: string;\n firmware: string | null;\n firmwareKey: string | null;\n hash: string | null;\n bytes: number | null;\n mcuVersions: number[];\n};\n\nexport type McuFirmware = {\n id: number;\n name: string;\n};\n"],
4
+ "sourcesContent": ["export type OsuFirmware = {\n id: number;\n notes: string | null;\n perso: string;\n firmware: string;\n firmwareKey: string;\n hash: string | null;\n nextFinalFirmware: number;\n};\n\nexport type FinalFirmware = {\n id: number;\n version: string;\n perso: string;\n firmware: string | null;\n firmwareKey: string | null;\n hash: string | null;\n bytes: number | null;\n mcuVersions: number[];\n};\n\nexport type McuFirmware = {\n id: number;\n name: string;\n fromBootloaderVersion: string;\n providers: number[];\n};\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["Firmware_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var o=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var w=(i,e)=>{for(var r in e)o(i,r,{get:e[r],enumerable:!0})},A=(i,e,r,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of y(e))!h.call(i,a)&&a!==r&&o(i,a,{get:()=>e[a],enumerable:!(t=g(e,a))||t.enumerable});return i};var G=i=>A(o({},"__esModule",{value:!0}),i),u=(i,e,r,t)=>{for(var a=t>1?void 0:t?g(e,r):e,s=i.length-1,m;s>=0;s--)(m=i[s])&&(a=(t?m(e,r,a):m(a))||a);return t&&a&&o(e,r,a),a},F=(i,e)=>(r,t)=>e(r,t,i);var P={};w(P,{DefaultManagerApiService:()=>n});module.exports=G(P);var p=require("inversify"),d=require("purify-ts"),V=require("../../manager-api/di/managerApiTypes"),c=require("../../manager-api/model/Errors");let n=class{constructor(e){this.dataSource=e}getAppList(e){const r={targetId:e.targetId.toString(),firmwareVersionName:e.seVersion};return this.dataSource.getAppList(r)}getDeviceVersion(e){const r={targetId:e.targetId.toString()};return this.dataSource.getDeviceVersion(r)}getFirmwareVersion(e,r){const t={version:e.seVersion,deviceId:r.id};return this.dataSource.getFirmwareVersion(t)}getOsuFirmwareVersion(e,r){const t={version:e.seVersion,deviceId:r.id};return this.dataSource.getOsuFirmwareVersion(t)}getLatestFirmwareVersion(e,r){const t={currentFinalFirmwareId:e.id,deviceId:r.id};return this.dataSource.getLatestFirmwareVersion(t)}getNextFirmwareVersion(e){return this.dataSource.getFirmwareVersionById(e.nextFinalFirmware)}getLanguagePackages(e,r){const t={deviceId:e.id,currentFinalFirmwareId:r.id};return this.dataSource.getLanguagePackages(t)}getMcuList(){return this.dataSource.getMcuList()}getAppsByHash(e){const r={hashes:e};return(0,d.EitherAsync)(async({fromPromise:t,throwE:a})=>{if(r.hashes.length===0)return[];try{return await t(this.dataSource.getAppsByHash(r))}catch(s){return s instanceof c.HttpFetchApiError?a(s):a(new c.HttpFetchApiError(s))}})}};n=u([(0,p.injectable)(),F(0,(0,p.inject)(V.managerApiTypes.ManagerApiDataSource))],n);0&&(module.exports={DefaultManagerApiService});
1
+ "use strict";var n=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var w=(i,e)=>{for(var r in e)n(i,r,{get:e[r],enumerable:!0})},A=(i,e,r,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of y(e))!h.call(i,a)&&a!==r&&n(i,a,{get:()=>e[a],enumerable:!(t=g(e,a))||t.enumerable});return i};var P=i=>A(n({},"__esModule",{value:!0}),i),u=(i,e,r,t)=>{for(var a=t>1?void 0:t?g(e,r):e,s=i.length-1,m;s>=0;s--)(m=i[s])&&(a=(t?m(e,r,a):m(a))||a);return t&&a&&n(e,r,a),a},d=(i,e)=>(r,t)=>e(r,t,i);var G={};w(G,{DefaultManagerApiService:()=>o});module.exports=P(G);var p=require("inversify"),F=require("purify-ts"),V=require("../../manager-api/di/managerApiTypes"),c=require("../../manager-api/model/Errors");let o=class{constructor(e){this.dataSource=e}getAppList(e){const r={targetId:e.targetId.toString(),firmwareVersionName:e.seVersion};return this.dataSource.getAppList(r)}getDeviceVersion(e){const r={targetId:e.targetId.toString()};return this.dataSource.getDeviceVersion(r)}getFirmwareVersion(e,r){const t={version:e.seVersion,deviceId:r.id};return this.dataSource.getFirmwareVersion(t)}getOsuFirmwareVersion(e,r){const t={version:e.seVersion,deviceId:r.id};return this.dataSource.getOsuFirmwareVersion(t)}getLatestFirmwareVersion(e,r){const t={currentFinalFirmwareId:e.id,deviceId:r.id};return this.dataSource.getLatestFirmwareVersion(t)}getNextFirmwareVersion(e){return this.dataSource.getFirmwareVersionById(e.nextFinalFirmware)}getLanguagePackages(e,r){const t={deviceId:e.id,currentFinalFirmwareId:r.id};return this.dataSource.getLanguagePackages(t)}getMcuList(){return this.dataSource.getMcuList()}getAppsByHash(e){const r={hashes:e};return(0,F.EitherAsync)(async({fromPromise:t,throwE:a})=>{if(r.hashes.length===0)return[];try{return await t(this.dataSource.getAppsByHash(r))}catch(s){return s instanceof c.HttpFetchApiError?a(s):a(new c.HttpFetchApiError(s))}})}getProvider(){return this.dataSource.getProvider()}};o=u([(0,p.injectable)(),d(0,(0,p.inject)(V.managerApiTypes.ManagerApiDataSource))],o);0&&(module.exports={DefaultManagerApiService});
2
2
  //# sourceMappingURL=DefaultManagerApiService.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/manager-api/service/DefaultManagerApiService.ts"],
4
- "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { EitherAsync } from \"purify-ts\";\n\nimport { type GetOsVersionResponse } from \"@api/command/os/GetOsVersionCommand\";\nimport { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\nimport { managerApiTypes } from \"@internal/manager-api/di/managerApiTypes\";\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport { HttpFetchApiError } from \"@internal/manager-api/model/Errors\";\nimport {\n type FinalFirmware,\n type McuFirmware,\n type OsuFirmware,\n} from \"@internal/manager-api/model/Firmware\";\nimport {\n type GetAppByHashParams,\n type GetAppListParams,\n type GetDeviceVersionParams,\n type GetFirmwareVersionParams,\n type GetLanguagePackagesParams,\n type GetLatestFirmwareVersionParams,\n} from \"@internal/manager-api/model/Params\";\n\nimport { type ManagerApiService } from \"./ManagerApiService\";\n\n@injectable()\nexport class DefaultManagerApiService implements ManagerApiService {\n constructor(\n @inject(managerApiTypes.ManagerApiDataSource)\n private readonly dataSource: ManagerApiDataSource,\n ) {}\n\n getAppList(\n deviceInfo: GetOsVersionResponse,\n ): EitherAsync<HttpFetchApiError, Array<Application>> {\n const params: GetAppListParams = {\n targetId: deviceInfo.targetId.toString(),\n firmwareVersionName: deviceInfo.seVersion,\n };\n return this.dataSource.getAppList(params);\n }\n\n getDeviceVersion(deviceInfo: GetOsVersionResponse) {\n const params: GetDeviceVersionParams = {\n targetId: deviceInfo.targetId.toString(),\n };\n return this.dataSource.getDeviceVersion(params);\n }\n\n getFirmwareVersion(\n deviceInfo: GetOsVersionResponse,\n deviceVersion: DeviceVersion,\n ) {\n const params: GetFirmwareVersionParams = {\n version: deviceInfo.seVersion,\n deviceId: deviceVersion.id,\n };\n return this.dataSource.getFirmwareVersion(params);\n }\n\n getOsuFirmwareVersion(\n deviceInfo: GetOsVersionResponse,\n deviceVersion: DeviceVersion,\n ) {\n const params: GetFirmwareVersionParams = {\n version: deviceInfo.seVersion,\n deviceId: deviceVersion.id,\n };\n return this.dataSource.getOsuFirmwareVersion(params);\n }\n\n getLatestFirmwareVersion(\n currentFirmware: FinalFirmware,\n deviceVersion: DeviceVersion,\n ) {\n const params: GetLatestFirmwareVersionParams = {\n currentFinalFirmwareId: currentFirmware.id,\n deviceId: deviceVersion.id,\n };\n return this.dataSource.getLatestFirmwareVersion(params);\n }\n\n getNextFirmwareVersion(osuFirmware: OsuFirmware) {\n return this.dataSource.getFirmwareVersionById(\n osuFirmware.nextFinalFirmware,\n );\n }\n\n getLanguagePackages(\n deviceVersion: DeviceVersion,\n currentFirmware: FinalFirmware,\n ) {\n const params: GetLanguagePackagesParams = {\n deviceId: deviceVersion.id,\n currentFinalFirmwareId: currentFirmware.id,\n };\n return this.dataSource.getLanguagePackages(params);\n }\n\n getMcuList(): EitherAsync<HttpFetchApiError, Array<McuFirmware>> {\n return this.dataSource.getMcuList();\n }\n\n getAppsByHash(appHashes: Array<string>) {\n const params: GetAppByHashParams = {\n hashes: appHashes,\n };\n return EitherAsync<HttpFetchApiError, Array<Application | null>>(\n async ({ fromPromise, throwE }) => {\n if (params.hashes.length === 0) {\n return [];\n }\n try {\n const response = await fromPromise(\n this.dataSource.getAppsByHash(params),\n );\n return response;\n } catch (error) {\n if (error instanceof HttpFetchApiError) {\n return throwE(error);\n }\n return throwE(new HttpFetchApiError(error));\n }\n },\n );\n }\n}\n"],
5
- "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBACnCC,EAA4B,qBAI5BC,EAAgC,oDAGhCC,EAAkC,8CAkB3B,IAAMC,EAAN,KAA4D,CACjE,YAEmBC,EACjB,CADiB,gBAAAA,CAChB,CAEH,WACEC,EACoD,CACpD,MAAMC,EAA2B,CAC/B,SAAUD,EAAW,SAAS,SAAS,EACvC,oBAAqBA,EAAW,SAClC,EACA,OAAO,KAAK,WAAW,WAAWC,CAAM,CAC1C,CAEA,iBAAiBD,EAAkC,CACjD,MAAMC,EAAiC,CACrC,SAAUD,EAAW,SAAS,SAAS,CACzC,EACA,OAAO,KAAK,WAAW,iBAAiBC,CAAM,CAChD,CAEA,mBACED,EACAE,EACA,CACA,MAAMD,EAAmC,CACvC,QAASD,EAAW,UACpB,SAAUE,EAAc,EAC1B,EACA,OAAO,KAAK,WAAW,mBAAmBD,CAAM,CAClD,CAEA,sBACED,EACAE,EACA,CACA,MAAMD,EAAmC,CACvC,QAASD,EAAW,UACpB,SAAUE,EAAc,EAC1B,EACA,OAAO,KAAK,WAAW,sBAAsBD,CAAM,CACrD,CAEA,yBACEE,EACAD,EACA,CACA,MAAMD,EAAyC,CAC7C,uBAAwBE,EAAgB,GACxC,SAAUD,EAAc,EAC1B,EACA,OAAO,KAAK,WAAW,yBAAyBD,CAAM,CACxD,CAEA,uBAAuBG,EAA0B,CAC/C,OAAO,KAAK,WAAW,uBACrBA,EAAY,iBACd,CACF,CAEA,oBACEF,EACAC,EACA,CACA,MAAMF,EAAoC,CACxC,SAAUC,EAAc,GACxB,uBAAwBC,EAAgB,EAC1C,EACA,OAAO,KAAK,WAAW,oBAAoBF,CAAM,CACnD,CAEA,YAAiE,CAC/D,OAAO,KAAK,WAAW,WAAW,CACpC,CAEA,cAAcI,EAA0B,CACtC,MAAMJ,EAA6B,CACjC,OAAQI,CACV,EACA,SAAO,eACL,MAAO,CAAE,YAAAC,EAAa,OAAAC,CAAO,IAAM,CACjC,GAAIN,EAAO,OAAO,SAAW,EAC3B,MAAO,CAAC,EAEV,GAAI,CAIF,OAHiB,MAAMK,EACrB,KAAK,WAAW,cAAcL,CAAM,CACtC,CAEF,OAASO,EAAO,CACd,OAAIA,aAAiB,oBACZD,EAAOC,CAAK,EAEdD,EAAO,IAAI,oBAAkBC,CAAK,CAAC,CAC5C,CACF,CACF,CACF,CACF,EApGaV,EAANW,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,kBAAgB,oBAAoB,IAFnCZ",
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { EitherAsync } from \"purify-ts\";\n\nimport { type GetOsVersionResponse } from \"@api/command/os/GetOsVersionCommand\";\nimport { type ManagerApiDataSource } from \"@internal/manager-api/data/ManagerApiDataSource\";\nimport { managerApiTypes } from \"@internal/manager-api/di/managerApiTypes\";\nimport { type Application } from \"@internal/manager-api/model/Application\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport { HttpFetchApiError } from \"@internal/manager-api/model/Errors\";\nimport {\n type FinalFirmware,\n type McuFirmware,\n type OsuFirmware,\n} from \"@internal/manager-api/model/Firmware\";\nimport {\n type GetAppByHashParams,\n type GetAppListParams,\n type GetDeviceVersionParams,\n type GetFirmwareVersionParams,\n type GetLanguagePackagesParams,\n type GetLatestFirmwareVersionParams,\n} from \"@internal/manager-api/model/Params\";\n\nimport { type ManagerApiService } from \"./ManagerApiService\";\n\n@injectable()\nexport class DefaultManagerApiService implements ManagerApiService {\n constructor(\n @inject(managerApiTypes.ManagerApiDataSource)\n private readonly dataSource: ManagerApiDataSource,\n ) {}\n\n getAppList(\n deviceInfo: GetOsVersionResponse,\n ): EitherAsync<HttpFetchApiError, Array<Application>> {\n const params: GetAppListParams = {\n targetId: deviceInfo.targetId.toString(),\n firmwareVersionName: deviceInfo.seVersion,\n };\n return this.dataSource.getAppList(params);\n }\n\n getDeviceVersion(deviceInfo: GetOsVersionResponse) {\n const params: GetDeviceVersionParams = {\n targetId: deviceInfo.targetId.toString(),\n };\n return this.dataSource.getDeviceVersion(params);\n }\n\n getFirmwareVersion(\n deviceInfo: GetOsVersionResponse,\n deviceVersion: DeviceVersion,\n ) {\n const params: GetFirmwareVersionParams = {\n version: deviceInfo.seVersion,\n deviceId: deviceVersion.id,\n };\n return this.dataSource.getFirmwareVersion(params);\n }\n\n getOsuFirmwareVersion(\n deviceInfo: GetOsVersionResponse,\n deviceVersion: DeviceVersion,\n ) {\n const params: GetFirmwareVersionParams = {\n version: deviceInfo.seVersion,\n deviceId: deviceVersion.id,\n };\n return this.dataSource.getOsuFirmwareVersion(params);\n }\n\n getLatestFirmwareVersion(\n currentFirmware: FinalFirmware,\n deviceVersion: DeviceVersion,\n ) {\n const params: GetLatestFirmwareVersionParams = {\n currentFinalFirmwareId: currentFirmware.id,\n deviceId: deviceVersion.id,\n };\n return this.dataSource.getLatestFirmwareVersion(params);\n }\n\n getNextFirmwareVersion(osuFirmware: OsuFirmware) {\n return this.dataSource.getFirmwareVersionById(\n osuFirmware.nextFinalFirmware,\n );\n }\n\n getLanguagePackages(\n deviceVersion: DeviceVersion,\n currentFirmware: FinalFirmware,\n ) {\n const params: GetLanguagePackagesParams = {\n deviceId: deviceVersion.id,\n currentFinalFirmwareId: currentFirmware.id,\n };\n return this.dataSource.getLanguagePackages(params);\n }\n\n getMcuList(): EitherAsync<HttpFetchApiError, Array<McuFirmware>> {\n return this.dataSource.getMcuList();\n }\n\n getAppsByHash(appHashes: Array<string>) {\n const params: GetAppByHashParams = {\n hashes: appHashes,\n };\n return EitherAsync<HttpFetchApiError, Array<Application | null>>(\n async ({ fromPromise, throwE }) => {\n if (params.hashes.length === 0) {\n return [];\n }\n try {\n const response = await fromPromise(\n this.dataSource.getAppsByHash(params),\n );\n return response;\n } catch (error) {\n if (error instanceof HttpFetchApiError) {\n return throwE(error);\n }\n return throwE(new HttpFetchApiError(error));\n }\n },\n );\n }\n\n getProvider(): number {\n return this.dataSource.getProvider();\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBACnCC,EAA4B,qBAI5BC,EAAgC,oDAGhCC,EAAkC,8CAkB3B,IAAMC,EAAN,KAA4D,CACjE,YAEmBC,EACjB,CADiB,gBAAAA,CAChB,CAEH,WACEC,EACoD,CACpD,MAAMC,EAA2B,CAC/B,SAAUD,EAAW,SAAS,SAAS,EACvC,oBAAqBA,EAAW,SAClC,EACA,OAAO,KAAK,WAAW,WAAWC,CAAM,CAC1C,CAEA,iBAAiBD,EAAkC,CACjD,MAAMC,EAAiC,CACrC,SAAUD,EAAW,SAAS,SAAS,CACzC,EACA,OAAO,KAAK,WAAW,iBAAiBC,CAAM,CAChD,CAEA,mBACED,EACAE,EACA,CACA,MAAMD,EAAmC,CACvC,QAASD,EAAW,UACpB,SAAUE,EAAc,EAC1B,EACA,OAAO,KAAK,WAAW,mBAAmBD,CAAM,CAClD,CAEA,sBACED,EACAE,EACA,CACA,MAAMD,EAAmC,CACvC,QAASD,EAAW,UACpB,SAAUE,EAAc,EAC1B,EACA,OAAO,KAAK,WAAW,sBAAsBD,CAAM,CACrD,CAEA,yBACEE,EACAD,EACA,CACA,MAAMD,EAAyC,CAC7C,uBAAwBE,EAAgB,GACxC,SAAUD,EAAc,EAC1B,EACA,OAAO,KAAK,WAAW,yBAAyBD,CAAM,CACxD,CAEA,uBAAuBG,EAA0B,CAC/C,OAAO,KAAK,WAAW,uBACrBA,EAAY,iBACd,CACF,CAEA,oBACEF,EACAC,EACA,CACA,MAAMF,EAAoC,CACxC,SAAUC,EAAc,GACxB,uBAAwBC,EAAgB,EAC1C,EACA,OAAO,KAAK,WAAW,oBAAoBF,CAAM,CACnD,CAEA,YAAiE,CAC/D,OAAO,KAAK,WAAW,WAAW,CACpC,CAEA,cAAcI,EAA0B,CACtC,MAAMJ,EAA6B,CACjC,OAAQI,CACV,EACA,SAAO,eACL,MAAO,CAAE,YAAAC,EAAa,OAAAC,CAAO,IAAM,CACjC,GAAIN,EAAO,OAAO,SAAW,EAC3B,MAAO,CAAC,EAEV,GAAI,CAIF,OAHiB,MAAMK,EACrB,KAAK,WAAW,cAAcL,CAAM,CACtC,CAEF,OAASO,EAAO,CACd,OAAIA,aAAiB,oBACZD,EAAOC,CAAK,EAEdD,EAAO,IAAI,oBAAkBC,CAAK,CAAC,CAC5C,CACF,CACF,CACF,CAEA,aAAsB,CACpB,OAAO,KAAK,WAAW,YAAY,CACrC,CACF,EAxGaV,EAANW,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,kBAAgB,oBAAoB,IAFnCZ",
6
6
  "names": ["DefaultManagerApiService_exports", "__export", "DefaultManagerApiService", "__toCommonJS", "import_inversify", "import_purify_ts", "import_managerApiTypes", "import_Errors", "DefaultManagerApiService", "dataSource", "deviceInfo", "params", "deviceVersion", "currentFirmware", "osuFirmware", "appHashes", "fromPromise", "throwE", "error", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var i=require("purify-ts"),s=require("../../../api/command/os/__mocks__/GetOsVersionCommand"),c=require("../../../api/device/DeviceModel"),t=require("../../../api/device-action/__test-utils__/data"),n=require("../../manager-api/data/HttpManagerApiDataSource"),p=require("../../manager-api/model/Errors"),l=require("./DefaultManagerApiService");vi.mock("@internal/manager-api/data/HttpManagerApiDataSource");let a,r;describe("ManagerApiService",()=>{beforeEach(()=>{a=new n.HttpManagerApiDataSource({}),r=new l.DefaultManagerApiService(a)}),describe("getAppList",()=>{it("should call api with the correct parameters",()=>{const e=(0,s.getOsVersionCommandResponseMockBuilder)(c.DeviceModelId.STAX);r.getAppList(e),expect(a.getAppList).toHaveBeenCalledWith({targetId:"857735172",firmwareVersionName:"1.3.0"})})}),describe("getAppsByHash",()=>{describe("success cases",()=>{it("with no apps, should return an empty list",async()=>{a.getAppsByHash.mockResolvedValue((0,i.Right)([])),expect(await r.getAppsByHash([])).toEqual((0,i.Right)([]))}),it("with one app, should return the metadata",async()=>{a.getAppsByHash.mockResolvedValue((0,i.Right)([t.BTC_APP_METADATA])),expect(await r.getAppsByHash([t.BTC_APP.appFullHash])).toEqual((0,i.Right)([t.BTC_APP_METADATA]))}),it("with two app, should return the metadata of both apps",async()=>{a.getAppsByHash.mockResolvedValue((0,i.Right)([t.BTC_APP_METADATA,t.ETH_APP_METADATA])),expect(await r.getAppsByHash([t.BTC_APP,t.ETH_APP].map(e=>e.appFullHash))).toEqual((0,i.Right)([t.BTC_APP_METADATA,t.ETH_APP_METADATA]))}),it("with one app and one without `appFullHash`, should return the metadata of the correct app",async()=>{a.getAppsByHash.mockResolvedValue((0,i.Right)([t.BTC_APP_METADATA]));const e={...t.ETH_APP,appFullHash:""};expect(await r.getAppsByHash([t.BTC_APP,e].map(o=>o.appFullHash))).toEqual((0,i.Right)([t.BTC_APP_METADATA]))})}),describe("error cases",()=>{it("should return an error when the data source fails with a known error",async()=>{const e=new p.HttpFetchApiError(new Error("Failed to fetch data"));a.getAppsByHash.mockRejectedValue(e),expect(await r.getAppsByHash([t.BTC_APP.appFullHash])).toEqual((0,i.Left)(e))}),it("should return an error when the data source fails with an unknown error",async()=>{const e=new Error("unkown error");a.getAppsByHash.mockRejectedValue(e),expect(await r.getAppsByHash([t.BTC_APP.appFullHash])).toEqual((0,i.Left)(new p.HttpFetchApiError(e)))})})}),describe("getDeviceVersion",()=>{it("should call api with the correct parameters",()=>{const e=(0,s.getOsVersionCommandResponseMockBuilder)(c.DeviceModelId.STAX);r.getDeviceVersion(e),expect(a.getDeviceVersion).toHaveBeenCalledWith({targetId:"857735172"})})}),describe("getFirmwareVersion",()=>{it("should call api with the correct parameters",()=>{const e={id:17,target_id:"857735172"},o=(0,s.getOsVersionCommandResponseMockBuilder)(c.DeviceModelId.STAX);r.getFirmwareVersion(o,e),expect(a.getFirmwareVersion).toHaveBeenCalledWith({deviceId:17,version:"1.3.0"})})}),describe("getOsuFirmwareVersion",()=>{it("should call api with the correct parameters",()=>{const e={id:17,target_id:"857735172"},o=(0,s.getOsVersionCommandResponseMockBuilder)(c.DeviceModelId.STAX);r.getOsuFirmwareVersion(o,e),expect(a.getOsuFirmwareVersion).toHaveBeenCalledWith({deviceId:17,version:"1.3.0"})})}),describe("getLatestFirmwareVersion",()=>{it("should call api with the correct parameters",()=>{const e={id:17,target_id:"857735172"},o={id:159};r.getLatestFirmwareVersion(o,e),expect(a.getLatestFirmwareVersion).toHaveBeenCalledWith({currentFinalFirmwareId:159,deviceId:17})})}),describe("getNextFirmwareVersion",()=>{it("should call api with the correct parameters",()=>{const e={nextFinalFirmware:159};r.getNextFirmwareVersion(e),expect(a.getFirmwareVersionById).toHaveBeenCalledWith(159)})}),describe("getLanguagePackages",()=>{it("should call api with the correct parameters",()=>{const e={id:17,target_id:"857735172"},o={id:159};r.getLanguagePackages(e,o),expect(a.getLanguagePackages).toHaveBeenCalledWith({deviceId:17,currentFinalFirmwareId:159})})}),describe("getMcuList",()=>{it("should call api with the correct parameters",()=>{r.getMcuList(),expect(a.getMcuList).toHaveBeenCalled()})})});
1
+ "use strict";var i=require("purify-ts"),s=require("../../../api/command/os/__mocks__/GetOsVersionCommand"),c=require("../../../api/device/DeviceModel"),t=require("../../../api/device-action/__test-utils__/data"),n=require("../../manager-api/data/HttpManagerApiDataSource"),p=require("../../manager-api/model/Errors"),l=require("./DefaultManagerApiService");vi.mock("@internal/manager-api/data/HttpManagerApiDataSource");let r,a;describe("ManagerApiService",()=>{beforeEach(()=>{r=new n.HttpManagerApiDataSource({}),a=new l.DefaultManagerApiService(r)}),describe("getAppList",()=>{it("should call api with the correct parameters",()=>{const e=(0,s.getOsVersionCommandResponseMockBuilder)(c.DeviceModelId.STAX);a.getAppList(e),expect(r.getAppList).toHaveBeenCalledWith({targetId:"857735172",firmwareVersionName:"1.3.0"})})}),describe("getAppsByHash",()=>{describe("success cases",()=>{it("with no apps, should return an empty list",async()=>{r.getAppsByHash.mockResolvedValue((0,i.Right)([])),expect(await a.getAppsByHash([])).toEqual((0,i.Right)([]))}),it("with one app, should return the metadata",async()=>{r.getAppsByHash.mockResolvedValue((0,i.Right)([t.BTC_APP_METADATA])),expect(await a.getAppsByHash([t.BTC_APP.appFullHash])).toEqual((0,i.Right)([t.BTC_APP_METADATA]))}),it("with two app, should return the metadata of both apps",async()=>{r.getAppsByHash.mockResolvedValue((0,i.Right)([t.BTC_APP_METADATA,t.ETH_APP_METADATA])),expect(await a.getAppsByHash([t.BTC_APP,t.ETH_APP].map(e=>e.appFullHash))).toEqual((0,i.Right)([t.BTC_APP_METADATA,t.ETH_APP_METADATA]))}),it("with one app and one without `appFullHash`, should return the metadata of the correct app",async()=>{r.getAppsByHash.mockResolvedValue((0,i.Right)([t.BTC_APP_METADATA]));const e={...t.ETH_APP,appFullHash:""};expect(await a.getAppsByHash([t.BTC_APP,e].map(o=>o.appFullHash))).toEqual((0,i.Right)([t.BTC_APP_METADATA]))})}),describe("error cases",()=>{it("should return an error when the data source fails with a known error",async()=>{const e=new p.HttpFetchApiError(new Error("Failed to fetch data"));r.getAppsByHash.mockRejectedValue(e),expect(await a.getAppsByHash([t.BTC_APP.appFullHash])).toEqual((0,i.Left)(e))}),it("should return an error when the data source fails with an unknown error",async()=>{const e=new Error("unkown error");r.getAppsByHash.mockRejectedValue(e),expect(await a.getAppsByHash([t.BTC_APP.appFullHash])).toEqual((0,i.Left)(new p.HttpFetchApiError(e)))})})}),describe("getDeviceVersion",()=>{it("should call api with the correct parameters",()=>{const e=(0,s.getOsVersionCommandResponseMockBuilder)(c.DeviceModelId.STAX);a.getDeviceVersion(e),expect(r.getDeviceVersion).toHaveBeenCalledWith({targetId:"857735172"})})}),describe("getFirmwareVersion",()=>{it("should call api with the correct parameters",()=>{const e={id:17,target_id:"857735172"},o=(0,s.getOsVersionCommandResponseMockBuilder)(c.DeviceModelId.STAX);a.getFirmwareVersion(o,e),expect(r.getFirmwareVersion).toHaveBeenCalledWith({deviceId:17,version:"1.3.0"})})}),describe("getOsuFirmwareVersion",()=>{it("should call api with the correct parameters",()=>{const e={id:17,target_id:"857735172"},o=(0,s.getOsVersionCommandResponseMockBuilder)(c.DeviceModelId.STAX);a.getOsuFirmwareVersion(o,e),expect(r.getOsuFirmwareVersion).toHaveBeenCalledWith({deviceId:17,version:"1.3.0"})})}),describe("getLatestFirmwareVersion",()=>{it("should call api with the correct parameters",()=>{const e={id:17,target_id:"857735172"},o={id:159};a.getLatestFirmwareVersion(o,e),expect(r.getLatestFirmwareVersion).toHaveBeenCalledWith({currentFinalFirmwareId:159,deviceId:17})})}),describe("getNextFirmwareVersion",()=>{it("should call api with the correct parameters",()=>{const e={nextFinalFirmware:159};a.getNextFirmwareVersion(e),expect(r.getFirmwareVersionById).toHaveBeenCalledWith(159)})}),describe("getLanguagePackages",()=>{it("should call api with the correct parameters",()=>{const e={id:17,target_id:"857735172"},o={id:159};a.getLanguagePackages(e,o),expect(r.getLanguagePackages).toHaveBeenCalledWith({deviceId:17,currentFinalFirmwareId:159})})}),describe("getMcuList",()=>{it("should call api with the correct parameters",()=>{a.getMcuList(),expect(r.getMcuList).toHaveBeenCalled()})}),describe("getProvider",()=>{it("should return the provider",()=>{r.getProvider.mockReturnValue(1);const e=a.getProvider();expect(e).toEqual(1)})})});
2
2
  //# sourceMappingURL=DefaultManagerApiService.test.js.map