@ledgerhq/device-core 0.3.2-nightly.5 → 0.3.3-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +24 -26
  3. package/lib/commands/use-cases/app-backup/backupAppStorage.js +1 -1
  4. package/lib/commands/use-cases/app-backup/backupAppStorage.js.map +1 -1
  5. package/lib/commands/use-cases/app-backup/backupAppStorage.test.js +1 -1
  6. package/lib/commands/use-cases/app-backup/backupAppStorage.test.js.map +1 -1
  7. package/lib/commands/use-cases/app-backup/getAppStorageInfo.d.ts.map +1 -1
  8. package/lib/commands/use-cases/app-backup/getAppStorageInfo.js +6 -6
  9. package/lib/commands/use-cases/app-backup/getAppStorageInfo.js.map +1 -1
  10. package/lib/commands/use-cases/app-backup/getAppStorageInfo.test.js +14 -6
  11. package/lib/commands/use-cases/app-backup/getAppStorageInfo.test.js.map +1 -1
  12. package/lib/commands/use-cases/app-backup/restoreAppStorage.d.ts.map +1 -1
  13. package/lib/commands/use-cases/app-backup/restoreAppStorage.js +1 -2
  14. package/lib/commands/use-cases/app-backup/restoreAppStorage.js.map +1 -1
  15. package/lib/commands/use-cases/app-backup/restoreAppStorage.test.js +18 -12
  16. package/lib/commands/use-cases/app-backup/restoreAppStorage.test.js.map +1 -1
  17. package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.js +1 -1
  18. package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.js.map +1 -1
  19. package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.test.js +1 -1
  20. package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.test.js.map +1 -1
  21. package/lib/commands/use-cases/app-backup/restoreAppStorageInit.d.ts.map +1 -1
  22. package/lib/commands/use-cases/app-backup/restoreAppStorageInit.js +2 -2
  23. package/lib/commands/use-cases/app-backup/restoreAppStorageInit.js.map +1 -1
  24. package/lib/commands/use-cases/app-backup/restoreAppStorageInit.test.js +20 -8
  25. package/lib/commands/use-cases/app-backup/restoreAppStorageInit.test.js.map +1 -1
  26. package/lib/errors.d.ts +3 -0
  27. package/lib/errors.d.ts.map +1 -1
  28. package/lib/errors.js +3 -1
  29. package/lib/errors.js.map +1 -1
  30. package/lib/index.d.ts +1 -0
  31. package/lib/index.d.ts.map +1 -1
  32. package/lib/index.js +2 -0
  33. package/lib/index.js.map +1 -1
  34. package/lib/managerApi/repositories/HttpManagerApiRepository.d.ts.map +1 -1
  35. package/lib/managerApi/repositories/HttpManagerApiRepository.js +15 -23
  36. package/lib/managerApi/repositories/HttpManagerApiRepository.js.map +1 -1
  37. package/lib/managerApi/repositories/HttpManagerApiRepository.test.js +24 -27
  38. package/lib/managerApi/repositories/HttpManagerApiRepository.test.js.map +1 -1
  39. package/lib-es/commands/use-cases/app-backup/backupAppStorage.js +1 -1
  40. package/lib-es/commands/use-cases/app-backup/backupAppStorage.js.map +1 -1
  41. package/lib-es/commands/use-cases/app-backup/backupAppStorage.test.js +1 -1
  42. package/lib-es/commands/use-cases/app-backup/backupAppStorage.test.js.map +1 -1
  43. package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.d.ts.map +1 -1
  44. package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.js +6 -6
  45. package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.js.map +1 -1
  46. package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.test.js +14 -6
  47. package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.test.js.map +1 -1
  48. package/lib-es/commands/use-cases/app-backup/restoreAppStorage.d.ts.map +1 -1
  49. package/lib-es/commands/use-cases/app-backup/restoreAppStorage.js +1 -2
  50. package/lib-es/commands/use-cases/app-backup/restoreAppStorage.js.map +1 -1
  51. package/lib-es/commands/use-cases/app-backup/restoreAppStorage.test.js +18 -12
  52. package/lib-es/commands/use-cases/app-backup/restoreAppStorage.test.js.map +1 -1
  53. package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.js +1 -1
  54. package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.js.map +1 -1
  55. package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.test.js +1 -1
  56. package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.test.js.map +1 -1
  57. package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.d.ts.map +1 -1
  58. package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.js +3 -3
  59. package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.js.map +1 -1
  60. package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.test.js +20 -8
  61. package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.test.js.map +1 -1
  62. package/lib-es/errors.d.ts +3 -0
  63. package/lib-es/errors.d.ts.map +1 -1
  64. package/lib-es/errors.js +2 -0
  65. package/lib-es/errors.js.map +1 -1
  66. package/lib-es/index.d.ts +1 -0
  67. package/lib-es/index.d.ts.map +1 -1
  68. package/lib-es/index.js +2 -0
  69. package/lib-es/index.js.map +1 -1
  70. package/lib-es/managerApi/repositories/HttpManagerApiRepository.d.ts.map +1 -1
  71. package/lib-es/managerApi/repositories/HttpManagerApiRepository.js +15 -23
  72. package/lib-es/managerApi/repositories/HttpManagerApiRepository.js.map +1 -1
  73. package/lib-es/managerApi/repositories/HttpManagerApiRepository.test.js +24 -27
  74. package/lib-es/managerApi/repositories/HttpManagerApiRepository.test.js.map +1 -1
  75. package/package.json +6 -6
  76. package/src/commands/use-cases/app-backup/backupAppStorage.test.ts +1 -1
  77. package/src/commands/use-cases/app-backup/backupAppStorage.ts +1 -1
  78. package/src/commands/use-cases/app-backup/getAppStorageInfo.test.ts +14 -6
  79. package/src/commands/use-cases/app-backup/getAppStorageInfo.ts +9 -6
  80. package/src/commands/use-cases/app-backup/restoreAppStorage.test.ts +6 -6
  81. package/src/commands/use-cases/app-backup/restoreAppStorage.ts +1 -2
  82. package/src/commands/use-cases/app-backup/restoreAppStorageCommit.test.ts +1 -1
  83. package/src/commands/use-cases/app-backup/restoreAppStorageCommit.ts +1 -1
  84. package/src/commands/use-cases/app-backup/restoreAppStorageInit.test.ts +11 -3
  85. package/src/commands/use-cases/app-backup/restoreAppStorageInit.ts +9 -3
  86. package/src/errors.ts +2 -0
  87. package/src/index.ts +2 -0
  88. package/src/managerApi/repositories/HttpManagerApiRepository.test.ts +28 -27
  89. package/src/managerApi/repositories/HttpManagerApiRepository.ts +15 -23
