@ledgerhq/device-core 0.1.1-next.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 (375) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/CHANGELOG.md +12 -0
  3. package/LICENSE.txt +21 -0
  4. package/jest.config.json +13 -0
  5. package/lib/capabilities/isCustomLockScreenSupported.d.ts +5 -0
  6. package/lib/capabilities/isCustomLockScreenSupported.d.ts.map +1 -0
  7. package/lib/capabilities/isCustomLockScreenSupported.js +16 -0
  8. package/lib/capabilities/isCustomLockScreenSupported.js.map +1 -0
  9. package/lib/capabilities/isCustomLockScreenSupported.test.d.ts +2 -0
  10. package/lib/capabilities/isCustomLockScreenSupported.test.d.ts.map +1 -0
  11. package/lib/capabilities/isCustomLockScreenSupported.test.js +22 -0
  12. package/lib/capabilities/isCustomLockScreenSupported.test.js.map +1 -0
  13. package/lib/capabilities/isEditDeviceNameSupported.d.ts +3 -0
  14. package/lib/capabilities/isEditDeviceNameSupported.d.ts.map +1 -0
  15. package/lib/capabilities/isEditDeviceNameSupported.js +9 -0
  16. package/lib/capabilities/isEditDeviceNameSupported.js.map +1 -0
  17. package/lib/capabilities/isEditDeviceNameSupported.test.d.ts +2 -0
  18. package/lib/capabilities/isEditDeviceNameSupported.test.d.ts.map +1 -0
  19. package/lib/capabilities/isEditDeviceNameSupported.test.js +19 -0
  20. package/lib/capabilities/isEditDeviceNameSupported.test.js.map +1 -0
  21. package/lib/capabilities/isSyncOnboardingSupported.d.ts +3 -0
  22. package/lib/capabilities/isSyncOnboardingSupported.d.ts.map +1 -0
  23. package/lib/capabilities/isSyncOnboardingSupported.js +9 -0
  24. package/lib/capabilities/isSyncOnboardingSupported.js.map +1 -0
  25. package/lib/capabilities/isSyncOnboardingSupported.test.d.ts +2 -0
  26. package/lib/capabilities/isSyncOnboardingSupported.test.d.ts.map +1 -0
  27. package/lib/capabilities/isSyncOnboardingSupported.test.js +17 -0
  28. package/lib/capabilities/isSyncOnboardingSupported.test.js.map +1 -0
  29. package/lib/commands/entities/APDU.d.ts +9 -0
  30. package/lib/commands/entities/APDU.d.ts.map +1 -0
  31. package/lib/commands/entities/APDU.js +3 -0
  32. package/lib/commands/entities/APDU.js.map +1 -0
  33. package/lib/commands/entities/FirmwareInfoEntity.d.ts +16 -0
  34. package/lib/commands/entities/FirmwareInfoEntity.d.ts.map +1 -0
  35. package/lib/commands/entities/FirmwareInfoEntity.js +3 -0
  36. package/lib/commands/entities/FirmwareInfoEntity.js.map +1 -0
  37. package/lib/commands/use-cases/getDeviceName.d.ts +3 -0
  38. package/lib/commands/use-cases/getDeviceName.d.ts.map +1 -0
  39. package/lib/commands/use-cases/getDeviceName.js +48 -0
  40. package/lib/commands/use-cases/getDeviceName.js.map +1 -0
  41. package/lib/commands/use-cases/getVersion.d.ts +15 -0
  42. package/lib/commands/use-cases/getVersion.d.ts.map +1 -0
  43. package/lib/commands/use-cases/getVersion.js +31 -0
  44. package/lib/commands/use-cases/getVersion.js.map +1 -0
  45. package/lib/commands/use-cases/isBootloaderVersionSupported.d.ts +7 -0
  46. package/lib/commands/use-cases/isBootloaderVersionSupported.d.ts.map +1 -0
  47. package/lib/commands/use-cases/isBootloaderVersionSupported.js +20 -0
  48. package/lib/commands/use-cases/isBootloaderVersionSupported.js.map +1 -0
  49. package/lib/commands/use-cases/isBootloaderVersionSupported.test.d.ts +2 -0
  50. package/lib/commands/use-cases/isBootloaderVersionSupported.test.d.ts.map +1 -0
  51. package/lib/commands/use-cases/isBootloaderVersionSupported.test.js +53 -0
  52. package/lib/commands/use-cases/isBootloaderVersionSupported.test.js.map +1 -0
  53. package/lib/commands/use-cases/isDeviceLocalizationSupported.d.ts +3 -0
  54. package/lib/commands/use-cases/isDeviceLocalizationSupported.d.ts.map +1 -0
  55. package/lib/commands/use-cases/isDeviceLocalizationSupported.js +15 -0
  56. package/lib/commands/use-cases/isDeviceLocalizationSupported.js.map +1 -0
  57. package/lib/commands/use-cases/isDeviceLocalizationSupported.test.d.ts +2 -0
  58. package/lib/commands/use-cases/isDeviceLocalizationSupported.test.d.ts.map +1 -0
  59. package/lib/commands/use-cases/isDeviceLocalizationSupported.test.js +45 -0
  60. package/lib/commands/use-cases/isDeviceLocalizationSupported.test.js.map +1 -0
  61. package/lib/commands/use-cases/isHardwareVersionSupported.d.ts +7 -0
  62. package/lib/commands/use-cases/isHardwareVersionSupported.d.ts.map +1 -0
  63. package/lib/commands/use-cases/isHardwareVersionSupported.js +16 -0
  64. package/lib/commands/use-cases/isHardwareVersionSupported.js.map +1 -0
  65. package/lib/commands/use-cases/isHardwareVersionSupported.test.d.ts +2 -0
  66. package/lib/commands/use-cases/isHardwareVersionSupported.test.d.ts.map +1 -0
  67. package/lib/commands/use-cases/isHardwareVersionSupported.test.js +36 -0
  68. package/lib/commands/use-cases/isHardwareVersionSupported.test.js.map +1 -0
  69. package/lib/commands/use-cases/parseGetDeviceNameResponse.d.ts +3 -0
  70. package/lib/commands/use-cases/parseGetDeviceNameResponse.d.ts.map +1 -0
  71. package/lib/commands/use-cases/parseGetDeviceNameResponse.js +23 -0
  72. package/lib/commands/use-cases/parseGetDeviceNameResponse.js.map +1 -0
  73. package/lib/commands/use-cases/parseGetDeviceNameResponse.test.d.ts +2 -0
  74. package/lib/commands/use-cases/parseGetDeviceNameResponse.test.d.ts.map +1 -0
  75. package/lib/commands/use-cases/parseGetDeviceNameResponse.test.js +27 -0
  76. package/lib/commands/use-cases/parseGetDeviceNameResponse.test.js.map +1 -0
  77. package/lib/commands/use-cases/parseGetVersionResponse.d.ts +4 -0
  78. package/lib/commands/use-cases/parseGetVersionResponse.d.ts.map +1 -0
  79. package/lib/commands/use-cases/parseGetVersionResponse.js +108 -0
  80. package/lib/commands/use-cases/parseGetVersionResponse.js.map +1 -0
  81. package/lib/commands/use-cases/parseGetVersionResponse.test.d.ts +2 -0
  82. package/lib/commands/use-cases/parseGetVersionResponse.test.d.ts.map +1 -0
  83. package/lib/commands/use-cases/parseGetVersionResponse.test.js +105 -0
  84. package/lib/commands/use-cases/parseGetVersionResponse.test.js.map +1 -0
  85. package/lib/customLockScreen/screenSpecs.d.ts +30 -0
  86. package/lib/customLockScreen/screenSpecs.d.ts.map +1 -0
  87. package/lib/customLockScreen/screenSpecs.js +46 -0
  88. package/lib/customLockScreen/screenSpecs.js.map +1 -0
  89. package/lib/index.d.ts +23 -0
  90. package/lib/index.d.ts.map +1 -0
  91. package/lib/index.js +56 -0
  92. package/lib/index.js.map +1 -0
  93. package/lib/managerApi/entities/AppEntity.d.ts +62 -0
  94. package/lib/managerApi/entities/AppEntity.d.ts.map +1 -0
  95. package/lib/managerApi/entities/AppEntity.js +12 -0
  96. package/lib/managerApi/entities/AppEntity.js.map +1 -0
  97. package/lib/managerApi/entities/DeviceInfoEntity.d.ts +22 -0
  98. package/lib/managerApi/entities/DeviceInfoEntity.d.ts.map +1 -0
  99. package/lib/managerApi/entities/DeviceInfoEntity.js +3 -0
  100. package/lib/managerApi/entities/DeviceInfoEntity.js.map +1 -0
  101. package/lib/managerApi/entities/DeviceVersionEntity.d.ts +17 -0
  102. package/lib/managerApi/entities/DeviceVersionEntity.d.ts.map +1 -0
  103. package/lib/managerApi/entities/DeviceVersionEntity.js +3 -0
  104. package/lib/managerApi/entities/DeviceVersionEntity.js.map +1 -0
  105. package/lib/managerApi/entities/FirmwareUpdateContextEntity.d.ts +42 -0
  106. package/lib/managerApi/entities/FirmwareUpdateContextEntity.d.ts.map +1 -0
  107. package/lib/managerApi/entities/FirmwareUpdateContextEntity.js +3 -0
  108. package/lib/managerApi/entities/FirmwareUpdateContextEntity.js.map +1 -0
  109. package/lib/managerApi/entities/Id.d.ts +2 -0
  110. package/lib/managerApi/entities/Id.d.ts.map +1 -0
  111. package/lib/managerApi/entities/Id.js +3 -0
  112. package/lib/managerApi/entities/Id.js.map +1 -0
  113. package/lib/managerApi/entities/LanguagePackageEntity.d.ts +20 -0
  114. package/lib/managerApi/entities/LanguagePackageEntity.d.ts.map +1 -0
  115. package/lib/managerApi/entities/LanguagePackageEntity.js +3 -0
  116. package/lib/managerApi/entities/LanguagePackageEntity.js.map +1 -0
  117. package/lib/managerApi/entities/mocks/aDeviceInfo.d.ts +3 -0
  118. package/lib/managerApi/entities/mocks/aDeviceInfo.d.ts.map +1 -0
  119. package/lib/managerApi/entities/mocks/aDeviceInfo.js +8 -0
  120. package/lib/managerApi/entities/mocks/aDeviceInfo.js.map +1 -0
  121. package/lib/managerApi/entities/mocks/aDeviceVersion.d.ts +3 -0
  122. package/lib/managerApi/entities/mocks/aDeviceVersion.d.ts.map +1 -0
  123. package/lib/managerApi/entities/mocks/aDeviceVersion.js +8 -0
  124. package/lib/managerApi/entities/mocks/aDeviceVersion.js.map +1 -0
  125. package/lib/managerApi/entities/mocks/aFinalFirmware.d.ts +3 -0
  126. package/lib/managerApi/entities/mocks/aFinalFirmware.d.ts.map +1 -0
  127. package/lib/managerApi/entities/mocks/aFinalFirmware.js +8 -0
  128. package/lib/managerApi/entities/mocks/aFinalFirmware.js.map +1 -0
  129. package/lib/managerApi/entities/mocks/aOsuFirmware.d.ts +19 -0
  130. package/lib/managerApi/entities/mocks/aOsuFirmware.d.ts.map +1 -0
  131. package/lib/managerApi/entities/mocks/aOsuFirmware.js +8 -0
  132. package/lib/managerApi/entities/mocks/aOsuFirmware.js.map +1 -0
  133. package/lib/managerApi/repositories/HttpManagerApiRepository.d.ts +18 -0
  134. package/lib/managerApi/repositories/HttpManagerApiRepository.d.ts.map +1 -0
  135. package/lib/managerApi/repositories/HttpManagerApiRepository.js +204 -0
  136. package/lib/managerApi/repositories/HttpManagerApiRepository.js.map +1 -0
  137. package/lib/managerApi/repositories/HttpManagerApiRepository.test.d.ts +2 -0
  138. package/lib/managerApi/repositories/HttpManagerApiRepository.test.d.ts.map +1 -0
  139. package/lib/managerApi/repositories/HttpManagerApiRepository.test.js +402 -0
  140. package/lib/managerApi/repositories/HttpManagerApiRepository.test.js.map +1 -0
  141. package/lib/managerApi/repositories/ManagerApiRepository.d.ts +54 -0
  142. package/lib/managerApi/repositories/ManagerApiRepository.d.ts.map +1 -0
  143. package/lib/managerApi/repositories/ManagerApiRepository.js +3 -0
  144. package/lib/managerApi/repositories/ManagerApiRepository.js.map +1 -0
  145. package/lib/managerApi/repositories/StubManagerApiRepository.d.ts +15 -0
  146. package/lib/managerApi/repositories/StubManagerApiRepository.d.ts.map +1 -0
  147. package/lib/managerApi/repositories/StubManagerApiRepository.js +44 -0
  148. package/lib/managerApi/repositories/StubManagerApiRepository.js.map +1 -0
  149. package/lib/managerApi/use-cases/fetchMcus.d.ts +3 -0
  150. package/lib/managerApi/use-cases/fetchMcus.d.ts.map +1 -0
  151. package/lib/managerApi/use-cases/fetchMcus.js +8 -0
  152. package/lib/managerApi/use-cases/fetchMcus.js.map +1 -0
  153. package/lib/managerApi/use-cases/getLatestFirmwareForDevice.d.ts +12 -0
  154. package/lib/managerApi/use-cases/getLatestFirmwareForDevice.d.ts.map +1 -0
  155. package/lib/managerApi/use-cases/getLatestFirmwareForDevice.js +62 -0
  156. package/lib/managerApi/use-cases/getLatestFirmwareForDevice.js.map +1 -0
  157. package/lib/managerApi/use-cases/getLatestFirmwareForDevice.test.d.ts +2 -0
  158. package/lib/managerApi/use-cases/getLatestFirmwareForDevice.test.d.ts.map +1 -0
  159. package/lib/managerApi/use-cases/getLatestFirmwareForDevice.test.js +178 -0
  160. package/lib/managerApi/use-cases/getLatestFirmwareForDevice.test.js.map +1 -0
  161. package/lib/managerApi/use-cases/getProviderIdUseCase.d.ts +7 -0
  162. package/lib/managerApi/use-cases/getProviderIdUseCase.d.ts.map +1 -0
  163. package/lib/managerApi/use-cases/getProviderIdUseCase.js +23 -0
  164. package/lib/managerApi/use-cases/getProviderIdUseCase.js.map +1 -0
  165. package/lib/managerApi/use-cases/getUserHashes.d.ts +5 -0
  166. package/lib/managerApi/use-cases/getUserHashes.d.ts.map +1 -0
  167. package/lib/managerApi/use-cases/getUserHashes.js +33 -0
  168. package/lib/managerApi/use-cases/getUserHashes.js.map +1 -0
  169. package/lib-es/capabilities/isCustomLockScreenSupported.d.ts +5 -0
  170. package/lib-es/capabilities/isCustomLockScreenSupported.d.ts.map +1 -0
  171. package/lib-es/capabilities/isCustomLockScreenSupported.js +12 -0
  172. package/lib-es/capabilities/isCustomLockScreenSupported.js.map +1 -0
  173. package/lib-es/capabilities/isCustomLockScreenSupported.test.d.ts +2 -0
  174. package/lib-es/capabilities/isCustomLockScreenSupported.test.d.ts.map +1 -0
  175. package/lib-es/capabilities/isCustomLockScreenSupported.test.js +20 -0
  176. package/lib-es/capabilities/isCustomLockScreenSupported.test.js.map +1 -0
  177. package/lib-es/capabilities/isEditDeviceNameSupported.d.ts +3 -0
  178. package/lib-es/capabilities/isEditDeviceNameSupported.d.ts.map +1 -0
  179. package/lib-es/capabilities/isEditDeviceNameSupported.js +5 -0
  180. package/lib-es/capabilities/isEditDeviceNameSupported.js.map +1 -0
  181. package/lib-es/capabilities/isEditDeviceNameSupported.test.d.ts +2 -0
  182. package/lib-es/capabilities/isEditDeviceNameSupported.test.d.ts.map +1 -0
  183. package/lib-es/capabilities/isEditDeviceNameSupported.test.js +17 -0
  184. package/lib-es/capabilities/isEditDeviceNameSupported.test.js.map +1 -0
  185. package/lib-es/capabilities/isSyncOnboardingSupported.d.ts +3 -0
  186. package/lib-es/capabilities/isSyncOnboardingSupported.d.ts.map +1 -0
  187. package/lib-es/capabilities/isSyncOnboardingSupported.js +5 -0
  188. package/lib-es/capabilities/isSyncOnboardingSupported.js.map +1 -0
  189. package/lib-es/capabilities/isSyncOnboardingSupported.test.d.ts +2 -0
  190. package/lib-es/capabilities/isSyncOnboardingSupported.test.d.ts.map +1 -0
  191. package/lib-es/capabilities/isSyncOnboardingSupported.test.js +15 -0
  192. package/lib-es/capabilities/isSyncOnboardingSupported.test.js.map +1 -0
  193. package/lib-es/commands/entities/APDU.d.ts +9 -0
  194. package/lib-es/commands/entities/APDU.d.ts.map +1 -0
  195. package/lib-es/commands/entities/APDU.js +2 -0
  196. package/lib-es/commands/entities/APDU.js.map +1 -0
  197. package/lib-es/commands/entities/FirmwareInfoEntity.d.ts +16 -0
  198. package/lib-es/commands/entities/FirmwareInfoEntity.d.ts.map +1 -0
  199. package/lib-es/commands/entities/FirmwareInfoEntity.js +2 -0
  200. package/lib-es/commands/entities/FirmwareInfoEntity.js.map +1 -0
  201. package/lib-es/commands/use-cases/getDeviceName.d.ts +3 -0
  202. package/lib-es/commands/use-cases/getDeviceName.d.ts.map +1 -0
  203. package/lib-es/commands/use-cases/getDeviceName.js +44 -0
  204. package/lib-es/commands/use-cases/getDeviceName.js.map +1 -0
  205. package/lib-es/commands/use-cases/getVersion.d.ts +15 -0
  206. package/lib-es/commands/use-cases/getVersion.d.ts.map +1 -0
  207. package/lib-es/commands/use-cases/getVersion.js +27 -0
  208. package/lib-es/commands/use-cases/getVersion.js.map +1 -0
  209. package/lib-es/commands/use-cases/isBootloaderVersionSupported.d.ts +7 -0
  210. package/lib-es/commands/use-cases/isBootloaderVersionSupported.d.ts.map +1 -0
  211. package/lib-es/commands/use-cases/isBootloaderVersionSupported.js +16 -0
  212. package/lib-es/commands/use-cases/isBootloaderVersionSupported.js.map +1 -0
  213. package/lib-es/commands/use-cases/isBootloaderVersionSupported.test.d.ts +2 -0
  214. package/lib-es/commands/use-cases/isBootloaderVersionSupported.test.d.ts.map +1 -0
  215. package/lib-es/commands/use-cases/isBootloaderVersionSupported.test.js +51 -0
  216. package/lib-es/commands/use-cases/isBootloaderVersionSupported.test.js.map +1 -0
  217. package/lib-es/commands/use-cases/isDeviceLocalizationSupported.d.ts +3 -0
  218. package/lib-es/commands/use-cases/isDeviceLocalizationSupported.d.ts.map +1 -0
  219. package/lib-es/commands/use-cases/isDeviceLocalizationSupported.js +11 -0
  220. package/lib-es/commands/use-cases/isDeviceLocalizationSupported.js.map +1 -0
  221. package/lib-es/commands/use-cases/isDeviceLocalizationSupported.test.d.ts +2 -0
  222. package/lib-es/commands/use-cases/isDeviceLocalizationSupported.test.d.ts.map +1 -0
  223. package/lib-es/commands/use-cases/isDeviceLocalizationSupported.test.js +43 -0
  224. package/lib-es/commands/use-cases/isDeviceLocalizationSupported.test.js.map +1 -0
  225. package/lib-es/commands/use-cases/isHardwareVersionSupported.d.ts +7 -0
  226. package/lib-es/commands/use-cases/isHardwareVersionSupported.d.ts.map +1 -0
  227. package/lib-es/commands/use-cases/isHardwareVersionSupported.js +12 -0
  228. package/lib-es/commands/use-cases/isHardwareVersionSupported.js.map +1 -0
  229. package/lib-es/commands/use-cases/isHardwareVersionSupported.test.d.ts +2 -0
  230. package/lib-es/commands/use-cases/isHardwareVersionSupported.test.d.ts.map +1 -0
  231. package/lib-es/commands/use-cases/isHardwareVersionSupported.test.js +34 -0
  232. package/lib-es/commands/use-cases/isHardwareVersionSupported.test.js.map +1 -0
  233. package/lib-es/commands/use-cases/parseGetDeviceNameResponse.d.ts +3 -0
  234. package/lib-es/commands/use-cases/parseGetDeviceNameResponse.d.ts.map +1 -0
  235. package/lib-es/commands/use-cases/parseGetDeviceNameResponse.js +19 -0
  236. package/lib-es/commands/use-cases/parseGetDeviceNameResponse.js.map +1 -0
  237. package/lib-es/commands/use-cases/parseGetDeviceNameResponse.test.d.ts +2 -0
  238. package/lib-es/commands/use-cases/parseGetDeviceNameResponse.test.d.ts.map +1 -0
  239. package/lib-es/commands/use-cases/parseGetDeviceNameResponse.test.js +25 -0
  240. package/lib-es/commands/use-cases/parseGetDeviceNameResponse.test.js.map +1 -0
  241. package/lib-es/commands/use-cases/parseGetVersionResponse.d.ts +4 -0
  242. package/lib-es/commands/use-cases/parseGetVersionResponse.d.ts.map +1 -0
  243. package/lib-es/commands/use-cases/parseGetVersionResponse.js +104 -0
  244. package/lib-es/commands/use-cases/parseGetVersionResponse.js.map +1 -0
  245. package/lib-es/commands/use-cases/parseGetVersionResponse.test.d.ts +2 -0
  246. package/lib-es/commands/use-cases/parseGetVersionResponse.test.d.ts.map +1 -0
  247. package/lib-es/commands/use-cases/parseGetVersionResponse.test.js +103 -0
  248. package/lib-es/commands/use-cases/parseGetVersionResponse.test.js.map +1 -0
  249. package/lib-es/customLockScreen/screenSpecs.d.ts +30 -0
  250. package/lib-es/customLockScreen/screenSpecs.d.ts.map +1 -0
  251. package/lib-es/customLockScreen/screenSpecs.js +40 -0
  252. package/lib-es/customLockScreen/screenSpecs.js.map +1 -0
  253. package/lib-es/index.d.ts +23 -0
  254. package/lib-es/index.d.ts.map +1 -0
  255. package/lib-es/index.js +21 -0
  256. package/lib-es/index.js.map +1 -0
  257. package/lib-es/managerApi/entities/AppEntity.d.ts +62 -0
  258. package/lib-es/managerApi/entities/AppEntity.d.ts.map +1 -0
  259. package/lib-es/managerApi/entities/AppEntity.js +9 -0
  260. package/lib-es/managerApi/entities/AppEntity.js.map +1 -0
  261. package/lib-es/managerApi/entities/DeviceInfoEntity.d.ts +22 -0
  262. package/lib-es/managerApi/entities/DeviceInfoEntity.d.ts.map +1 -0
  263. package/lib-es/managerApi/entities/DeviceInfoEntity.js +2 -0
  264. package/lib-es/managerApi/entities/DeviceInfoEntity.js.map +1 -0
  265. package/lib-es/managerApi/entities/DeviceVersionEntity.d.ts +17 -0
  266. package/lib-es/managerApi/entities/DeviceVersionEntity.d.ts.map +1 -0
  267. package/lib-es/managerApi/entities/DeviceVersionEntity.js +2 -0
  268. package/lib-es/managerApi/entities/DeviceVersionEntity.js.map +1 -0
  269. package/lib-es/managerApi/entities/FirmwareUpdateContextEntity.d.ts +42 -0
  270. package/lib-es/managerApi/entities/FirmwareUpdateContextEntity.d.ts.map +1 -0
  271. package/lib-es/managerApi/entities/FirmwareUpdateContextEntity.js +2 -0
  272. package/lib-es/managerApi/entities/FirmwareUpdateContextEntity.js.map +1 -0
  273. package/lib-es/managerApi/entities/Id.d.ts +2 -0
  274. package/lib-es/managerApi/entities/Id.d.ts.map +1 -0
  275. package/lib-es/managerApi/entities/Id.js +2 -0
  276. package/lib-es/managerApi/entities/Id.js.map +1 -0
  277. package/lib-es/managerApi/entities/LanguagePackageEntity.d.ts +20 -0
  278. package/lib-es/managerApi/entities/LanguagePackageEntity.d.ts.map +1 -0
  279. package/lib-es/managerApi/entities/LanguagePackageEntity.js +2 -0
  280. package/lib-es/managerApi/entities/LanguagePackageEntity.js.map +1 -0
  281. package/lib-es/managerApi/entities/mocks/aDeviceInfo.d.ts +3 -0
  282. package/lib-es/managerApi/entities/mocks/aDeviceInfo.d.ts.map +1 -0
  283. package/lib-es/managerApi/entities/mocks/aDeviceInfo.js +4 -0
  284. package/lib-es/managerApi/entities/mocks/aDeviceInfo.js.map +1 -0
  285. package/lib-es/managerApi/entities/mocks/aDeviceVersion.d.ts +3 -0
  286. package/lib-es/managerApi/entities/mocks/aDeviceVersion.d.ts.map +1 -0
  287. package/lib-es/managerApi/entities/mocks/aDeviceVersion.js +4 -0
  288. package/lib-es/managerApi/entities/mocks/aDeviceVersion.js.map +1 -0
  289. package/lib-es/managerApi/entities/mocks/aFinalFirmware.d.ts +3 -0
  290. package/lib-es/managerApi/entities/mocks/aFinalFirmware.d.ts.map +1 -0
  291. package/lib-es/managerApi/entities/mocks/aFinalFirmware.js +4 -0
  292. package/lib-es/managerApi/entities/mocks/aFinalFirmware.js.map +1 -0
  293. package/lib-es/managerApi/entities/mocks/aOsuFirmware.d.ts +19 -0
  294. package/lib-es/managerApi/entities/mocks/aOsuFirmware.d.ts.map +1 -0
  295. package/lib-es/managerApi/entities/mocks/aOsuFirmware.js +4 -0
  296. package/lib-es/managerApi/entities/mocks/aOsuFirmware.js.map +1 -0
  297. package/lib-es/managerApi/repositories/HttpManagerApiRepository.d.ts +18 -0
  298. package/lib-es/managerApi/repositories/HttpManagerApiRepository.d.ts.map +1 -0
  299. package/lib-es/managerApi/repositories/HttpManagerApiRepository.js +197 -0
  300. package/lib-es/managerApi/repositories/HttpManagerApiRepository.js.map +1 -0
  301. package/lib-es/managerApi/repositories/HttpManagerApiRepository.test.d.ts +2 -0
  302. package/lib-es/managerApi/repositories/HttpManagerApiRepository.test.d.ts.map +1 -0
  303. package/lib-es/managerApi/repositories/HttpManagerApiRepository.test.js +400 -0
  304. package/lib-es/managerApi/repositories/HttpManagerApiRepository.test.js.map +1 -0
  305. package/lib-es/managerApi/repositories/ManagerApiRepository.d.ts +54 -0
  306. package/lib-es/managerApi/repositories/ManagerApiRepository.d.ts.map +1 -0
  307. package/lib-es/managerApi/repositories/ManagerApiRepository.js +2 -0
  308. package/lib-es/managerApi/repositories/ManagerApiRepository.js.map +1 -0
  309. package/lib-es/managerApi/repositories/StubManagerApiRepository.d.ts +15 -0
  310. package/lib-es/managerApi/repositories/StubManagerApiRepository.d.ts.map +1 -0
  311. package/lib-es/managerApi/repositories/StubManagerApiRepository.js +40 -0
  312. package/lib-es/managerApi/repositories/StubManagerApiRepository.js.map +1 -0
  313. package/lib-es/managerApi/use-cases/fetchMcus.d.ts +3 -0
  314. package/lib-es/managerApi/use-cases/fetchMcus.d.ts.map +1 -0
  315. package/lib-es/managerApi/use-cases/fetchMcus.js +4 -0
  316. package/lib-es/managerApi/use-cases/fetchMcus.js.map +1 -0
  317. package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.d.ts +12 -0
  318. package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.d.ts.map +1 -0
  319. package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.js +58 -0
  320. package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.js.map +1 -0
  321. package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.test.d.ts +2 -0
  322. package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.test.d.ts.map +1 -0
  323. package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.test.js +176 -0
  324. package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.test.js.map +1 -0
  325. package/lib-es/managerApi/use-cases/getProviderIdUseCase.d.ts +7 -0
  326. package/lib-es/managerApi/use-cases/getProviderIdUseCase.d.ts.map +1 -0
  327. package/lib-es/managerApi/use-cases/getProviderIdUseCase.js +19 -0
  328. package/lib-es/managerApi/use-cases/getProviderIdUseCase.js.map +1 -0
  329. package/lib-es/managerApi/use-cases/getUserHashes.d.ts +5 -0
  330. package/lib-es/managerApi/use-cases/getUserHashes.d.ts.map +1 -0
  331. package/lib-es/managerApi/use-cases/getUserHashes.js +26 -0
  332. package/lib-es/managerApi/use-cases/getUserHashes.js.map +1 -0
  333. package/package.json +67 -0
  334. package/src/capabilities/isCustomLockScreenSupported.test.ts +25 -0
  335. package/src/capabilities/isCustomLockScreenSupported.ts +17 -0
  336. package/src/capabilities/isEditDeviceNameSupported.test.ts +18 -0
  337. package/src/capabilities/isEditDeviceNameSupported.ts +5 -0
  338. package/src/capabilities/isSyncOnboardingSupported.test.ts +16 -0
  339. package/src/capabilities/isSyncOnboardingSupported.ts +5 -0
  340. package/src/commands/entities/APDU.ts +12 -0
  341. package/src/commands/entities/FirmwareInfoEntity.ts +14 -0
  342. package/src/commands/use-cases/getDeviceName.ts +38 -0
  343. package/src/commands/use-cases/getVersion.ts +23 -0
  344. package/src/commands/use-cases/isBootloaderVersionSupported.test.ts +58 -0
  345. package/src/commands/use-cases/isBootloaderVersionSupported.ts +24 -0
  346. package/src/commands/use-cases/isDeviceLocalizationSupported.test.ts +48 -0
  347. package/src/commands/use-cases/isDeviceLocalizationSupported.ts +20 -0
  348. package/src/commands/use-cases/isHardwareVersionSupported.test.ts +39 -0
  349. package/src/commands/use-cases/isHardwareVersionSupported.ts +20 -0
  350. package/src/commands/use-cases/parseGetDeviceNameResponse.test.ts +35 -0
  351. package/src/commands/use-cases/parseGetDeviceNameResponse.ts +20 -0
  352. package/src/commands/use-cases/parseGetVersionResponse.test.ts +123 -0
  353. package/src/commands/use-cases/parseGetVersionResponse.ts +121 -0
  354. package/src/customLockScreen/screenSpecs.ts +87 -0
  355. package/src/index.ts +33 -0
  356. package/src/managerApi/entities/AppEntity.ts +66 -0
  357. package/src/managerApi/entities/DeviceInfoEntity.ts +26 -0
  358. package/src/managerApi/entities/DeviceVersionEntity.ts +17 -0
  359. package/src/managerApi/entities/FirmwareUpdateContextEntity.ts +44 -0
  360. package/src/managerApi/entities/Id.ts +1 -0
  361. package/src/managerApi/entities/LanguagePackageEntity.ts +21 -0
  362. package/src/managerApi/entities/mocks/aDeviceInfo.ts +16 -0
  363. package/src/managerApi/entities/mocks/aDeviceVersion.ts +22 -0
  364. package/src/managerApi/entities/mocks/aFinalFirmware.ts +25 -0
  365. package/src/managerApi/entities/mocks/aOsuFirmware.ts +22 -0
  366. package/src/managerApi/repositories/HttpManagerApiRepository.test.ts +494 -0
  367. package/src/managerApi/repositories/HttpManagerApiRepository.ts +284 -0
  368. package/src/managerApi/repositories/ManagerApiRepository.ts +68 -0
  369. package/src/managerApi/repositories/StubManagerApiRepository.ts +49 -0
  370. package/src/managerApi/use-cases/fetchMcus.ts +5 -0
  371. package/src/managerApi/use-cases/getLatestFirmwareForDevice.test.ts +196 -0
  372. package/src/managerApi/use-cases/getLatestFirmwareForDevice.ts +66 -0
  373. package/src/managerApi/use-cases/getProviderIdUseCase.ts +24 -0
  374. package/src/managerApi/use-cases/getUserHashes.ts +30 -0
  375. package/tsconfig.json +16 -0
