@ledgerhq/device-core 0.3.1-nightly.0 → 0.3.1

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 (50) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +17 -2
  3. package/lib/commands/entities/AppStorageInfo.d.ts +0 -1
  4. package/lib/commands/entities/AppStorageInfo.d.ts.map +1 -1
  5. package/lib/commands/entities/AppStorageInfo.js +0 -16
  6. package/lib/commands/entities/AppStorageInfo.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 +4 -9
  9. package/lib/commands/use-cases/app-backup/getAppStorageInfo.js.map +1 -1
  10. package/lib/commands/use-cases/app-backup/getAppStorageInfo.test.js +1 -1
  11. package/lib/firmwareUpdate/shouldForceFirmwareUpdate.js +1 -1
  12. package/lib/firmwareUpdate/shouldForceFirmwareUpdate.js.map +1 -1
  13. package/lib/firmwareUpdate/shouldForceFirmwareUpdate.test.js +22 -0
  14. package/lib/firmwareUpdate/shouldForceFirmwareUpdate.test.js.map +1 -1
  15. package/lib/index.d.ts +1 -1
  16. package/lib/index.d.ts.map +1 -1
  17. package/lib/index.js +1 -3
  18. package/lib/index.js.map +1 -1
  19. package/lib-es/commands/entities/AppStorageInfo.d.ts +0 -1
  20. package/lib-es/commands/entities/AppStorageInfo.d.ts.map +1 -1
  21. package/lib-es/commands/entities/AppStorageInfo.js +1 -14
  22. package/lib-es/commands/entities/AppStorageInfo.js.map +1 -1
  23. package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.d.ts.map +1 -1
  24. package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.js +4 -9
  25. package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.js.map +1 -1
  26. package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.test.js +1 -1
  27. package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.js +1 -1
  28. package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.js.map +1 -1
  29. package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.test.js +22 -0
  30. package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.test.js.map +1 -1
  31. package/lib-es/index.d.ts +1 -1
  32. package/lib-es/index.d.ts.map +1 -1
  33. package/lib-es/index.js +0 -1
  34. package/lib-es/index.js.map +1 -1
  35. package/package.json +3 -3
  36. package/src/commands/entities/AppStorageInfo.ts +0 -17
  37. package/src/commands/use-cases/app-backup/getAppStorageInfo.test.ts +1 -1
  38. package/src/commands/use-cases/app-backup/getAppStorageInfo.ts +4 -9
  39. package/src/firmwareUpdate/shouldForceFirmwareUpdate.test.ts +46 -0
  40. package/src/firmwareUpdate/shouldForceFirmwareUpdate.ts +1 -1
  41. package/src/index.ts +1 -1
  42. package/lib/commands/entities/AppStorageInfo.test.d.ts +0 -2
  43. package/lib/commands/entities/AppStorageInfo.test.d.ts.map +0 -1
  44. package/lib/commands/entities/AppStorageInfo.test.js +0 -48
  45. package/lib/commands/entities/AppStorageInfo.test.js.map +0 -1
  46. package/lib-es/commands/entities/AppStorageInfo.test.d.ts +0 -2
  47. package/lib-es/commands/entities/AppStorageInfo.test.d.ts.map +0 -1
  48. package/lib-es/commands/entities/AppStorageInfo.test.js +0 -46
  49. package/lib-es/commands/entities/AppStorageInfo.test.js.map +0 -1
  50. package/src/commands/entities/AppStorageInfo.test.ts +0 -57
@@ -1,4 +1,4 @@
1
1
 
2
- > @ledgerhq/device-core@0.3.0 build /home/runner/work/ledger-live/ledger-live/libs/device-core
2
+ > @ledgerhq/device-core@0.3.1 build /home/runner/work/ledger-live/ledger-live/libs/device-core
3
3
  > tsc && tsc -m ES6 --outDir lib-es
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,10 +1,25 @@
1
1
  # @ledgerhq/device-core
2
2
 