@@ -1,7 +1,13 @@
1
1
  import Transport, { StatusCodes, TransportStatusError } from "@ledgerhq/hw-transport";
2
2
  import { LocalTracer } from "@ledgerhq/logs";
3
3
  import type { APDU } from "../../entities/APDU";
4
- import { AppNotFound, InvalidAppNameLength, InvalidBackupLength, PinNotSet } from "../../../errors";
4
+ import {
5
+ AppNotFound,
6
+ InvalidAppNameLength,
7
+ InvalidBackupLength,
8
+ PinNotSet,
9
+ UserRefusedOnDevice,
10
+ } from "../../../errors";
5
11
 
6
12
  /**
7
13
  * Name in documentation: INS_APP_STORAGE_RESTORE_INIT
@@ -58,7 +64,6 @@ export async function restoreAppStorageInit(
58
64
  tracer.trace("Start");
59
65
 
60
66
  const params: Buffer = Buffer.concat([
61
- Buffer.from([appName.length + 4]), // LC
62
67
  Buffer.from(backupSize.toString(16).padStart(8, "0"), "hex"), // BACKUP_LEN
63
68
  Buffer.from(appName, "ascii"), // APP_NAME
64
69
  ]);
@@ -82,8 +87,9 @@ export function parseResponse(data: Buffer): void {
82
87
  case StatusCodes.APP_NOT_FOUND_OR_INVALID_CONTEXT:
83
88
  throw new AppNotFound("Application not found.");
84
89
  case StatusCodes.DEVICE_IN_RECOVERY_MODE:
85
- case StatusCodes.USER_REFUSED_ON_DEVICE:
86
90
  break;
91
+ case StatusCodes.USER_REFUSED_ON_DEVICE:
92
+ throw new UserRefusedOnDevice("User refused on device.");
87
93
  case StatusCodes.PIN_NOT_SET:
88
94
  throw new PinNotSet("Invalid consent, PIN is not set.");
89
95
  case StatusCodes.INVALID_APP_NAME_LENGTH:
package/src/errors.ts CHANGED
@@ -27,3 +27,5 @@ export const InvalidBackupState = createCustomErrorClass("InvalidBackupState");
27
27
  export const InvalidRestoreState = createCustomErrorClass("InvalidRestoreState");
28
28
  // 0x6734
29
29
  export const InvalidChunkLength = createCustomErrorClass("InvalidChunkLength");
30
+ // 0x5501
31
+ export const UserRefusedOnDevice = createCustomErrorClass("UserRefusedOnDevice");
package/src/index.ts CHANGED
@@ -40,3 +40,5 @@ export { supportedDeviceModelIds } from "./capabilities/isCustomLockScreenSuppor
40
40
  export * from "./customLockScreen/screenSpecs";
41
41
  // src/firmwareUpdate/
42
42
  export { shouldForceFirmwareUpdate } from "./firmwareUpdate/shouldForceFirmwareUpdate";
43
+ // errors
44
+ export * from "./errors";
@@ -43,13 +43,14 @@ describe("HttpManagerApiRepository", () => {
43
43
  });
44
44
 
45
45
  expect(networkSpy).toHaveBeenCalledWith({
46
- method: "POST",
47
- url: "http://managerApiBase.com/get_latest_firmware?livecommonversion=1.2.3&salt=mockedFirmwareSalt",
48
- data: {
49
- current_se_firmware_final_version: 888,
50
- device_version: 123,
51
- provider: 12,
52
- },
46
+ method: "GET",
47
+ url:
48
+ "http://managerApiBase.com/get_latest_firmware" +
49
+ "?livecommonversion=1.2.3" +
50
+ "&salt=mockedFirmwareSalt" +
51
+ "&current_se_firmware_final_version=888" +
52
+ "&device_version=123" +
53
+ "&provider=12",
53
54
  });
54
55
  });
55
56
 
@@ -128,12 +129,12 @@ describe("HttpManagerApiRepository", () => {
128
129
  });
129
130
 
130
131
  expect(networkSpy).toHaveBeenCalledWith({
131
- method: "POST",
132
- url: "http://managerApiBase.com/get_device_version?livecommonversion=1.2.3",
133
- data: {
134
- target_id: 123,
135
- provider: 12,
136
- },
132
+ method: "GET",
133
+ url:
134
+ "http://managerApiBase.com/get_device_version" +
135
+ "?livecommonversion=1.2.3" +
136
+ "&provider=12" +
137
+ "&target_id=123",
137
138
  });
138
139
  });
139
140
 
@@ -190,13 +191,13 @@ describe("HttpManagerApiRepository", () => {
190
191
  });
191
192
 
192
193
  expect(networkSpy).toHaveBeenCalledWith({
193
- method: "POST",
194
- url: "http://managerApiBase.com/get_osu_version?livecommonversion=1.2.3",
195
- data: {
196
- device_version: 123,
197
- provider: 12,
198
- version_name: "mockedVersion-osu",
199
- },
194
+ method: "GET",
195
+ url:
196
+ "http://managerApiBase.com/get_osu_version" +
197
+ "?livecommonversion=1.2.3" +
198
+ "&device_version=123" +
199
+ "&version_name=mockedVersion-osu" +
200
+ "&provider=12",
200
201
  });
201
202
  });
202
203
 
@@ -226,13 +227,13 @@ describe("HttpManagerApiRepository", () => {
226
227
  });
227
228
 
228
229
  expect(networkSpy).toHaveBeenCalledWith({
229
- method: "POST",
230
- url: "http://managerApiBase.com/get_firmware_version?livecommonversion=1.2.3",
231
- data: {
232
- device_version: 123,
233
- provider: 12,
234
- version_name: "mockedVersion",
235
- },
230
+ method: "GET",
231
+ url:
232
+ "http://managerApiBase.com/get_firmware_version" +
233
+ "?livecommonversion=1.2.3" +
234
+ "&device_version=123" +
235
+ "&version_name=mockedVersion" +
236
+ "&provider=12",
236
237
  });
237
238
  });
238
239
 
@@ -37,19 +37,17 @@ export class HttpManagerApiRepository implements ManagerApiRepository {
37
37
  se_firmware_osu_version: OsuFirmware;
38
38
  };
39
39
  } = await network({
40
- method: "POST",
40
+ method: "GET",
41
41
  url: URL.format({
42
42
  pathname: `${this.managerApiBase}/get_latest_firmware`,
43
43
  query: {
44
44
  livecommonversion: this.liveCommonVersion,
45
45
  salt,
46
+ current_se_firmware_final_version,
47
+ device_version,
48
+ provider: providerId,
46
49
  },
47
50
  }),
48
- data: {
49
- current_se_firmware_final_version,
50
- device_version,
51
- provider: providerId,
52
- },
53
51
  });
54
52
 
55
53
  if (data.result === "null") {
@@ -84,17 +82,15 @@ export class HttpManagerApiRepository implements ManagerApiRepository {
84
82
  }: {
85
83
  data: DeviceVersionEntity;
86
84
  } = await network({
87
- method: "POST",
85
+ method: "GET",
88
86
  url: URL.format({
89
87
  pathname: `${this.managerApiBase}/get_device_version`,
90
88
  query: {
91
89
  livecommonversion: this.liveCommonVersion,
90
+ provider: providerId,
91
+ target_id: targetId,
92
92
  },
93
93
  }),
94
- data: {
95
- provider: providerId,
96
- target_id: targetId,
97
- },
98
94
  }).catch(error => {
99
95
  const status = error?.status || error?.response?.status;
100
96
 
@@ -113,18 +109,16 @@ export class HttpManagerApiRepository implements ManagerApiRepository {
113
109
  readonly getCurrentOSU: ManagerApiRepository["getCurrentOSU"] = makeLRUCache(
114
110
  async input => {
115
111
  const { data } = await network({
116
- method: "POST",
112
+ method: "GET",
117
113
  url: URL.format({
118
114
  pathname: `${this.managerApiBase}/get_osu_version`,
119
115
  query: {
120
116
  livecommonversion: this.liveCommonVersion,
117
+ device_version: input.deviceId,
118
+ version_name: `${input.version}-osu`,
119
+ provider: input.providerId,
121
120
  },
122
121
  }),
123
- data: {
124
- device_version: input.deviceId,
125
- version_name: `${input.version}-osu`,
126
- provider: input.providerId,
127
- },
128
122
  });
129
123
  return data;
130
124
  },
@@ -138,18 +132,16 @@ export class HttpManagerApiRepository implements ManagerApiRepository {
138
132
  }: {
139
133
  data: FinalFirmware;
140
134
  } = await network({
141
- method: "POST",
135
+ method: "GET",
142
136
  url: URL.format({
143
137
  pathname: `${this.managerApiBase}/get_firmware_version`,
144
138
  query: {
145
139
  livecommonversion: this.liveCommonVersion,
140
+ device_version: input.deviceId,
141
+ version_name: input.version,
142
+ provider: input.providerId,
146
143
  },
147
144
  }),
148
- data: {
149
- device_version: input.deviceId,
150
- version_name: input.version,
151
- provider: input.providerId,
152
- },
153
145
  }).catch(error => {
154
146
  const status = error?.status || error?.response?.status;
155
147