@@ -0,0 +1,44 @@
1
+ import { Id } from "./Id";
2
+
3
+ type BaseFirmware = {
4
+ id: Id;
5
+ name: string;
6
+ description: string | null | undefined;
7
+ display_name: string | null | undefined;
8
+ notes: string | null | undefined;
9
+ perso: string;
10
+ firmware: string;
11
+ firmware_key: string;
12
+ hash: string;
13
+ date_creation: string;
14
+ date_last_modified: string;
15
+ device_versions: Array<Id>;
16
+ providers: Array<Id>;
17
+ };
18
+
19
+ /**
20
+ *
21
+ */
22
+ export type OsuFirmware = BaseFirmware & {
23
+ next_se_firmware_final_version: Id;
24
+ previous_se_firmware_final_version: Array<Id>;
25
+ };
26
+
27
+ /**
28
+ *
29
+ */
30
+ export type FinalFirmware = BaseFirmware & {
31
+ version: string;
32
+ se_firmware: Id;
33
+ osu_versions: Array<OsuFirmware>;
34
+ mcu_versions: Array<Id>;
35
+ application_versions: Array<Id>;
36
+ bytes?: number;
37
+ updateAvailable?: FirmwareUpdateContextEntity | null | undefined;
38
+ };
39
+
40
+ export type FirmwareUpdateContextEntity = {
41
+ osu: OsuFirmware;
42
+ final: FinalFirmware;
43
+ shouldFlashMCU: boolean;
44
+ };
@@ -0,0 +1 @@
1
+ export type Id = number;
@@ -0,0 +1,21 @@
1
+ export type Language = "french" | "english" | "spanish";
2
+
3
+ export type LanguagePackageEntity = {
4
+ language: Language;
5
+ languagePackageVersionId: number;
6
+ version: string; // "0.0.1"
7
+ language_package_id: number;
8
+ apdu_install_url: string;
9
+ apdu_uninstall_url: string; // <= Useless
10
+ device_versions: number[];
11
+ se_firmware_final_versions: number[];
12
+ bytes: number;
13
+ date_creation: string;
14
+ date_last_modified: string;
15
+ };
16
+
17
+ export type LanguagePackageResponseEntity = {
18
+ id: number;
19
+ language: Language;
20
+ language_package_version: LanguagePackageEntity[];
21
+ };
@@ -0,0 +1,16 @@
1
+ import type { DeviceInfo } from "@ledgerhq/types-live";
2
+
3
+ export const aDeviceInfoBuilder = (props?: Partial<DeviceInfo>): DeviceInfo => {
4
+ return {
5
+ mcuVersion: "A_MCU_VERSION",
6
+ version: "A_VERSION",
7
+ majMin: "A_MAJ_MIN",
8
+ targetId: "0.0",
9
+ isBootloader: false,
10
+ isOSU: true,
11
+ providerName: undefined,
12
+ managerAllowed: false,
13
+ pinValidated: true,
14
+ ...props,
15
+ };
16
+ };
@@ -0,0 +1,22 @@
1
+ import { DeviceVersionEntity } from "../DeviceVersionEntity";
2
+
3
+ export const aDeviceVersionBuilder = (
4
+ props?: Partial<DeviceVersionEntity>,
5
+ ): DeviceVersionEntity => {
6
+ return {
7
+ name: "Ledger Nano S",
8
+ device: 3,
9
+ providers: [],
10
+ id: 5,
11
+ display_name: "Ledger Nano S",
12
+ target_id: "0x31100004",
13
+ description: "Ledger Nano S",
14
+ mcu_versions: [1.7],
15
+ se_firmware_final_versions: [1.2],
16
+ osu_versions: [],
17
+ application_versions: [],
18
+ date_creation: "2020-04-30T13:50:00.000Z",
19
+ date_last_modified: "2020-04-30T13:50:00.000Z",
20
+ ...props,
21
+ };
22
+ };
@@ -0,0 +1,25 @@
1
+ import { FinalFirmware } from "../FirmwareUpdateContextEntity";
2
+
3
+ export const aFinalFirmwareBuilder = (props?: Partial<FinalFirmware>): FinalFirmware => {
4
+ return {
5
+ id: 1,
6
+ name: "FINAL",
7
+ description: null,
8
+ display_name: null,
9
+ notes: null,
10
+ perso: "",
11
+ firmware: "",
12
+ firmware_key: "",
13
+ hash: "",
14
+ date_creation: "",
15
+ date_last_modified: "",
16
+ device_versions: [],
17
+ providers: [],
18
+ version: "0",
19
+ se_firmware: 1,
20
+ osu_versions: [],
21
+ mcu_versions: [],
22
+ application_versions: [],
23
+ ...props,
24
+ };
25
+ };
@@ -0,0 +1,22 @@
1
+ import { OsuFirmware } from "../FirmwareUpdateContextEntity";
2
+
3
+ export function aOsuFirmwareBuilder(props?: Partial<OsuFirmware>) {
4
+ return {
5
+ id: 0,
6
+ name: "",
7
+ display_name: "",
8
+ notes: "",
9
+ perso: "",
10
+ firmware: "",
11
+ firmware_key: "",
12
+ hash: "",
13
+ device_versions: [],
14
+ next_se_firmware_final_version: 0,
15
+ providers: [],
16
+ date_creation: "",
17
+ date_last_modified: "",
18
+ description: "",
19
+ previous_se_firmware_final_version: [],
20
+ ...props,
21
+ };
22
+ }
@@ -0,0 +1,494 @@
1
+ import { FirmwareNotRecognized, NetworkDown } from "@ledgerhq/errors";
2
+ import { FinalFirmware } from "@ledgerhq/types-live";
3
+ import { DeviceInfoEntity } from "../entities/DeviceInfoEntity";
4
+ import { DeviceVersionEntity } from "../entities/DeviceVersionEntity";
5
+ import {
6
+ LanguagePackageEntity,
7
+ LanguagePackageResponseEntity,
8
+ } from "../entities/LanguagePackageEntity";
9
+ import { HttpManagerApiRepository } from "./HttpManagerApiRepository";
10
+
11
+ const getUserHashesModule = jest.requireActual("../use-cases/getUserHashes");
12
+ const networkModule = jest.requireActual("@ledgerhq/live-network/network");
13
+
14
+ describe("HttpManagerApiRepository", () => {
15
+ let httpManagerApiRepository: HttpManagerApiRepository;
16
+ let getUserHashesSpy: jest.SpyInstance;
17
+ let networkSpy: jest.SpyInstance;
18
+
19
+ beforeEach(() => {
20
+ httpManagerApiRepository = new HttpManagerApiRepository("http://managerApiBase.com", "1.2.3");
21
+ getUserHashesSpy = jest.spyOn(getUserHashesModule, "getUserHashes");
22
+ networkSpy = jest.spyOn(networkModule, "default");
23
+ networkSpy.mockImplementation(jest.fn());
24
+ });
25
+
26
+ afterEach(() => {
27
+ jest.resetAllMocks();
28
+ });
29
+
30
+ test("fetchLatestFirmware should call network() with the correct parameters", async () => {
31
+ getUserHashesSpy.mockReturnValue({
32
+ firmwareSalt: "mockedFirmwareSalt",
33
+ });
34
+ const params: Parameters<typeof httpManagerApiRepository.fetchLatestFirmware>[0] = {
35
+ current_se_firmware_final_version: 888,
36
+ device_version: 123,
37
+ providerId: 12,
38
+ userId: "userId",
39
+ };
40
+
41
+ await httpManagerApiRepository.fetchLatestFirmware(params).catch(() => {
42
+ // ignore the error in this test case
43
+ });
44
+
45
+ expect(networkSpy).toHaveBeenCalledWith({
46
+ method: "POST",
47
+ url: "http://managerApiBase.com/get_latest_firmware?livecommonversion=1.2.3&salt=mockedFirmwareSalt",
48
+ data: {
49
+ current_se_firmware_final_version: 888,
50
+ device_version: 123,
51
+ provider: 12,
52
+ },
53
+ });
54
+ });
55
+
56
+ test("fetchLatestFirmware should return null if data.result is null", async () => {
57
+ getUserHashesSpy.mockReturnValue({
58
+ firmwareSalt: "mockedFirmwareSalt",
59
+ });
60
+ const params: Parameters<typeof httpManagerApiRepository.fetchLatestFirmware>[0] = {
61
+ current_se_firmware_final_version: 888,
62
+ device_version: 123,
63
+ providerId: 12,
64
+ userId: "userId",
65
+ };
66
+ networkSpy.mockResolvedValue({
67
+ data: {
68
+ result: "null",
69
+ },
70
+ });
71
+
72
+ const result = await httpManagerApiRepository.fetchLatestFirmware(params);
73
+
74
+ expect(result).toBeNull();
75
+ });
76
+
77
+ test("fetchLatestFirmware should return data.se_firmware_osu_version", async () => {
78
+ getUserHashesSpy.mockReturnValue({
79
+ firmwareSalt: "mockedFirmwareSalt",
80
+ });
81
+ const params: Parameters<typeof httpManagerApiRepository.fetchLatestFirmware>[0] = {
82
+ current_se_firmware_final_version: 888,
83
+ device_version: 123,
84
+ providerId: 12,
85
+ userId: "userId",
86
+ };
87
+ networkSpy.mockResolvedValue({
88
+ data: {
89
+ result: "mockedResult",
90
+ se_firmware_osu_version: "mockedOsuFirmware",
91
+ },
92
+ });
93
+
94
+ const result = await httpManagerApiRepository.fetchLatestFirmware(params);
95
+
96
+ expect(result).toBe("mockedOsuFirmware");
97
+ });
98
+
99
+ test("fetchMcus should call network() with the correct parameters", async () => {
100
+ await httpManagerApiRepository.fetchMcus().catch(() => {
101
+ // ignore the error in this test case
102
+ });
103
+
104
+ expect(networkSpy).toHaveBeenCalledWith({
105
+ method: "GET",
106
+ url: "http://managerApiBase.com/mcu_versions?livecommonversion=1.2.3",
107
+ });
108
+ });
109
+
110
+ test("fetchMcus should return data", async () => {
111
+ networkSpy.mockResolvedValue({
112
+ data: "mockedData",
113
+ });
114
+
115
+ const result = await httpManagerApiRepository.fetchMcus();
116
+
117
+ expect(result).toBe("mockedData");
118
+ });
119
+
120
+ test("getDeviceVersion should call network() with the correct parameters", async () => {
121
+ const params: Parameters<typeof httpManagerApiRepository.getDeviceVersion>[0] = {
122
+ targetId: 123,
123
+ providerId: 12,
124
+ };
125
+
126
+ await httpManagerApiRepository.getDeviceVersion(params).catch(() => {
127
+ // ignore the error in this test case
128
+ });
129
+
130
+ expect(networkSpy).toHaveBeenCalledWith({
131
+ method: "POST",
132
+ url: "http://managerApiBase.com/get_device_version?livecommonversion=1.2.3",
133
+ data: {
134
+ target_id: 123,
135
+ provider: 12,
136
+ },
137
+ });
138
+ });
139
+
140
+ test("getDeviceVersion should throw a FirmwareNotRecognized error if status is 404", async () => {
141
+ networkSpy.mockRejectedValue({
142
+ status: 404,
143
+ });
144
+
145
+ await expect(
146
+ httpManagerApiRepository.getDeviceVersion({
147
+ targetId: 123,
148
+ providerId: 12,
149
+ }),
150
+ ).rejects.toThrow(FirmwareNotRecognized);
151
+ });
152
+
153
+ test("getDeviceVersion should throw a FirmwareNotRecognized error if response.status is 404", async () => {
154
+ networkSpy.mockRejectedValue({
155
+ response: {
156
+ status: 404,
157
+ },
158
+ });
159
+
160
+ await expect(
161
+ httpManagerApiRepository.getDeviceVersion({
162
+ targetId: 123,
163
+ providerId: 12,
164
+ }),
165
+ ).rejects.toThrow(FirmwareNotRecognized);
166
+ });
167
+
168
+ test("getDeviceVersion should return data", async () => {
169
+ networkSpy.mockResolvedValue({
170
+ data: "mockedData",
171
+ });
172
+
173
+ const result = await httpManagerApiRepository.getDeviceVersion({
174
+ targetId: 123,
175
+ providerId: 12,
176
+ });
177
+
178
+ expect(result).toBe("mockedData");
179
+ });
180
+
181
+ test("getCurrentOSU should call network() with the correct parameters", async () => {
182
+ const params: Parameters<typeof httpManagerApiRepository.getCurrentOSU>[0] = {
183
+ deviceId: 123,
184
+ providerId: 12,
185
+ version: "mockedVersion",
186
+ };
187
+
188
+ await httpManagerApiRepository.getCurrentOSU(params).catch(() => {
189
+ // ignore the error in this test case
190
+ });
191
+
192
+ expect(networkSpy).toHaveBeenCalledWith({
193
+ method: "POST",
194
+ url: "http://managerApiBase.com/get_osu_version?livecommonversion=1.2.3",
195
+ data: {
196
+ device_version: 123,
197
+ provider: 12,
198
+ version_name: "mockedVersion-osu",
199
+ },
200
+ });
201
+ });
202
+
203
+ test("getCurrentOSU should return data", async () => {
204
+ networkSpy.mockResolvedValue({
205
+ data: "mockedData",
206
+ });
207
+
208
+ const result = await httpManagerApiRepository.getCurrentOSU({
209
+ deviceId: 123,
210
+ providerId: 12,
211
+ version: "mockedVersion",
212
+ });
213
+
214
+ expect(result).toBe("mockedData");
215
+ });
216
+
217
+ test("getCurrentFirmware should call network() with the correct parameters", async () => {
218
+ const params: Parameters<typeof httpManagerApiRepository.getCurrentFirmware>[0] = {
219
+ deviceId: 123,
220
+ providerId: 12,
221
+ version: "mockedVersion",
222
+ };
223
+
224
+ await httpManagerApiRepository.getCurrentFirmware(params).catch(() => {
225
+ // ignore the error in this test case
226
+ });
227
+
228
+ expect(networkSpy).toHaveBeenCalledWith({
229
+ method: "POST",
230
+ url: "http://managerApiBase.com/get_firmware_version?livecommonversion=1.2.3",
231
+ data: {
232
+ device_version: 123,
233
+ provider: 12,
234
+ version_name: "mockedVersion",
235
+ },
236
+ });
237
+ });
238
+
239
+ test("getCurrentFirmware should throw a FirmwareNotRecognized error if status is 404", async () => {
240
+ networkSpy.mockRejectedValue({
241
+ status: 404,
242
+ });
243
+
244
+ await expect(
245
+ httpManagerApiRepository.getCurrentFirmware({
246
+ deviceId: 123,
247
+ providerId: 12,
248
+ version: "mockedVersion",
249
+ }),
250
+ ).rejects.toThrow(FirmwareNotRecognized);
251
+ });
252
+
253
+ test("getCurrentFirmware should throw a FirmwareNotRecognized error if response.status is 404", async () => {
254
+ networkSpy.mockRejectedValue({
255
+ response: {
256
+ status: 404,
257
+ },
258
+ });
259
+
260
+ await expect(
261
+ httpManagerApiRepository.getCurrentFirmware({
262
+ deviceId: 123,
263
+ providerId: 12,
264
+ version: "mockedVersion",
265
+ }),
266
+ ).rejects.toThrow(FirmwareNotRecognized);
267
+ });
268
+
269
+ test("getCurrentFirmware should return data", async () => {
270
+ networkSpy.mockResolvedValue({
271
+ data: "mockedData",
272
+ });
273
+
274
+ const result = await httpManagerApiRepository.getCurrentFirmware({
275
+ deviceId: 123,
276
+ providerId: 12,
277
+ version: "mockedVersion",
278
+ });
279
+
280
+ expect(result).toBe("mockedData");
281
+ });
282
+
283
+ test("getFinalFirmwareById should call network() with the correct parameters", async () => {
284
+ await httpManagerApiRepository.getFinalFirmwareById(123).catch(() => {
285
+ // ignore the error in this test case
286
+ });
287
+
288
+ expect(networkSpy).toHaveBeenCalledWith({
289
+ method: "GET",
290
+ url: "http://managerApiBase.com/firmware_final_versions/123?livecommonversion=1.2.3",
291
+ });
292
+ });
293
+
294
+ test("getFinalFirmwareById should return data", async () => {
295
+ networkSpy.mockResolvedValue({
296
+ data: "mockedData",
297
+ });
298
+
299
+ const result = await httpManagerApiRepository.getFinalFirmwareById(123);
300
+
301
+ expect(result).toBe("mockedData");
302
+ });
303
+
304
+ test("getAppsByHash should call network() with the correct parameters", async () => {
305
+ const mockHashes = ["mockedHash1", "mockedHash2"];
306
+ await httpManagerApiRepository.getAppsByHash(mockHashes).catch(() => {
307
+ // ignore the error in this test case
308
+ });
309
+
310
+ expect(networkSpy).toHaveBeenCalledWith({
311
+ method: "POST",
312
+ url: "http://managerApiBase.com/v2/apps/hash?livecommonversion=1.2.3",
313
+ data: mockHashes,
314
+ });
315
+ });
316
+
317
+ test("getAppsByHash should throw a NetworkDown error if data is null", async () => {
318
+ networkSpy.mockResolvedValue({
319
+ data: null,
320
+ });
321
+
322
+ await expect(httpManagerApiRepository.getAppsByHash(["mockedHash"])).rejects.toThrow(
323
+ NetworkDown,
324
+ );
325
+ });
326
+
327
+ test("getAppsByHash should throw a NetworkDown error if data is not an array", async () => {
328
+ networkSpy.mockResolvedValue({
329
+ data: "mockedData",
330
+ });
331
+
332
+ await expect(httpManagerApiRepository.getAppsByHash(["mockedHash"])).rejects.toThrow(
333
+ NetworkDown,
334
+ );
335
+ });
336
+
337
+ test("getAppsByHash should return data if it's an array", async () => {
338
+ networkSpy.mockResolvedValue({
339
+ data: ["mockedData"],
340
+ });
341
+
342
+ const result = await httpManagerApiRepository.getAppsByHash(["mockedHash"]);
343
+
344
+ expect(result).toEqual(["mockedData"]);
345
+ });
346
+
347
+ test("catalogForDevice should call network() with the correct parameters", async () => {
348
+ await httpManagerApiRepository
349
+ .catalogForDevice({
350
+ targetId: 123,
351
+ provider: 12,
352
+ firmwareVersion: "mockedFirmwareVersion",
353
+ })
354
+ .catch(() => {
355
+ // ignore the error in this test case
356
+ });
357
+
358
+ expect(networkSpy).toHaveBeenCalledWith({
359
+ method: "GET",
360
+ url: "http://managerApiBase.com/v2/apps/by-target?livecommonversion=1.2.3&provider=12&target_id=123&firmware_version_name=mockedFirmwareVersion",
361
+ });
362
+ });
363
+
364
+ test("catalogForDevice should throw a NetworkDown error if data is null", async () => {
365
+ networkSpy.mockResolvedValue({
366
+ data: null,
367
+ });
368
+
369
+ await expect(
370
+ httpManagerApiRepository.catalogForDevice({
371
+ targetId: 123,
372
+ provider: 12,
373
+ firmwareVersion: "mockedFirmwareVersion",
374
+ }),
375
+ ).rejects.toThrow(NetworkDown);
376
+ });
377
+
378
+ test("catalogForDevice should throw a NetworkDown error if data is not an array", async () => {
379
+ networkSpy.mockResolvedValue({
380
+ data: "mockedData",
381
+ });
382
+
383
+ await expect(
384
+ httpManagerApiRepository.catalogForDevice({
385
+ targetId: 123,
386
+ provider: 12,
387
+ firmwareVersion: "mockedFirmwareVersion",
388
+ }),
389
+ ).rejects.toThrow(NetworkDown);
390
+ });
391
+
392
+ test("catalogForDevice should return data if it's an array", async () => {
393
+ networkSpy.mockResolvedValue({
394
+ data: ["mockedData"],
395
+ });
396
+
397
+ const result = await httpManagerApiRepository.catalogForDevice({
398
+ targetId: 123,
399
+ provider: 12,
400
+ firmwareVersion: "mockedFirmwareVersion",
401
+ });
402
+
403
+ expect(result).toEqual(["mockedData"]);
404
+ });
405
+
406
+ test("getLanguagePackagesForDevice should call network() and other methods with the correct parameters", async () => {
407
+ const getDeviceVersionSpy = jest
408
+ .spyOn(httpManagerApiRepository, "getDeviceVersion")
409
+ .mockReturnValue(Promise.resolve({ id: 4 } as DeviceVersionEntity));
410
+ const getCurrentFirmwareSpy = jest
411
+ .spyOn(httpManagerApiRepository, "getCurrentFirmware")
412
+ .mockImplementation(jest.fn());
413
+
414
+ await httpManagerApiRepository
415
+ .getLanguagePackagesForDevice(
416
+ {
417
+ version: 1,
418
+ targetId: 2,
419
+ id: 3,
420
+ } as unknown as DeviceInfoEntity,
421
+ 12,
422
+ )
423
+ .catch(() => {
424
+ // ignore the error in this test case
425
+ });
426
+
427
+ expect(getDeviceVersionSpy).toHaveBeenCalledWith({ targetId: 2, providerId: 12 });
428
+ expect(getCurrentFirmwareSpy).toHaveBeenCalledWith({ deviceId: 4, providerId: 12, version: 1 });
429
+
430
+ expect(networkSpy).toHaveBeenCalledWith({
431
+ method: "GET",
432
+ url: "http://managerApiBase.com/language-package?livecommonversion=1.2.3",
433
+ });
434
+ });
435
+
436
+ test("getLanguagePackagesForDevice should return language packages", async () => {
437
+ const mockedDeviceVersionId = 123;
438
+ const mockedCurrentFirmwareId = 456;
439
+
440
+ jest
441
+ .spyOn(httpManagerApiRepository, "getDeviceVersion")
442
+ .mockReturnValue(Promise.resolve({ id: mockedDeviceVersionId } as DeviceVersionEntity));
443
+ jest
444
+ .spyOn(httpManagerApiRepository, "getCurrentFirmware")
445
+ .mockReturnValue(Promise.resolve({ id: mockedCurrentFirmwareId } as FinalFirmware));
446
+
447
+ networkSpy.mockResolvedValue({
448
+ data: [
449
+ {
450
+ language: "french",
451
+ language_package_version: [
452
+ {
453
+ device_versions: [mockedDeviceVersionId, 8888],
454
+ language: "french",
455
+ se_firmware_final_versions: [mockedCurrentFirmwareId, 9999],
456
+ } as LanguagePackageEntity,
457
+ ],
458
+ },
459
+ {
460
+ language: "spanish",
461
+ language_package_version: [
462
+ {
463
+ device_versions: [mockedDeviceVersionId],
464
+ language: "spanish",
465
+ se_firmware_final_versions: [9999], // this excludes the package from the result
466
+ } as LanguagePackageEntity,
467
+ ],
468
+ },
469
+ {
470
+ language: "english",
471
+ language_package_version: [
472
+ {
473
+ device_versions: [8888], // this excludes the package from the result
474
+ language: "spanish",
475
+ se_firmware_final_versions: [mockedCurrentFirmwareId],
476
+ } as LanguagePackageEntity,
477
+ ],
478
+ },
479
+ ] as LanguagePackageResponseEntity[],
480
+ });
481
+
482
+ const result = await httpManagerApiRepository.getLanguagePackagesForDevice(
483
+ {} as unknown as DeviceInfoEntity,
484
+ );
485
+
486
+ expect(result).toEqual([
487
+ {
488
+ device_versions: [mockedDeviceVersionId, 8888],
489
+ language: "french",
490
+ se_firmware_final_versions: [mockedCurrentFirmwareId, 9999],
491
+ },
492
+ ]);
493
+ });
494
+ });