3
- ## 0.3.1-nightly.0
3
+ ## 0.3.1
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - [#7328](https://github.com/LedgerHQ/ledger-live/pull/7328) [`a0a36e5`](https://github.com/LedgerHQ/ledger-live/commit/a0a36e5fe86865a5643b38ed8d56e93cbda07e15) Thanks [@jiyuzhuang](https://github.com/jiyuzhuang)! - Add and export type guard for AppStorageInfo
7
+ - [#7390](https://github.com/LedgerHQ/ledger-live/pull/7390) [`5451145`](https://github.com/LedgerHQ/ledger-live/commit/54511453591d3702e09ca77559bb0564937b2a65) Thanks [@live-github-bot](https://github.com/apps/live-github-bot)! - shouldForceFirmwareUpdate: add <1.1.1 condition for europa
8
+
9
+ - Updated dependencies [[`0b12c90`](https://github.com/LedgerHQ/ledger-live/commit/0b12c9040d6ee0a326b1d5effd261ddee2db452f)]:
10
+ - @ledgerhq/devices@8.4.2
11
+ - @ledgerhq/hw-transport@6.31.2
12
+ - @ledgerhq/types-live@6.49.0
13
+
14
+ ## 0.3.1-hotfix.0
15
+
16
+ ### Patch Changes
17
+
18
+ - [#7291](https://github.com/LedgerHQ/ledger-live/pull/7291) [`6b2fc93`](https://github.com/LedgerHQ/ledger-live/commit/6b2fc93beb6624fb2d991a6bb69cea3e9a8ef453) Thanks [@jdabbech-ledger](https://github.com/jdabbech-ledger)! - shouldForceFirmwareUpdate: add <1.1.1 condition for europa
19
+
20
+ - Updated dependencies [[`5d508e5`](https://github.com/LedgerHQ/ledger-live/commit/5d508e5cfd296e458746adf176dd292aa884f7ea)]:
21
+ - @ledgerhq/devices@8.4.2-hotfix.0
22
+ - @ledgerhq/hw-transport@6.31.2-hotfix.0
8
23
 
9
24
  ## 0.3.0
10
25
 
@@ -5,5 +5,4 @@ export type AppStorageInfo = {
5
5
  hasData: boolean;
6
6
  hash: string;
7
7
  };
8
- export declare function isAppStorageInfo(data: AppStorageInfo | unknown): data is AppStorageInfo;
9
8
  //# sourceMappingURL=AppStorageInfo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppStorageInfo.d.ts","sourceRoot":"","sources":["../../../src/commands/entities/AppStorageInfo.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,IAAI,IAAI,cAAc,CAevF"}
1
+ {"version":3,"file":"AppStorageInfo.d.ts","sourceRoot":"","sources":["../../../src/commands/entities/AppStorageInfo.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC"}
@@ -1,19 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isAppStorageInfo = void 0;
4
- function isAppStorageInfo(data) {
5
- return (typeof data === "object" &&
6
- data !== null &&
7
- "size" in data &&
8
- typeof data.size === "number" &&
9
- "dataVersion" in data &&
10
- typeof data.dataVersion === "string" &&
11
- "hasSettings" in data &&
12
- typeof data.hasSettings === "boolean" &&
13
- "hasData" in data &&
14
- typeof data.hasData === "boolean" &&
15
- "hash" in data &&
16
- typeof data.hash === "string");
17
- }
18
- exports.isAppStorageInfo = isAppStorageInfo;
19
3
  //# sourceMappingURL=AppStorageInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppStorageInfo.js","sourceRoot":"","sources":["../../../src/commands/entities/AppStorageInfo.ts"],"names":[],"mappings":";;;AAQA,SAAgB,gBAAgB,CAAC,IAA8B;IAC7D,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,MAAM,IAAI,IAAI;QACd,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAC7B,aAAa,IAAI,IAAI;QACrB,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;QACpC,aAAa,IAAI,IAAI;QACrB,OAAO,IAAI,CAAC,WAAW,KAAK,SAAS;QACrC,SAAS,IAAI,IAAI;QACjB,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS;QACjC,MAAM,IAAI,IAAI;QACd,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAC9B,CAAC;AACJ,CAAC;AAfD,4CAeC"}
1
+ {"version":3,"file":"AppStorageInfo.js","sourceRoot":"","sources":["../../../src/commands/entities/AppStorageInfo.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
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,CAgBzB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CA0C1D"}
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,CAgBzB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAqC1D"}
@@ -84,15 +84,10 @@ function parseResponse(data) {
84
84
  offset += 4;
85
85
  const dataVersion = data.subarray(offset, offset + 4).toString(); // Len = 4
86
86
  offset += 4;
87
- const properties = data.readUInt16BE(offset);
88
- offset += 2;
89
- /**
90
- * The properties byte is a bitfield with the following structure:
91
- * - Bit 0: hasSettings
92
- * - Bit 1: hasData
93
- */
94
- const hasSettings = (properties & 1) === 1;
95
- const hasData = (properties & 2) === 2;
87
+ const hasSettings = data.readUIntBE(offset, 1) === 1; // Len = 1
88
+ offset += 1;
89
+ const hasData = data.readUIntBE(offset, 1) === 1; // Len = 1
90
+ offset += 1;
96
91
  const hash = data.subarray(offset, offset + 32).toString(); // Len = 32
97
92
  return { size, dataVersion, hasSettings, hasData, hash };
98
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getAppStorageInfo.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/getAppStorageInfo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getAppStorageInfo.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/getAppStorageInfo.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ jest.mock("@ledgerhq/hw-transport");
16
16
  describe("getAppStorageInfo", () => {
17
17
  let transport;
18
18
  const response = Buffer.from([
19
- 0x00, 0x00, 0x04, 0xd2, 0x31, 0x2e, 0x30, 0x31, 0x00, 0x03, 0x68, 0x61, 0x73, 0x68, 0x68, 0x61,
19
+ 0x00, 0x00, 0x04, 0xd2, 0x31, 0x2e, 0x30, 0x31, 0x01, 0x01, 0x68, 0x61, 0x73, 0x68, 0x68, 0x61,
20
20
  0x73, 0x68, 0x31, 0x32, 0x33, 0x34, 0x68, 0x61, 0x73, 0x68, 0x68, 0x61, 0x73, 0x68, 0x68, 0x61,
21
21
  0x73, 0x68, 0x68, 0x61, 0x73, 0x68, 0x68, 0x61, 0x73, 0x68, 0x90, 0x00,
22
22
  ]);
@@ -11,7 +11,7 @@ const forceUpdateConditions = {
11
11
  nanoS: noVersionCondition,
12
12
  nanoSP: noVersionCondition,
13
13
  blue: noVersionCondition,
14
- europa: noVersionCondition,
14
+ europa: "<1.1.1",
15
15
  stax: "<=1.3.0",
16
16
  };
17
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"shouldForceFirmwareUpdate.js","sourceRoot":"","sources":["../../src/firmwareUpdate/shouldForceFirmwareUpdate.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAG5B,MAAM,kBAAkB,GAAG,QAAQ,CAAC,CAAC,kCAAkC;AACvE,MAAM,qBAAqB,GAAkC;IAC3D,KAAK,EAAE,kBAAkB;IACzB,KAAK,EAAE,kBAAkB;IACzB,MAAM,EAAE,kBAAkB;IAC1B,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE,kBAAkB;IAC1B,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAgB,yBAAyB,CAAC,EACxC,cAAc,EACd,aAAa,GAId;;IACC,OAAO,gBAAM,CAAC,SAAS,CACrB,MAAA,gBAAM,CAAC,MAAM,CAAC,cAAc,CAAC,mCAAI,EAAE,EACnC,qBAAqB,CAAC,aAAa,CAAC,CACrC,CAAC;AACJ,CAAC;AAXD,8DAWC"}
1
+ {"version":3,"file":"shouldForceFirmwareUpdate.js","sourceRoot":"","sources":["../../src/firmwareUpdate/shouldForceFirmwareUpdate.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAG5B,MAAM,kBAAkB,GAAG,QAAQ,CAAC,CAAC,kCAAkC;AACvE,MAAM,qBAAqB,GAAkC;IAC3D,KAAK,EAAE,kBAAkB;IACzB,KAAK,EAAE,kBAAkB;IACzB,MAAM,EAAE,kBAAkB;IAC1B,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAgB,yBAAyB,CAAC,EACxC,cAAc,EACd,aAAa,GAId;;IACC,OAAO,gBAAM,CAAC,SAAS,CACrB,MAAA,gBAAM,CAAC,MAAM,CAAC,cAAc,CAAC,mCAAI,EAAE,EACnC,qBAAqB,CAAC,aAAa,CAAC,CACrC,CAAC;AACJ,CAAC;AAXD,8DAWC"}
@@ -20,6 +20,28 @@ describe("shouldForceFirmwareUpdate", () => {
20
20
  deviceModelId: devices_1.DeviceModelId.stax,
21
21
  })).toBe(false);
22
22
  });
23
+ it("should force firmware update for europa <1.1.1 and not other versions", () => {
24
+ expect((0, shouldForceFirmwareUpdate_1.shouldForceFirmwareUpdate)({ currentVersion: "1.0.0", deviceModelId: devices_1.DeviceModelId.europa })).toBe(true);
25
+ expect((0, shouldForceFirmwareUpdate_1.shouldForceFirmwareUpdate)({
26
+ currentVersion: "1.0.0-whatever",
27
+ deviceModelId: devices_1.DeviceModelId.europa,
28
+ })).toBe(true);
29
+ expect((0, shouldForceFirmwareUpdate_1.shouldForceFirmwareUpdate)({ currentVersion: "1.1.0", deviceModelId: devices_1.DeviceModelId.europa })).toBe(true);
30
+ expect((0, shouldForceFirmwareUpdate_1.shouldForceFirmwareUpdate)({
31
+ currentVersion: "1.1.0-whatever",
32
+ deviceModelId: devices_1.DeviceModelId.europa,
33
+ })).toBe(true);
34
+ expect((0, shouldForceFirmwareUpdate_1.shouldForceFirmwareUpdate)({ currentVersion: "1.1.1", deviceModelId: devices_1.DeviceModelId.europa })).toBe(false);
35
+ expect((0, shouldForceFirmwareUpdate_1.shouldForceFirmwareUpdate)({
36
+ currentVersion: "1.1.1-whatever",
37
+ deviceModelId: devices_1.DeviceModelId.europa,
38
+ })).toBe(false);
39
+ expect((0, shouldForceFirmwareUpdate_1.shouldForceFirmwareUpdate)({ currentVersion: "1.2.0", deviceModelId: devices_1.DeviceModelId.europa })).toBe(false);
40
+ expect((0, shouldForceFirmwareUpdate_1.shouldForceFirmwareUpdate)({
41
+ currentVersion: "1.2.0-whatever",
42
+ deviceModelId: devices_1.DeviceModelId.europa,
43
+ })).toBe(false);
44
+ });
23
45
  it("should not force firmware update for other models", () => {
24
46
  expect((0, shouldForceFirmwareUpdate_1.shouldForceFirmwareUpdate)({ currentVersion: "1.2.0", deviceModelId: devices_1.DeviceModelId.nanoX })).toBe(false);
25
47
  expect((0, shouldForceFirmwareUpdate_1.shouldForceFirmwareUpdate)({
@@ -1 +1 @@
1
- {"version":3,"file":"shouldForceFirmwareUpdate.test.js","sourceRoot":"","sources":["../../src/firmwareUpdate/shouldForceFirmwareUpdate.test.ts"],"names":[],"mappings":";;AAAA,+CAAkD;AAClD,2EAAwE;AAExE,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,CACJ,IAAA,qDAAyB,EAAC,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,uBAAa,CAAC,IAAI,EAAE,CAAC,CAC1F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,CACJ,IAAA,qDAAyB,EAAC;YACxB,cAAc,EAAE,gBAAgB;YAChC,aAAa,EAAE,uBAAa,CAAC,IAAI;SAClC,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,CACJ,IAAA,qDAAyB,EAAC,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,uBAAa,CAAC,IAAI,EAAE,CAAC,CAC1F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,CACJ,IAAA,qDAAyB,EAAC;YACxB,cAAc,EAAE,gBAAgB;YAChC,aAAa,EAAE,uBAAa,CAAC,IAAI;SAClC,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,CACJ,IAAA,qDAAyB,EAAC,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,uBAAa,CAAC,IAAI,EAAE,CAAC,CAC1F,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEd,MAAM,CACJ,IAAA,qDAAyB,EAAC;YACxB,cAAc,EAAE,gBAAgB;YAChC,aAAa,EAAE,uBAAa,CAAC,IAAI;SAClC,CAAC,CACH,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CACJ,IAAA,qDAAyB,EAAC,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,uBAAa,CAAC,KAAK,EAAE,CAAC,CAC3F,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEd,MAAM,CACJ,IAAA,qDAAyB,EAAC;YACxB,cAAc,EAAE,gBAAgB;YAChC,aAAa,EAAE,uBAAa,CAAC,KAAK;SACnC,CAAC,CACH,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEd,MAAM,CACJ,IAAA,qDAAyB,EAAC,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,uBAAa,CAAC,KAAK,EAAE,CAAC,CAC3F,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEd,MAAM,CACJ,IAAA,qDAAyB,EAAC;YACxB,cAAc,EAAE,gBAAgB;YAChC,aAAa,EAAE,uBAAa,CAAC,KAAK;SACnC,CAAC,CACH,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEd,MAAM,CACJ,IAAA,qDAAyB,EAAC,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,uBAAa,CAAC,KAAK,EAAE,CAAC,CAC3F,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEd,MAAM,CACJ,IAAA,qDAAyB,EAAC;YACxB,cAAc,EAAE,gBAAgB;YAChC,aAAa,EAAE,uBAAa,CAAC,KAAK;SACnC,CAAC,CACH,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"shouldForceFirmwareUpdate.test.js","sourceRoot":"","sources":["../../src/firmwareUpdate/shouldForceFirmwareUpdate.test.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -16,7 +16,7 @@ export { getDeviceName } from "./commands/use-cases/getDeviceName";
16
16
  export { isHardwareVersionSupported } from "./commands/use-cases/isHardwareVersionSupported";
17
17
  export { isBootloaderVersionSupported } from "./commands/use-cases/isBootloaderVersionSupported";
18
18
  export { getVersion } from "./commands/use-cases/getVersion";
19
- export { type AppStorageInfo, isAppStorageInfo } from "./commands/entities/AppStorageInfo";
19
+ export type { AppStorageInfo } from "./commands/entities/AppStorageInfo";
20
20
  export { backupAppStorage } from "./commands/use-cases/app-backup/backupAppStorage";
21
21
  export { getAppStorageInfo } from "./commands/use-cases/app-backup/getAppStorageInfo";
22
22
  export { restoreAppStorage } from "./commands/use-cases/app-backup/restoreAppStorage";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,YAAY,EACV,aAAa,EACb,WAAW,EACX,2BAA2B,GAC5B,MAAM,mDAAmD,CAAC;AAC3D,YAAY,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAEzF,YAAY,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,KAAK,cAAc,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAE9F,OAAO,EACL,KAAK,yBAAyB,EAC9B,2BAA2B,GAC5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAErF,cAAc,gCAAgC,CAAC;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,YAAY,EACV,aAAa,EACb,WAAW,EACX,2BAA2B,GAC5B,MAAM,mDAAmD,CAAC;AAC3D,YAAY,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAEzF,YAAY,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,YAAY,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAE9F,OAAO,EACL,KAAK,yBAAyB,EAC9B,2BAA2B,GAC5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAErF,cAAc,gCAAgC,CAAC;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC"}
package/lib/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.shouldForceFirmwareUpdate = exports.supportedDeviceModelIds = exports.isSyncOnboardingSupported = exports.isEditDeviceNameSupported = exports.isCustomLockScreenSupported = exports.restoreAppStorageInit = exports.restoreAppStorageCommit = exports.restoreAppStorage = exports.getAppStorageInfo = exports.backupAppStorage = exports.isAppStorageInfo = exports.getVersion = exports.isBootloaderVersionSupported = exports.isHardwareVersionSupported = exports.getDeviceName = exports.parseGetVersionResponse = exports.GET_VERSION_APDU = exports.getAppsCatalogForDevice = exports.aDeviceInfoBuilder = exports.fetchMcus = exports.getProviderIdUseCase = exports.PROVIDERS = exports.isDeviceLocalizationSupported = exports.getLatestFirmwareForDevice = exports.StubManagerApiRepository = exports.HttpManagerApiRepository = void 0;
17
+ exports.shouldForceFirmwareUpdate = exports.supportedDeviceModelIds = exports.isSyncOnboardingSupported = exports.isEditDeviceNameSupported = exports.isCustomLockScreenSupported = exports.restoreAppStorageInit = exports.restoreAppStorageCommit = exports.restoreAppStorage = exports.getAppStorageInfo = exports.backupAppStorage = exports.getVersion = exports.isBootloaderVersionSupported = exports.isHardwareVersionSupported = exports.getDeviceName = exports.parseGetVersionResponse = exports.GET_VERSION_APDU = exports.getAppsCatalogForDevice = exports.aDeviceInfoBuilder = exports.fetchMcus = exports.getProviderIdUseCase = exports.PROVIDERS = exports.isDeviceLocalizationSupported = exports.getLatestFirmwareForDevice = exports.StubManagerApiRepository = exports.HttpManagerApiRepository = void 0;
18
18
  var HttpManagerApiRepository_1 = require("./managerApi/repositories/HttpManagerApiRepository");
19
19
  Object.defineProperty(exports, "HttpManagerApiRepository", { enumerable: true, get: function () { return HttpManagerApiRepository_1.HttpManagerApiRepository; } });
20
20
  var StubManagerApiRepository_1 = require("./managerApi/repositories/StubManagerApiRepository");
@@ -44,8 +44,6 @@ var isBootloaderVersionSupported_1 = require("./commands/use-cases/isBootloaderV
44
44
  Object.defineProperty(exports, "isBootloaderVersionSupported", { enumerable: true, get: function () { return isBootloaderVersionSupported_1.isBootloaderVersionSupported; } });
45
45
  var getVersion_2 = require("./commands/use-cases/getVersion");
46
46
  Object.defineProperty(exports, "getVersion", { enumerable: true, get: function () { return getVersion_2.getVersion; } });
47
- var AppStorageInfo_1 = require("./commands/entities/AppStorageInfo");
48
- Object.defineProperty(exports, "isAppStorageInfo", { enumerable: true, get: function () { return AppStorageInfo_1.isAppStorageInfo; } });
49
47
  var backupAppStorage_1 = require("./commands/use-cases/app-backup/backupAppStorage");
50
48
  Object.defineProperty(exports, "backupAppStorage", { enumerable: true, get: function () { return backupAppStorage_1.backupAppStorage; } });
51
49
  var getAppStorageInfo_1 = require("./commands/use-cases/app-backup/getAppStorageInfo");
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAQA,+FAA8F;AAArF,oIAAA,wBAAwB,OAAA;AACjC,+FAA8F;AAArF,oIAAA,wBAAwB,OAAA;AACjC,gGAA+F;AAAtF,wIAAA,0BAA0B,OAAA;AACnC,oGAAmG;AAA1F,8IAAA,6BAA6B,OAAA;AACtC,oFAA8F;AAArF,iHAAA,SAAS,OAAA;AAAE,4HAAA,oBAAoB,OAAA;AACxC,8DAA6D;AAApD,sGAAA,SAAS,OAAA;AAClB,uEAA6E;AAApE,iHAAA,kBAAkB,OAAA;AAC3B,0FAAyF;AAAhF,kIAAA,uBAAuB,OAAA;AAGhC,8DAAmE;AAA1D,8GAAA,gBAAgB,OAAA;AACzB,wFAAuF;AAA9E,kIAAA,uBAAuB,OAAA;AAChC,oEAAmE;AAA1D,8GAAA,aAAa,OAAA;AACtB,8FAA6F;AAApF,wIAAA,0BAA0B,OAAA;AACnC,kGAAiG;AAAxF,4IAAA,4BAA4B,OAAA;AACrC,8DAA6D;AAApD,wGAAA,UAAU,OAAA;AACnB,qEAA2F;AAA7D,kHAAA,gBAAgB,OAAA;AAC9C,qFAAoF;AAA3E,oHAAA,gBAAgB,OAAA;AACzB,uFAAsF;AAA7E,sHAAA,iBAAiB,OAAA;AAC1B,uFAAsF;AAA7E,sHAAA,iBAAiB,OAAA;AAC1B,mGAAkG;AAAzF,kIAAA,uBAAuB,OAAA;AAChC,+FAA8F;AAArF,8HAAA,qBAAqB,OAAA;AAC9B,oBAAoB;AACpB,0FAGoD;AADlD,0IAAA,2BAA2B,OAAA;AAE7B,sFAAqF;AAA5E,sIAAA,yBAAyB,OAAA;AAClC,sFAAqF;AAA5E,sIAAA,yBAAyB,OAAA;AAClC,0FAAqF;AAA5E,sIAAA,uBAAuB,OAAA;AAChC,wBAAwB;AACxB,iEAA+C;AAC/C,sBAAsB;AACtB,wFAAuF;AAA9E,sIAAA,yBAAyB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAQA,+FAA8F;AAArF,oIAAA,wBAAwB,OAAA;AACjC,+FAA8F;AAArF,oIAAA,wBAAwB,OAAA;AACjC,gGAA+F;AAAtF,wIAAA,0BAA0B,OAAA;AACnC,oGAAmG;AAA1F,8IAAA,6BAA6B,OAAA;AACtC,oFAA8F;AAArF,iHAAA,SAAS,OAAA;AAAE,4HAAA,oBAAoB,OAAA;AACxC,8DAA6D;AAApD,sGAAA,SAAS,OAAA;AAClB,uEAA6E;AAApE,iHAAA,kBAAkB,OAAA;AAC3B,0FAAyF;AAAhF,kIAAA,uBAAuB,OAAA;AAGhC,8DAAmE;AAA1D,8GAAA,gBAAgB,OAAA;AACzB,wFAAuF;AAA9E,kIAAA,uBAAuB,OAAA;AAChC,oEAAmE;AAA1D,8GAAA,aAAa,OAAA;AACtB,8FAA6F;AAApF,wIAAA,0BAA0B,OAAA;AACnC,kGAAiG;AAAxF,4IAAA,4BAA4B,OAAA;AACrC,8DAA6D;AAApD,wGAAA,UAAU,OAAA;AAEnB,qFAAoF;AAA3E,oHAAA,gBAAgB,OAAA;AACzB,uFAAsF;AAA7E,sHAAA,iBAAiB,OAAA;AAC1B,uFAAsF;AAA7E,sHAAA,iBAAiB,OAAA;AAC1B,mGAAkG;AAAzF,kIAAA,uBAAuB,OAAA;AAChC,+FAA8F;AAArF,8HAAA,qBAAqB,OAAA;AAC9B,oBAAoB;AACpB,0FAGoD;AADlD,0IAAA,2BAA2B,OAAA;AAE7B,sFAAqF;AAA5E,sIAAA,yBAAyB,OAAA;AAClC,sFAAqF;AAA5E,sIAAA,yBAAyB,OAAA;AAClC,0FAAqF;AAA5E,sIAAA,uBAAuB,OAAA;AAChC,wBAAwB;AACxB,iEAA+C;AAC/C,sBAAsB;AACtB,wFAAuF;AAA9E,sIAAA,yBAAyB,OAAA"}
@@ -5,5 +5,4 @@ export type AppStorageInfo = {
5
5
  hasData: boolean;
6
6
  hash: string;
7
7
  };
8
- export declare function isAppStorageInfo(data: AppStorageInfo | unknown): data is AppStorageInfo;
9
8
  //# sourceMappingURL=AppStorageInfo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppStorageInfo.d.ts","sourceRoot":"","sources":["../../../src/commands/entities/AppStorageInfo.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,IAAI,IAAI,cAAc,CAevF"}
1
+ {"version":3,"file":"AppStorageInfo.d.ts","sourceRoot":"","sources":["../../../src/commands/entities/AppStorageInfo.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC"}
@@ -1,15 +1,2 @@
1
- export function isAppStorageInfo(data) {
2
- return (typeof data === "object" &&
3
- data !== null &&
4
- "size" in data &&
5
- typeof data.size === "number" &&
6
- "dataVersion" in data &&
7
- typeof data.dataVersion === "string" &&
8
- "hasSettings" in data &&
9
- typeof data.hasSettings === "boolean" &&
10
- "hasData" in data &&
11
- typeof data.hasData === "boolean" &&
12
- "hash" in data &&
13
- typeof data.hash === "string");
14
- }
1
+ export {};
15
2
  //# sourceMappingURL=AppStorageInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppStorageInfo.js","sourceRoot":"","sources":["../../../src/commands/entities/AppStorageInfo.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,gBAAgB,CAAC,IAA8B;IAC7D,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,MAAM,IAAI,IAAI;QACd,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAC7B,aAAa,IAAI,IAAI;QACrB,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;QACpC,aAAa,IAAI,IAAI;QACrB,OAAO,IAAI,CAAC,WAAW,KAAK,SAAS;QACrC,SAAS,IAAI,IAAI;QACjB,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS;QACjC,MAAM,IAAI,IAAI;QACd,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAC9B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"AppStorageInfo.js","sourceRoot":"","sources":["../../../src/commands/entities/AppStorageInfo.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
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,CAgBzB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CA0C1D"}
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,CAgBzB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAqC1D"}
@@ -80,15 +80,10 @@ export function parseResponse(data) {
80
80
  offset += 4;
81
81
  const dataVersion = data.subarray(offset, offset + 4).toString(); // Len = 4
82
82
  offset += 4;
83
- const properties = data.readUInt16BE(offset);
84
- offset += 2;
85
- /**
86
- * The properties byte is a bitfield with the following structure:
87
- * - Bit 0: hasSettings
88
- * - Bit 1: hasData
89
- */
90
- const hasSettings = (properties & 1) === 1;
91
- const hasData = (properties & 2) === 2;
83
+ const hasSettings = data.readUIntBE(offset, 1) === 1; // Len = 1
84
+ offset += 1;
85
+ const hasData = data.readUIntBE(offset, 1) === 1; // Len = 1
86
+ offset += 1;
92
87
  const hash = data.subarray(offset, offset + 32).toString(); // Len = 32
93
88
  return { size, dataVersion, hasSettings, hasData, hash };
94
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getAppStorageInfo.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/getAppStorageInfo.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAkB,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEpE;;;;;;;GAOG;AACH,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,mBAAmB,GAAa;IACpC,WAAW,CAAC,EAAE;IACd,WAAW,CAAC,gCAAgC;IAC5C,WAAW,CAAC,uBAAuB;IACnC,WAAW,CAAC,uBAAuB;CACpC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAgB,iBAAiB,CACrC,SAAoB,EACpB,OAAe;;QAEf,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE;YACnC,SAAS,EAAE,SAAS,CAAC,eAAe,EAAE;YACtC,QAAQ,EAAE,mBAAmB;SAC9B,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEtB,MAAM,MAAM,GAAW,MAAM,CAAC,MAAM,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;SAC9B,CAAC,CAAC;QACH,MAAM,IAAI,GAAmB,CAAC,GAAG,oBAAoB,EAAE,MAAM,CAAC,CAAC;QAE/D,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,mBAAmB,CAAC,CAAC;QAEpE,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;CAAA;AAED;;;;;GAKG;AACH,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,CAAC,CAAC,CAAC;YACpB;;;;;eAKG;YACH,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;YAClD,MAAM,IAAI,CAAC,CAAC;YACZ,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,UAAU;YAC5E,MAAM,IAAI,CAAC,CAAC;YACZ,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,IAAI,CAAC,CAAC;YACZ;;;;eAIG;YACH,MAAM,WAAW,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,WAAW;YAEvE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3D,CAAC;QACD,KAAK,WAAW,CAAC,gCAAgC;YAC/C,MAAM,IAAI,WAAW,CAAC,wBAAwB,CAAC,CAAC;QAClD,KAAK,WAAW,CAAC,uBAAuB;YACtC,MAAM;QACR,KAAK,WAAW,CAAC,uBAAuB;YACtC,MAAM,IAAI,oBAAoB,CAAC,qDAAqD,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"getAppStorageInfo.js","sourceRoot":"","sources":["../../../../src/commands/use-cases/app-backup/getAppStorageInfo.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ jest.mock("@ledgerhq/hw-transport");
14
14
  describe("getAppStorageInfo", () => {
15
15
  let transport;
16
16
  const response = Buffer.from([
17
- 0x00, 0x00, 0x04, 0xd2, 0x31, 0x2e, 0x30, 0x31, 0x00, 0x03, 0x68, 0x61, 0x73, 0x68, 0x68, 0x61,
17
+ 0x00, 0x00, 0x04, 0xd2, 0x31, 0x2e, 0x30, 0x31, 0x01, 0x01, 0x68, 0x61, 0x73, 0x68, 0x68, 0x61,
18
18
  0x73, 0x68, 0x31, 0x32, 0x33, 0x34, 0x68, 0x61, 0x73, 0x68, 0x68, 0x61, 0x73, 0x68, 0x68, 0x61,
19
19
  0x73, 0x68, 0x68, 0x61, 0x73, 0x68, 0x68, 0x61, 0x73, 0x68, 0x90, 0x00,
20
20
  ]);
@@ -5,7 +5,7 @@ const forceUpdateConditions = {
5
5
  nanoS: noVersionCondition,
6
6
  nanoSP: noVersionCondition,
7
7
  blue: noVersionCondition,
8
- europa: noVersionCondition,
8
+ europa: "<1.1.1",
9
9
  stax: "<=1.3.0",
10
10
  };
11
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"shouldForceFirmwareUpdate.js","sourceRoot":"","sources":["../../src/firmwareUpdate/shouldForceFirmwareUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,MAAM,kBAAkB,GAAG,QAAQ,CAAC,CAAC,kCAAkC;AACvE,MAAM,qBAAqB,GAAkC;IAC3D,KAAK,EAAE,kBAAkB;IACzB,KAAK,EAAE,kBAAkB;IACzB,MAAM,EAAE,kBAAkB;IAC1B,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE,kBAAkB;IAC1B,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CAAC,EACxC,cAAc,EACd,aAAa,GAId;;IACC,OAAO,MAAM,CAAC,SAAS,CACrB,MAAA,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,mCAAI,EAAE,EACnC,qBAAqB,CAAC,aAAa,CAAC,CACrC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"shouldForceFirmwareUpdate.js","sourceRoot":"","sources":["../../src/firmwareUpdate/shouldForceFirmwareUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,MAAM,kBAAkB,GAAG,QAAQ,CAAC,CAAC,kCAAkC;AACvE,MAAM,qBAAqB,GAAkC;IAC3D,KAAK,EAAE,kBAAkB;IACzB,KAAK,EAAE,kBAAkB;IACzB,MAAM,EAAE,kBAAkB;IAC1B,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CAAC,EACxC,cAAc,EACd,aAAa,GAId;;IACC,OAAO,MAAM,CAAC,SAAS,CACrB,MAAA,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,mCAAI,EAAE,EACnC,qBAAqB,CAAC,aAAa,CAAC,CACrC,CAAC;AACJ,CAAC"}
@@ -18,6 +18,28 @@ describe("shouldForceFirmwareUpdate", () => {
18
18
  deviceModelId: DeviceModelId.stax,
19
19
  })).toBe(false);
20
20
  });
21
+ it("should force firmware update for europa <1.1.1 and not other versions", () => {
22
+ expect(shouldForceFirmwareUpdate({ currentVersion: "1.0.0", deviceModelId: DeviceModelId.europa })).toBe(true);
23
+ expect(shouldForceFirmwareUpdate({
24
+ currentVersion: "1.0.0-whatever",
25
+ deviceModelId: DeviceModelId.europa,
26
+ })).toBe(true);
27
+ expect(shouldForceFirmwareUpdate({ currentVersion: "1.1.0", deviceModelId: DeviceModelId.europa })).toBe(true);
28
+ expect(shouldForceFirmwareUpdate({
29
+ currentVersion: "1.1.0-whatever",
30
+ deviceModelId: DeviceModelId.europa,
31
+ })).toBe(true);
32
+ expect(shouldForceFirmwareUpdate({ currentVersion: "1.1.1", deviceModelId: DeviceModelId.europa })).toBe(false);
33
+ expect(shouldForceFirmwareUpdate({
34
+ currentVersion: "1.1.1-whatever",
35
+ deviceModelId: DeviceModelId.europa,
36
+ })).toBe(false);
37
+ expect(shouldForceFirmwareUpdate({ currentVersion: "1.2.0", deviceModelId: DeviceModelId.europa })).toBe(false);
38
+ expect(shouldForceFirmwareUpdate({
39
+ currentVersion: "1.2.0-whatever",
40
+ deviceModelId: DeviceModelId.europa,
41
+ })).toBe(false);
42
+ });
21
43
  it("should not force firmware update for other models", () => {
22
44
  expect(shouldForceFirmwareUpdate({ currentVersion: "1.2.0", deviceModelId: DeviceModelId.nanoX })).toBe(false);
23
45
  expect(shouldForceFirmwareUpdate({
@@ -1 +1 @@
1
- {"version":3,"file":"shouldForceFirmwareUpdate.test.js","sourceRoot":"","sources":["../../src/firmwareUpdate/shouldForceFirmwareUpdate.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,CACJ,yBAAyB,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAC1F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,CACJ,yBAAyB,CAAC;YACxB,cAAc,EAAE,gBAAgB;YAChC,aAAa,EAAE,aAAa,CAAC,IAAI;SAClC,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,CACJ,yBAAyB,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAC1F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,CACJ,yBAAyB,CAAC;YACxB,cAAc,EAAE,gBAAgB;YAChC,aAAa,EAAE,aAAa,CAAC,IAAI;SAClC,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,CACJ,yBAAyB,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAC1F,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEd,MAAM,CACJ,yBAAyB,CAAC;YACxB,cAAc,EAAE,gBAAgB;YAChC,aAAa,EAAE,aAAa,CAAC,IAAI;SAClC,CAAC,CACH,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CACJ,yBAAyB,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAC3F,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEd,MAAM,CACJ,yBAAyB,CAAC;YACxB,cAAc,EAAE,gBAAgB;YAChC,aAAa,EAAE,aAAa,CAAC,KAAK;SACnC,CAAC,CACH,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEd,MAAM,CACJ,yBAAyB,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAC3F,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEd,MAAM,CACJ,yBAAyB,CAAC;YACxB,cAAc,EAAE,gBAAgB;YAChC,aAAa,EAAE,aAAa,CAAC,KAAK;SACnC,CAAC,CACH,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEd,MAAM,CACJ,yBAAyB,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAC3F,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEd,MAAM,CACJ,yBAAyB,CAAC;YACxB,cAAc,EAAE,gBAAgB;YAChC,aAAa,EAAE,aAAa,CAAC,KAAK;SACnC,CAAC,CACH,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"shouldForceFirmwareUpdate.test.js","sourceRoot":"","sources":["../../src/firmwareUpdate/shouldForceFirmwareUpdate.test.ts"],"names":[],"mappings":"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"}
package/lib-es/index.d.ts CHANGED
@@ -16,7 +16,7 @@ export { getDeviceName } from "./commands/use-cases/getDeviceName";
16
16
  export { isHardwareVersionSupported } from "./commands/use-cases/isHardwareVersionSupported";
17
17
  export { isBootloaderVersionSupported } from "./commands/use-cases/isBootloaderVersionSupported";
18
18
  export { getVersion } from "./commands/use-cases/getVersion";
19
- export { type AppStorageInfo, isAppStorageInfo } from "./commands/entities/AppStorageInfo";
19
+ export type { AppStorageInfo } from "./commands/entities/AppStorageInfo";
20
20
  export { backupAppStorage } from "./commands/use-cases/app-backup/backupAppStorage";
21
21
  export { getAppStorageInfo } from "./commands/use-cases/app-backup/getAppStorageInfo";
22
22
  export { restoreAppStorage } from "./commands/use-cases/app-backup/restoreAppStorage";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,YAAY,EACV,aAAa,EACb,WAAW,EACX,2BAA2B,GAC5B,MAAM,mDAAmD,CAAC;AAC3D,YAAY,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAEzF,YAAY,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,KAAK,cAAc,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAE9F,OAAO,EACL,KAAK,yBAAyB,EAC9B,2BAA2B,GAC5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAErF,cAAc,gCAAgC,CAAC;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,YAAY,EACV,aAAa,EACb,WAAW,EACX,2BAA2B,GAC5B,MAAM,mDAAmD,CAAC;AAC3D,YAAY,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAEzF,YAAY,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,YAAY,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAE9F,OAAO,EACL,KAAK,yBAAyB,EAC9B,2BAA2B,GAC5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAErF,cAAc,gCAAgC,CAAC;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC"}
package/lib-es/index.js CHANGED
@@ -12,7 +12,6 @@ export { getDeviceName } from "./commands/use-cases/getDeviceName";
12
12
  export { isHardwareVersionSupported } from "./commands/use-cases/isHardwareVersionSupported";
13
13
  export { isBootloaderVersionSupported } from "./commands/use-cases/isBootloaderVersionSupported";
14
14
  export { getVersion } from "./commands/use-cases/getVersion";
15
- export { isAppStorageInfo } from "./commands/entities/AppStorageInfo";
16
15
  export { backupAppStorage } from "./commands/use-cases/app-backup/backupAppStorage";
17
16
  export { getAppStorageInfo } from "./commands/use-cases/app-backup/getAppStorageInfo";
18
17
  export { restoreAppStorage } from "./commands/use-cases/app-backup/restoreAppStorage";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAGzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAuB,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAC9F,oBAAoB;AACpB,OAAO,EAEL,2BAA2B,GAC5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,wBAAwB;AACxB,cAAc,gCAAgC,CAAC;AAC/C,sBAAsB;AACtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAGzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAC9F,oBAAoB;AACpB,OAAO,EAEL,2BAA2B,GAC5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,wBAAwB;AACxB,cAAc,gCAAgC,CAAC;AAC/C,sBAAsB;AACtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/device-core",
3
- "version": "0.3.1-nightly.0",
3
+ "version": "0.3.1",
4
4
  "description": "Ledger Live device core module",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
@@ -22,9 +22,9 @@
22
22
  "semver": "^7.3.5",
23
23
  "@ledgerhq/errors": "^6.18.0",
24
24
  "@ledgerhq/live-network": "^1.3.1",
25
- "@ledgerhq/hw-transport": "^6.31.1",
25
+ "@ledgerhq/hw-transport": "^6.31.2",
26
26
  "@ledgerhq/logs": "^6.12.0",
27
- "@ledgerhq/devices": "^8.4.1",
27
+ "@ledgerhq/devices": "^8.4.2",
28
28
  "@ledgerhq/types-live": "^6.49.0"
29
29
  },
30
30
  "devDependencies": {
@@ -5,20 +5,3 @@ export type AppStorageInfo = {
5
5
  hasData: boolean;
6
6
  hash: string;
7
7
  };
8
-
9
- export function isAppStorageInfo(data: AppStorageInfo | unknown): data is AppStorageInfo {
10
- return (
11
- typeof data === "object" &&
12
- data !== null &&
13
- "size" in data &&
14
- typeof data.size === "number" &&
15
- "dataVersion" in data &&
16
- typeof data.dataVersion === "string" &&
17
- "hasSettings" in data &&
18
- typeof data.hasSettings === "boolean" &&
19
- "hasData" in data &&
20
- typeof data.hasData === "boolean" &&
21
- "hash" in data &&
22
- typeof data.hash === "string"
23
- );
24
- }
@@ -8,7 +8,7 @@ jest.mock("@ledgerhq/hw-transport");
8
8
  describe("getAppStorageInfo", () => {
9
9
  let transport: Transport;
10
10
  const response = Buffer.from([
11
- 0x00, 0x00, 0x04, 0xd2, 0x31, 0x2e, 0x30, 0x31, 0x00, 0x03, 0x68, 0x61, 0x73, 0x68, 0x68, 0x61,
11
+ 0x00, 0x00, 0x04, 0xd2, 0x31, 0x2e, 0x30, 0x31, 0x01, 0x01, 0x68, 0x61, 0x73, 0x68, 0x68, 0x61,
12
12
  0x73, 0x68, 0x31, 0x32, 0x33, 0x34, 0x68, 0x61, 0x73, 0x68, 0x68, 0x61, 0x73, 0x68, 0x68, 0x61,
13
13
  0x73, 0x68, 0x68, 0x61, 0x73, 0x68, 0x68, 0x61, 0x73, 0x68, 0x90, 0x00,
14
14
  ]);
@@ -82,15 +82,10 @@ export function parseResponse(data: Buffer): AppStorageInfo {
82
82
  offset += 4;
83
83
  const dataVersion = data.subarray(offset, offset + 4).toString(); // Len = 4
84
84
  offset += 4;
85
- const properties = data.readUInt16BE(offset);
86
- offset += 2;
87
- /**
88
- * The properties byte is a bitfield with the following structure:
89
- * - Bit 0: hasSettings
90
- * - Bit 1: hasData
91
- */
92
- const hasSettings = (properties & 1) === 1;
93
- const hasData = (properties & 2) === 2;
85
+ const hasSettings = data.readUIntBE(offset, 1) === 1; // Len = 1
86
+ offset += 1;
87
+ const hasData = data.readUIntBE(offset, 1) === 1; // Len = 1
88
+ offset += 1;
94
89
  const hash = data.subarray(offset, offset + 32).toString(); // Len = 32
95
90
 
96
91
  return { size, dataVersion, hasSettings, hasData, hash };
@@ -37,6 +37,52 @@ describe("shouldForceFirmwareUpdate", () => {
37
37
  ).toBe(false);
38
38
  });
39
39
 
40
+ it("should force firmware update for europa <1.1.1 and not other versions", () => {
41
+ expect(
42
+ shouldForceFirmwareUpdate({ currentVersion: "1.0.0", deviceModelId: DeviceModelId.europa }),
43
+ ).toBe(true);
44
+
45
+ expect(
46
+ shouldForceFirmwareUpdate({
47
+ currentVersion: "1.0.0-whatever",
48
+ deviceModelId: DeviceModelId.europa,
49
+ }),
50
+ ).toBe(true);
51
+
52
+ expect(
53
+ shouldForceFirmwareUpdate({ currentVersion: "1.1.0", deviceModelId: DeviceModelId.europa }),
54
+ ).toBe(true);
55
+
56
+ expect(
57
+ shouldForceFirmwareUpdate({
58
+ currentVersion: "1.1.0-whatever",
59
+ deviceModelId: DeviceModelId.europa,
60
+ }),
61
+ ).toBe(true);
62
+
63
+ expect(
64
+ shouldForceFirmwareUpdate({ currentVersion: "1.1.1", deviceModelId: DeviceModelId.europa }),
65
+ ).toBe(false);
66
+
67
+ expect(
68
+ shouldForceFirmwareUpdate({
69
+ currentVersion: "1.1.1-whatever",
70
+ deviceModelId: DeviceModelId.europa,
71
+ }),
72
+ ).toBe(false);
73
+
74
+ expect(
75
+ shouldForceFirmwareUpdate({ currentVersion: "1.2.0", deviceModelId: DeviceModelId.europa }),
76
+ ).toBe(false);
77
+
78
+ expect(
79
+ shouldForceFirmwareUpdate({
80
+ currentVersion: "1.2.0-whatever",
81
+ deviceModelId: DeviceModelId.europa,
82
+ }),
83
+ ).toBe(false);
84
+ });
85
+
40
86
  it("should not force firmware update for other models", () => {
41
87
  expect(
42
88
  shouldForceFirmwareUpdate({ currentVersion: "1.2.0", deviceModelId: DeviceModelId.nanoX }),
@@ -7,7 +7,7 @@ const forceUpdateConditions: Record<DeviceModelId, string> = {
7
7
  nanoS: noVersionCondition,
8
8
  nanoSP: noVersionCondition,
9
9
  blue: noVersionCondition,
10
- europa: noVersionCondition,
10
+ europa: "<1.1.1",
11
11
  stax: "<=1.3.0",
12
12
  };
13
13
 
package/src/index.ts CHANGED
@@ -22,7 +22,7 @@ export { getDeviceName } from "./commands/use-cases/getDeviceName";
22
22
  export { isHardwareVersionSupported } from "./commands/use-cases/isHardwareVersionSupported";
23
23
  export { isBootloaderVersionSupported } from "./commands/use-cases/isBootloaderVersionSupported";
24
24
  export { getVersion } from "./commands/use-cases/getVersion";
25
- export { type AppStorageInfo, isAppStorageInfo } from "./commands/entities/AppStorageInfo";
25
+ export type { AppStorageInfo } from "./commands/entities/AppStorageInfo";
26
26
  export { backupAppStorage } from "./commands/use-cases/app-backup/backupAppStorage";
27
27
  export { getAppStorageInfo } from "./commands/use-cases/app-backup/getAppStorageInfo";
28
28
  export { restoreAppStorage } from "./commands/use-cases/app-backup/restoreAppStorage";
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=AppStorageInfo.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AppStorageInfo.test.d.ts","sourceRoot":"","sources":["../../../src/commands/entities/AppStorageInfo.test.ts"],"names":[],"mappings":""}
@@ -1,48 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=AppStorageInfo.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AppStorageInfo.test.d.ts","sourceRoot":"","sources":["../../../src/commands/entities/AppStorageInfo.test.ts"],"names":[],"mappings":""}
@@ -1,46 +0,0 @@
1
- import { isAppStorageInfo } from "./AppStorageInfo";
2
- describe("isAppStorageInfo", () => {
3
- it("should return true for valid AppStorageInfo object", () => {
4
- const data = {
5
- size: 1024,
6
- dataVersion: "1.0.0",
7
- hasSettings: true,
8
- hasData: true,
9
- hash: "abcd1234",
10
- };
11
- expect(isAppStorageInfo(data)).toBe(true);
12
- });
13
- it("should return false for non-object input", () => {
14
- const data = "invalid";
15
- expect(isAppStorageInfo(data)).toBe(false);
16
- });
17
- it("should return false for null input", () => {
18
- const data = null;
19
- expect(isAppStorageInfo(data)).toBe(false);
20
- });
21
- it("should return false for undefined input", () => {
22
- const data = undefined;
23
- expect(isAppStorageInfo(data)).toBe(false);
24
- });
25
- it("should return false if missing property", () => {
26
- const data = {
27
- // Missing size property
28
- dataVersion: "1.0.0",
29
- hasSettings: true,
30
- hasData: true,
31
- hash: "abcd1234",
32
- };
33
- expect(isAppStorageInfo(data)).toBe(false);
34
- });
35
- it("should return false if property type not correct", () => {
36
- const data = {
37
- size: 1024,
38
- dataVersion: "1.0.0",
39
- hasSettings: "Yes",
40
- hasData: true,
41
- hash: "abcd1234",
42
- };
43
- expect(isAppStorageInfo(data)).toBe(false);
44
- });
45
- });
46
- //# sourceMappingURL=AppStorageInfo.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AppStorageInfo.test.js","sourceRoot":"","sources":["../../../src/commands/entities/AppStorageInfo.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAkB,MAAM,kBAAkB,CAAC;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,gBAAgB,CAAC,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,gBAAgB,CAAC,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,gBAAgB,CAAC,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,gBAAgB,CAAC,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,gBAAgB,CAAC,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,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,57 +0,0 @@
1
- import { isAppStorageInfo, AppStorageInfo } from "./AppStorageInfo";
2
-
3
- describe("isAppStorageInfo", () => {
4
- it("should return true for valid AppStorageInfo object", () => {
5
- const data: AppStorageInfo = {
6
- size: 1024,
7
- dataVersion: "1.0.0",
8
- hasSettings: true,
9
- hasData: true,
10
- hash: "abcd1234",
11
- };
12
-
13
- expect(isAppStorageInfo(data)).toBe(true);
14
- });
15
-
16
- it("should return false for non-object input", () => {
17
- const data: unknown = "invalid";
18
-
19
- expect(isAppStorageInfo(data)).toBe(false);
20
- });
21
-
22
- it("should return false for null input", () => {
23
- const data: unknown = null;
24
-
25
- expect(isAppStorageInfo(data)).toBe(false);
26
- });
27
-
28
- it("should return false for undefined input", () => {
29
- const data: unknown = undefined;
30
-
31
- expect(isAppStorageInfo(data)).toBe(false);
32
- });
33
-
34
- it("should return false if missing property", () => {
35
- const data: unknown = {
36
- // Missing size property
37
- dataVersion: "1.0.0",
38
- hasSettings: true,
39
- hasData: true,
40
- hash: "abcd1234",
41
- };
42
-
43
- expect(isAppStorageInfo(data)).toBe(false);
44
- });
45
-
46
- it("should return false if property type not correct", () => {
47
- const data: unknown = {
48
- size: 1024,
49
- dataVersion: "1.0.0",
50
- hasSettings: "Yes",
51
- hasData: true,
52
- hash: "abcd1234",
53
- };
54
-
55
- expect(isAppStorageInfo(data)).toBe(false);
56
- });
57
- });