@ledgerhq/live-common 34.43.0-nightly.1 → 34.43.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 (136) hide show
  1. package/lib/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.d.ts +2 -0
  2. package/lib/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.d.ts.map +1 -0
  3. package/lib/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.js +114 -0
  4. package/lib/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.js.map +1 -0
  5. package/lib/deviceSDK/hooks/filterIgnoredFirmwareUpdates.d.ts +11 -0
  6. package/lib/deviceSDK/hooks/filterIgnoredFirmwareUpdates.d.ts.map +1 -0
  7. package/lib/deviceSDK/hooks/filterIgnoredFirmwareUpdates.js +26 -0
  8. package/lib/deviceSDK/hooks/filterIgnoredFirmwareUpdates.js.map +1 -0
  9. package/lib/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.d.ts +12 -0
  10. package/lib/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.d.ts.map +1 -0
  11. package/lib/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.js +24 -0
  12. package/lib/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.js.map +1 -0
  13. package/lib/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.d.ts +2 -0
  14. package/lib/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.d.ts.map +1 -0
  15. package/lib/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.js +118 -0
  16. package/lib/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.js.map +1 -0
  17. package/lib/deviceSDK/hooks/useGetLatestAvailableFirmware.d.ts +3 -1
  18. package/lib/deviceSDK/hooks/useGetLatestAvailableFirmware.d.ts.map +1 -1
  19. package/lib/deviceSDK/hooks/useGetLatestAvailableFirmware.js +7 -3
  20. package/lib/deviceSDK/hooks/useGetLatestAvailableFirmware.js.map +1 -1
  21. package/lib/e2e/index.d.ts +2 -1
  22. package/lib/e2e/index.d.ts.map +1 -1
  23. package/lib/e2e/speculos.d.ts.map +1 -1
  24. package/lib/e2e/speculos.js +15 -45
  25. package/lib/e2e/speculos.js.map +1 -1
  26. package/lib/e2e/speculosCI.d.ts.map +1 -1
  27. package/lib/e2e/speculosCI.js +4 -22
  28. package/lib/e2e/speculosCI.js.map +1 -1
  29. package/lib/env.react.d.ts +1 -1
  30. package/lib/env.react.d.ts.map +1 -1
  31. package/lib/families/solana/bridge/mock-data.d.ts.map +1 -1
  32. package/lib/families/solana/bridge/mock-data.js +316 -46
  33. package/lib/families/solana/bridge/mock-data.js.map +1 -1
  34. package/lib/families/solana/bridge/mock.js +2 -2
  35. package/lib/families/solana/bridge/mock.js.map +1 -1
  36. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  37. package/lib/featureFlags/defaultFeatures.js +4 -0
  38. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  39. package/lib/featureFlags/useFeature.d.ts +1 -1
  40. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  41. package/lib-es/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.d.ts +2 -0
  42. package/lib-es/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.d.ts.map +1 -0
  43. package/lib-es/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.js +112 -0
  44. package/lib-es/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.js.map +1 -0
  45. package/lib-es/deviceSDK/hooks/filterIgnoredFirmwareUpdates.d.ts +11 -0
  46. package/lib-es/deviceSDK/hooks/filterIgnoredFirmwareUpdates.d.ts.map +1 -0
  47. package/lib-es/deviceSDK/hooks/filterIgnoredFirmwareUpdates.js +22 -0
  48. package/lib-es/deviceSDK/hooks/filterIgnoredFirmwareUpdates.js.map +1 -0
  49. package/lib-es/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.d.ts +12 -0
  50. package/lib-es/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.d.ts.map +1 -0
  51. package/lib-es/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.js +20 -0
  52. package/lib-es/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.js.map +1 -0
  53. package/lib-es/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.d.ts +2 -0
  54. package/lib-es/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.d.ts.map +1 -0
  55. package/lib-es/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.js +116 -0
  56. package/lib-es/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.js.map +1 -0
  57. package/lib-es/deviceSDK/hooks/useGetLatestAvailableFirmware.d.ts +3 -1
  58. package/lib-es/deviceSDK/hooks/useGetLatestAvailableFirmware.d.ts.map +1 -1
  59. package/lib-es/deviceSDK/hooks/useGetLatestAvailableFirmware.js +7 -3
  60. package/lib-es/deviceSDK/hooks/useGetLatestAvailableFirmware.js.map +1 -1
  61. package/lib-es/e2e/index.d.ts +2 -1
  62. package/lib-es/e2e/index.d.ts.map +1 -1
  63. package/lib-es/e2e/speculos.d.ts.map +1 -1
  64. package/lib-es/e2e/speculos.js +15 -45
  65. package/lib-es/e2e/speculos.js.map +1 -1
  66. package/lib-es/e2e/speculosCI.d.ts.map +1 -1
  67. package/lib-es/e2e/speculosCI.js +4 -22
  68. package/lib-es/e2e/speculosCI.js.map +1 -1
  69. package/lib-es/env.react.d.ts +1 -1
  70. package/lib-es/env.react.d.ts.map +1 -1
  71. package/lib-es/families/solana/bridge/mock-data.d.ts.map +1 -1
  72. package/lib-es/families/solana/bridge/mock-data.js +316 -46
  73. package/lib-es/families/solana/bridge/mock-data.js.map +1 -1
  74. package/lib-es/families/solana/bridge/mock.js +3 -3
  75. package/lib-es/families/solana/bridge/mock.js.map +1 -1
  76. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  77. package/lib-es/featureFlags/defaultFeatures.js +4 -0
  78. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  79. package/lib-es/featureFlags/useFeature.d.ts +1 -1
  80. package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
  81. package/package.json +47 -47
  82. package/src/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.ts +132 -0
  83. package/src/deviceSDK/hooks/filterIgnoredFirmwareUpdates.ts +27 -0
  84. package/src/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.ts +192 -0
  85. package/src/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.ts +28 -0
  86. package/src/deviceSDK/hooks/useGetLatestAvailableFirmware.ts +9 -2
  87. package/src/e2e/speculos.ts +21 -77
  88. package/src/e2e/speculosCI.ts +10 -32
  89. package/src/families/solana/bridge/mock-data.ts +316 -52
  90. package/src/families/solana/bridge/mock.ts +3 -3
  91. package/src/featureFlags/defaultFeatures.ts +4 -0
  92. package/lib/modularDrawer/__mocks__/accounts.mock.d.ts +0 -18
  93. package/lib/modularDrawer/__mocks__/accounts.mock.d.ts.map +0 -1
  94. package/lib/modularDrawer/__mocks__/accounts.mock.js +0 -48
  95. package/lib/modularDrawer/__mocks__/accounts.mock.js.map +0 -1
  96. package/lib/utils/__tests__/composeHooks.test.d.ts +0 -2
  97. package/lib/utils/__tests__/composeHooks.test.d.ts.map +0 -1
  98. package/lib/utils/__tests__/composeHooks.test.js +0 -35
  99. package/lib/utils/__tests__/composeHooks.test.js.map +0 -1
  100. package/lib/utils/__tests__/getAccountTuplesForCurrency.test.d.ts +0 -2
  101. package/lib/utils/__tests__/getAccountTuplesForCurrency.test.d.ts.map +0 -1
  102. package/lib/utils/__tests__/getAccountTuplesForCurrency.test.js +0 -104
  103. package/lib/utils/__tests__/getAccountTuplesForCurrency.test.js.map +0 -1
  104. package/lib/utils/composeHooks.d.ts +0 -11
  105. package/lib/utils/composeHooks.d.ts.map +0 -1
  106. package/lib/utils/composeHooks.js +0 -25
  107. package/lib/utils/composeHooks.js.map +0 -1
  108. package/lib/utils/getAccountTuplesForCurrency.d.ts +0 -8
  109. package/lib/utils/getAccountTuplesForCurrency.d.ts.map +0 -1
  110. package/lib/utils/getAccountTuplesForCurrency.js +0 -19
  111. package/lib/utils/getAccountTuplesForCurrency.js.map +0 -1
  112. package/lib-es/modularDrawer/__mocks__/accounts.mock.d.ts +0 -18
  113. package/lib-es/modularDrawer/__mocks__/accounts.mock.d.ts.map +0 -1
  114. package/lib-es/modularDrawer/__mocks__/accounts.mock.js +0 -42
  115. package/lib-es/modularDrawer/__mocks__/accounts.mock.js.map +0 -1
  116. package/lib-es/utils/__tests__/composeHooks.test.d.ts +0 -2
  117. package/lib-es/utils/__tests__/composeHooks.test.d.ts.map +0 -1
  118. package/lib-es/utils/__tests__/composeHooks.test.js +0 -33
  119. package/lib-es/utils/__tests__/composeHooks.test.js.map +0 -1
  120. package/lib-es/utils/__tests__/getAccountTuplesForCurrency.test.d.ts +0 -2
  121. package/lib-es/utils/__tests__/getAccountTuplesForCurrency.test.d.ts.map +0 -1
  122. package/lib-es/utils/__tests__/getAccountTuplesForCurrency.test.js +0 -102
  123. package/lib-es/utils/__tests__/getAccountTuplesForCurrency.test.js.map +0 -1
  124. package/lib-es/utils/composeHooks.d.ts +0 -11
  125. package/lib-es/utils/composeHooks.d.ts.map +0 -1
  126. package/lib-es/utils/composeHooks.js +0 -21
  127. package/lib-es/utils/composeHooks.js.map +0 -1
  128. package/lib-es/utils/getAccountTuplesForCurrency.d.ts +0 -8
  129. package/lib-es/utils/getAccountTuplesForCurrency.d.ts.map +0 -1
  130. package/lib-es/utils/getAccountTuplesForCurrency.js +0 -15
  131. package/lib-es/utils/getAccountTuplesForCurrency.js.map +0 -1
  132. package/src/modularDrawer/__mocks__/accounts.mock.ts +0 -43
  133. package/src/utils/__tests__/composeHooks.test.ts +0 -46
  134. package/src/utils/__tests__/getAccountTuplesForCurrency.test.ts +0 -138
  135. package/src/utils/composeHooks.ts +0 -26
  136. package/src/utils/getAccountTuplesForCurrency.ts +0 -34
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=filterIgnoredFirmwareUpdates.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterIgnoredFirmwareUpdates.test.d.ts","sourceRoot":"","sources":["../../../../src/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const filterIgnoredFirmwareUpdates_1 = require("../filterIgnoredFirmwareUpdates");
4
+ describe("filterIgnoredFirmwareUpdates", () => {
5
+ const createMockState = (status, firmwareName) => ({
6
+ status,
7
+ firmwareUpdateContext: firmwareName
8
+ ? {
9
+ final: { name: firmwareName },
10
+ osu: {},
11
+ shouldFlashMCU: false,
12
+ }
13
+ : null,
14
+ deviceInfo: null,
15
+ error: null,
16
+ lockedDevice: false,
17
+ });
18
+ describe("when status is not 'available-firmware'", () => {
19
+ it("should return the original state unchanged", () => {
20
+ const state = createMockState("no-available-firmware");
21
+ const result = (0, filterIgnoredFirmwareUpdates_1.filterIgnoredFirmwareUpdates)(state, ["2.1.0"]);
22
+ expect(result).toEqual(state);
23
+ });
24
+ it("should return the original state when status is 'error'", () => {
25
+ const state = createMockState("error");
26
+ const result = (0, filterIgnoredFirmwareUpdates_1.filterIgnoredFirmwareUpdates)(state, ["2.1.0"]);
27
+ expect(result).toEqual(state);
28
+ });
29
+ });
30
+ describe("when ignoredOSUpdates is undefined", () => {
31
+ it("should return the original state unchanged", () => {
32
+ const state = createMockState("available-firmware", "2.1.0");
33
+ const result = (0, filterIgnoredFirmwareUpdates_1.filterIgnoredFirmwareUpdates)(state, undefined);
34
+ expect(result).toEqual(state);
35
+ });
36
+ });
37
+ describe("when ignoredOSUpdates is empty array", () => {
38
+ it("should return the original state unchanged", () => {
39
+ const state = createMockState("available-firmware", "2.1.0");
40
+ const result = (0, filterIgnoredFirmwareUpdates_1.filterIgnoredFirmwareUpdates)(state, []);
41
+ expect(result).toEqual(state);
42
+ });
43
+ });
44
+ describe("when firmwareUpdateContext is null", () => {
45
+ it("should return the original state unchanged", () => {
46
+ const state = createMockState("available-firmware");
47
+ const result = (0, filterIgnoredFirmwareUpdates_1.filterIgnoredFirmwareUpdates)(state, ["2.1.0"]);
48
+ expect(result).toEqual(state);
49
+ });
50
+ });
51
+ describe("when firmwareUpdateContext.final.name is undefined", () => {
52
+ it("should return the original state unchanged", () => {
53
+ const state = createMockState("available-firmware", "2.1.0");
54
+ state.firmwareUpdateContext.final.name = undefined;
55
+ const result = (0, filterIgnoredFirmwareUpdates_1.filterIgnoredFirmwareUpdates)(state, ["2.1.0"]);
56
+ expect(result).toEqual(state);
57
+ });
58
+ });
59
+ describe("when firmware version is not in ignored list", () => {
60
+ it("should return the original state unchanged", () => {
61
+ const state = createMockState("available-firmware", "2.1.0");
62
+ const result = (0, filterIgnoredFirmwareUpdates_1.filterIgnoredFirmwareUpdates)(state, ["2.0.0", "2.2.0"]);
63
+ expect(result).toEqual(state);
64
+ });
65
+ });
66
+ describe("when firmware version is in ignored list", () => {
67
+ it("should filter out the firmware and change status to 'no-available-firmware'", () => {
68
+ const state = createMockState("available-firmware", "2.1.0");
69
+ const result = (0, filterIgnoredFirmwareUpdates_1.filterIgnoredFirmwareUpdates)(state, ["2.1.0", "2.2.0"]);
70
+ expect(result).toEqual({
71
+ ...state,
72
+ firmwareUpdateContext: null,
73
+ status: "no-available-firmware",
74
+ });
75
+ });
76
+ it("should filter out the firmware when it's the only ignored version", () => {
77
+ const state = createMockState("available-firmware", "2.1.0");
78
+ const result = (0, filterIgnoredFirmwareUpdates_1.filterIgnoredFirmwareUpdates)(state, ["2.1.0"]);
79
+ expect(result).toEqual({
80
+ ...state,
81
+ firmwareUpdateContext: null,
82
+ status: "no-available-firmware",
83
+ });
84
+ });
85
+ });
86
+ describe("edge cases", () => {
87
+ it("should handle case-sensitive firmware version matching", () => {
88
+ const state = createMockState("available-firmware", "2.1.0");
89
+ const result = (0, filterIgnoredFirmwareUpdates_1.filterIgnoredFirmwareUpdates)(state, ["2.1.0", "2.1.0-rc1"]);
90
+ expect(result).toEqual({
91
+ ...state,
92
+ firmwareUpdateContext: null,
93
+ status: "no-available-firmware",
94
+ });
95
+ });
96
+ it("should not filter when firmware version is similar but not exact match", () => {
97
+ const state = createMockState("available-firmware", "2.1.0");
98
+ const result = (0, filterIgnoredFirmwareUpdates_1.filterIgnoredFirmwareUpdates)(state, ["2.1.0-rc1", "2.1.1"]);
99
+ expect(result).toEqual(state);
100
+ });
101
+ it("should preserve all other state properties when filtering", () => {
102
+ const state = createMockState("available-firmware", "2.1.0");
103
+ state.lockedDevice = true;
104
+ state.error = { type: "SharedError", message: "Test", name: "TestError", retrying: false };
105
+ const result = (0, filterIgnoredFirmwareUpdates_1.filterIgnoredFirmwareUpdates)(state, ["2.1.0"]);
106
+ expect(result).toEqual({
107
+ ...state,
108
+ firmwareUpdateContext: null,
109
+ status: "no-available-firmware",
110
+ });
111
+ });
112
+ });
113
+ });
114
+ //# sourceMappingURL=filterIgnoredFirmwareUpdates.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterIgnoredFirmwareUpdates.test.js","sourceRoot":"","sources":["../../../../src/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { IgnoredOSUpdates } from "@ledgerhq/types-live";
2
+ import { GetLatestAvailableFirmwareActionState } from "../actions/getLatestAvailableFirmware";
3
+ /**
4
+ * Filters out ignored firmware updates from the action state
5
+ *
6
+ * @param newValue The current action state
7
+ * @param ignoredOSUpdates Array of firmware versions to ignore
8
+ * @returns The filtered action state
9
+ */
10
+ export declare const filterIgnoredFirmwareUpdates: (newValue: GetLatestAvailableFirmwareActionState, ignoredOSUpdates?: IgnoredOSUpdates) => GetLatestAvailableFirmwareActionState;
11
+ //# sourceMappingURL=filterIgnoredFirmwareUpdates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterIgnoredFirmwareUpdates.d.ts","sourceRoot":"","sources":["../../../src/deviceSDK/hooks/filterIgnoredFirmwareUpdates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,qCAAqC,EAAE,MAAM,uCAAuC,CAAC;AAE9F;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,aAC7B,qCAAqC,qBAC5B,gBAAgB,KAClC,qCAaF,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.filterIgnoredFirmwareUpdates = void 0;
4
+ /**
5
+ * Filters out ignored firmware updates from the action state
6
+ *
7
+ * @param newValue The current action state
8
+ * @param ignoredOSUpdates Array of firmware versions to ignore
9
+ * @returns The filtered action state
10
+ */
11
+ const filterIgnoredFirmwareUpdates = (newValue, ignoredOSUpdates) => {
12
+ // There is an available firmware update
13
+ if (newValue.status === "available-firmware" && newValue.firmwareUpdateContext?.final.name) {
14
+ // Filter out the ignored firmware versions
15
+ if (ignoredOSUpdates && ignoredOSUpdates.includes(newValue.firmwareUpdateContext?.final.name)) {
16
+ return {
17
+ ...newValue,
18
+ firmwareUpdateContext: null,
19
+ status: "no-available-firmware",
20
+ };
21
+ }
22
+ }
23
+ return newValue;
24
+ };
25
+ exports.filterIgnoredFirmwareUpdates = filterIgnoredFirmwareUpdates;
26
+ //# sourceMappingURL=filterIgnoredFirmwareUpdates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterIgnoredFirmwareUpdates.js","sourceRoot":"","sources":["../../../src/deviceSDK/hooks/filterIgnoredFirmwareUpdates.ts"],"names":[],"mappings":";;;AAGA;;;;;;GAMG;AACI,MAAM,4BAA4B,GAAG,CAC1C,QAA+C,EAC/C,gBAAmC,EACI,EAAE;IACzC,wCAAwC;IACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,oBAAoB,IAAI,QAAQ,CAAC,qBAAqB,EAAE,KAAK,CAAC,IAAI,EAAE;QAC1F,2CAA2C;QAC3C,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;YAC7F,OAAO;gBACL,GAAG,QAAQ;gBACX,qBAAqB,EAAE,IAAI;gBAC3B,MAAM,EAAE,uBAAuB;aAChC,CAAC;SACH;KACF;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAhBW,QAAA,4BAA4B,gCAgBvC"}
@@ -0,0 +1,12 @@
1
+ import type { Feature_OnboardingIgnoredOSUpdates, Platform, IgnoredOSUpdates } from "@ledgerhq/types-live";
2
+ import type { DeviceModelId } from "@ledgerhq/types-devices";
3
+ /**
4
+ * Extracts the ignored OS updates for a specific device model and platform from the configuration
5
+ *
6
+ * @param ignoredOSUpdatesConfig The configuration object containing ignored OS updates per platform and device model
7
+ * @param deviceModelId The device model identifier
8
+ * @param platform The platform to get updates for
9
+ * @returns Array of firmware versions that should be ignored for the given device model and platform
10
+ */
11
+ export declare const getIgnoredOSUpdatesForDeviceModelAndPlatform: (ignoredOSUpdatesConfig: Feature_OnboardingIgnoredOSUpdates["params"] | undefined, deviceModelId: DeviceModelId, platform: Platform) => IgnoredOSUpdates;
12
+ //# sourceMappingURL=getIgnoredOSUpdatesForDeviceModelAndPlatform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getIgnoredOSUpdatesForDeviceModelAndPlatform.d.ts","sourceRoot":"","sources":["../../../src/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kCAAkC,EAClC,QAAQ,EACR,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;GAOG;AACH,eAAO,MAAM,4CAA4C,2BAC/B,kCAAkC,CAAC,QAAQ,CAAC,GAAG,SAAS,iBACjE,aAAa,YAClB,QAAQ,qBASnB,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getIgnoredOSUpdatesForDeviceModelAndPlatform = void 0;
4
+ /**
5
+ * Extracts the ignored OS updates for a specific device model and platform from the configuration
6
+ *
7
+ * @param ignoredOSUpdatesConfig The configuration object containing ignored OS updates per platform and device model
8
+ * @param deviceModelId The device model identifier
9
+ * @param platform The platform to get updates for
10
+ * @returns Array of firmware versions that should be ignored for the given device model and platform
11
+ */
12
+ const getIgnoredOSUpdatesForDeviceModelAndPlatform = (ignoredOSUpdatesConfig, deviceModelId, platform) => {
13
+ // No ignored OS updates configuration
14
+ if (!ignoredOSUpdatesConfig)
15
+ return [];
16
+ // No configuration for the specified platform
17
+ const configForPlatform = ignoredOSUpdatesConfig[platform];
18
+ if (!configForPlatform)
19
+ return [];
20
+ // Return the ignored OS updates for the specified device model, empty array if not configured for that model
21
+ return configForPlatform[deviceModelId] ?? [];
22
+ };
23
+ exports.getIgnoredOSUpdatesForDeviceModelAndPlatform = getIgnoredOSUpdatesForDeviceModelAndPlatform;
24
+ //# sourceMappingURL=getIgnoredOSUpdatesForDeviceModelAndPlatform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getIgnoredOSUpdatesForDeviceModelAndPlatform.js","sourceRoot":"","sources":["../../../src/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.ts"],"names":[],"mappings":";;;AAOA;;;;;;;GAOG;AACI,MAAM,4CAA4C,GAAG,CAC1D,sBAAgF,EAChF,aAA4B,EAC5B,QAAkB,EACA,EAAE;IACpB,sCAAsC;IACtC,IAAI,CAAC,sBAAsB;QAAE,OAAO,EAAE,CAAC;IACvC,8CAA8C;IAC9C,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAI,CAAC,iBAAiB;QAAE,OAAO,EAAE,CAAC;IAClC,6GAA6G;IAC7G,OAAO,iBAAiB,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC,CAAC;AAZW,QAAA,4CAA4C,gDAYvD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getIgnoredOSUpdatesForDeviceModelAndPlatform.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getIgnoredOSUpdatesForDeviceModelAndPlatform.test.d.ts","sourceRoot":"","sources":["../../../src/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const types_devices_1 = require("@ledgerhq/types-devices");
4
+ const getIgnoredOSUpdatesForDeviceModelAndPlatform_1 = require("./getIgnoredOSUpdatesForDeviceModelAndPlatform");
5
+ describe("getIgnoredOSUpdatesForDeviceModelAndPlatform", () => {
6
+ const mockConfig = {
7
+ ios: {
8
+ [types_devices_1.DeviceModelId.nanoS]: ["1.6.0", "1.6.1"],
9
+ [types_devices_1.DeviceModelId.nanoX]: ["2.0.0"],
10
+ [types_devices_1.DeviceModelId.nanoSP]: ["1.0.0", "1.0.1", "1.0.2"],
11
+ },
12
+ android: {
13
+ [types_devices_1.DeviceModelId.nanoS]: ["1.5.0"],
14
+ [types_devices_1.DeviceModelId.nanoX]: ["2.1.0", "2.1.1"],
15
+ },
16
+ macos: {
17
+ [types_devices_1.DeviceModelId.nanoX]: ["2.2.0"],
18
+ },
19
+ windows: {
20
+ [types_devices_1.DeviceModelId.stax]: ["3.0.0"],
21
+ },
22
+ linux: {
23
+ [types_devices_1.DeviceModelId.europa]: ["4.0.0", "4.0.1"],
24
+ },
25
+ };
26
+ describe("when config is undefined", () => {
27
+ it("should return empty array", () => {
28
+ const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(undefined, types_devices_1.DeviceModelId.nanoS, "ios");
29
+ expect(result).toEqual([]);
30
+ });
31
+ });
32
+ describe("when config is null", () => {
33
+ it("should return empty array", () => {
34
+ const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(null, types_devices_1.DeviceModelId.nanoS, "ios");
35
+ expect(result).toEqual([]);
36
+ });
37
+ });
38
+ describe("when platform does not exist in config", () => {
39
+ it("should return empty array", () => {
40
+ const configWithoutPlatform = {
41
+ ios: { [types_devices_1.DeviceModelId.nanoS]: ["1.6.0"] },
42
+ };
43
+ const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(configWithoutPlatform, types_devices_1.DeviceModelId.nanoS, "android");
44
+ expect(result).toEqual([]);
45
+ });
46
+ });
47
+ describe("when device model does not exist for platform", () => {
48
+ it("should return empty array", () => {
49
+ const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(mockConfig, types_devices_1.DeviceModelId.stax, "ios");
50
+ expect(result).toEqual([]);
51
+ });
52
+ });
53
+ describe("when device model exists but has no ignored updates", () => {
54
+ it("should return empty array", () => {
55
+ const configWithEmptyArray = {
56
+ ios: {
57
+ [types_devices_1.DeviceModelId.nanoS]: [],
58
+ },
59
+ };
60
+ const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(configWithEmptyArray, types_devices_1.DeviceModelId.nanoS, "ios");
61
+ expect(result).toEqual([]);
62
+ });
63
+ });
64
+ describe("when device model exists and has ignored updates", () => {
65
+ it("should return the ignored updates for iOS", () => {
66
+ const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(mockConfig, types_devices_1.DeviceModelId.nanoS, "ios");
67
+ expect(result).toEqual(["1.6.0", "1.6.1"]);
68
+ });
69
+ it("should return the ignored updates for Android", () => {
70
+ const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(mockConfig, types_devices_1.DeviceModelId.nanoX, "android");
71
+ expect(result).toEqual(["2.1.0", "2.1.1"]);
72
+ });
73
+ it("should return multiple ignored updates", () => {
74
+ const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(mockConfig, types_devices_1.DeviceModelId.nanoSP, "ios");
75
+ expect(result).toEqual(["1.0.0", "1.0.1", "1.0.2"]);
76
+ });
77
+ it("should return ignored updates for macOS", () => {
78
+ const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(mockConfig, types_devices_1.DeviceModelId.nanoX, "macos");
79
+ expect(result).toEqual(["2.2.0"]);
80
+ });
81
+ it("should return ignored updates for Windows", () => {
82
+ const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(mockConfig, types_devices_1.DeviceModelId.stax, "windows");
83
+ expect(result).toEqual(["3.0.0"]);
84
+ });
85
+ it("should return ignored updates for Linux", () => {
86
+ const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(mockConfig, types_devices_1.DeviceModelId.europa, "linux");
87
+ expect(result).toEqual(["4.0.0", "4.0.1"]);
88
+ });
89
+ });
90
+ describe("edge cases", () => {
91
+ it("should handle empty config object", () => {
92
+ const emptyConfig = {};
93
+ const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(emptyConfig, types_devices_1.DeviceModelId.nanoS, "ios");
94
+ expect(result).toEqual([]);
95
+ });
96
+ it("should handle config with empty platform objects", () => {
97
+ const configWithEmptyPlatforms = {
98
+ ios: {},
99
+ android: {},
100
+ macos: {},
101
+ windows: {},
102
+ linux: {},
103
+ };
104
+ const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(configWithEmptyPlatforms, types_devices_1.DeviceModelId.nanoS, "ios");
105
+ expect(result).toEqual([]);
106
+ });
107
+ it("should handle undefined device model entries", () => {
108
+ const configWithUndefined = {
109
+ ios: {
110
+ [types_devices_1.DeviceModelId.nanoS]: undefined,
111
+ },
112
+ };
113
+ const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(configWithUndefined, types_devices_1.DeviceModelId.nanoS, "ios");
114
+ expect(result).toEqual([]);
115
+ });
116
+ });
117
+ });
118
+ //# sourceMappingURL=getIgnoredOSUpdatesForDeviceModelAndPlatform.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getIgnoredOSUpdatesForDeviceModelAndPlatform.test.js","sourceRoot":"","sources":["../../../src/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import { GetLatestAvailableFirmwareActionState, getLatestAvailableFirmwareAction as defaultGetLatestAvailableFirmwareAction } from "../actions/getLatestAvailableFirmware";
2
+ import type { IgnoredOSUpdates } from "@ledgerhq/types-live";
2
3
  export type UseGetLatestAvailableFirmwareArgs = {
3
4
  getLatestAvailableFirmwareAction?: typeof defaultGetLatestAvailableFirmwareAction;
4
5
  deviceId: string;
5
6
  isHookEnabled?: boolean;
7
+ ignoredOSUpdates?: IgnoredOSUpdates;
6
8
  };
