@ledgerhq/device-core 0.5.4 → 0.5.5-nightly.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 (108) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +21 -0
  3. package/lib/capabilities/isCustomLockScreenSupported.d.ts +1 -1
  4. package/lib/capabilities/isCustomLockScreenSupported.d.ts.map +1 -1
  5. package/lib/capabilities/isCustomLockScreenSupported.js +6 -1
  6. package/lib/capabilities/isCustomLockScreenSupported.js.map +1 -1
  7. package/lib/capabilities/isCustomLockScreenSupported.test.js +5 -1
  8. package/lib/capabilities/isCustomLockScreenSupported.test.js.map +1 -1
  9. package/lib/capabilities/isEditDeviceNameSupported.d.ts.map +1 -1
  10. package/lib/capabilities/isEditDeviceNameSupported.js +1 -0
  11. package/lib/capabilities/isEditDeviceNameSupported.js.map +1 -1
  12. package/lib/capabilities/isEditDeviceNameSupported.test.js +1 -0
  13. package/lib/capabilities/isEditDeviceNameSupported.test.js.map +1 -1
  14. package/lib/capabilities/isSyncOnboardingSupported.js +1 -1
  15. package/lib/capabilities/isSyncOnboardingSupported.js.map +1 -1
  16. package/lib/capabilities/isSyncOnboardingSupported.test.js +1 -0
  17. package/lib/capabilities/isSyncOnboardingSupported.test.js.map +1 -1
  18. package/lib/commands/use-cases/isBootloaderVersionSupported.d.ts.map +1 -1
  19. package/lib/commands/use-cases/isBootloaderVersionSupported.js +1 -0
  20. package/lib/commands/use-cases/isBootloaderVersionSupported.js.map +1 -1
  21. package/lib/commands/use-cases/isBootloaderVersionSupported.test.js +8 -3
  22. package/lib/commands/use-cases/isBootloaderVersionSupported.test.js.map +1 -1
  23. package/lib/commands/use-cases/isCharonSupported.d.ts.map +1 -1
  24. package/lib/commands/use-cases/isCharonSupported.js +1 -0
  25. package/lib/commands/use-cases/isCharonSupported.js.map +1 -1
  26. package/lib/commands/use-cases/isCharonSupported.test.js +6 -1
  27. package/lib/commands/use-cases/isCharonSupported.test.js.map +1 -1
  28. package/lib/commands/use-cases/isDeviceLocalizationSupported.d.ts.map +1 -1
  29. package/lib/commands/use-cases/isDeviceLocalizationSupported.js +1 -0
  30. package/lib/commands/use-cases/isDeviceLocalizationSupported.js.map +1 -1
  31. package/lib/commands/use-cases/isDeviceLocalizationSupported.test.js +6 -1
  32. package/lib/commands/use-cases/isDeviceLocalizationSupported.test.js.map +1 -1
  33. package/lib/commands/use-cases/isRecoverSupported.d.ts.map +1 -1
  34. package/lib/commands/use-cases/isRecoverSupported.js +1 -0
  35. package/lib/commands/use-cases/isRecoverSupported.js.map +1 -1
  36. package/lib/commands/use-cases/isRecoverSupported.test.js +6 -1
  37. package/lib/commands/use-cases/isRecoverSupported.test.js.map +1 -1
  38. package/lib/customLockScreen/screenSpecs.d.ts +3 -1
  39. package/lib/customLockScreen/screenSpecs.d.ts.map +1 -1
  40. package/lib/customLockScreen/screenSpecs.js +8 -0
  41. package/lib/customLockScreen/screenSpecs.js.map +1 -1
  42. package/lib/firmwareUpdate/shouldForceFirmwareUpdate.d.ts.map +1 -1
  43. package/lib/firmwareUpdate/shouldForceFirmwareUpdate.js +1 -0
  44. package/lib/firmwareUpdate/shouldForceFirmwareUpdate.js.map +1 -1
  45. package/lib/firmwareUpdate/shouldForceFirmwareUpdate.test.js +6 -0
  46. package/lib/firmwareUpdate/shouldForceFirmwareUpdate.test.js.map +1 -1
  47. package/lib-es/capabilities/isCustomLockScreenSupported.d.ts +1 -1
  48. package/lib-es/capabilities/isCustomLockScreenSupported.d.ts.map +1 -1
  49. package/lib-es/capabilities/isCustomLockScreenSupported.js +6 -1
  50. package/lib-es/capabilities/isCustomLockScreenSupported.js.map +1 -1
  51. package/lib-es/capabilities/isCustomLockScreenSupported.test.js +5 -1
  52. package/lib-es/capabilities/isCustomLockScreenSupported.test.js.map +1 -1
  53. package/lib-es/capabilities/isEditDeviceNameSupported.d.ts.map +1 -1
  54. package/lib-es/capabilities/isEditDeviceNameSupported.js +1 -0
  55. package/lib-es/capabilities/isEditDeviceNameSupported.js.map +1 -1
  56. package/lib-es/capabilities/isEditDeviceNameSupported.test.js +1 -0
  57. package/lib-es/capabilities/isEditDeviceNameSupported.test.js.map +1 -1
  58. package/lib-es/capabilities/isSyncOnboardingSupported.js +1 -1
  59. package/lib-es/capabilities/isSyncOnboardingSupported.js.map +1 -1
  60. package/lib-es/capabilities/isSyncOnboardingSupported.test.js +1 -0
  61. package/lib-es/capabilities/isSyncOnboardingSupported.test.js.map +1 -1
  62. package/lib-es/commands/use-cases/isBootloaderVersionSupported.d.ts.map +1 -1
  63. package/lib-es/commands/use-cases/isBootloaderVersionSupported.js +1 -0
  64. package/lib-es/commands/use-cases/isBootloaderVersionSupported.js.map +1 -1
  65. package/lib-es/commands/use-cases/isBootloaderVersionSupported.test.js +8 -3
  66. package/lib-es/commands/use-cases/isBootloaderVersionSupported.test.js.map +1 -1
  67. package/lib-es/commands/use-cases/isCharonSupported.d.ts.map +1 -1
  68. package/lib-es/commands/use-cases/isCharonSupported.js +1 -0
  69. package/lib-es/commands/use-cases/isCharonSupported.js.map +1 -1
  70. package/lib-es/commands/use-cases/isCharonSupported.test.js +6 -1
  71. package/lib-es/commands/use-cases/isCharonSupported.test.js.map +1 -1
  72. package/lib-es/commands/use-cases/isDeviceLocalizationSupported.d.ts.map +1 -1
  73. package/lib-es/commands/use-cases/isDeviceLocalizationSupported.js +1 -0
  74. package/lib-es/commands/use-cases/isDeviceLocalizationSupported.js.map +1 -1
  75. package/lib-es/commands/use-cases/isDeviceLocalizationSupported.test.js +6 -1
  76. package/lib-es/commands/use-cases/isDeviceLocalizationSupported.test.js.map +1 -1
  77. package/lib-es/commands/use-cases/isRecoverSupported.d.ts.map +1 -1
  78. package/lib-es/commands/use-cases/isRecoverSupported.js +1 -0
  79. package/lib-es/commands/use-cases/isRecoverSupported.js.map +1 -1
  80. package/lib-es/commands/use-cases/isRecoverSupported.test.js +6 -1
  81. package/lib-es/commands/use-cases/isRecoverSupported.test.js.map +1 -1
  82. package/lib-es/customLockScreen/screenSpecs.d.ts +3 -1
  83. package/lib-es/customLockScreen/screenSpecs.d.ts.map +1 -1
  84. package/lib-es/customLockScreen/screenSpecs.js +8 -0
  85. package/lib-es/customLockScreen/screenSpecs.js.map +1 -1
  86. package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.d.ts.map +1 -1
  87. package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.js +1 -0
  88. package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.js.map +1 -1
  89. package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.test.js +6 -0
  90. package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.test.js.map +1 -1
  91. package/package.json +6 -6
  92. package/src/capabilities/isCustomLockScreenSupported.test.ts +5 -1
  93. package/src/capabilities/isCustomLockScreenSupported.ts +6 -1
  94. package/src/capabilities/isEditDeviceNameSupported.test.ts +1 -0
  95. package/src/capabilities/isEditDeviceNameSupported.ts +1 -0
  96. package/src/capabilities/isSyncOnboardingSupported.test.ts +1 -0
  97. package/src/capabilities/isSyncOnboardingSupported.ts +1 -1
  98. package/src/commands/use-cases/isBootloaderVersionSupported.test.ts +9 -3
  99. package/src/commands/use-cases/isBootloaderVersionSupported.ts +1 -0
  100. package/src/commands/use-cases/isCharonSupported.test.ts +7 -1
  101. package/src/commands/use-cases/isCharonSupported.ts +1 -0
  102. package/src/commands/use-cases/isDeviceLocalizationSupported.test.ts +7 -1
  103. package/src/commands/use-cases/isDeviceLocalizationSupported.ts +1 -0
  104. package/src/commands/use-cases/isRecoverSupported.test.ts +7 -1
  105. package/src/commands/use-cases/isRecoverSupported.ts +1 -0
  106. package/src/customLockScreen/screenSpecs.ts +12 -2
  107. package/src/firmwareUpdate/shouldForceFirmwareUpdate.test.ts +15 -0
  108. package/src/firmwareUpdate/shouldForceFirmwareUpdate.ts +1 -0
