@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.
- package/lib/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.d.ts +2 -0
- package/lib/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.d.ts.map +1 -0
- package/lib/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.js +114 -0
- package/lib/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.js.map +1 -0
- package/lib/deviceSDK/hooks/filterIgnoredFirmwareUpdates.d.ts +11 -0
- package/lib/deviceSDK/hooks/filterIgnoredFirmwareUpdates.d.ts.map +1 -0
- package/lib/deviceSDK/hooks/filterIgnoredFirmwareUpdates.js +26 -0
- package/lib/deviceSDK/hooks/filterIgnoredFirmwareUpdates.js.map +1 -0
- package/lib/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.d.ts +12 -0
- package/lib/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.d.ts.map +1 -0
- package/lib/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.js +24 -0
- package/lib/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.js.map +1 -0
- package/lib/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.d.ts +2 -0
- package/lib/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.d.ts.map +1 -0
- package/lib/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.js +118 -0
- package/lib/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.js.map +1 -0
- package/lib/deviceSDK/hooks/useGetLatestAvailableFirmware.d.ts +3 -1
- package/lib/deviceSDK/hooks/useGetLatestAvailableFirmware.d.ts.map +1 -1
- package/lib/deviceSDK/hooks/useGetLatestAvailableFirmware.js +7 -3
- package/lib/deviceSDK/hooks/useGetLatestAvailableFirmware.js.map +1 -1
- package/lib/e2e/index.d.ts +2 -1
- package/lib/e2e/index.d.ts.map +1 -1
- package/lib/e2e/speculos.d.ts.map +1 -1
- package/lib/e2e/speculos.js +15 -45
- package/lib/e2e/speculos.js.map +1 -1
- package/lib/e2e/speculosCI.d.ts.map +1 -1
- package/lib/e2e/speculosCI.js +4 -22
- package/lib/e2e/speculosCI.js.map +1 -1
- package/lib/env.react.d.ts +1 -1
- package/lib/env.react.d.ts.map +1 -1
- package/lib/families/solana/bridge/mock-data.d.ts.map +1 -1
- package/lib/families/solana/bridge/mock-data.js +316 -46
- package/lib/families/solana/bridge/mock-data.js.map +1 -1
- package/lib/families/solana/bridge/mock.js +2 -2
- package/lib/families/solana/bridge/mock.js.map +1 -1
- package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
- package/lib/featureFlags/defaultFeatures.js +4 -0
- package/lib/featureFlags/defaultFeatures.js.map +1 -1
- package/lib/featureFlags/useFeature.d.ts +1 -1
- package/lib/featureFlags/useFeature.d.ts.map +1 -1
- package/lib-es/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.d.ts +2 -0
- package/lib-es/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.d.ts.map +1 -0
- package/lib-es/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.js +112 -0
- package/lib-es/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.js.map +1 -0
- package/lib-es/deviceSDK/hooks/filterIgnoredFirmwareUpdates.d.ts +11 -0
- package/lib-es/deviceSDK/hooks/filterIgnoredFirmwareUpdates.d.ts.map +1 -0
- package/lib-es/deviceSDK/hooks/filterIgnoredFirmwareUpdates.js +22 -0
- package/lib-es/deviceSDK/hooks/filterIgnoredFirmwareUpdates.js.map +1 -0
- package/lib-es/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.d.ts +12 -0
- package/lib-es/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.d.ts.map +1 -0
- package/lib-es/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.js +20 -0
- package/lib-es/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.js.map +1 -0
- package/lib-es/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.d.ts +2 -0
- package/lib-es/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.d.ts.map +1 -0
- package/lib-es/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.js +116 -0
- package/lib-es/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.js.map +1 -0
- package/lib-es/deviceSDK/hooks/useGetLatestAvailableFirmware.d.ts +3 -1
- package/lib-es/deviceSDK/hooks/useGetLatestAvailableFirmware.d.ts.map +1 -1
- package/lib-es/deviceSDK/hooks/useGetLatestAvailableFirmware.js +7 -3
- package/lib-es/deviceSDK/hooks/useGetLatestAvailableFirmware.js.map +1 -1
- package/lib-es/e2e/index.d.ts +2 -1
- package/lib-es/e2e/index.d.ts.map +1 -1
- package/lib-es/e2e/speculos.d.ts.map +1 -1
- package/lib-es/e2e/speculos.js +15 -45
- package/lib-es/e2e/speculos.js.map +1 -1
- package/lib-es/e2e/speculosCI.d.ts.map +1 -1
- package/lib-es/e2e/speculosCI.js +4 -22
- package/lib-es/e2e/speculosCI.js.map +1 -1
- package/lib-es/env.react.d.ts +1 -1
- package/lib-es/env.react.d.ts.map +1 -1
- package/lib-es/families/solana/bridge/mock-data.d.ts.map +1 -1
- package/lib-es/families/solana/bridge/mock-data.js +316 -46
- package/lib-es/families/solana/bridge/mock-data.js.map +1 -1
- package/lib-es/families/solana/bridge/mock.js +3 -3
- package/lib-es/families/solana/bridge/mock.js.map +1 -1
- package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
- package/lib-es/featureFlags/defaultFeatures.js +4 -0
- package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
- package/lib-es/featureFlags/useFeature.d.ts +1 -1
- package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
- package/package.json +47 -47
- package/src/deviceSDK/hooks/__tests__/filterIgnoredFirmwareUpdates.test.ts +132 -0
- package/src/deviceSDK/hooks/filterIgnoredFirmwareUpdates.ts +27 -0
- package/src/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.test.ts +192 -0
- package/src/deviceSDK/hooks/getIgnoredOSUpdatesForDeviceModelAndPlatform.ts +28 -0
- package/src/deviceSDK/hooks/useGetLatestAvailableFirmware.ts +9 -2
- package/src/e2e/speculos.ts +21 -77
- package/src/e2e/speculosCI.ts +10 -32
- package/src/families/solana/bridge/mock-data.ts +316 -52
- package/src/families/solana/bridge/mock.ts +3 -3
- package/src/featureFlags/defaultFeatures.ts +4 -0
- package/lib/modularDrawer/__mocks__/accounts.mock.d.ts +0 -18
- package/lib/modularDrawer/__mocks__/accounts.mock.d.ts.map +0 -1
- package/lib/modularDrawer/__mocks__/accounts.mock.js +0 -48
- package/lib/modularDrawer/__mocks__/accounts.mock.js.map +0 -1
- package/lib/utils/__tests__/composeHooks.test.d.ts +0 -2
- package/lib/utils/__tests__/composeHooks.test.d.ts.map +0 -1
- package/lib/utils/__tests__/composeHooks.test.js +0 -35
- package/lib/utils/__tests__/composeHooks.test.js.map +0 -1
- package/lib/utils/__tests__/getAccountTuplesForCurrency.test.d.ts +0 -2
- package/lib/utils/__tests__/getAccountTuplesForCurrency.test.d.ts.map +0 -1
- package/lib/utils/__tests__/getAccountTuplesForCurrency.test.js +0 -104
- package/lib/utils/__tests__/getAccountTuplesForCurrency.test.js.map +0 -1
- package/lib/utils/composeHooks.d.ts +0 -11
- package/lib/utils/composeHooks.d.ts.map +0 -1
- package/lib/utils/composeHooks.js +0 -25
- package/lib/utils/composeHooks.js.map +0 -1
- package/lib/utils/getAccountTuplesForCurrency.d.ts +0 -8
- package/lib/utils/getAccountTuplesForCurrency.d.ts.map +0 -1
- package/lib/utils/getAccountTuplesForCurrency.js +0 -19
- package/lib/utils/getAccountTuplesForCurrency.js.map +0 -1
- package/lib-es/modularDrawer/__mocks__/accounts.mock.d.ts +0 -18
- package/lib-es/modularDrawer/__mocks__/accounts.mock.d.ts.map +0 -1
- package/lib-es/modularDrawer/__mocks__/accounts.mock.js +0 -42
- package/lib-es/modularDrawer/__mocks__/accounts.mock.js.map +0 -1
- package/lib-es/utils/__tests__/composeHooks.test.d.ts +0 -2
- package/lib-es/utils/__tests__/composeHooks.test.d.ts.map +0 -1
- package/lib-es/utils/__tests__/composeHooks.test.js +0 -33
- package/lib-es/utils/__tests__/composeHooks.test.js.map +0 -1
- package/lib-es/utils/__tests__/getAccountTuplesForCurrency.test.d.ts +0 -2
- package/lib-es/utils/__tests__/getAccountTuplesForCurrency.test.d.ts.map +0 -1
- package/lib-es/utils/__tests__/getAccountTuplesForCurrency.test.js +0 -102
- package/lib-es/utils/__tests__/getAccountTuplesForCurrency.test.js.map +0 -1
- package/lib-es/utils/composeHooks.d.ts +0 -11
- package/lib-es/utils/composeHooks.d.ts.map +0 -1
- package/lib-es/utils/composeHooks.js +0 -21
- package/lib-es/utils/composeHooks.js.map +0 -1
- package/lib-es/utils/getAccountTuplesForCurrency.d.ts +0 -8
- package/lib-es/utils/getAccountTuplesForCurrency.d.ts.map +0 -1
- package/lib-es/utils/getAccountTuplesForCurrency.js +0 -15
- package/lib-es/utils/getAccountTuplesForCurrency.js.map +0 -1
- package/src/modularDrawer/__mocks__/accounts.mock.ts +0 -43
- package/src/utils/__tests__/composeHooks.test.ts +0 -46
- package/src/utils/__tests__/getAccountTuplesForCurrency.test.ts +0 -138
- package/src/utils/composeHooks.ts +0 -26
- package/src/utils/getAccountTuplesForCurrency.ts +0 -34
@@ -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 @@
|
|
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;
|
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:
|
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;
|
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"}
|
package/lib/e2e/index.d.ts
CHANGED
@@ -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;
|
package/lib/e2e/index.d.ts.map
CHANGED
@@ -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
|
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":";;AAEA,OAAO,EAKL,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAoBzC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAKrC,MAAM,MAAM,IAAI,GAAG;IACjB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,QAAQ,EAAE;QACR,KAAK,EAAE,aAAa,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC/D,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,UAAU,EAAE,QAQjE;AAED,wBAAgB,gBAAgB,qEAW/B;AAED,KAAK,KAAK,GAAG;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAwOnB,CAAC;AAEF,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,GACvB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAkErC;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,iBAO9D;
|
1
|
+
{"version":3,"file":"speculos.d.ts","sourceRoot":"","sources":["../../src/e2e/speculos.ts"],"names":[],"mappings":";;AAEA,OAAO,EAKL,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAoBzC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAKrC,MAAM,MAAM,IAAI,GAAG;IACjB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,QAAQ,EAAE;QACR,KAAK,EAAE,aAAa,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC/D,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,UAAU,EAAE,QAQjE;AAED,wBAAgB,gBAAgB,qEAW/B;AAED,KAAK,KAAK,GAAG;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAwOnB,CAAC;AAEF,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,GACvB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAkErC;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,iBAO9D;AAUD,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,SAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAiB/E;AAED,wBAAsB,SAAS,kBAM9B;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,WAAW,GAAE,MAAW,GACvB,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBnB;AAkBD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAMtD;AAED,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAYxF;AAED,wBAAsB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAW/E;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,oBAE9C;AAED,wBAAsB,sBAAsB,kBAa3C;AAED,wBAAsB,kBAAkB,kBASvC;AAED,wBAAsB,kBAAkB,kBAGvC;AAED,wBAAsB,oBAAoB,kBAKzC;AAED,wBAAsB,YAAY,kBAGjC;AAED,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBA4BxF;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,WAAW,iBA2CxD;AAED,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,cAAc,iBAO9D;AAED,wBAAsB,yBAAyB,CAAC,iBAAiB,EAAE,QAAQ,iBAkC1E;AAED,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,iBAK1E;AAED,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,iBAK1E"}
|
package/lib/e2e/speculos.js
CHANGED
@@ -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 =
|
361
|
+
const address = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
|
392
362
|
const url = `${address}:${port}/events?stream=false¤tscreenonly=true`;
|
393
363
|
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
394
|
-
const { data } = await
|
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 =
|
407
|
-
await
|
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 =
|
427
|
-
const response = await
|
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¤tscreenonly=true`);
|
428
398
|
return response.data.events.map(event => event.text).join("");
|
429
399
|
}
|
430
400
|
async function fetchAllEvents(speculosApiPort) {
|
431
|
-
const speculosAddress =
|
432
|
-
const response = await
|
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¤tscreenonly=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 =
|
438
|
-
await
|
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 =
|
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
|
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) {
|