@ledgerhq/device-core 0.4.13-next.0 → 0.4.14-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.
- package/.turbo/turbo-build.log +2 -2
- package/CHANGELOG.md +14 -0
- package/lib/commands/entities/APDU.d.ts +1 -0
- package/lib/commands/entities/APDU.d.ts.map +1 -1
- package/lib/commands/entities/FirmwareInfoEntity.d.ts +1 -0
- package/lib/commands/entities/FirmwareInfoEntity.d.ts.map +1 -1
- package/lib/commands/use-cases/app-backup/backupAppStorage.d.ts +1 -0
- package/lib/commands/use-cases/app-backup/backupAppStorage.d.ts.map +1 -1
- package/lib/commands/use-cases/app-backup/backupAppStorage.js +8 -19
- package/lib/commands/use-cases/app-backup/backupAppStorage.js.map +1 -1
- package/lib/commands/use-cases/app-backup/backupAppStorage.test.js +3 -12
- package/lib/commands/use-cases/app-backup/backupAppStorage.test.js.map +1 -1
- package/lib/commands/use-cases/app-backup/getAppStorageInfo.d.ts +1 -0
- package/lib/commands/use-cases/app-backup/getAppStorageInfo.d.ts.map +1 -1
- package/lib/commands/use-cases/app-backup/getAppStorageInfo.js +9 -20
- package/lib/commands/use-cases/app-backup/getAppStorageInfo.js.map +1 -1
- package/lib/commands/use-cases/app-backup/getAppStorageInfo.test.js +3 -12
- package/lib/commands/use-cases/app-backup/getAppStorageInfo.test.js.map +1 -1
- package/lib/commands/use-cases/app-backup/restoreAppStorage.d.ts +1 -0
- package/lib/commands/use-cases/app-backup/restoreAppStorage.d.ts.map +1 -1
- package/lib/commands/use-cases/app-backup/restoreAppStorage.js +8 -19
- package/lib/commands/use-cases/app-backup/restoreAppStorage.js.map +1 -1
- package/lib/commands/use-cases/app-backup/restoreAppStorage.test.js +3 -12
- package/lib/commands/use-cases/app-backup/restoreAppStorage.test.js.map +1 -1
- package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.d.ts +1 -0
- package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.d.ts.map +1 -1
- package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.js +8 -19
- package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.js.map +1 -1
- package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.test.js +3 -12
- package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.test.js.map +1 -1
- package/lib/commands/use-cases/app-backup/restoreAppStorageInit.d.ts +1 -0
- package/lib/commands/use-cases/app-backup/restoreAppStorageInit.d.ts.map +1 -1
- package/lib/commands/use-cases/app-backup/restoreAppStorageInit.js +12 -23
- package/lib/commands/use-cases/app-backup/restoreAppStorageInit.js.map +1 -1
- package/lib/commands/use-cases/app-backup/restoreAppStorageInit.test.js +3 -12
- package/lib/commands/use-cases/app-backup/restoreAppStorageInit.test.js.map +1 -1
- package/lib/commands/use-cases/consent/reinstallConfigurationConsent.d.ts +1 -0
- package/lib/commands/use-cases/consent/reinstallConfigurationConsent.d.ts.map +1 -1
- package/lib/commands/use-cases/consent/reinstallConfigurationConsent.js +8 -19
- package/lib/commands/use-cases/consent/reinstallConfigurationConsent.js.map +1 -1
- package/lib/commands/use-cases/consent/reinstallConfigurationConsent.test.js +12 -21
- package/lib/commands/use-cases/consent/reinstallConfigurationConsent.test.js.map +1 -1
- package/lib/commands/use-cases/getDeviceName.js +19 -30
- package/lib/commands/use-cases/getDeviceName.js.map +1 -1
- package/lib/commands/use-cases/getVersion.d.ts.map +1 -1
- package/lib/commands/use-cases/getVersion.js +4 -15
- package/lib/commands/use-cases/getVersion.js.map +1 -1
- package/lib/commands/use-cases/parseGetDeviceNameResponse.d.ts +1 -0
- package/lib/commands/use-cases/parseGetDeviceNameResponse.d.ts.map +1 -1
- package/lib/commands/use-cases/parseGetVersionResponse.d.ts +1 -0
- package/lib/commands/use-cases/parseGetVersionResponse.d.ts.map +1 -1
- package/lib/commands/use-cases/parseGetVersionResponse.js +3 -3
- package/lib/commands/use-cases/parseGetVersionResponse.js.map +1 -1
- package/lib/customLockScreen/screenSpecs.js +11 -2
- package/lib/customLockScreen/screenSpecs.js.map +1 -1
- package/lib/firmwareUpdate/shouldForceFirmwareUpdate.js +1 -2
- package/lib/firmwareUpdate/shouldForceFirmwareUpdate.js.map +1 -1
- package/lib/managerApi/entities/mocks/aDeviceInfo.js +12 -1
- package/lib/managerApi/entities/mocks/aDeviceInfo.js.map +1 -1
- package/lib/managerApi/entities/mocks/aDeviceVersion.js +16 -1
- package/lib/managerApi/entities/mocks/aDeviceVersion.js.map +1 -1
- package/lib/managerApi/entities/mocks/aFinalFirmware.js +21 -1
- package/lib/managerApi/entities/mocks/aFinalFirmware.js.map +1 -1
- package/lib/managerApi/entities/mocks/aOsuFirmware.js +18 -1
- package/lib/managerApi/entities/mocks/aOsuFirmware.js.map +1 -1
- package/lib/managerApi/repositories/HttpManagerApiRepository.js +170 -176
- package/lib/managerApi/repositories/HttpManagerApiRepository.js.map +1 -1
- package/lib/managerApi/repositories/HttpManagerApiRepository.test.js +81 -90
- package/lib/managerApi/repositories/HttpManagerApiRepository.test.js.map +1 -1
- package/lib/managerApi/repositories/StubManagerApiRepository.js +32 -34
- package/lib/managerApi/repositories/StubManagerApiRepository.js.map +1 -1
- package/lib/managerApi/use-cases/getAppsCatalogForDevice.js +6 -17
- package/lib/managerApi/use-cases/getAppsCatalogForDevice.js.map +1 -1
- package/lib/managerApi/use-cases/getLatestFirmwareForDevice.js +42 -53
- package/lib/managerApi/use-cases/getLatestFirmwareForDevice.js.map +1 -1
- package/lib/managerApi/use-cases/getLatestFirmwareForDevice.test.js +17 -26
- package/lib/managerApi/use-cases/getLatestFirmwareForDevice.test.js.map +1 -1
- package/lib-es/commands/entities/APDU.d.ts +1 -0
- package/lib-es/commands/entities/APDU.d.ts.map +1 -1
- package/lib-es/commands/entities/FirmwareInfoEntity.d.ts +1 -0
- package/lib-es/commands/entities/FirmwareInfoEntity.d.ts.map +1 -1
- package/lib-es/commands/use-cases/app-backup/backupAppStorage.d.ts +1 -0
- package/lib-es/commands/use-cases/app-backup/backupAppStorage.d.ts.map +1 -1
- package/lib-es/commands/use-cases/app-backup/backupAppStorage.js +8 -19
- package/lib-es/commands/use-cases/app-backup/backupAppStorage.js.map +1 -1
- package/lib-es/commands/use-cases/app-backup/backupAppStorage.test.js +3 -12
- package/lib-es/commands/use-cases/app-backup/backupAppStorage.test.js.map +1 -1
- package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.d.ts +1 -0
- package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.d.ts.map +1 -1
- package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.js +9 -20
- package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.js.map +1 -1
- package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.test.js +3 -12
- package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.test.js.map +1 -1
- package/lib-es/commands/use-cases/app-backup/restoreAppStorage.d.ts +1 -0
- package/lib-es/commands/use-cases/app-backup/restoreAppStorage.d.ts.map +1 -1
- package/lib-es/commands/use-cases/app-backup/restoreAppStorage.js +8 -19
- package/lib-es/commands/use-cases/app-backup/restoreAppStorage.js.map +1 -1
- package/lib-es/commands/use-cases/app-backup/restoreAppStorage.test.js +3 -12
- package/lib-es/commands/use-cases/app-backup/restoreAppStorage.test.js.map +1 -1
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.d.ts +1 -0
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.d.ts.map +1 -1
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.js +8 -19
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.js.map +1 -1
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.test.js +3 -12
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.test.js.map +1 -1
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.d.ts +1 -0
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.d.ts.map +1 -1
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.js +12 -23
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.js.map +1 -1
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.test.js +3 -12
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.test.js.map +1 -1
- package/lib-es/commands/use-cases/consent/reinstallConfigurationConsent.d.ts +1 -0
- package/lib-es/commands/use-cases/consent/reinstallConfigurationConsent.d.ts.map +1 -1
- package/lib-es/commands/use-cases/consent/reinstallConfigurationConsent.js +8 -19
- package/lib-es/commands/use-cases/consent/reinstallConfigurationConsent.js.map +1 -1
- package/lib-es/commands/use-cases/consent/reinstallConfigurationConsent.test.js +12 -21
- package/lib-es/commands/use-cases/consent/reinstallConfigurationConsent.test.js.map +1 -1
- package/lib-es/commands/use-cases/getDeviceName.js +19 -30
- package/lib-es/commands/use-cases/getDeviceName.js.map +1 -1
- package/lib-es/commands/use-cases/getVersion.d.ts.map +1 -1
- package/lib-es/commands/use-cases/getVersion.js +4 -15
- package/lib-es/commands/use-cases/getVersion.js.map +1 -1
- package/lib-es/commands/use-cases/parseGetDeviceNameResponse.d.ts +1 -0
- package/lib-es/commands/use-cases/parseGetDeviceNameResponse.d.ts.map +1 -1
- package/lib-es/commands/use-cases/parseGetVersionResponse.d.ts +1 -0
- package/lib-es/commands/use-cases/parseGetVersionResponse.d.ts.map +1 -1
- package/lib-es/commands/use-cases/parseGetVersionResponse.js +3 -3
- package/lib-es/commands/use-cases/parseGetVersionResponse.js.map +1 -1
- package/lib-es/customLockScreen/screenSpecs.js +11 -2
- package/lib-es/customLockScreen/screenSpecs.js.map +1 -1
- package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.js +1 -2
- package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.js.map +1 -1
- package/lib-es/managerApi/entities/mocks/aDeviceInfo.js +12 -1
- package/lib-es/managerApi/entities/mocks/aDeviceInfo.js.map +1 -1
- package/lib-es/managerApi/entities/mocks/aDeviceVersion.js +16 -1
- package/lib-es/managerApi/entities/mocks/aDeviceVersion.js.map +1 -1
- package/lib-es/managerApi/entities/mocks/aFinalFirmware.js +21 -1
- package/lib-es/managerApi/entities/mocks/aFinalFirmware.js.map +1 -1
- package/lib-es/managerApi/entities/mocks/aOsuFirmware.js +18 -1
- package/lib-es/managerApi/entities/mocks/aOsuFirmware.js.map +1 -1
- package/lib-es/managerApi/repositories/HttpManagerApiRepository.js +170 -176
- package/lib-es/managerApi/repositories/HttpManagerApiRepository.js.map +1 -1
- package/lib-es/managerApi/repositories/HttpManagerApiRepository.test.js +81 -90
- package/lib-es/managerApi/repositories/HttpManagerApiRepository.test.js.map +1 -1
- package/lib-es/managerApi/repositories/StubManagerApiRepository.js +32 -34
- package/lib-es/managerApi/repositories/StubManagerApiRepository.js.map +1 -1
- package/lib-es/managerApi/use-cases/getAppsCatalogForDevice.js +6 -17
- package/lib-es/managerApi/use-cases/getAppsCatalogForDevice.js.map +1 -1
- package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.js +42 -53
- package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.js.map +1 -1
- package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.test.js +17 -26
- package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.test.js.map +1 -1
- package/package.json +5 -5
- package/src/commands/use-cases/getVersion.ts +1 -0
- package/tsconfig.json +0 -2
|
@@ -1,62 +1,51 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.getLatestFirmwareForDevice = void 0;
|
|
13
4
|
const errors_1 = require("@ledgerhq/errors");
|
|
14
|
-
function getLatestFirmwareForDevice(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
5
|
+
async function getLatestFirmwareForDevice({ deviceInfo, providerId, userId, managerApiRepository, }) {
|
|
6
|
+
const mcusPromise = managerApiRepository.fetchMcus();
|
|
7
|
+
// Gets device infos from targetId
|
|
8
|
+
const deviceVersion = await managerApiRepository.getDeviceVersion({
|
|
9
|
+
targetId: deviceInfo.targetId,
|
|
10
|
+
providerId,
|
|
11
|
+
});
|
|
12
|
+
let osu;
|
|
13
|
+
if (deviceInfo.isOSU) {
|
|
14
|
+
osu = await managerApiRepository.getCurrentOSU({
|
|
15
|
+
deviceId: deviceVersion.id,
|
|
20
16
|
providerId,
|
|
17
|
+
version: deviceInfo.version,
|
|
21
18
|
});
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const final = yield managerApiRepository.getFinalFirmwareById(osu.next_se_firmware_final_version);
|
|
53
|
-
const shouldFlashMCU = !final.mcu_versions.includes(currentMcuVersion.id);
|
|
54
|
-
return {
|
|
55
|
-
final,
|
|
56
|
-
osu,
|
|
57
|
-
shouldFlashMCU,
|
|
58
|
-
};
|
|
59
|
-
});
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
// Gets firmware infos with firmware name and device version
|
|
22
|
+
const seFirmwareVersion = await managerApiRepository.getCurrentFirmware({
|
|
23
|
+
version: deviceInfo.version,
|
|
24
|
+
deviceId: deviceVersion.id,
|
|
25
|
+
providerId,
|
|
26
|
+
});
|
|
27
|
+
// Fetches next possible firmware
|
|
28
|
+
osu = await managerApiRepository.fetchLatestFirmware({
|
|
29
|
+
current_se_firmware_final_version: seFirmwareVersion.id,
|
|
30
|
+
device_version: deviceVersion.id,
|
|
31
|
+
userId,
|
|
32
|
+
providerId,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
if (!osu) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
const mcus = await mcusPromise;
|
|
39
|
+
const currentMcuVersion = mcus.find(mcu => mcu.name === deviceInfo.mcuVersion);
|
|
40
|
+
if (!currentMcuVersion)
|
|
41
|
+
throw new errors_1.UnknownMCU();
|
|
42
|
+
const final = await managerApiRepository.getFinalFirmwareById(osu.next_se_firmware_final_version);
|
|
43
|
+
const shouldFlashMCU = !final.mcu_versions.includes(currentMcuVersion.id);
|
|
44
|
+
return {
|
|
45
|
+
final,
|
|
46
|
+
osu,
|
|
47
|
+
shouldFlashMCU,
|
|
48
|
+
};
|
|
60
49
|
}
|
|
61
50
|
exports.getLatestFirmwareForDevice = getLatestFirmwareForDevice;
|
|
62
51
|
//# sourceMappingURL=getLatestFirmwareForDevice.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLatestFirmwareForDevice.js","sourceRoot":"","sources":["../../../src/managerApi/use-cases/getLatestFirmwareForDevice.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getLatestFirmwareForDevice.js","sourceRoot":"","sources":["../../../src/managerApi/use-cases/getLatestFirmwareForDevice.ts"],"names":[],"mappings":";;;AAAA,6CAA8C;AAYvC,KAAK,UAAU,0BAA0B,CAAC,EAC/C,UAAU,EACV,UAAU,EACV,MAAM,EACN,oBAAoB,GACa;IACjC,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,EAAE,CAAC;IAErD,kCAAkC;IAClC,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,gBAAgB,CAAC;QAChE,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,UAAU;KACX,CAAC,CAAC;IACH,IAAI,GAAG,CAAC;IAER,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,GAAG,GAAG,MAAM,oBAAoB,CAAC,aAAa,CAAC;YAC7C,QAAQ,EAAE,aAAa,CAAC,EAAE;YAC1B,UAAU;YACV,OAAO,EAAE,UAAU,CAAC,OAAO;SAC5B,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,4DAA4D;QAC5D,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC,kBAAkB,CAAC;YACtE,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,QAAQ,EAAE,aAAa,CAAC,EAAE;YAC1B,UAAU;SACX,CAAC,CAAC;QACH,iCAAiC;QACjC,GAAG,GAAG,MAAM,oBAAoB,CAAC,mBAAmB,CAAC;YACnD,iCAAiC,EAAE,iBAAiB,CAAC,EAAE;YACvD,cAAc,EAAE,aAAa,CAAC,EAAE;YAChC,MAAM;YACN,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;IAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,CAAC,CAAC;IAE/E,IAAI,CAAC,iBAAiB;QAAE,MAAM,IAAI,mBAAU,EAAE,CAAC;IAE/C,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,oBAAoB,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAClG,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC1E,OAAO;QACL,KAAK;QACL,GAAG;QACH,cAAc;KACf,CAAC;AACJ,CAAC;AArDD,gEAqDC"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
const getLatestFirmwareForDevice_1 = require("./getLatestFirmwareForDevice");
|
|
13
4
|
const errors_1 = require("@ledgerhq/errors");
|
|
@@ -21,7 +12,7 @@ describe("getLatestFirmwareForDevice", () => {
|
|
|
21
12
|
jest.resetAllMocks();
|
|
22
13
|
mockedManagerApiRepository = new StubManagerApiRepository_1.StubManagerApiRepository();
|
|
23
14
|
});
|
|
24
|
-
it("throws an Error for unknown mcu", () =>
|
|
15
|
+
it("throws an Error for unknown mcu", async () => {
|
|
25
16
|
// given
|
|
26
17
|
// Using a fixture builder - we could create that for all our entities
|
|
27
18
|
const deviceInfo = (0, aDeviceInfo_1.aDeviceInfoBuilder)({ mcuVersion: "42", isOSU: true });
|
|
@@ -40,8 +31,8 @@ describe("getLatestFirmwareForDevice", () => {
|
|
|
40
31
|
const response = (0, getLatestFirmwareForDevice_1.getLatestFirmwareForDevice)(params);
|
|
41
32
|
// then
|
|
42
33
|
expect(response).rejects.toBeInstanceOf(errors_1.UnknownMCU);
|
|
43
|
-
})
|
|
44
|
-
it("should return an update without flashing mcu", () =>
|
|
34
|
+
});
|
|
35
|
+
it("should return an update without flashing mcu", async () => {
|
|
45
36
|
// Given
|
|
46
37
|
const deviceInfo = (0, aDeviceInfo_1.aDeviceInfoBuilder)({ isOSU: false, mcuVersion: "42" });
|
|
47
38
|
jest
|
|
@@ -66,11 +57,11 @@ describe("getLatestFirmwareForDevice", () => {
|
|
|
66
57
|
managerApiRepository: mockedManagerApiRepository,
|
|
67
58
|
};
|
|
68
59
|
// When
|
|
69
|
-
const result =
|
|
60
|
+
const result = await (0, getLatestFirmwareForDevice_1.getLatestFirmwareForDevice)(params);
|
|
70
61
|
// Then
|
|
71
62
|
expect(result).toMatchObject({ shouldFlashMCU: false });
|
|
72
|
-
})
|
|
73
|
-
it("shouldn't return an available update when no mcu found", () =>
|
|
63
|
+
});
|
|
64
|
+
it("shouldn't return an available update when no mcu found", async () => {
|
|
74
65
|
// Given
|
|
75
66
|
const deviceInfo = (0, aDeviceInfo_1.aDeviceInfoBuilder)({ isOSU: false, mcuVersion: "42" });
|
|
76
67
|
jest
|
|
@@ -90,11 +81,11 @@ describe("getLatestFirmwareForDevice", () => {
|
|
|
90
81
|
managerApiRepository: mockedManagerApiRepository,
|
|
91
82
|
};
|
|
92
83
|
// When
|
|
93
|
-
const result =
|
|
84
|
+
const result = await (0, getLatestFirmwareForDevice_1.getLatestFirmwareForDevice)(params);
|
|
94
85
|
// Then
|
|
95
86
|
expect(result).toBeNull();
|
|
96
|
-
})
|
|
97
|
-
it("should return an available OS update", () =>
|
|
87
|
+
});
|
|
88
|
+
it("should return an available OS update", async () => {
|
|
98
89
|
// Given
|
|
99
90
|
const deviceInfo = (0, aDeviceInfo_1.aDeviceInfoBuilder)({ isOSU: false, mcuVersion: "42" });
|
|
100
91
|
jest
|
|
@@ -120,13 +111,13 @@ describe("getLatestFirmwareForDevice", () => {
|
|
|
120
111
|
managerApiRepository: mockedManagerApiRepository,
|
|
121
112
|
};
|
|
122
113
|
// When
|
|
123
|
-
const result =
|
|
114
|
+
const result = await (0, getLatestFirmwareForDevice_1.getLatestFirmwareForDevice)(params);
|
|
124
115
|
// Then
|
|
125
116
|
expect(result).toHaveProperty(["final"]);
|
|
126
117
|
expect(result).toHaveProperty(["osu"]);
|
|
127
118
|
expect(result).toHaveProperty(["shouldFlashMCU"]);
|
|
128
|
-
})
|
|
129
|
-
test("should return an update with device isOSU true", () =>
|
|
119
|
+
});
|
|
120
|
+
test("should return an update with device isOSU true", async () => {
|
|
130
121
|
const deviceInfo = (0, aDeviceInfo_1.aDeviceInfoBuilder)({ mcuVersion: "42" });
|
|
131
122
|
jest
|
|
132
123
|
.spyOn(mockedManagerApiRepository, "fetchMcus")
|
|
@@ -146,13 +137,13 @@ describe("getLatestFirmwareForDevice", () => {
|
|
|
146
137
|
managerApiRepository: mockedManagerApiRepository,
|
|
147
138
|
};
|
|
148
139
|
// When
|
|
149
|
-
const result =
|
|
140
|
+
const result = await (0, getLatestFirmwareForDevice_1.getLatestFirmwareForDevice)(params);
|
|
150
141
|
// Then
|
|
151
142
|
expect(result).toHaveProperty(["final"]);
|
|
152
143
|
expect(result).toHaveProperty(["osu"]);
|
|
153
144
|
expect(result).toHaveProperty(["shouldFlashMCU"]);
|
|
154
|
-
})
|
|
155
|
-
test("shouldn't return an update with device isOSU true", () =>
|
|
145
|
+
});
|
|
146
|
+
test("shouldn't return an update with device isOSU true", async () => {
|
|
156
147
|
const deviceInfo = (0, aDeviceInfo_1.aDeviceInfoBuilder)({ mcuVersion: "42" });
|
|
157
148
|
jest
|
|
158
149
|
.spyOn(mockedManagerApiRepository, "fetchMcus")
|
|
@@ -170,9 +161,9 @@ describe("getLatestFirmwareForDevice", () => {
|
|
|
170
161
|
managerApiRepository: mockedManagerApiRepository,
|
|
171
162
|
};
|
|
172
163
|
// When
|
|
173
|
-
const result =
|
|
164
|
+
const result = await (0, getLatestFirmwareForDevice_1.getLatestFirmwareForDevice)(params);
|
|
174
165
|
// Then
|
|
175
166
|
expect(result).toBeNull();
|
|
176
|
-
})
|
|
167
|
+
});
|
|
177
168
|
});
|
|
178
169
|
//# sourceMappingURL=getLatestFirmwareForDevice.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLatestFirmwareForDevice.test.js","sourceRoot":"","sources":["../../../src/managerApi/use-cases/getLatestFirmwareForDevice.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getLatestFirmwareForDevice.test.js","sourceRoot":"","sources":["../../../src/managerApi/use-cases/getLatestFirmwareForDevice.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"APDU.d.ts","sourceRoot":"","sources":["../../../src/commands/entities/APDU.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"APDU.d.ts","sourceRoot":"","sources":["../../../src/commands/entities/APDU.ts"],"names":[],"mappings":";;AAAA,MAAM,MAAM,IAAI,GAAG;IAEjB,GAAG,EAAE,MAAM;IAEX,GAAG,EAAE,MAAM;IAEX,EAAE,EAAE,MAAM;IAEV,EAAE,EAAE,MAAM;IAEV,IAAI,EAAE,MAAM,GAAG,SAAS;CACzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirmwareInfoEntity.d.ts","sourceRoot":"","sources":["../../../src/commands/entities/FirmwareInfoEntity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FirmwareInfoEntity.d.ts","sourceRoot":"","sources":["../../../src/commands/entities/FirmwareInfoEntity.ts"],"names":[],"mappings":";;AAAA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backupAppStorage.d.ts","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/backupAppStorage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"backupAppStorage.d.ts","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/backupAppStorage.ts"],"names":[],"mappings":";;AAAA,OAAO,SAAgD,MAAM,wBAAwB,CAAC;AA0CtF;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAY5E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA2BlD"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { StatusCodes, TransportStatusError } from "@ledgerhq/hw-transport";
|
|
11
2
|
import { LocalTracer } from "@ledgerhq/logs";
|
|
12
3
|
import { GenerateAesKeyFailed, InternalComputeAesCmacFailed, InternalCryptoOperationFailed, InvalidBackupState, InvalidContext, } from "../../../errors";
|
|
@@ -46,17 +37,15 @@ const RESPONSE_STATUS_SET = [
|
|
|
46
37
|
* @param transport - The transport object used to communicate with the device.
|
|
47
38
|
* @returns A promise that resolves to the app storage information as a buffer.
|
|
48
39
|
*/
|
|
49
|
-
export function backupAppStorage(transport) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
function: "backupAppStorage",
|
|
54
|
-
});
|
|
55
|
-
tracer.trace("Start");
|
|
56
|
-
const apdu = [...BACKUP_APP_STORAGE, Buffer.from([])];
|
|
57
|
-
const response = yield transport.send(...apdu, RESPONSE_STATUS_SET);
|
|
58
|
-
return parseResponse(response);
|
|
40
|
+
export async function backupAppStorage(transport) {
|
|
41
|
+
const tracer = new LocalTracer("hw", {
|
|
42
|
+
transport: transport.getTraceContext(),
|
|
43
|
+
function: "backupAppStorage",
|
|
59
44
|
});
|
|
45
|
+
tracer.trace("Start");
|
|
46
|
+
const apdu = [...BACKUP_APP_STORAGE, Buffer.from([])];
|
|
47
|
+
const response = await transport.send(...apdu, RESPONSE_STATUS_SET);
|
|
48
|
+
return parseResponse(response);
|
|
60
49
|
}
|
|
61
50
|
/**
|
|
62
51
|
* Parses the response data buffer, check the status code and return the data.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backupAppStorage.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/backupAppStorage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"backupAppStorage.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/backupAppStorage.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,6BAA6B,EAC7B,kBAAkB,EAClB,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;GAOG;AACH,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AAE7D;;;;;;;;;GASG;AACH,MAAM,mBAAmB,GAAa;IACpC,WAAW,CAAC,EAAE;IACd,WAAW,CAAC,gCAAgC;IAC5C,WAAW,CAAC,kBAAkB;IAC9B,WAAW,CAAC,gCAAgC;IAC5C,WAAW,CAAC,gCAAgC;IAC5C,WAAW,CAAC,0BAA0B;IACtC,WAAW,CAAC,uBAAuB;IACnC,WAAW,CAAC,oBAAoB;CACjC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAAoB;IACzD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE;QACnC,SAAS,EAAE,SAAS,CAAC,eAAe,EAAE;QACtC,QAAQ,EAAE,kBAAkB;KAC7B,CAAC,CAAC;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEtB,MAAM,IAAI,GAAmB,CAAC,GAAG,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAEtE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAEpE,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE;QACnC,QAAQ,EAAE,gCAAgC;KAC3C,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAE1D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,WAAW,CAAC,EAAE;YACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,KAAK,WAAW,CAAC,gCAAgC;YAC/C,MAAM,IAAI,cAAc,CAAC,oDAAoD,CAAC,CAAC;QACjF,KAAK,WAAW,CAAC,kBAAkB;YACjC,MAAM,IAAI,oBAAoB,CAAC,6BAA6B,CAAC,CAAC;QAChE,KAAK,WAAW,CAAC,gCAAgC;YAC/C,MAAM,IAAI,6BAA6B,CAAC,0CAA0C,CAAC,CAAC;QACtF,KAAK,WAAW,CAAC,gCAAgC;YAC/C,MAAM,IAAI,4BAA4B,CAAC,6CAA6C,CAAC,CAAC;QACxF,KAAK,WAAW,CAAC,0BAA0B;YACzC,MAAM,IAAI,oBAAoB,CAAC,2CAA2C,CAAC,CAAC;QAC9E,KAAK,WAAW,CAAC,uBAAuB;YACtC,MAAM;QACR,KAAK,WAAW,CAAC,oBAAoB;YACnC,MAAM,IAAI,kBAAkB,CAAC,iDAAiD,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { StatusCodes } from "@ledgerhq/hw-transport";
|
|
11
2
|
import { backupAppStorage, parseResponse } from "./backupAppStorage";
|
|
12
3
|
import { InternalComputeAesCmacFailed } from "../../../errors";
|
|
@@ -25,8 +16,8 @@ describe("backupAppStorage", () => {
|
|
|
25
16
|
afterEach(() => {
|
|
26
17
|
jest.clearAllMocks();
|
|
27
18
|
});
|
|
28
|
-
it("should call the send function with correct parameters", () =>
|
|
29
|
-
|
|
19
|
+
it("should call the send function with correct parameters", async () => {
|
|
20
|
+
await backupAppStorage(transport);
|
|
30
21
|
expect(transport.send).toHaveBeenCalledWith(0xe0, 0x6b, 0x00, 0x00, Buffer.from([]), [
|
|
31
22
|
StatusCodes.OK,
|
|
32
23
|
StatusCodes.APP_NOT_FOUND_OR_INVALID_CONTEXT,
|
|
@@ -37,7 +28,7 @@ describe("backupAppStorage", () => {
|
|
|
37
28
|
StatusCodes.DEVICE_IN_RECOVERY_MODE,
|
|
38
29
|
StatusCodes.INVALID_BACKUP_STATE,
|
|
39
30
|
]);
|
|
40
|
-
})
|
|
31
|
+
});
|
|
41
32
|
describe("parseResponse", () => {
|
|
42
33
|
it("should parse the response data correctly", () => {
|
|
43
34
|
const expected = Buffer.from([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backupAppStorage.test.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/backupAppStorage.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"backupAppStorage.test.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/backupAppStorage.test.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAE/D,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAEpC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,SAAoB,CAAC;IACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;QAC3B,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;KAC/F,CAAC,CAAC;IAEH,UAAU,CAAC,GAAG,EAAE;QACd,SAAS,GAAG;YACV,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC;YAC3C,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;SAChC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YACnF,WAAW,CAAC,EAAE;YACd,WAAW,CAAC,gCAAgC;YAC5C,WAAW,CAAC,kBAAkB;YAC9B,WAAW,CAAC,gCAAgC;YAC5C,WAAW,CAAC,gCAAgC;YAC5C,WAAW,CAAC,0BAA0B;YACtC,WAAW,CAAC,uBAAuB;YACnC,WAAW,CAAC,oBAAoB;SACjC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC3B,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;aACnF,CAAC,CAAC;YACH,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;YAC7E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CACvC,IAAI,4BAA4B,CAAC,6CAA6C,CAAC,CAChF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAppStorageInfo.d.ts","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/getAppStorageInfo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getAppStorageInfo.d.ts","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/getAppStorageInfo.ts"],"names":[],"mappings":";;AAAA,OAAO,SAAgD,MAAM,wBAAwB,CAAC;AAEtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AA2BpE;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,cAAc,CAAC,CAczB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CA+C1D"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { StatusCodes, TransportStatusError } from "@ledgerhq/hw-transport";
|
|
11
2
|
import { LocalTracer } from "@ledgerhq/logs";
|
|
12
3
|
import { AppNotFound, InvalidAppNameLength } from "../../../errors";
|
|
@@ -39,18 +30,16 @@ const RESPONSE_STATUS_SET = [
|
|
|
39
30
|
* @returns A promise that resolves to the application storage information object.
|
|
40
31
|
* @throws {TransportStatusError} If the response status is invalid.
|
|
41
32
|
*/
|
|
42
|
-
export function getAppStorageInfo(transport, appName) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
function: "getAppStorageInfo",
|
|
47
|
-
});
|
|
48
|
-
tracer.trace("Start");
|
|
49
|
-
const params = Buffer.from(appName, "ascii");
|
|
50
|
-
const apdu = [...GET_APP_STORAGE_INFO, params];
|
|
51
|
-
const response = yield transport.send(...apdu, RESPONSE_STATUS_SET);
|
|
52
|
-
return parseResponse(response);
|
|
33
|
+
export async function getAppStorageInfo(transport, appName) {
|
|
34
|
+
const tracer = new LocalTracer("hw", {
|
|
35
|
+
transport: transport.getTraceContext(),
|
|
36
|
+
function: "getAppStorageInfo",
|
|
53
37
|
});
|
|
38
|
+
tracer.trace("Start");
|
|
39
|
+
const params = Buffer.from(appName, "ascii");
|
|
40
|
+
const apdu = [...GET_APP_STORAGE_INFO, params];
|
|
41
|
+
const response = await transport.send(...apdu, RESPONSE_STATUS_SET);
|
|
42
|
+
return parseResponse(response);
|
|
54
43
|
}
|
|
55
44
|
/**
|
|
56
45
|
* Parses the response data from the device into a string.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAppStorageInfo.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/getAppStorageInfo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getAppStorageInfo.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/getAppStorageInfo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { StatusCodes } from "@ledgerhq/hw-transport";
|
|
11
2
|
import { getAppStorageInfo, parseResponse } from "./getAppStorageInfo";
|
|
12
3
|
import { InvalidAppNameLength } from "../../../errors";
|
|
@@ -35,16 +26,16 @@ describe("getAppStorageInfo", () => {
|
|
|
35
26
|
afterEach(() => {
|
|
36
27
|
jest.clearAllMocks();
|
|
37
28
|
});
|
|
38
|
-
it("should call the send function with correct parameters", () =>
|
|
29
|
+
it("should call the send function with correct parameters", async () => {
|
|
39
30
|
const appName = "MyApp";
|
|
40
|
-
|
|
31
|
+
await getAppStorageInfo(transport, appName);
|
|
41
32
|
expect(transport.send).toHaveBeenCalledWith(0xe0, 0x6a, 0x00, 0x00, Buffer.from(appName, "ascii"), [
|
|
42
33
|
StatusCodes.OK,
|
|
43
34
|
StatusCodes.APP_NOT_FOUND_OR_INVALID_CONTEXT,
|
|
44
35
|
StatusCodes.DEVICE_IN_RECOVERY_MODE,
|
|
45
36
|
StatusCodes.INVALID_APP_NAME_LENGTH,
|
|
46
37
|
]);
|
|
47
|
-
})
|
|
38
|
+
});
|
|
48
39
|
describe("parseResponse", () => {
|
|
49
40
|
it("should parse the response data correctly", () => {
|
|
50
41
|
const expected = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAppStorageInfo.test.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/getAppStorageInfo.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getAppStorageInfo.test.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/getAppStorageInfo.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restoreAppStorage.d.ts","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/restoreAppStorage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"restoreAppStorage.d.ts","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/restoreAppStorage.ts"],"names":[],"mappings":";;AAAA,OAAO,SAAgD,MAAM,wBAAwB,CAAC;AA2CtF;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAY1F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CA2BhD"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { StatusCodes, TransportStatusError } from "@ledgerhq/hw-transport";
|
|
11
2
|
import { LocalTracer } from "@ledgerhq/logs";
|
|
12
3
|
import { GenerateAesKeyFailed, InternalCryptoOperationFailed, InvalidBackupHeader, InvalidChunkLength, InvalidContext, InvalidRestoreState, } from "../../../errors";
|
|
@@ -46,17 +37,15 @@ const RESPONSE_STATUS_SET = [
|
|
|
46
37
|
* @param chunk - The chunk of data to restore.
|
|
47
38
|
* @returns A promise that resolves to void.
|
|
48
39
|
*/
|
|
49
|
-
export function restoreAppStorage(transport, chunk) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
function: "restoreAppStorage",
|
|
54
|
-
});
|
|
55
|
-
tracer.trace("Start");
|
|
56
|
-
const apdu = [...RESTORE_APP_STORAGE, chunk];
|
|
57
|
-
const response = yield transport.send(...apdu, RESPONSE_STATUS_SET);
|
|
58
|
-
parseResponse(response);
|
|
40
|
+
export async function restoreAppStorage(transport, chunk) {
|
|
41
|
+
const tracer = new LocalTracer("hw", {
|
|
42
|
+
transport: transport.getTraceContext(),
|
|
43
|
+
function: "restoreAppStorage",
|
|
59
44
|
});
|
|
45
|
+
tracer.trace("Start");
|
|
46
|
+
const apdu = [...RESTORE_APP_STORAGE, chunk];
|
|
47
|
+
const response = await transport.send(...apdu, RESPONSE_STATUS_SET);
|
|
48
|
+
parseResponse(response);
|
|
60
49
|
}
|
|
61
50
|
export function parseResponse(data) {
|
|
62
51
|
const tracer = new LocalTracer("hw", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restoreAppStorage.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/restoreAppStorage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"restoreAppStorage.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/restoreAppStorage.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;GAOG;AACH,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AAE9D;;;;;;;;;GASG;AACH,MAAM,mBAAmB,GAAa;IACpC,WAAW,CAAC,EAAE;IACd,WAAW,CAAC,gCAAgC;IAC5C,WAAW,CAAC,kBAAkB;IAC9B,WAAW,CAAC,gCAAgC;IAC5C,WAAW,CAAC,uBAAuB;IACnC,WAAW,CAAC,qBAAqB;IACjC,WAAW,CAAC,oBAAoB;IAChC,WAAW,CAAC,qBAAqB;CAClC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,SAAoB,EAAE,KAAa;IACzE,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE;QACnC,SAAS,EAAE,SAAS,CAAC,eAAe,EAAE;QACtC,QAAQ,EAAE,mBAAmB;KAC9B,CAAC,CAAC;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEtB,MAAM,IAAI,GAAmB,CAAC,GAAG,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAEpE,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE;QACnC,QAAQ,EAAE,iCAAiC;KAC5C,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAE1D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,WAAW,CAAC,EAAE;YACjB,OAAO;QACT,KAAK,WAAW,CAAC,gCAAgC;YAC/C,MAAM,IAAI,cAAc,CAAC,8DAA8D,CAAC,CAAC;QAC3F,KAAK,WAAW,CAAC,kBAAkB;YACjC,MAAM,IAAI,oBAAoB,CAAC,6BAA6B,CAAC,CAAC;QAChE,KAAK,WAAW,CAAC,gCAAgC;YAC/C,MAAM,IAAI,6BAA6B,CAAC,2CAA2C,CAAC,CAAC;QACvF,KAAK,WAAW,CAAC,uBAAuB;YACtC,MAAM;QACR,KAAK,WAAW,CAAC,qBAAqB;YACpC,MAAM,IAAI,mBAAmB,CAAC,mDAAmD,CAAC,CAAC;QACrF,KAAK,WAAW,CAAC,oBAAoB;YACnC,MAAM,IAAI,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;QACxD,KAAK,WAAW,CAAC,qBAAqB;YACpC,MAAM,IAAI,mBAAmB,CAAC,kDAAkD,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { StatusCodes } from "@ledgerhq/hw-transport";
|
|
11
2
|
import { restoreAppStorage, parseResponse } from "./restoreAppStorage";
|
|
12
3
|
import { InvalidRestoreState } from "../../../errors";
|
|
@@ -23,7 +14,7 @@ describe("restoreAppStorage", () => {
|
|
|
23
14
|
afterEach(() => {
|
|
24
15
|
jest.clearAllMocks();
|
|
25
16
|
});
|
|
26
|
-
it("should call the send function with correct parameters", () =>
|
|
17
|
+
it("should call the send function with correct parameters", async () => {
|
|
27
18
|
const chunk = Buffer.from("106RueduTemple");
|
|
28
19
|
const args = [
|
|
29
20
|
0xe0,
|
|
@@ -42,9 +33,9 @@ describe("restoreAppStorage", () => {
|
|
|
42
33
|
StatusCodes.INVALID_BACKUP_HEADER,
|
|
43
34
|
],
|
|
44
35
|
];
|
|
45
|
-
|
|
36
|
+
await restoreAppStorage(transport, chunk);
|
|
46
37
|
expect(transport.send).toHaveBeenCalledWith(...args);
|
|
47
|
-
})
|
|
38
|
+
});
|
|
48
39
|
describe("parseResponse", () => {
|
|
49
40
|
it("should parse the response data correctly", () => {
|
|
50
41
|
expect(() => parseResponse(response)).not.toThrow();
|