@@ -1,7 +1,7 @@
1
1
  import { DeviceModelId } from "@ledgerhq/devices";
2
2
  import { isRecoverSupported } from "./isRecoverSupported";
3
3
 
4
- const { nanoS, nanoX, stax, europa, nanoSP } = DeviceModelId;
4
+ const { nanoS, nanoX, stax, europa, nanoSP, apex } = DeviceModelId;
5
5
 
6
6
  test("isRecoverSupported", () => {
7
7
  /**
@@ -57,4 +57,10 @@ test("isRecoverSupported", () => {
57
57
 
58
58
  expect(isRecoverSupported("1.4.0", europa)).toBe(true);
59
59
  expect(isRecoverSupported("1.4.0-whatever0", europa)).toBe(true);
60
+
61
+ /**
62
+ * Apex
63
+ * */
64
+ expect(isRecoverSupported("0.0.0", apex)).toBe(true);
65
+ expect(isRecoverSupported("0.0.0-whatever0", apex)).toBe(true);
60
66
  });
@@ -6,6 +6,7 @@ const deviceVersionRangesForRecover: { [key in DeviceModelId]?: string } = {
6
6
  nanoSP: ">=1.1.0",
7
7
  stax: ">=1.0.0",
8
8
  europa: ">=0.0.0",
9
+ apex: ">=0.0.0",
9
10
  };
