@ledgerhq/device-core 0.6.6-nightly.6 → 0.6.6
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 +1 -1
- package/CHANGELOG.md +11 -43
- package/lib/capabilities/isCustomLockScreenSupported.test.d.ts +2 -0
- package/lib/capabilities/isCustomLockScreenSupported.test.d.ts.map +1 -0
- package/lib/capabilities/isCustomLockScreenSupported.test.js +26 -0
- package/lib/capabilities/isCustomLockScreenSupported.test.js.map +1 -0
- package/lib/capabilities/isEditDeviceNameSupported.test.d.ts +2 -0
- package/lib/capabilities/isEditDeviceNameSupported.test.d.ts.map +1 -0
- package/lib/capabilities/isEditDeviceNameSupported.test.js +25 -0
- package/lib/capabilities/isEditDeviceNameSupported.test.js.map +1 -0
- package/lib/capabilities/isSyncOnboardingSupported.test.d.ts +2 -0
- package/lib/capabilities/isSyncOnboardingSupported.test.d.ts.map +1 -0
- package/lib/capabilities/isSyncOnboardingSupported.test.js +18 -0
- package/lib/capabilities/isSyncOnboardingSupported.test.js.map +1 -0
- package/lib/commands/entities/AppStorageInfo.test.d.ts +2 -0
- package/lib/commands/entities/AppStorageInfo.test.d.ts.map +1 -0
- package/lib/commands/entities/AppStorageInfo.test.js +48 -0
- package/lib/commands/entities/AppStorageInfo.test.js.map +1 -0
- package/lib/commands/use-cases/app-backup/backupAppStorage.test.d.ts +2 -0
- package/lib/commands/use-cases/app-backup/backupAppStorage.test.d.ts.map +1 -0
- package/lib/commands/use-cases/app-backup/backupAppStorage.test.js +47 -0
- package/lib/commands/use-cases/app-backup/backupAppStorage.test.js.map +1 -0
- package/lib/commands/use-cases/app-backup/getAppStorageInfo.test.d.ts +2 -0
- package/lib/commands/use-cases/app-backup/getAppStorageInfo.test.d.ts.map +1 -0
- package/lib/commands/use-cases/app-backup/getAppStorageInfo.test.js +58 -0
- package/lib/commands/use-cases/app-backup/getAppStorageInfo.test.js.map +1 -0
- package/lib/commands/use-cases/app-backup/restoreAppStorage.test.d.ts +2 -0
- package/lib/commands/use-cases/app-backup/restoreAppStorage.test.d.ts.map +1 -0
- package/lib/commands/use-cases/app-backup/restoreAppStorage.test.js +51 -0
- package/lib/commands/use-cases/app-backup/restoreAppStorage.test.js.map +1 -0
- package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.test.d.ts +2 -0
- package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.test.d.ts.map +1 -0
- package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.test.js +40 -0
- package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.test.js.map +1 -0
- package/lib/commands/use-cases/app-backup/restoreAppStorageInit.test.d.ts +2 -0
- package/lib/commands/use-cases/app-backup/restoreAppStorageInit.test.d.ts.map +1 -0
- package/lib/commands/use-cases/app-backup/restoreAppStorageInit.test.js +55 -0
- package/lib/commands/use-cases/app-backup/restoreAppStorageInit.test.js.map +1 -0
- package/lib/commands/use-cases/consent/reinstallConfigurationConsent.test.d.ts +2 -0
- package/lib/commands/use-cases/consent/reinstallConfigurationConsent.test.d.ts.map +1 -0
- package/lib/commands/use-cases/consent/reinstallConfigurationConsent.test.js +39 -0
- package/lib/commands/use-cases/consent/reinstallConfigurationConsent.test.js.map +1 -0
- package/lib/commands/use-cases/isBootloaderVersionSupported.test.d.ts +2 -0
- package/lib/commands/use-cases/isBootloaderVersionSupported.test.d.ts.map +1 -0
- package/lib/commands/use-cases/isBootloaderVersionSupported.test.js +63 -0
- package/lib/commands/use-cases/isBootloaderVersionSupported.test.js.map +1 -0
- package/lib/commands/use-cases/isCharonSupported.test.d.ts +2 -0
- package/lib/commands/use-cases/isCharonSupported.test.d.ts.map +1 -0
- package/lib/commands/use-cases/isCharonSupported.test.js +46 -0
- package/lib/commands/use-cases/isCharonSupported.test.js.map +1 -0
- package/lib/commands/use-cases/isDeviceLocalizationSupported.test.d.ts +2 -0
- package/lib/commands/use-cases/isDeviceLocalizationSupported.test.d.ts.map +1 -0
- package/lib/commands/use-cases/isDeviceLocalizationSupported.test.js +55 -0
- package/lib/commands/use-cases/isDeviceLocalizationSupported.test.js.map +1 -0
- package/lib/commands/use-cases/isHardwareVersionSupported.test.d.ts +2 -0
- package/lib/commands/use-cases/isHardwareVersionSupported.test.d.ts.map +1 -0
- package/lib/commands/use-cases/isHardwareVersionSupported.test.js +36 -0
- package/lib/commands/use-cases/isHardwareVersionSupported.test.js.map +1 -0
- package/lib/commands/use-cases/isRecoverSupported.test.d.ts +2 -0
- package/lib/commands/use-cases/isRecoverSupported.test.d.ts.map +1 -0
- package/lib/commands/use-cases/isRecoverSupported.test.js +54 -0
- package/lib/commands/use-cases/isRecoverSupported.test.js.map +1 -0
- package/lib/commands/use-cases/parseGetDeviceNameResponse.test.d.ts +2 -0
- package/lib/commands/use-cases/parseGetDeviceNameResponse.test.d.ts.map +1 -0
- package/lib/commands/use-cases/parseGetDeviceNameResponse.test.js +27 -0
- package/lib/commands/use-cases/parseGetDeviceNameResponse.test.js.map +1 -0
- package/lib/commands/use-cases/parseGetVersionResponse.test.d.ts +2 -0
- package/lib/commands/use-cases/parseGetVersionResponse.test.d.ts.map +1 -0
- package/lib/commands/use-cases/parseGetVersionResponse.test.js +145 -0
- package/lib/commands/use-cases/parseGetVersionResponse.test.js.map +1 -0
- package/lib/firmwareUpdate/shouldForceFirmwareUpdate.test.d.ts +2 -0
- package/lib/firmwareUpdate/shouldForceFirmwareUpdate.test.d.ts.map +1 -0
- package/lib/firmwareUpdate/shouldForceFirmwareUpdate.test.js +69 -0
- package/lib/firmwareUpdate/shouldForceFirmwareUpdate.test.js.map +1 -0
- package/lib/index.d.ts +0 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/managerApi/repositories/HttpManagerApiRepository.test.d.ts +2 -0
- package/lib/managerApi/repositories/HttpManagerApiRepository.test.d.ts.map +1 -0
- package/lib/managerApi/repositories/HttpManagerApiRepository.test.js +390 -0
- package/lib/managerApi/repositories/HttpManagerApiRepository.test.js.map +1 -0
- package/lib/managerApi/use-cases/getAppsCatalogForDevice.d.ts +1 -1
- package/lib/managerApi/use-cases/getAppsCatalogForDevice.d.ts.map +1 -1
- package/lib/managerApi/use-cases/getLatestFirmwareForDevice.test.d.ts +2 -0
- package/lib/managerApi/use-cases/getLatestFirmwareForDevice.test.d.ts.map +1 -0
- package/lib/managerApi/use-cases/getLatestFirmwareForDevice.test.js +169 -0
- package/lib/managerApi/use-cases/getLatestFirmwareForDevice.test.js.map +1 -0
- package/lib-es/capabilities/isCustomLockScreenSupported.test.d.ts +2 -0
- package/lib-es/capabilities/isCustomLockScreenSupported.test.d.ts.map +1 -0
- package/lib-es/capabilities/isCustomLockScreenSupported.test.js +24 -0
- package/lib-es/capabilities/isCustomLockScreenSupported.test.js.map +1 -0
- package/lib-es/capabilities/isEditDeviceNameSupported.test.d.ts +2 -0
- package/lib-es/capabilities/isEditDeviceNameSupported.test.d.ts.map +1 -0
- package/lib-es/capabilities/isEditDeviceNameSupported.test.js +23 -0
- package/lib-es/capabilities/isEditDeviceNameSupported.test.js.map +1 -0
- package/lib-es/capabilities/isSyncOnboardingSupported.test.d.ts +2 -0
- package/lib-es/capabilities/isSyncOnboardingSupported.test.d.ts.map +1 -0
- package/lib-es/capabilities/isSyncOnboardingSupported.test.js +16 -0
- package/lib-es/capabilities/isSyncOnboardingSupported.test.js.map +1 -0
- package/lib-es/commands/entities/AppStorageInfo.test.d.ts +2 -0
- package/lib-es/commands/entities/AppStorageInfo.test.d.ts.map +1 -0
- package/lib-es/commands/entities/AppStorageInfo.test.js +46 -0
- package/lib-es/commands/entities/AppStorageInfo.test.js.map +1 -0
- package/lib-es/commands/use-cases/app-backup/backupAppStorage.test.d.ts +2 -0
- package/lib-es/commands/use-cases/app-backup/backupAppStorage.test.d.ts.map +1 -0
- package/lib-es/commands/use-cases/app-backup/backupAppStorage.test.js +45 -0
- package/lib-es/commands/use-cases/app-backup/backupAppStorage.test.js.map +1 -0
- package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.test.d.ts +2 -0
- package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.test.d.ts.map +1 -0
- package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.test.js +56 -0
- package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.test.js.map +1 -0
- package/lib-es/commands/use-cases/app-backup/restoreAppStorage.test.d.ts +2 -0
- package/lib-es/commands/use-cases/app-backup/restoreAppStorage.test.d.ts.map +1 -0
- package/lib-es/commands/use-cases/app-backup/restoreAppStorage.test.js +49 -0
- package/lib-es/commands/use-cases/app-backup/restoreAppStorage.test.js.map +1 -0
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.test.d.ts +2 -0
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.test.d.ts.map +1 -0
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.test.js +38 -0
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.test.js.map +1 -0
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.test.d.ts +2 -0
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.test.d.ts.map +1 -0
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.test.js +53 -0
- package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.test.js.map +1 -0
- package/lib-es/commands/use-cases/consent/reinstallConfigurationConsent.test.d.ts +2 -0
- package/lib-es/commands/use-cases/consent/reinstallConfigurationConsent.test.d.ts.map +1 -0
- package/lib-es/commands/use-cases/consent/reinstallConfigurationConsent.test.js +37 -0
- package/lib-es/commands/use-cases/consent/reinstallConfigurationConsent.test.js.map +1 -0
- package/lib-es/commands/use-cases/isBootloaderVersionSupported.test.d.ts +2 -0
- package/lib-es/commands/use-cases/isBootloaderVersionSupported.test.d.ts.map +1 -0
- package/lib-es/commands/use-cases/isBootloaderVersionSupported.test.js +61 -0
- package/lib-es/commands/use-cases/isBootloaderVersionSupported.test.js.map +1 -0
- package/lib-es/commands/use-cases/isCharonSupported.test.d.ts +2 -0
- package/lib-es/commands/use-cases/isCharonSupported.test.d.ts.map +1 -0
- package/lib-es/commands/use-cases/isCharonSupported.test.js +44 -0
- package/lib-es/commands/use-cases/isCharonSupported.test.js.map +1 -0
- package/lib-es/commands/use-cases/isDeviceLocalizationSupported.test.d.ts +2 -0
- package/lib-es/commands/use-cases/isDeviceLocalizationSupported.test.d.ts.map +1 -0
- package/lib-es/commands/use-cases/isDeviceLocalizationSupported.test.js +53 -0
- package/lib-es/commands/use-cases/isDeviceLocalizationSupported.test.js.map +1 -0
- package/lib-es/commands/use-cases/isHardwareVersionSupported.test.d.ts +2 -0
- package/lib-es/commands/use-cases/isHardwareVersionSupported.test.d.ts.map +1 -0
- package/lib-es/commands/use-cases/isHardwareVersionSupported.test.js +34 -0
- package/lib-es/commands/use-cases/isHardwareVersionSupported.test.js.map +1 -0
- package/lib-es/commands/use-cases/isRecoverSupported.test.d.ts +2 -0
- package/lib-es/commands/use-cases/isRecoverSupported.test.d.ts.map +1 -0
- package/lib-es/commands/use-cases/isRecoverSupported.test.js +52 -0
- package/lib-es/commands/use-cases/isRecoverSupported.test.js.map +1 -0
- package/lib-es/commands/use-cases/parseGetDeviceNameResponse.test.d.ts +2 -0
- package/lib-es/commands/use-cases/parseGetDeviceNameResponse.test.d.ts.map +1 -0
- package/lib-es/commands/use-cases/parseGetDeviceNameResponse.test.js +25 -0
- package/lib-es/commands/use-cases/parseGetDeviceNameResponse.test.js.map +1 -0
- package/lib-es/commands/use-cases/parseGetVersionResponse.test.d.ts +2 -0
- package/lib-es/commands/use-cases/parseGetVersionResponse.test.d.ts.map +1 -0
- package/lib-es/commands/use-cases/parseGetVersionResponse.test.js +143 -0
- package/lib-es/commands/use-cases/parseGetVersionResponse.test.js.map +1 -0
- package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.test.d.ts +2 -0
- package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.test.d.ts.map +1 -0
- package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.test.js +67 -0
- package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.test.js.map +1 -0
- package/lib-es/index.d.ts +0 -1
- package/lib-es/index.d.ts.map +1 -1
- package/lib-es/index.js.map +1 -1
- package/lib-es/managerApi/repositories/HttpManagerApiRepository.test.d.ts +2 -0
- package/lib-es/managerApi/repositories/HttpManagerApiRepository.test.d.ts.map +1 -0
- package/lib-es/managerApi/repositories/HttpManagerApiRepository.test.js +388 -0
- package/lib-es/managerApi/repositories/HttpManagerApiRepository.test.js.map +1 -0
- package/lib-es/managerApi/use-cases/getAppsCatalogForDevice.d.ts +1 -1
- package/lib-es/managerApi/use-cases/getAppsCatalogForDevice.d.ts.map +1 -1
- package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.test.d.ts +2 -0
- package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.test.d.ts.map +1 -0
- package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.test.js +167 -0
- package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.test.js.map +1 -0
- package/package.json +6 -6
- package/src/index.ts +0 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> @ledgerhq/device-core@0.6.6
|
|
2
|
+
> @ledgerhq/device-core@0.6.6 build /home/runner/work/ledger-live/ledger-live/libs/device-core
|
|
3
3
|
> tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es
|
|
4
4
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,59 +1,27 @@
|
|
|
1
1
|
# @ledgerhq/device-core
|
|
2
2
|
|
|
3
|
-
## 0.6.6
|
|
3
|
+
## 0.6.6
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
|
-
- Updated dependencies [[`
|
|
8
|
-
- @ledgerhq/types-live@6.87.0
|
|
9
|
-
- @ledgerhq/live-network@2.0.20
|
|
7
|
+
- Updated dependencies [[`b88faa1`](https://github.com/LedgerHQ/ledger-live/commit/b88faa18e2f5cd309b54fc3157a44db606846cc5), [`cfe65ca`](https://github.com/LedgerHQ/ledger-live/commit/cfe65cafa268be4e53197ee163ce78f28ed72592), [`a9aacdb`](https://github.com/LedgerHQ/ledger-live/commit/a9aacdb330700f0a294833f7d77de17f179229b2), [`89ac0ed`](https://github.com/LedgerHQ/ledger-live/commit/89ac0eddc145dcf5c7cf240aa8be4301372c8f33), [`8645f01`](https://github.com/LedgerHQ/ledger-live/commit/8645f016191d29a55f6b0ca6e4b1d1909fd35445), [`db25e21`](https://github.com/LedgerHQ/ledger-live/commit/db25e212b87dea426b153c6f1d988cead63c8c46), [`cab7d97`](https://github.com/LedgerHQ/ledger-live/commit/cab7d9794e7babb8220c6d339fb08e618e3d4202)]:
|
|
8
|
+
- @ledgerhq/types-live@6.87.0
|
|
9
|
+
- @ledgerhq/live-network@2.0.20
|
|
10
10
|
|
|
11
|
-
## 0.6.6-
|
|
11
|
+
## 0.6.6-next.1
|
|
12
12
|
|
|
13
13
|
### Patch Changes
|
|
14
14
|
|
|
15
|
-
- Updated dependencies [[`
|
|
16
|
-
- @ledgerhq/types-live@6.87.0-
|
|
15
|
+
- Updated dependencies [[`b88faa1`](https://github.com/LedgerHQ/ledger-live/commit/b88faa18e2f5cd309b54fc3157a44db606846cc5)]:
|
|
16
|
+
- @ledgerhq/types-live@6.87.0-next.1
|
|
17
17
|
|
|
18
|
-
## 0.6.6-
|
|
18
|
+
## 0.6.6-next.0
|
|
19
19
|
|
|
20
20
|
### Patch Changes
|
|
21
21
|
|
|
22
|
-
- Updated dependencies []:
|
|
23
|
-
- @ledgerhq/live
|
|
24
|
-
|
|
25
|
-
## 0.6.6-nightly.3
|
|
26
|
-
|
|
27
|
-
### Patch Changes
|
|
28
|
-
|
|
29
|
-
- Updated dependencies [[`7744980`](https://github.com/LedgerHQ/ledger-live/commit/774498090411f1a6d6c06395dda1fc7cd24adf24), [`759064d`](https://github.com/LedgerHQ/ledger-live/commit/759064d4815c636af2d73ba548a85b4f53e7b491)]:
|
|
30
|
-
- @ledgerhq/types-live@6.87.0-nightly.3
|
|
31
|
-
- @ledgerhq/errors@6.27.0-nightly.0
|
|
32
|
-
- @ledgerhq/devices@8.6.2-nightly.0
|
|
33
|
-
- @ledgerhq/hw-transport@6.31.13-nightly.0
|
|
34
|
-
- @ledgerhq/live-network@2.0.20-nightly.1
|
|
35
|
-
|
|
36
|
-
## 0.6.6-nightly.2
|
|
37
|
-
|
|
38
|
-
### Patch Changes
|
|
39
|
-
|
|
40
|
-
- Updated dependencies [[`8645f01`](https://github.com/LedgerHQ/ledger-live/commit/8645f016191d29a55f6b0ca6e4b1d1909fd35445)]:
|
|
41
|
-
- @ledgerhq/types-live@6.87.0-nightly.2
|
|
42
|
-
|
|
43
|
-
## 0.6.6-nightly.1
|
|
44
|
-
|
|
45
|
-
### Patch Changes
|
|
46
|
-
|
|
47
|
-
- Updated dependencies [[`a9aacdb`](https://github.com/LedgerHQ/ledger-live/commit/a9aacdb330700f0a294833f7d77de17f179229b2), [`89ac0ed`](https://github.com/LedgerHQ/ledger-live/commit/89ac0eddc145dcf5c7cf240aa8be4301372c8f33), [`db25e21`](https://github.com/LedgerHQ/ledger-live/commit/db25e212b87dea426b153c6f1d988cead63c8c46)]:
|
|
48
|
-
- @ledgerhq/types-live@6.87.0-nightly.1
|
|
49
|
-
- @ledgerhq/live-network@2.0.20-nightly.0
|
|
50
|
-
|
|
51
|
-
## 0.6.6-nightly.0
|
|
52
|
-
|
|
53
|
-
### Patch Changes
|
|
54
|
-
|
|
55
|
-
- Updated dependencies [[`cfe65ca`](https://github.com/LedgerHQ/ledger-live/commit/cfe65cafa268be4e53197ee163ce78f28ed72592), [`cab7d97`](https://github.com/LedgerHQ/ledger-live/commit/cab7d9794e7babb8220c6d339fb08e618e3d4202)]:
|
|
56
|
-
- @ledgerhq/types-live@6.87.0-nightly.0
|
|
22
|
+
- Updated dependencies [[`cfe65ca`](https://github.com/LedgerHQ/ledger-live/commit/cfe65cafa268be4e53197ee163ce78f28ed72592), [`a9aacdb`](https://github.com/LedgerHQ/ledger-live/commit/a9aacdb330700f0a294833f7d77de17f179229b2), [`89ac0ed`](https://github.com/LedgerHQ/ledger-live/commit/89ac0eddc145dcf5c7cf240aa8be4301372c8f33), [`8645f01`](https://github.com/LedgerHQ/ledger-live/commit/8645f016191d29a55f6b0ca6e4b1d1909fd35445), [`db25e21`](https://github.com/LedgerHQ/ledger-live/commit/db25e212b87dea426b153c6f1d988cead63c8c46), [`cab7d97`](https://github.com/LedgerHQ/ledger-live/commit/cab7d9794e7babb8220c6d339fb08e618e3d4202)]:
|
|
23
|
+
- @ledgerhq/types-live@6.87.0-next.0
|
|
24
|
+
- @ledgerhq/live-network@2.0.20-next.0
|
|
57
25
|
|
|
58
26
|
## 0.6.5
|
|
59
27
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isCustomLockScreenSupported.test.d.ts","sourceRoot":"","sources":["../../src/capabilities/isCustomLockScreenSupported.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const devices_1 = require("@ledgerhq/devices");
|
|
4
|
+
const isCustomLockScreenSupported_1 = require("./isCustomLockScreenSupported");
|
|
5
|
+
describe("isCustomLockScreenSupported", () => {
|
|
6
|
+
it("should return true if custom lock screen is supported", () => {
|
|
7
|
+
expect((0, isCustomLockScreenSupported_1.isCustomLockScreenSupported)(devices_1.DeviceModelId.stax)).toBe(true);
|
|
8
|
+
expect((0, isCustomLockScreenSupported_1.isCustomLockScreenSupported)(devices_1.DeviceModelId.europa)).toBe(true);
|
|
9
|
+
});
|
|
10
|
+
it("should return false if custom lock screen is not supported", () => {
|
|
11
|
+
expect((0, isCustomLockScreenSupported_1.isCustomLockScreenSupported)(devices_1.DeviceModelId.nanoS)).toBe(false);
|
|
12
|
+
expect((0, isCustomLockScreenSupported_1.isCustomLockScreenSupported)(devices_1.DeviceModelId.nanoSP)).toBe(false);
|
|
13
|
+
expect((0, isCustomLockScreenSupported_1.isCustomLockScreenSupported)(devices_1.DeviceModelId.nanoX)).toBe(false);
|
|
14
|
+
expect((0, isCustomLockScreenSupported_1.isCustomLockScreenSupported)(devices_1.DeviceModelId.blue)).toBe(false);
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
describe("supportedDeviceModelIds", () => {
|
|
18
|
+
it("should return supported device model ids", () => {
|
|
19
|
+
expect(isCustomLockScreenSupported_1.supportedDeviceModelIds).toEqual([
|
|
20
|
+
devices_1.DeviceModelId.stax,
|
|
21
|
+
devices_1.DeviceModelId.europa,
|
|
22
|
+
devices_1.DeviceModelId.apex,
|
|
23
|
+
]);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=isCustomLockScreenSupported.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isCustomLockScreenSupported.test.js","sourceRoot":"","sources":["../../src/capabilities/isCustomLockScreenSupported.test.ts"],"names":[],"mappings":";;AAAA,+CAAkD;AAClD,+EAGuC;AAEvC,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,IAAA,yDAA2B,EAAC,uBAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,CAAC,IAAA,yDAA2B,EAAC,uBAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,CAAC,IAAA,yDAA2B,EAAC,uBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrE,MAAM,CAAC,IAAA,yDAA2B,EAAC,uBAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,CAAC,IAAA,yDAA2B,EAAC,uBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrE,MAAM,CAAC,IAAA,yDAA2B,EAAC,uBAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,qDAAuB,CAAC,CAAC,OAAO,CAAC;YACtC,uBAAa,CAAC,IAAI;YAClB,uBAAa,CAAC,MAAM;YACpB,uBAAa,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isEditDeviceNameSupported.test.d.ts","sourceRoot":"","sources":["../../src/capabilities/isEditDeviceNameSupported.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const devices_1 = require("@ledgerhq/devices");
|
|
4
|
+
const isEditDeviceNameSupported_1 = require("./isEditDeviceNameSupported");
|
|
5
|
+
const supportedDevices = [
|
|
6
|
+
devices_1.DeviceModelId.stax,
|
|
7
|
+
devices_1.DeviceModelId.nanoX,
|
|
8
|
+
devices_1.DeviceModelId.europa,
|
|
9
|
+
devices_1.DeviceModelId.nanoSP,
|
|
10
|
+
devices_1.DeviceModelId.apex,
|
|
11
|
+
];
|
|
12
|
+
const unsupportedDevices = [devices_1.DeviceModelId.blue];
|
|
13
|
+
describe("isEditDeviceNameSupported", () => {
|
|
14
|
+
it("should return true for supported devices", () => {
|
|
15
|
+
supportedDevices.forEach((deviceModelId) => {
|
|
16
|
+
expect((0, isEditDeviceNameSupported_1.isEditDeviceNameSupported)(deviceModelId)).toBe(true);
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
it("should return false for unsupported devices", () => {
|
|
20
|
+
unsupportedDevices.forEach((deviceModelId) => {
|
|
21
|
+
expect((0, isEditDeviceNameSupported_1.isEditDeviceNameSupported)(deviceModelId)).toBe(false);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=isEditDeviceNameSupported.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isEditDeviceNameSupported.test.js","sourceRoot":"","sources":["../../src/capabilities/isEditDeviceNameSupported.test.ts"],"names":[],"mappings":";;AAAA,+CAAkD;AAClD,2EAAwE;AAExE,MAAM,gBAAgB,GAAG;IACvB,uBAAa,CAAC,IAAI;IAClB,uBAAa,CAAC,KAAK;IACnB,uBAAa,CAAC,MAAM;IACpB,uBAAa,CAAC,MAAM;IACpB,uBAAa,CAAC,IAAI;CACnB,CAAC;AACF,MAAM,kBAAkB,GAAG,CAAC,uBAAa,CAAC,IAAI,CAAC,CAAC;AAEhD,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,gBAAgB,CAAC,OAAO,CAAC,CAAC,aAA4B,EAAE,EAAE;YACxD,MAAM,CAAC,IAAA,qDAAyB,EAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,kBAAkB,CAAC,OAAO,CAAC,CAAC,aAA4B,EAAE,EAAE;YAC1D,MAAM,CAAC,IAAA,qDAAyB,EAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isSyncOnboardingSupported.test.d.ts","sourceRoot":"","sources":["../../src/capabilities/isSyncOnboardingSupported.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const devices_1 = require("@ledgerhq/devices");
|
|
4
|
+
const isSyncOnboardingSupported_1 = require("./isSyncOnboardingSupported");
|
|
5
|
+
describe("isSyncOnboardingSupported", () => {
|
|
6
|
+
it("should return true if sync onboarding is supported", () => {
|
|
7
|
+
expect((0, isSyncOnboardingSupported_1.isSyncOnboardingSupported)(devices_1.DeviceModelId.stax)).toBe(true);
|
|
8
|
+
expect((0, isSyncOnboardingSupported_1.isSyncOnboardingSupported)(devices_1.DeviceModelId.europa)).toBe(true);
|
|
9
|
+
expect((0, isSyncOnboardingSupported_1.isSyncOnboardingSupported)(devices_1.DeviceModelId.apex)).toBe(true);
|
|
10
|
+
});
|
|
11
|
+
it("should return false if sync onboarding is not supported", () => {
|
|
12
|
+
expect((0, isSyncOnboardingSupported_1.isSyncOnboardingSupported)(devices_1.DeviceModelId.nanoS)).toBe(false);
|
|
13
|
+
expect((0, isSyncOnboardingSupported_1.isSyncOnboardingSupported)(devices_1.DeviceModelId.nanoSP)).toBe(false);
|
|
14
|
+
expect((0, isSyncOnboardingSupported_1.isSyncOnboardingSupported)(devices_1.DeviceModelId.nanoX)).toBe(false);
|
|
15
|
+
expect((0, isSyncOnboardingSupported_1.isSyncOnboardingSupported)(devices_1.DeviceModelId.blue)).toBe(false);
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=isSyncOnboardingSupported.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isSyncOnboardingSupported.test.js","sourceRoot":"","sources":["../../src/capabilities/isSyncOnboardingSupported.test.ts"],"names":[],"mappings":";;AAAA,+CAAkD;AAClD,2EAAwE;AAExE,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,IAAA,qDAAyB,EAAC,uBAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,IAAA,qDAAyB,EAAC,uBAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,CAAC,IAAA,qDAAyB,EAAC,uBAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,IAAA,qDAAyB,EAAC,uBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,CAAC,IAAA,qDAAyB,EAAC,uBAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,CAAC,IAAA,qDAAyB,EAAC,uBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,CAAC,IAAA,qDAAyB,EAAC,uBAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppStorageInfo.test.d.ts","sourceRoot":"","sources":["../../../src/commands/entities/AppStorageInfo.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const AppStorageInfo_1 = require("./AppStorageInfo");
|
|
4
|
+
describe("isAppStorageInfo", () => {
|
|
5
|
+
it("should return true for valid AppStorageInfo object", () => {
|
|
6
|
+
const data = {
|
|
7
|
+
size: 1024,
|
|
8
|
+
dataVersion: "1.0.0",
|
|
9
|
+
hasSettings: true,
|
|
10
|
+
hasData: true,
|
|
11
|
+
hash: "abcd1234",
|
|
12
|
+
};
|
|
13
|
+
expect((0, AppStorageInfo_1.isAppStorageInfo)(data)).toBe(true);
|
|
14
|
+
});
|
|
15
|
+
it("should return false for non-object input", () => {
|
|
16
|
+
const data = "invalid";
|
|
17
|
+
expect((0, AppStorageInfo_1.isAppStorageInfo)(data)).toBe(false);
|
|
18
|
+
});
|
|
19
|
+
it("should return false for null input", () => {
|
|
20
|
+
const data = null;
|
|
21
|
+
expect((0, AppStorageInfo_1.isAppStorageInfo)(data)).toBe(false);
|
|
22
|
+
});
|
|
23
|
+
it("should return false for undefined input", () => {
|
|
24
|
+
const data = undefined;
|
|
25
|
+
expect((0, AppStorageInfo_1.isAppStorageInfo)(data)).toBe(false);
|
|
26
|
+
});
|
|
27
|
+
it("should return false if missing property", () => {
|
|
28
|
+
const data = {
|
|
29
|
+
// Missing size property
|
|
30
|
+
dataVersion: "1.0.0",
|
|
31
|
+
hasSettings: true,
|
|
32
|
+
hasData: true,
|
|
33
|
+
hash: "abcd1234",
|
|
34
|
+
};
|
|
35
|
+
expect((0, AppStorageInfo_1.isAppStorageInfo)(data)).toBe(false);
|
|
36
|
+
});
|
|
37
|
+
it("should return false if property type not correct", () => {
|
|
38
|
+
const data = {
|
|
39
|
+
size: 1024,
|
|
40
|
+
dataVersion: "1.0.0",
|
|
41
|
+
hasSettings: "Yes",
|
|
42
|
+
hasData: true,
|
|
43
|
+
hash: "abcd1234",
|
|
44
|
+
};
|
|
45
|
+
expect((0, AppStorageInfo_1.isAppStorageInfo)(data)).toBe(false);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=AppStorageInfo.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppStorageInfo.test.js","sourceRoot":"","sources":["../../../src/commands/entities/AppStorageInfo.test.ts"],"names":[],"mappings":";;AAAA,qDAAoE;AAEpE,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,IAAI,GAAmB;YAC3B,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,UAAU;SACjB,CAAC;QAEF,MAAM,CAAC,IAAA,iCAAgB,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,IAAI,GAAY,SAAS,CAAC;QAEhC,MAAM,CAAC,IAAA,iCAAgB,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,IAAI,GAAY,IAAI,CAAC;QAE3B,MAAM,CAAC,IAAA,iCAAgB,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,IAAI,GAAY,SAAS,CAAC;QAEhC,MAAM,CAAC,IAAA,iCAAgB,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,IAAI,GAAY;YACpB,wBAAwB;YACxB,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,UAAU;SACjB,CAAC;QAEF,MAAM,CAAC,IAAA,iCAAgB,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,IAAI,GAAY;YACpB,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,UAAU;SACjB,CAAC;QAEF,MAAM,CAAC,IAAA,iCAAgB,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backupAppStorage.test.d.ts","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/backupAppStorage.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const hw_transport_1 = require("@ledgerhq/hw-transport");
|
|
4
|
+
const backupAppStorage_1 = require("./backupAppStorage");
|
|
5
|
+
const errors_1 = require("../../../errors");
|
|
6
|
+
jest.mock("@ledgerhq/hw-transport");
|
|
7
|
+
describe("backupAppStorage", () => {
|
|
8
|
+
let transport;
|
|
9
|
+
const response = Buffer.from([
|
|
10
|
+
0x31, 0x30, 0x36, 0x52, 0x75, 0x65, 0x64, 0x75, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x65, 0x90, 0x00,
|
|
11
|
+
]);
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
transport = {
|
|
14
|
+
send: jest.fn().mockResolvedValue(response),
|
|
15
|
+
getTraceContext: jest.fn().mockResolvedValue(undefined),
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
afterEach(() => {
|
|
19
|
+
jest.clearAllMocks();
|
|
20
|
+
});
|
|
21
|
+
it("should call the send function with correct parameters", async () => {
|
|
22
|
+
await (0, backupAppStorage_1.backupAppStorage)(transport);
|
|
23
|
+
expect(transport.send).toHaveBeenCalledWith(0xe0, 0x6b, 0x00, 0x00, Buffer.from([]), [
|
|
24
|
+
hw_transport_1.StatusCodes.OK,
|
|
25
|
+
hw_transport_1.StatusCodes.APP_NOT_FOUND_OR_INVALID_CONTEXT,
|
|
26
|
+
hw_transport_1.StatusCodes.GEN_AES_KEY_FAILED,
|
|
27
|
+
hw_transport_1.StatusCodes.INTERNAL_CRYPTO_OPERATION_FAILED,
|
|
28
|
+
hw_transport_1.StatusCodes.INTERNAL_COMPUTE_AES_CMAC_FAILED,
|
|
29
|
+
hw_transport_1.StatusCodes.ENCRYPT_APP_STORAGE_FAILED,
|
|
30
|
+
hw_transport_1.StatusCodes.DEVICE_IN_RECOVERY_MODE,
|
|
31
|
+
hw_transport_1.StatusCodes.INVALID_BACKUP_STATE,
|
|
32
|
+
]);
|
|
33
|
+
});
|
|
34
|
+
describe("parseResponse", () => {
|
|
35
|
+
it("should parse the response data correctly", () => {
|
|
36
|
+
const expected = Buffer.from([
|
|
37
|
+
0x31, 0x30, 0x36, 0x52, 0x75, 0x65, 0x64, 0x75, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x65,
|
|
38
|
+
]);
|
|
39
|
+
expect((0, backupAppStorage_1.parseResponse)(response)).toStrictEqual(expected);
|
|
40
|
+
});
|
|
41
|
+
it("should throw TransportStatusError if the response status is invalid", () => {
|
|
42
|
+
const data = Buffer.from([0x54, 0x1b]);
|
|
43
|
+
expect(() => (0, backupAppStorage_1.parseResponse)(data)).toThrow(new errors_1.InternalComputeAesCmacFailed("Internal error, failed to compute AES CMAC."));
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=backupAppStorage.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backupAppStorage.test.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/backupAppStorage.test.ts"],"names":[],"mappings":";;AAAA,yDAAgE;AAChE,yDAAqE;AACrE,4CAA+D;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,IAAA,mCAAgB,EAAC,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,0BAAW,CAAC,EAAE;YACd,0BAAW,CAAC,gCAAgC;YAC5C,0BAAW,CAAC,kBAAkB;YAC9B,0BAAW,CAAC,gCAAgC;YAC5C,0BAAW,CAAC,gCAAgC;YAC5C,0BAAW,CAAC,0BAA0B;YACtC,0BAAW,CAAC,uBAAuB;YACnC,0BAAW,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,IAAA,gCAAa,EAAC,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,IAAA,gCAAa,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CACvC,IAAI,qCAA4B,CAAC,6CAA6C,CAAC,CAChF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAppStorageInfo.test.d.ts","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/getAppStorageInfo.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const hw_transport_1 = require("@ledgerhq/hw-transport");
|
|
4
|
+
const getAppStorageInfo_1 = require("./getAppStorageInfo");
|
|
5
|
+
const errors_1 = require("../../../errors");
|
|
6
|
+
jest.mock("@ledgerhq/hw-transport");
|
|
7
|
+
describe("getAppStorageInfo", () => {
|
|
8
|
+
let transport;
|
|
9
|
+
const response = Buffer.from([
|
|
10
|
+
// Status code 1234
|
|
11
|
+
0x00, 0x00, 0x04, 0xd2,
|
|
12
|
+
// Data version 1.01
|
|
13
|
+
0x31, 0x2e, 0x30, 0x31,
|
|
14
|
+
// Has settings and data
|
|
15
|
+
0x00, 0x03,
|
|
16
|
+
// Hash hashhash1234hashhashhashhashhash
|
|
17
|
+
0x68, 0x61, 0x73, 0x68, 0x68, 0x61, 0x73, 0x68, 0x31, 0x32, 0x33, 0x34, 0x68, 0x61, 0x73, 0x68,
|
|
18
|
+
0x68, 0x61, 0x73, 0x68, 0x68, 0x61, 0x73, 0x68, 0x68, 0x61, 0x73, 0x68, 0x68, 0x61, 0x73, 0x68,
|
|
19
|
+
// Status word
|
|
20
|
+
0x90, 0x00,
|
|
21
|
+
]);
|
|
22
|
+
beforeEach(() => {
|
|
23
|
+
transport = {
|
|
24
|
+
send: jest.fn().mockResolvedValue(response),
|
|
25
|
+
getTraceContext: jest.fn().mockResolvedValue(undefined),
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
afterEach(() => {
|
|
29
|
+
jest.clearAllMocks();
|
|
30
|
+
});
|
|
31
|
+
it("should call the send function with correct parameters", async () => {
|
|
32
|
+
const appName = "MyApp";
|
|
33
|
+
await (0, getAppStorageInfo_1.getAppStorageInfo)(transport, appName);
|
|
34
|
+
expect(transport.send).toHaveBeenCalledWith(0xe0, 0x6a, 0x00, 0x00, Buffer.from(appName, "ascii"), [
|
|
35
|
+
hw_transport_1.StatusCodes.OK,
|
|
36
|
+
hw_transport_1.StatusCodes.APP_NOT_FOUND_OR_INVALID_CONTEXT,
|
|
37
|
+
hw_transport_1.StatusCodes.DEVICE_IN_RECOVERY_MODE,
|
|
38
|
+
hw_transport_1.StatusCodes.INVALID_APP_NAME_LENGTH,
|
|
39
|
+
]);
|
|
40
|
+
});
|
|
41
|
+
describe("parseResponse", () => {
|
|
42
|
+
it("should parse the response data correctly", () => {
|
|
43
|
+
const expected = {
|
|
44
|
+
size: 1234,
|
|
45
|
+
dataVersion: Buffer.from("1.01").toString("hex"),
|
|
46
|
+
hasSettings: true,
|
|
47
|
+
hasData: true,
|
|
48
|
+
hash: Buffer.from("hashhash1234hashhashhashhashhash").toString("hex"),
|
|
49
|
+
};
|
|
50
|
+
expect((0, getAppStorageInfo_1.parseResponse)(response)).toStrictEqual(expected);
|
|
51
|
+
});
|
|
52
|
+
it("should throw TransportStatusError if the response status is invalid", () => {
|
|
53
|
+
const data = Buffer.from([0x67, 0x0a]);
|
|
54
|
+
expect(() => (0, getAppStorageInfo_1.parseResponse)(data)).toThrow(new errors_1.InvalidAppNameLength("Invalid application name length, two chars minimum."));
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=getAppStorageInfo.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAppStorageInfo.test.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/getAppStorageInfo.test.ts"],"names":[],"mappings":";;AAAA,yDAAgE;AAChE,2DAAuE;AAEvE,4CAAuD;AAEvD,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAEpC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,SAAoB,CAAC;IACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;QAC3B,mBAAmB;QACnB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QACtB,oBAAoB;QACpB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QACtB,wBAAwB;QACxB,IAAI,EAAE,IAAI;QACV,wCAAwC;QACxC,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;QAC9F,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;QAC9F,cAAc;QACd,IAAI,EAAE,IAAI;KACX,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,OAAO,GAAG,OAAO,CAAC;QACxB,MAAM,IAAA,qCAAiB,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACzC,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAC7B;YACE,0BAAW,CAAC,EAAE;YACd,0BAAW,CAAC,gCAAgC;YAC5C,0BAAW,CAAC,uBAAuB;YACnC,0BAAW,CAAC,uBAAuB;SACpC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,QAAQ,GAAmB;gBAC/B,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAChD,WAAW,EAAE,IAAI;gBACjB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;aACtE,CAAC;YACF,MAAM,CAAC,IAAA,iCAAa,EAAC,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,IAAA,iCAAa,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CACvC,IAAI,6BAAoB,CAAC,qDAAqD,CAAC,CAChF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restoreAppStorage.test.d.ts","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/restoreAppStorage.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const hw_transport_1 = require("@ledgerhq/hw-transport");
|
|
4
|
+
const restoreAppStorage_1 = require("./restoreAppStorage");
|
|
5
|
+
const errors_1 = require("../../../errors");
|
|
6
|
+
jest.mock("@ledgerhq/hw-transport");
|
|
7
|
+
describe("restoreAppStorage", () => {
|
|
8
|
+
let transport;
|
|
9
|
+
const response = Buffer.from([0x90, 0x00]);
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
transport = {
|
|
12
|
+
send: jest.fn().mockResolvedValue(response),
|
|
13
|
+
getTraceContext: jest.fn().mockResolvedValue(undefined),
|
|
14
|
+
};
|
|
15
|
+
});
|
|
16
|
+
afterEach(() => {
|
|
17
|
+
jest.clearAllMocks();
|
|
18
|
+
});
|
|
19
|
+
it("should call the send function with correct parameters", async () => {
|
|
20
|
+
const chunk = Buffer.from("106RueduTemple");
|
|
21
|
+
const args = [
|
|
22
|
+
0xe0,
|
|
23
|
+
0x6d,
|
|
24
|
+
0x00,
|
|
25
|
+
0x00,
|
|
26
|
+
chunk,
|
|
27
|
+
[
|
|
28
|
+
hw_transport_1.StatusCodes.OK,
|
|
29
|
+
hw_transport_1.StatusCodes.APP_NOT_FOUND_OR_INVALID_CONTEXT,
|
|
30
|
+
hw_transport_1.StatusCodes.GEN_AES_KEY_FAILED,
|
|
31
|
+
hw_transport_1.StatusCodes.INTERNAL_CRYPTO_OPERATION_FAILED,
|
|
32
|
+
hw_transport_1.StatusCodes.DEVICE_IN_RECOVERY_MODE,
|
|
33
|
+
hw_transport_1.StatusCodes.INVALID_RESTORE_STATE,
|
|
34
|
+
hw_transport_1.StatusCodes.INVALID_CHUNK_LENGTH,
|
|
35
|
+
hw_transport_1.StatusCodes.INVALID_BACKUP_HEADER,
|
|
36
|
+
],
|
|
37
|
+
];
|
|
38
|
+
await (0, restoreAppStorage_1.restoreAppStorage)(transport, chunk);
|
|
39
|
+
expect(transport.send).toHaveBeenCalledWith(...args);
|
|
40
|
+
});
|
|
41
|
+
describe("parseResponse", () => {
|
|
42
|
+
it("should parse the response data correctly", () => {
|
|
43
|
+
expect(() => (0, restoreAppStorage_1.parseResponse)(response)).not.toThrow();
|
|
44
|
+
});
|
|
45
|
+
it("should throw TransportStatusError if the response status is invalid", () => {
|
|
46
|
+
const data = Buffer.from([0x66, 0x43]);
|
|
47
|
+
expect(() => (0, restoreAppStorage_1.parseResponse)(data)).toThrow(new errors_1.InvalidRestoreState("Invalid restore state, restore already performed."));
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=restoreAppStorage.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restoreAppStorage.test.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/restoreAppStorage.test.ts"],"names":[],"mappings":";;AAAA,yDAAgE;AAChE,2DAAuE;AACvE,4CAAsD;AAEtD,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAEpC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,SAAoB,CAAC;IACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAE3C,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,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG;YACX,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,KAAK;YACL;gBACE,0BAAW,CAAC,EAAE;gBACd,0BAAW,CAAC,gCAAgC;gBAC5C,0BAAW,CAAC,kBAAkB;gBAC9B,0BAAW,CAAC,gCAAgC;gBAC5C,0BAAW,CAAC,uBAAuB;gBACnC,0BAAW,CAAC,qBAAqB;gBACjC,0BAAW,CAAC,oBAAoB;gBAChC,0BAAW,CAAC,qBAAqB;aAClC;SACF,CAAC;QAEF,MAAM,IAAA,qCAAiB,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,iCAAa,EAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACtD,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,IAAA,iCAAa,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CACvC,IAAI,4BAAmB,CAAC,mDAAmD,CAAC,CAC7E,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restoreAppStorageCommit.test.d.ts","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/restoreAppStorageCommit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const hw_transport_1 = require("@ledgerhq/hw-transport");
|
|
4
|
+
const restoreAppStorageCommit_1 = require("./restoreAppStorageCommit");
|
|
5
|
+
const errors_1 = require("../../../errors");
|
|
6
|
+
jest.mock("@ledgerhq/hw-transport");
|
|
7
|
+
describe("restoreAppStorageCommit", () => {
|
|
8
|
+
let transport;
|
|
9
|
+
const response = Buffer.from([0x90, 0x00]);
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
transport = {
|
|
12
|
+
send: jest.fn().mockResolvedValue(response),
|
|
13
|
+
getTraceContext: jest.fn().mockResolvedValue(undefined),
|
|
14
|
+
};
|
|
15
|
+
});
|
|
16
|
+
afterEach(() => {
|
|
17
|
+
jest.clearAllMocks();
|
|
18
|
+
});
|
|
19
|
+
it("should call the send function with correct parameters", async () => {
|
|
20
|
+
await (0, restoreAppStorageCommit_1.restoreAppStorageCommit)(transport);
|
|
21
|
+
expect(transport.send).toHaveBeenCalledWith(0xe0, 0x6e, 0x00, 0x00, Buffer.from([]), [
|
|
22
|
+
hw_transport_1.StatusCodes.OK,
|
|
23
|
+
hw_transport_1.StatusCodes.APP_NOT_FOUND_OR_INVALID_CONTEXT,
|
|
24
|
+
hw_transport_1.StatusCodes.GEN_AES_KEY_FAILED,
|
|
25
|
+
hw_transport_1.StatusCodes.INTERNAL_COMPUTE_AES_CMAC_FAILED,
|
|
26
|
+
hw_transport_1.StatusCodes.DEVICE_IN_RECOVERY_MODE,
|
|
27
|
+
hw_transport_1.StatusCodes.INVALID_CHUNK_LENGTH,
|
|
28
|
+
]);
|
|
29
|
+
});
|
|
30
|
+
describe("parseResponse", () => {
|
|
31
|
+
it("should parse the response data correctly", () => {
|
|
32
|
+
expect(() => (0, restoreAppStorageCommit_1.parseResponse)(response)).not.toThrow();
|
|
33
|
+
});
|
|
34
|
+
it("should throw TransportStatusError if the response status is invalid", () => {
|
|
35
|
+
const data = Buffer.from([0x67, 0x34]);
|
|
36
|
+
expect(() => (0, restoreAppStorageCommit_1.parseResponse)(data)).toThrow(new errors_1.InvalidChunkLength("Invalid size of the restored app storage."));
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=restoreAppStorageCommit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restoreAppStorageCommit.test.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/restoreAppStorageCommit.test.ts"],"names":[],"mappings":";;AAAA,yDAAgE;AAChE,uEAAmF;AACnF,4CAAqD;AAErD,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAEpC,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,SAAoB,CAAC;IACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAE3C,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,IAAA,iDAAuB,EAAC,SAAS,CAAC,CAAC;QACzC,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,0BAAW,CAAC,EAAE;YACd,0BAAW,CAAC,gCAAgC;YAC5C,0BAAW,CAAC,kBAAkB;YAC9B,0BAAW,CAAC,gCAAgC;YAC5C,0BAAW,CAAC,uBAAuB;YACnC,0BAAW,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,CAAC,GAAG,EAAE,CAAC,IAAA,uCAAa,EAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACtD,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,IAAA,uCAAa,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CACvC,IAAI,2BAAkB,CAAC,2CAA2C,CAAC,CACpE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restoreAppStorageInit.test.d.ts","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/restoreAppStorageInit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const hw_transport_1 = require("@ledgerhq/hw-transport");
|
|
4
|
+
const restoreAppStorageInit_1 = require("./restoreAppStorageInit");
|
|
5
|
+
const errors_1 = require("../../../errors");
|
|
6
|
+
jest.mock("@ledgerhq/hw-transport");
|
|
7
|
+
describe("restoreAppStorageInit", () => {
|
|
8
|
+
let transport;
|
|
9
|
+
const response = Buffer.from([0x90, 0x00]);
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
transport = {
|
|
12
|
+
send: jest.fn().mockResolvedValue(response),
|
|
13
|
+
getTraceContext: jest.fn().mockResolvedValue(undefined),
|
|
14
|
+
};
|
|
15
|
+
});
|
|
16
|
+
afterEach(() => {
|
|
17
|
+
jest.clearAllMocks();
|
|
18
|
+
});
|
|
19
|
+
it("should call the send function with correct parameters", async () => {
|
|
20
|
+
const appName = "MyApp";
|
|
21
|
+
const backupSize = 1234;
|
|
22
|
+
await (0, restoreAppStorageInit_1.restoreAppStorageInit)(transport, appName, backupSize);
|
|
23
|
+
const data = Buffer.concat([
|
|
24
|
+
Buffer.from(backupSize.toString(16).padStart(8, "0"), "hex"), // BACKUP_LEN
|
|
25
|
+
Buffer.from(appName, "ascii"), // APP_NAME
|
|
26
|
+
]);
|
|
27
|
+
const args = [
|
|
28
|
+
0xe0,
|
|
29
|
+
0x6c,
|
|
30
|
+
0x00,
|
|
31
|
+
0x00,
|
|
32
|
+
data,
|
|
33
|
+
[
|
|
34
|
+
hw_transport_1.StatusCodes.OK,
|
|
35
|
+
hw_transport_1.StatusCodes.APP_NOT_FOUND_OR_INVALID_CONTEXT,
|
|
36
|
+
hw_transport_1.StatusCodes.DEVICE_IN_RECOVERY_MODE,
|
|
37
|
+
hw_transport_1.StatusCodes.USER_REFUSED_ON_DEVICE,
|
|
38
|
+
hw_transport_1.StatusCodes.PIN_NOT_SET,
|
|
39
|
+
hw_transport_1.StatusCodes.INVALID_APP_NAME_LENGTH,
|
|
40
|
+
hw_transport_1.StatusCodes.INVALID_BACKUP_LENGTH,
|
|
41
|
+
],
|
|
42
|
+
];
|
|
43
|
+
expect(transport.send).toHaveBeenCalledWith(...args);
|
|
44
|
+
});
|
|
45
|
+
describe("parseResponse", () => {
|
|
46
|
+
it("should parse the response data correctly", () => {
|
|
47
|
+
expect(() => (0, restoreAppStorageInit_1.parseResponse)(response)).not.toThrow();
|
|
48
|
+
});
|
|
49
|
+
it("should throw TransportStatusError if the response status is invalid", () => {
|
|
50
|
+
const data = Buffer.from([0x67, 0x0a]);
|
|
51
|
+
expect(() => (0, restoreAppStorageInit_1.parseResponse)(data)).toThrow(new errors_1.InvalidAppNameLength("Invalid application name length, two chars minimum."));
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=restoreAppStorageInit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restoreAppStorageInit.test.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/restoreAppStorageInit.test.ts"],"names":[],"mappings":";;AAAA,yDAAgE;AAChE,mEAA+E;AAC/E,4CAAuD;AAEvD,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAEpC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAI,SAAoB,CAAC;IACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAE3C,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,OAAO,GAAG,OAAO,CAAC;QACxB,MAAM,UAAU,GAAG,IAAI,CAAC;QACxB,MAAM,IAAA,6CAAqB,EAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAE5D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa;YAC3E,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW;SAC3C,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG;YACX,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ;gBACE,0BAAW,CAAC,EAAE;gBACd,0BAAW,CAAC,gCAAgC;gBAC5C,0BAAW,CAAC,uBAAuB;gBACnC,0BAAW,CAAC,sBAAsB;gBAClC,0BAAW,CAAC,WAAW;gBACvB,0BAAW,CAAC,uBAAuB;gBACnC,0BAAW,CAAC,qBAAqB;aAClC;SACF,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,qCAAa,EAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACtD,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,IAAA,qCAAa,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CACvC,IAAI,6BAAoB,CAAC,qDAAqD,CAAC,CAChF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reinstallConfigurationConsent.test.d.ts","sourceRoot":"","sources":["../../../../src/commands/use-cases/consent/reinstallConfigurationConsent.test.ts"],"names":[],"mappings":""}
|