7
9
  /**
8
10
  * Hook to get the latest available firmware that the device could update to
@@ -18,7 +20,7 @@ export type UseGetLatestAvailableFirmwareArgs = {
18
20
  * `{ type`: "SharedError", retrying: true, ... }`
19
21
  * - `...sharedActionState`
20
22
  */
21
- export declare const useGetLatestAvailableFirmware: ({ getLatestAvailableFirmwareAction, deviceId, isHookEnabled, }: UseGetLatestAvailableFirmwareArgs) => {
23
+ export declare const useGetLatestAvailableFirmware: ({ getLatestAvailableFirmwareAction, deviceId, isHookEnabled, ignoredOSUpdates, }: UseGetLatestAvailableFirmwareArgs) => {
22
24
  state: GetLatestAvailableFirmwareActionState;
23
25
  };
24
26
  //# sourceMappingURL=useGetLatestAvailableFirmware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGetLatestAvailableFirmware.d.ts","sourceRoot":"","sources":["../../../src/deviceSDK/hooks/useGetLatestAvailableFirmware.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qCAAqC,EACrC,gCAAgC,IAAI,uCAAuC,EAE5E,MAAM,uCAAuC,CAAC;AAE/C,MAAM,MAAM,iCAAiC,GAAG;IAC9C,gCAAgC,CAAC,EAAE,OAAO,uCAAuC,CAAC;IAClF,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,6BAA6B,mEAIvC,iCAAiC;WAC3B,qCAAqC;CA6B7C,CAAC"}
1
+ {"version":3,"file":"useGetLatestAvailableFirmware.d.ts","sourceRoot":"","sources":["../../../src/deviceSDK/hooks/useGetLatestAvailableFirmware.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qCAAqC,EACrC,gCAAgC,IAAI,uCAAuC,EAE5E,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,MAAM,iCAAiC,GAAG;IAC9C,gCAAgC,CAAC,EAAE,OAAO,uCAAuC,CAAC;IAClF,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,6BAA6B,qFAKvC,iCAAiC;WAC3B,qCAAqC;CAgC7C,CAAC"}
@@ -4,6 +4,7 @@ exports.useGetLatestAvailableFirmware = void 0;
4
4
  const react_1 = require("react");
5
5
  const logs_1 = require("@ledgerhq/logs");
6
6
  const getLatestAvailableFirmware_1 = require("../actions/getLatestAvailableFirmware");
7
+ const filterIgnoredFirmwareUpdates_1 = require("./filterIgnoredFirmwareUpdates");
7
8
  /**
8
9
  * Hook to get the latest available firmware that the device could update to
9
10
  *
@@ -18,7 +19,7 @@ const getLatestAvailableFirmware_1 = require("../actions/getLatestAvailableFirmw
18
19
  * `{ type`: "SharedError", retrying: true, ... }`
19
20
  * - `...sharedActionState`
20
21
  */
21
- const useGetLatestAvailableFirmware = ({ getLatestAvailableFirmwareAction = getLatestAvailableFirmware_1.getLatestAvailableFirmwareAction, deviceId, isHookEnabled = true, }) => {
22
+ const useGetLatestAvailableFirmware = ({ getLatestAvailableFirmwareAction = getLatestAvailableFirmware_1.getLatestAvailableFirmwareAction, deviceId, isHookEnabled = true, ignoredOSUpdates, }) => {
22
23
  const [state, setState] = (0, react_1.useState)(getLatestAvailableFirmware_1.initialState);
23
24
  (0, react_1.useEffect)(() => {
24
25
  if (!isHookEnabled) {
@@ -30,7 +31,10 @@ const useGetLatestAvailableFirmware = ({ getLatestAvailableFirmwareAction = getL
30
31
  const subscription = getLatestAvailableFirmwareAction({
31
32
  deviceId,
32
33
  }).subscribe({
33
- next: setState,
34
+ next: newValue => {
35
+ const filteredValue = (0, filterIgnoredFirmwareUpdates_1.filterIgnoredFirmwareUpdates)(newValue, ignoredOSUpdates);
36
+ setState(filteredValue);
37
+ },
34
38
  error: (error) => {
35
39
  // Error from an action should be handled like an event and should not reach here
36
40
  (0, logs_1.log)("useGetLatestAvailableFirmware", "Unknown error", error);
@@ -39,7 +43,7 @@ const useGetLatestAvailableFirmware = ({ getLatestAvailableFirmwareAction = getL
39
43
  return () => {
40
44
  subscription.unsubscribe();
41
45
  };
42
- }, [deviceId, getLatestAvailableFirmwareAction, isHookEnabled]);
46
+ }, [deviceId, getLatestAvailableFirmwareAction, ignoredOSUpdates, isHookEnabled]);
43
47
  return { state };
44
48
  };
45
49
  exports.useGetLatestAvailableFirmware = useGetLatestAvailableFirmware;
@@ -1 +1 @@
1
- {"version":3,"file":"useGetLatestAvailableFirmware.js","sourceRoot":"","sources":["../../../src/deviceSDK/hooks/useGetLatestAvailableFirmware.ts"],"names":[],"mappings":";;;AAAA,iCAA4C;AAC5C,yCAAqC;AACrC,sFAI+C;AAQ/C;;;;;;;;;;;;;GAaG;AACI,MAAM,6BAA6B,GAAG,CAAC,EAC5C,gCAAgC,GAAG,6DAAuC,EAC1E,QAAQ,EACR,aAAa,GAAG,IAAI,GACc,EAElC,EAAE;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAwC,yCAAY,CAAC,CAAC;IAExF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO;SACR;QAED,oDAAoD;QACpD,2EAA2E;QAC3E,QAAQ,CAAC,yCAAY,CAAC,CAAC;QAEvB,MAAM,YAAY,GAAG,gCAAgC,CAAC;YACpD,QAAQ;SACT,CAAC,CAAC,SAAS,CAAC;YACX,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,CAAC,KAAc,EAAE,EAAE;gBACxB,iFAAiF;gBACjF,IAAA,UAAG,EAAC,+BAA+B,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;YAC/D,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,gCAAgC,EAAE,aAAa,CAAC,CAAC,CAAC;IAEhE,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC;AAlCW,QAAA,6BAA6B,iCAkCxC"}
1
+ {"version":3,"file":"useGetLatestAvailableFirmware.js","sourceRoot":"","sources":["../../../src/deviceSDK/hooks/useGetLatestAvailableFirmware.ts"],"names":[],"mappings":";;;AAAA,iCAA4C;AAC5C,yCAAqC;AACrC,sFAI+C;AAC/C,iFAA8E;AAU9E;;;;;;;;;;;;;GAaG;AACI,MAAM,6BAA6B,GAAG,CAAC,EAC5C,gCAAgC,GAAG,6DAAuC,EAC1E,QAAQ,EACR,aAAa,GAAG,IAAI,EACpB,gBAAgB,GACkB,EAElC,EAAE;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAwC,yCAAY,CAAC,CAAC;IAExF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO;SACR;QAED,oDAAoD;QACpD,2EAA2E;QAC3E,QAAQ,CAAC,yCAAY,CAAC,CAAC;QAEvB,MAAM,YAAY,GAAG,gCAAgC,CAAC;YACpD,QAAQ;SACT,CAAC,CAAC,SAAS,CAAC;YACX,IAAI,EAAE,QAAQ,CAAC,EAAE;gBACf,MAAM,aAAa,GAAG,IAAA,2DAA4B,EAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;gBAC/E,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC1B,CAAC;YACD,KAAK,EAAE,CAAC,KAAc,EAAE,EAAE;gBACxB,iFAAiF;gBACjF,IAAA,UAAG,EAAC,+BAA+B,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;YAC/D,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,gCAAgC,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC;IAElF,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC;AAtCW,QAAA,6BAA6B,iCAsCxC"}
@@ -157,6 +157,7 @@ export declare const getAllFeatureFlags: (appLanguage?: string) => Partial<{
157
157
  lldOfacGeoBlocking: Feature;
158
158
  llmDatadog: Feature;
159
159
  llmSentry: Feature;
160
+ onboardingIgnoredOsUpdates: Feature;
160
161
  }>;
161
162
  export declare const formatFlagsData: (data: Partial<{
162
163
  discover: Feature;
@@ -315,6 +316,7 @@ export declare const formatFlagsData: (data: Partial<{
315
316
  lldOfacGeoBlocking: Feature;
316
317
  llmDatadog: Feature;
317
318
  llmSentry: Feature;
319
+ onboardingIgnoredOsUpdates: Feature;
318
320
  }>) => string;
319
321
  export declare const formatEnvData: (data: {
320
322
  LEDGER_COUNTERVALUES_API: unknown;
@@ -439,7 +441,6 @@ export declare const formatEnvData: (data: {
439
441
  SIMPLE_HASH_API_BASE: unknown;
440
442
  SKIP_ONBOARDING: unknown;
441
443
  SPECULOS_API_PORT: unknown;
442
- SPECULOS_DEVICE: unknown;
443
444
  SPECULOS_PID_OFFSET: unknown;
444
445
  SPECULOS_USE_WEBSOCKET: unknown;
445
446
  SWAP_API_BASE: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/e2e/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAG1D,eAAO,MAAM,kBAAkB,iBACf,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASrB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6B3B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAMzB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/e2e/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAG1D,eAAO,MAAM,kBAAkB,iBACf,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASrB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6B3B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAMzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"speculos.d.ts","sourceRoot":"","sources":["../../src/e2e/speculos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"speculos.d.ts","sourceRoot":"","sources":["../../src/e2e/speculos.ts"],"names":[],"mappings":"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"}
@@ -356,42 +356,12 @@ async function stopSpeculos(deviceId) {
356
356
  }
357
357
  }
358
358
  exports.stopSpeculos = stopSpeculos;
359
- function getSpeculosAddress() {
360
- const speculosAddress = process.env.SPECULOS_ADDRESS;
361
- return speculosAddress || "http://127.0.0.1";
362
- }
363
- async function retryAxiosRequest(requestFn, maxRetries = 5, baseDelay = 1000, retryableStatusCodes = [500, 502, 503, 504]) {
364
- let lastError;
365
- for (let attempt = 0; attempt <= maxRetries; attempt++) {
366
- try {
367
- return await requestFn();
368
- }
369
- catch (error) {
370
- lastError = error;
371
- const isRetryable = axios_1.default.isAxiosError(error) &&
372
- error.response &&
373
- retryableStatusCodes.includes(error.response.status);
374
- const isNetworkError = axios_1.default.isAxiosError(error) && !error.response;
375
- if ((isRetryable || isNetworkError) && attempt < maxRetries) {
376
- const delay = baseDelay * (attempt + 1);
377
- console.warn(`Axios request failed (attempt ${attempt + 1}/${maxRetries + 1}), retrying in ${delay}ms...`, {
378
- status: axios_1.default.isAxiosError(error) ? error.response?.status : "network error",
379
- message: error.message,
380
- });
381
- await new Promise(resolve => setTimeout(resolve, delay));
382
- continue;
383
- }
384
- throw lastError;
385
- }
386
- }
387
- throw lastError;
388
- }
389
359
  async function waitFor(text, maxAttempts = 15) {
390
360
  const port = (0, live_env_1.getEnv)("SPECULOS_API_PORT");
391
- const address = getSpeculosAddress();
361
+ const address = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
392
362
  const url = `${address}:${port}/events?stream=false&currentscreenonly=true`;
393
363
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
394
- const { data } = await retryAxiosRequest(() => axios_1.default.get(url));
364
+ const { data } = await axios_1.default.get(url);
395
365
  const texts = data.events.map(event => event.text);
396
366
  if (texts?.some(t => t?.toLowerCase().includes(text.toLowerCase()))) {
397
367
  return texts;
@@ -403,10 +373,10 @@ async function waitFor(text, maxAttempts = 15) {
403
373
  exports.waitFor = waitFor;
404
374
  async function pressBoth() {
405
375
  const speculosApiPort = (0, live_env_1.getEnv)("SPECULOS_API_PORT");
406
- const speculosAddress = getSpeculosAddress();
407
- await retryAxiosRequest(() => axios_1.default.post(`${speculosAddress}:${speculosApiPort}/button/both`, {
376
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
377
+ await axios_1.default.post(`${speculosAddress}:${speculosApiPort}/button/both`, {
408
378
  action: "press-and-release",
409
- }));
379
+ });
410
380
  }
411
381
  exports.pressBoth = pressBoth;
412
382
  async function pressUntilTextFound(targetText, maxAttempts = 15) {
@@ -423,21 +393,21 @@ async function pressUntilTextFound(targetText, maxAttempts = 15) {
423
393
  }
424
394
  exports.pressUntilTextFound = pressUntilTextFound;
425
395
  async function fetchCurrentScreenTexts(speculosApiPort) {
426
- const speculosAddress = getSpeculosAddress();
427
- const response = await retryAxiosRequest(() => axios_1.default.get(`${speculosAddress}:${speculosApiPort}/events?stream=false&currentscreenonly=true`));
396
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
397
+ const response = await axios_1.default.get(`${speculosAddress}:${speculosApiPort}/events?stream=false&currentscreenonly=true`);
428
398
  return response.data.events.map(event => event.text).join("");
429
399
  }
430
400
  async function fetchAllEvents(speculosApiPort) {
431
- const speculosAddress = getSpeculosAddress();
432
- const response = await retryAxiosRequest(() => axios_1.default.get(`${speculosAddress}:${speculosApiPort}/events?stream=false&currentscreenonly=false`));
401
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
402
+ const response = await axios_1.default.get(`${speculosAddress}:${speculosApiPort}/events?stream=false&currentscreenonly=false`);
433
403
  return response.data.events.map(event => event.text);
434
404
  }
435
405
  async function pressRightButton() {
436
406
  const speculosApiPort = (0, live_env_1.getEnv)("SPECULOS_API_PORT");
437
- const speculosAddress = getSpeculosAddress();
438
- await retryAxiosRequest(() => axios_1.default.post(`${speculosAddress}:${speculosApiPort}/button/right`, {
407
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
408
+ await axios_1.default.post(`${speculosAddress}:${speculosApiPort}/button/right`, {
439
409
  action: "press-and-release",
440
- }));
410
+ });
441
411
  }
442
412
  exports.pressRightButton = pressRightButton;
443
413
  function containsSubstringInEvent(targetString, events) {
@@ -452,12 +422,12 @@ function containsSubstringInEvent(targetString, events) {
452
422
  }
453
423
  exports.containsSubstringInEvent = containsSubstringInEvent;
454
424
  async function takeScreenshot(port) {
455
- const speculosAddress = getSpeculosAddress();
425
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
456
426
  const speculosApiPort = port ?? (0, live_env_1.getEnv)("SPECULOS_API_PORT");
457
427
  try {
458
- const response = await retryAxiosRequest(() => axios_1.default.get(`${speculosAddress}:${speculosApiPort}/screenshot`, {
428
+ const response = await axios_1.default.get(`${speculosAddress}:${speculosApiPort}/screenshot`, {
459
429
  responseType: "arraybuffer",
460
- }));
430
+ });
461
431
  return response.data;
462
432
  }
463
433
  catch (error) {