10
11
 
11
12
  export const isRecoverSupported = (seVersion: string, modelId?: DeviceModelId): boolean =>
@@ -4,7 +4,7 @@ import {
4
4
  supportedDeviceModelIds,
5
5
  } from "../capabilities/isCustomLockScreenSupported";
6
6
 
7
- type ScreenSpecs = {
7
+ export type ScreenSpecs = {
8
8
  /** width of the screen in pixels */
9
9
  width: number;
10
10
  /** height of the screen in pixels */
@@ -17,6 +17,8 @@ type ScreenSpecs = {
17
17
  paddingLeft: number;
18
18
  /** number of pixels at the right of the screen which are not visible */
19
19
  paddingRight: number;
20
+ /** number of bits per pixel */
21
+ bitsPerPixel: 1 | 4;
20
22
  };
21
23
 
22
24
  const NO_PADDING = {
@@ -32,11 +34,19 @@ export const SCREEN_SPECS: Record<CLSSupportedDeviceModelId, ScreenSpecs> = {
32
34
  height: 672,
33
35
  ...NO_PADDING,
34
36
  paddingBottom: 2,
37
+ bitsPerPixel: 4,
35
38
  },
36
39
  [DeviceModelId.europa]: {
37
40
  width: 480,
38
41
  height: 600,
39
42
  ...NO_PADDING,
43
+ bitsPerPixel: 4,
44
+ },
45
+ [DeviceModelId.apex]: {
46
+ width: 300,
47
+ height: 400,
48
+ ...NO_PADDING,
49
+ bitsPerPixel: 1,
40
50
  },
41
51
  };
42
52
 
@@ -50,7 +60,7 @@ export function getScreenSpecs(deviceModelId: CLSSupportedDeviceModelId) {
50
60
  }
51
61
 
52
62
  const screenDataDimensions: Record<CLSSupportedDeviceModelId, Dimensions> =
53
- supportedDeviceModelIds.reduce(
63
+ supportedDeviceModelIds.reduce<Record<CLSSupportedDeviceModelId, Dimensions>>(
54
64
  (acc, deviceModelId) => {
55
65
  const { width, height } = SCREEN_SPECS[deviceModelId];
56
66
  acc[deviceModelId] = { width, height };
@@ -116,5 +116,20 @@ describe("shouldForceFirmwareUpdate", () => {
116
116
  deviceModelId: DeviceModelId.nanoX,
117
117
  }),
118
118
  ).toBe(false);
119
+
120
+ expect(
121
+ shouldForceFirmwareUpdate({ currentVersion: "0.0.0", deviceModelId: DeviceModelId.apex }),
122
+ ).toBe(false);
123
+
124
+ expect(
125
+ shouldForceFirmwareUpdate({
126
+ currentVersion: "0.0.0-whatever",
127
+ deviceModelId: DeviceModelId.apex,
128
+ }),
129
+ ).toBe(false);
130
+
131
+ expect(
132
+ shouldForceFirmwareUpdate({ currentVersion: "1.3.0", deviceModelId: DeviceModelId.apex }),
133
+ ).toBe(false);
119
134
  });
120
135
  });
@@ -9,6 +9,7 @@ const forceUpdateConditions: Record<DeviceModelId, string> = {
9
9
  blue: noVersionCondition,
10
10
  europa: "<1.1.1",
11
11
  stax: "<=1.3.0",
12
+ apex: noVersionCondition,
12
13
  };
13
14
 
14
15
  /**