@onekeyfe/hd-core 1.2.0-alpha.121 → 1.2.0-alpha.122
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/__tests__/device-settings.test.ts +16 -29
- package/__tests__/firmware-update/firmware-update-bootloader-poll.test.ts +63 -0
- package/__tests__/get-device-state.test.ts +0 -33
- package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
- package/dist/api/device/DeviceSettings.d.ts.map +1 -1
- package/dist/api/device/DeviceUploadResource.d.ts.map +1 -1
- package/dist/device/Device.d.ts +3 -11
- package/dist/device/Device.d.ts.map +1 -1
- package/dist/index.d.ts +3 -11
- package/dist/index.js +42 -35
- package/package.json +4 -4
- package/src/api/FirmwareUpdateV2.ts +12 -9
- package/src/api/device/DeviceSettings.ts +5 -2
- package/src/api/device/DeviceUploadResource.ts +1 -5
- package/src/device/Device.ts +10 -32
- package/__tests__/device-upload-resource.test.ts +0 -53
|
@@ -77,7 +77,7 @@ describe('DeviceSettings protocol routing', () => {
|
|
|
77
77
|
expect(method.unlockPolicy).toBe('unlock-before-run');
|
|
78
78
|
});
|
|
79
79
|
|
|
80
|
-
it('uses ApplySettings and
|
|
80
|
+
it('uses ApplySettings and commits the confirmed patch for Protocol V1', async () => {
|
|
81
81
|
const { device, typedCall, updateState } = createDevice({ protocol: 'V1' });
|
|
82
82
|
const method = new DeviceSettings({
|
|
83
83
|
id: 1,
|
|
@@ -107,8 +107,13 @@ describe('DeviceSettings protocol routing', () => {
|
|
|
107
107
|
use_ble: true,
|
|
108
108
|
haptic_feedback: undefined,
|
|
109
109
|
});
|
|
110
|
-
expect(
|
|
111
|
-
|
|
110
|
+
expect(updateState).toHaveBeenCalledWith(
|
|
111
|
+
{
|
|
112
|
+
identity: { label: 'Shared Label' },
|
|
113
|
+
settings: { language: 'ja', bleEnabled: true },
|
|
114
|
+
},
|
|
115
|
+
'settings-write'
|
|
116
|
+
);
|
|
112
117
|
});
|
|
113
118
|
|
|
114
119
|
it('normalizes legacy Protocol V1 never values before ApplySettings', async () => {
|
|
@@ -133,33 +138,15 @@ describe('DeviceSettings protocol routing', () => {
|
|
|
133
138
|
auto_shutdown_delay_ms: DEVICE_SETTINGS_NEVER_TIMEOUT_MS,
|
|
134
139
|
})
|
|
135
140
|
);
|
|
136
|
-
expect(
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
const method = new DeviceSettings({
|
|
143
|
-
id: 3,
|
|
144
|
-
payload: {
|
|
145
|
-
method: 'deviceSettings',
|
|
146
|
-
changeBrightness: true,
|
|
141
|
+
expect(updateState).toHaveBeenCalledWith(
|
|
142
|
+
{
|
|
143
|
+
settings: {
|
|
144
|
+
autoLockDelayMs: DEVICE_SETTINGS_NEVER_TIMEOUT_MS,
|
|
145
|
+
autoShutdownDelayMs: DEVICE_SETTINGS_NEVER_TIMEOUT_MS,
|
|
146
|
+
},
|
|
147
147
|
},
|
|
148
|
-
|
|
149
|
-
method.init();
|
|
150
|
-
(method as any).device = device;
|
|
151
|
-
|
|
152
|
-
await expect(method.run()).resolves.toEqual({ message: 'Success' });
|
|
153
|
-
expect(typedCall).toHaveBeenCalledWith(
|
|
154
|
-
'ApplySettings',
|
|
155
|
-
'Success',
|
|
156
|
-
expect.objectContaining({ change_brightness: true })
|
|
157
|
-
);
|
|
158
|
-
expect(getDeviceState).toHaveBeenCalledWith({ refreshSections: ['settings'] });
|
|
159
|
-
expect(typedCall.mock.invocationCallOrder[0]).toBeLessThan(
|
|
160
|
-
getDeviceState.mock.invocationCallOrder[0]
|
|
148
|
+
'settings-write'
|
|
161
149
|
);
|
|
162
|
-
expect(updateState).not.toHaveBeenCalled();
|
|
163
150
|
});
|
|
164
151
|
|
|
165
152
|
it('uses DeviceSettingsSet and reloads Protocol V2 status and settings from the device', async () => {
|
|
@@ -338,7 +325,7 @@ describe('DeviceSettings protocol routing', () => {
|
|
|
338
325
|
'Success',
|
|
339
326
|
expect.objectContaining({ use_passphrase: true })
|
|
340
327
|
);
|
|
341
|
-
expect(getDeviceState).
|
|
328
|
+
expect(getDeviceState).not.toHaveBeenCalled();
|
|
342
329
|
});
|
|
343
330
|
|
|
344
331
|
it('rejects combining a Pro2 device-side toggle with direct settings', async () => {
|
|
@@ -203,6 +203,69 @@ describe.each([
|
|
|
203
203
|
});
|
|
204
204
|
});
|
|
205
205
|
|
|
206
|
+
describe('FirmwareUpdateV2 WebUSB bootloader polling', () => {
|
|
207
|
+
beforeEach(() => {
|
|
208
|
+
jest.useFakeTimers({ doNotFake: ['setImmediate', 'performance'] });
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
afterEach(() => {
|
|
212
|
+
jest.clearAllTimers();
|
|
213
|
+
jest.useRealTimers();
|
|
214
|
+
jest.restoreAllMocks();
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
test('skips interval ticks while a bootloader probe is in flight and resumes afterward', async () => {
|
|
218
|
+
jest.spyOn(DataManager, 'getSettings').mockReturnValue('desktop' as never);
|
|
219
|
+
jest.spyOn(DataManager, 'isBleConnect').mockReturnValue(false);
|
|
220
|
+
jest.spyOn(DataManager, 'isBrowserWebUsb').mockReturnValue(false);
|
|
221
|
+
|
|
222
|
+
const method = new FirmwareUpdateV2({
|
|
223
|
+
id: 1,
|
|
224
|
+
payload: { method: 'firmwareUpdateV2', connectId: WEBUSB_ID },
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
let inFlight = 0;
|
|
228
|
+
let maxInFlight = 0;
|
|
229
|
+
const resolveProbes: Array<(found: boolean) => void> = [];
|
|
230
|
+
const probe = jest.spyOn(method as any, '_checkDeviceInBootloaderMode').mockImplementation(
|
|
231
|
+
() =>
|
|
232
|
+
new Promise<boolean>(resolve => {
|
|
233
|
+
inFlight += 1;
|
|
234
|
+
maxInFlight = Math.max(maxInFlight, inFlight);
|
|
235
|
+
resolveProbes.push(found => {
|
|
236
|
+
inFlight -= 1;
|
|
237
|
+
resolve(found);
|
|
238
|
+
});
|
|
239
|
+
})
|
|
240
|
+
);
|
|
241
|
+
|
|
242
|
+
method.device = {
|
|
243
|
+
getCurrentDeviceType: jest.fn(() => EDeviceType.Classic),
|
|
244
|
+
} as unknown as Device;
|
|
245
|
+
|
|
246
|
+
method.checkDeviceToBootloader(WEBUSB_ID);
|
|
247
|
+
|
|
248
|
+
for (let elapsed = 0; elapsed < 6500; elapsed += 500) {
|
|
249
|
+
jest.advanceTimersByTime(500);
|
|
250
|
+
// eslint-disable-next-line no-await-in-loop
|
|
251
|
+
await flush();
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
expect(probe).toHaveBeenCalled();
|
|
255
|
+
expect(maxInFlight).toBe(1);
|
|
256
|
+
|
|
257
|
+
resolveProbes[0]?.(false);
|
|
258
|
+
await flush();
|
|
259
|
+
jest.advanceTimersByTime(2000);
|
|
260
|
+
await flush();
|
|
261
|
+
|
|
262
|
+
expect(probe).toHaveBeenCalledTimes(2);
|
|
263
|
+
expect(maxInFlight).toBe(1);
|
|
264
|
+
resolveProbes[1]?.(false);
|
|
265
|
+
await flush();
|
|
266
|
+
});
|
|
267
|
+
});
|
|
268
|
+
|
|
206
269
|
describe.each([
|
|
207
270
|
[
|
|
208
271
|
'FirmwareUpdateV2',
|
|
@@ -116,39 +116,6 @@ describe('getDeviceState', () => {
|
|
|
116
116
|
expect(state).not.toHaveProperty('session');
|
|
117
117
|
});
|
|
118
118
|
|
|
119
|
-
test('emits an authoritative Protocol V1 settings snapshot when the SDK cache is unchanged', async () => {
|
|
120
|
-
const typedCall = jest.fn().mockResolvedValue({
|
|
121
|
-
message: {
|
|
122
|
-
onekey_device_type: 'PRO',
|
|
123
|
-
initialized: true,
|
|
124
|
-
language: 'zh_hk',
|
|
125
|
-
brightness_prcent: 88,
|
|
126
|
-
},
|
|
127
|
-
});
|
|
128
|
-
const device = createV1Device(typedCall);
|
|
129
|
-
await device.getDeviceState({ refreshSections: ['settings'] });
|
|
130
|
-
const cachedRevision = device.state?.revision;
|
|
131
|
-
const onState = jest.fn();
|
|
132
|
-
device.on(DEVICE.STATE, onState);
|
|
133
|
-
|
|
134
|
-
const state = await device.getDeviceState({ refreshSections: ['settings'] });
|
|
135
|
-
|
|
136
|
-
expect(typedCall).toHaveBeenCalledTimes(2);
|
|
137
|
-
expect(typedCall).toHaveBeenLastCalledWith('GetFeatures', 'Features', {});
|
|
138
|
-
expect(state.settings.language).toBe('zh_hk');
|
|
139
|
-
expect(state.revision).toBe(cachedRevision);
|
|
140
|
-
expect(onState).toHaveBeenCalledWith(
|
|
141
|
-
device,
|
|
142
|
-
expect.objectContaining({
|
|
143
|
-
source: 'settings-read',
|
|
144
|
-
changedKeys: ['settings'],
|
|
145
|
-
state: expect.objectContaining({
|
|
146
|
-
settings: expect.objectContaining({ language: 'zh_hk', brightness: 88 }),
|
|
147
|
-
}),
|
|
148
|
-
})
|
|
149
|
-
);
|
|
150
|
-
});
|
|
151
|
-
|
|
152
119
|
test('hydrates Protocol V2 with separate DeviceInfoGet and DeviceStatusGet', async () => {
|
|
153
120
|
const typedCall = jest.fn().mockImplementation((requestType: string) => {
|
|
154
121
|
if (requestType === 'DeviceInfoGet') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirmwareUpdateV2.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV2.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAEb,KAAK,aAAa,EAKnB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA2B1C,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,UAAU,CAAC;AAEtD,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAE1F,KAAK,MAAM,GAAG;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,yBAAyB,CAAC;KACrC,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,EAAE,0BAA0B,CAAC,UAAU,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B,CAAC;AAkFF,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,UAAU,CAAC,MAAM,CAAC;IAC9D,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAE1C,IAAI;IAiGJ,cAAc,YAAa,MAAM,UAS/B;YAEY,qCAAqC;IAkBnD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"FirmwareUpdateV2.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV2.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAEb,KAAK,aAAa,EAKnB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA2B1C,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,UAAU,CAAC;AAEtD,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAE1F,KAAK,MAAM,GAAG;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,yBAAyB,CAAC;KACrC,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,EAAE,0BAA0B,CAAC,UAAU,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B,CAAC;AAkFF,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,UAAU,CAAC,MAAM,CAAC;IAC9D,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAE1C,IAAI;IAiGJ,cAAc,YAAa,MAAM,UAS/B;YAEY,qCAAqC;IAkBnD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;YA2JvC,4BAA4B;IAyB1C,qBAAqB;IAUrB,uBAAuB,CAAC,UAAU,EAAE,MAAM;IAc1C,gCAAgC,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAAE,YAAY,EAAE,aAAa;IAwBtF,GAAG;CAkRV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceSettings.d.ts","sourceRoot":"","sources":["../../../src/api/device/DeviceSettings.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"DeviceSettings.d.ts","sourceRoot":"","sources":["../../../src/api/device/DeviceSettings.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAgB3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA0D5D,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,UAAU,CAAC,aAAa,CAAC;IACnE,qBAAqB;IAIrB,IAAI;IA0EJ,eAAe;;;;;;;IAWT,GAAG;CAyIV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceUploadResource.d.ts","sourceRoot":"","sources":["../../../src/api/device/DeviceUploadResource.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK3C,OAAO,KAAK,EAA8B,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,UAAU,CAAC,cAAc,CAAC;IAC1E,UAAU;;;;MAIR;IAEF,OAAO,CAAC,cAAc,CAIpB;IAEF,eAAe;;;;;IAQf,qBAAqB;IAgBrB,IAAI;IA+CJ,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,cAAc;IAoBtB,sBAAsB,QAEhB,qBAAqB,iBAAiB,CAAC,GACvC,qBAAqB,aAAa,CAAC,GACnC,qBAAqB,aAAa,CAAC,GACnC,qBAAqB,SAAS,CAAC,KAClC,QAAQ,4BAA4B,CAAC,CAuDtC;IAEI,GAAG;
|
|
1
|
+
{"version":3,"file":"DeviceUploadResource.d.ts","sourceRoot":"","sources":["../../../src/api/device/DeviceUploadResource.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK3C,OAAO,KAAK,EAA8B,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,UAAU,CAAC,cAAc,CAAC;IAC1E,UAAU;;;;MAIR;IAEF,OAAO,CAAC,cAAc,CAIpB;IAEF,eAAe;;;;;IAQf,qBAAqB;IAgBrB,IAAI;IA+CJ,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,cAAc;IAoBtB,sBAAsB,QAEhB,qBAAqB,iBAAiB,CAAC,GACvC,qBAAqB,aAAa,CAAC,GACnC,qBAAqB,aAAa,CAAC,GACnC,qBAAqB,SAAS,CAAC,KAClC,QAAQ,4BAA4B,CAAC,CAuDtC;IAEI,GAAG;CAaV"}
|
package/dist/device/Device.d.ts
CHANGED
|
@@ -146,18 +146,10 @@ export declare class Device extends EventEmitter {
|
|
|
146
146
|
clearStandardInternalState(_deviceId?: string): void;
|
|
147
147
|
initialize(options?: InitOptions): Promise<void>;
|
|
148
148
|
private _initializeProtocolV2;
|
|
149
|
-
getFeatures(
|
|
150
|
-
source?: DeviceStateUpdateSource;
|
|
151
|
-
forceChangedKeys?: string[];
|
|
152
|
-
}): Promise<Features | undefined>;
|
|
149
|
+
getFeatures(): Promise<Features | undefined>;
|
|
153
150
|
getDeviceState(params?: DeviceStateReadOptions): Promise<import("../types").DeviceState>;
|
|
154
|
-
_updateFeatures(protoFeatures: PROTO.Features | Features, initSession?: boolean
|
|
155
|
-
|
|
156
|
-
forceChangedKeys?: string[];
|
|
157
|
-
}): void;
|
|
158
|
-
updateState(patch: DeviceStatePatch, source: DeviceStateUpdateSource, options?: {
|
|
159
|
-
forceChangedKeys?: string[];
|
|
160
|
-
}): import("../types").DeviceState & {
|
|
151
|
+
_updateFeatures(protoFeatures: PROTO.Features | Features, initSession?: boolean): void;
|
|
152
|
+
updateState(patch: DeviceStatePatch, source: DeviceStateUpdateSource): import("../types").DeviceState & {
|
|
161
153
|
raw?: import("../types").DeviceFeaturesRaw | undefined;
|
|
162
154
|
};
|
|
163
155
|
updateFeaturesPatch(patch: Partial<Features>, source: DeviceStateUpdateSource): Features | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../../src/device/Device.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../../src/device/Device.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -925,18 +925,10 @@ declare class Device extends EventEmitter {
|
|
|
925
925
|
* features state directly from DeviceInfoGet.
|
|
926
926
|
*/
|
|
927
927
|
private _initializeProtocolV2;
|
|
928
|
-
getFeatures(
|
|
929
|
-
source?: DeviceStateUpdateSource;
|
|
930
|
-
forceChangedKeys?: string[];
|
|
931
|
-
}): Promise<Features | undefined>;
|
|
928
|
+
getFeatures(): Promise<Features | undefined>;
|
|
932
929
|
getDeviceState(params?: DeviceStateReadOptions): Promise<DeviceState>;
|
|
933
|
-
_updateFeatures(protoFeatures: Messages.Features | Features, initSession?: boolean
|
|
934
|
-
|
|
935
|
-
forceChangedKeys?: string[];
|
|
936
|
-
}): void;
|
|
937
|
-
updateState(patch: DeviceStatePatch, source: DeviceStateUpdateSource, options?: {
|
|
938
|
-
forceChangedKeys?: string[];
|
|
939
|
-
}): DeviceState & {
|
|
930
|
+
_updateFeatures(protoFeatures: Messages.Features | Features, initSession?: boolean): void;
|
|
931
|
+
updateState(patch: DeviceStatePatch, source: DeviceStateUpdateSource): DeviceState & {
|
|
940
932
|
raw?: DeviceFeaturesRaw | undefined;
|
|
941
933
|
};
|
|
942
934
|
updateFeaturesPatch(patch: Partial<Features>, source: DeviceStateUpdateSource): Features | undefined;
|
package/dist/index.js
CHANGED
|
@@ -44617,6 +44617,22 @@ const mapProtocolV2DeviceStatusToState = (status) => {
|
|
|
44617
44617
|
raw: { protocolV2DeviceStatus: status },
|
|
44618
44618
|
});
|
|
44619
44619
|
};
|
|
44620
|
+
const mapApplySettingsToState = (settings) => {
|
|
44621
|
+
const identity = definedEntries({ label: settings.label });
|
|
44622
|
+
const status = definedEntries({ passphraseProtection: settings.use_passphrase });
|
|
44623
|
+
const stateSettings = definedEntries({
|
|
44624
|
+
language: settings.language,
|
|
44625
|
+
autoLockDelayMs: settings.auto_lock_delay_ms,
|
|
44626
|
+
autoShutdownDelayMs: settings.auto_shutdown_delay_ms,
|
|
44627
|
+
displayRotation: settings.display_rotation,
|
|
44628
|
+
passphraseAlwaysOnDevice: settings.passphrase_always_on_device,
|
|
44629
|
+
safetyChecks: normalizeSafetyCheckLevel(settings.safety_checks),
|
|
44630
|
+
experimentalFeatures: settings.experimental_features,
|
|
44631
|
+
hapticFeedback: settings.haptic_feedback,
|
|
44632
|
+
bleEnabled: settings.use_ble,
|
|
44633
|
+
});
|
|
44634
|
+
return Object.assign(Object.assign(Object.assign({}, (Object.keys(identity).length ? { identity } : {})), (Object.keys(status).length ? { status } : {})), (Object.keys(stateSettings).length ? { settings: stateSettings } : {}));
|
|
44635
|
+
};
|
|
44620
44636
|
const mapDeviceSettingsToState = (settings) => {
|
|
44621
44637
|
const identity = definedEntries({ label: settings.label });
|
|
44622
44638
|
const status = definedEntries({ passphraseProtection: settings.passphrase_enable });
|
|
@@ -45624,7 +45640,7 @@ class Device extends events.exports {
|
|
|
45624
45640
|
}
|
|
45625
45641
|
});
|
|
45626
45642
|
}
|
|
45627
|
-
getFeatures(
|
|
45643
|
+
getFeatures() {
|
|
45628
45644
|
return __awaiter(this, void 0, void 0, function* () {
|
|
45629
45645
|
if (this.isProtocolV2()) {
|
|
45630
45646
|
const deviceInfo = yield requestProtocolV2DeviceInfo({
|
|
@@ -45633,7 +45649,7 @@ class Device extends events.exports {
|
|
|
45633
45649
|
return this.probeProtocolV2RuntimeState(deviceInfo);
|
|
45634
45650
|
}
|
|
45635
45651
|
const { message } = yield this.commands.typedCall('GetFeatures', 'Features', {});
|
|
45636
|
-
this._updateFeatures(message
|
|
45652
|
+
this._updateFeatures(message);
|
|
45637
45653
|
return this.features;
|
|
45638
45654
|
});
|
|
45639
45655
|
}
|
|
@@ -45650,12 +45666,6 @@ class Device extends events.exports {
|
|
|
45650
45666
|
};
|
|
45651
45667
|
let initializedWithDeviceInfo = false;
|
|
45652
45668
|
let refreshedDeviceInfo;
|
|
45653
|
-
const protocolV1RefreshOptions = refresh.has('settings')
|
|
45654
|
-
? {
|
|
45655
|
-
source: 'settings-read',
|
|
45656
|
-
forceChangedKeys: ['settings'],
|
|
45657
|
-
}
|
|
45658
|
-
: undefined;
|
|
45659
45669
|
if (!this.state) {
|
|
45660
45670
|
if (this.isProtocolV2()) {
|
|
45661
45671
|
const deviceInfo = yield requestProtocolV2DeviceInfo({
|
|
@@ -45667,11 +45677,11 @@ class Device extends events.exports {
|
|
|
45667
45677
|
initializedWithDeviceInfo = true;
|
|
45668
45678
|
}
|
|
45669
45679
|
else {
|
|
45670
|
-
yield this.getFeatures(
|
|
45680
|
+
yield this.getFeatures();
|
|
45671
45681
|
}
|
|
45672
45682
|
}
|
|
45673
45683
|
else if (!this.isProtocolV2() && refresh.size > 0) {
|
|
45674
|
-
yield this.getFeatures(
|
|
45684
|
+
yield this.getFeatures();
|
|
45675
45685
|
}
|
|
45676
45686
|
const supportsProtocolV1OnekeyFeatures = this.getCurrentDeviceType() === hdShared.EDeviceType.Touch ||
|
|
45677
45687
|
this.getCurrentDeviceType() === hdShared.EDeviceType.Pro;
|
|
@@ -45708,39 +45718,36 @@ class Device extends events.exports {
|
|
|
45708
45718
|
return params.includeRaw ? cloneDeviceState(this.state) : createPublicDeviceState(this.state);
|
|
45709
45719
|
});
|
|
45710
45720
|
}
|
|
45711
|
-
_updateFeatures(protoFeatures, initSession
|
|
45712
|
-
var _a
|
|
45721
|
+
_updateFeatures(protoFeatures, initSession) {
|
|
45722
|
+
var _a;
|
|
45713
45723
|
const previousDeviceId = this.getCurrentDeviceId();
|
|
45714
45724
|
let feat = 'protocol' in protoFeatures
|
|
45715
45725
|
? protoFeatures
|
|
45716
45726
|
: buildProtocolV1FeaturesPayload(protoFeatures, this.features);
|
|
45717
45727
|
feat.unlocked = (_a = feat.unlocked) !== null && _a !== void 0 ? _a : true;
|
|
45718
45728
|
feat = fixFeaturesFirmwareVersion(feat);
|
|
45719
|
-
this.updateState(mapFeaturesToState(feat),
|
|
45720
|
-
forceChangedKeys: options === null || options === void 0 ? void 0 : options.forceChangedKeys,
|
|
45721
|
-
});
|
|
45729
|
+
this.updateState(mapFeaturesToState(feat), 'initialize');
|
|
45722
45730
|
this.reconcileSessionCacheDeviceIdentity(previousDeviceId);
|
|
45723
45731
|
if (feat.deviceId && feat.sessionId) {
|
|
45724
45732
|
this.setInternalState(feat.sessionId, initSession);
|
|
45725
45733
|
}
|
|
45726
45734
|
}
|
|
45727
|
-
updateState(patch, source
|
|
45728
|
-
var _a
|
|
45735
|
+
updateState(patch, source) {
|
|
45736
|
+
var _a;
|
|
45729
45737
|
const result = this.stateStore.update(patch, source);
|
|
45730
|
-
|
|
45731
|
-
if (changedKeys.length === 0)
|
|
45738
|
+
if (result.changedKeys.length === 0)
|
|
45732
45739
|
return result.state;
|
|
45733
45740
|
const event = {
|
|
45734
|
-
connectId: (
|
|
45741
|
+
connectId: (_a = this.getConnectId()) !== null && _a !== void 0 ? _a : null,
|
|
45735
45742
|
state: createPublicDeviceState(result.state),
|
|
45736
45743
|
revision: result.revision,
|
|
45737
45744
|
source,
|
|
45738
|
-
changedKeys,
|
|
45745
|
+
changedKeys: result.changedKeys,
|
|
45739
45746
|
};
|
|
45740
45747
|
Log$g.debug('Device state updated', {
|
|
45741
45748
|
source,
|
|
45742
45749
|
revision: result.revision,
|
|
45743
|
-
changedKeyCount: changedKeys.length,
|
|
45750
|
+
changedKeyCount: result.changedKeys.length,
|
|
45744
45751
|
});
|
|
45745
45752
|
this.emit(DEVICE.STATE, this, event);
|
|
45746
45753
|
if (result.state.protocol === 'V1') {
|
|
@@ -48512,7 +48519,7 @@ class DeviceSettings extends BaseMethod {
|
|
|
48512
48519
|
}
|
|
48513
48520
|
const protocolV1Params = Object.assign(Object.assign({}, this.params), { auto_lock_delay_ms: normalizeProtocolV1DelayMs(this.params.auto_lock_delay_ms), auto_shutdown_delay_ms: normalizeProtocolV1DelayMs(this.params.auto_shutdown_delay_ms) });
|
|
48514
48521
|
const res = yield this.device.commands.typedCall('ApplySettings', 'Success', protocolV1Params);
|
|
48515
|
-
|
|
48522
|
+
this.device.updateState(mapApplySettingsToState(protocolV1Params), 'settings-write');
|
|
48516
48523
|
return res.message;
|
|
48517
48524
|
}
|
|
48518
48525
|
catch (error) {
|
|
@@ -48711,11 +48718,7 @@ class DeviceUploadResource extends BaseMethod {
|
|
|
48711
48718
|
this.checkUploadNFTSupport();
|
|
48712
48719
|
}
|
|
48713
48720
|
const res = yield this.device.commands.typedCall('ResourceUpload', ['ResourceRequest', 'ZoomRequest', 'BlurRequest', 'Success'], this.params);
|
|
48714
|
-
|
|
48715
|
-
if (this.payload.resType === hdTransport.Messages.ResourceType.WallPaper) {
|
|
48716
|
-
yield this.device.getDeviceState({ refreshSections: ['settings'] });
|
|
48717
|
-
}
|
|
48718
|
-
return result;
|
|
48721
|
+
return this.processResourceRequest(res);
|
|
48719
48722
|
});
|
|
48720
48723
|
}
|
|
48721
48724
|
}
|
|
@@ -50460,7 +50463,7 @@ class FirmwareUpdateV2 extends BaseMethod {
|
|
|
50460
50463
|
this.checkPromise = hdShared.createDeferred();
|
|
50461
50464
|
const env = DataManager.getSettings('env');
|
|
50462
50465
|
const isBleReconnect = connectId && DataManager.isBleConnect(env);
|
|
50463
|
-
let
|
|
50466
|
+
let probeInFlight = false;
|
|
50464
50467
|
Log$8.log('FirmwareUpdateV2 [checkDeviceToBootloader] isBleReconnect: ', isBleReconnect);
|
|
50465
50468
|
let isFirstCheck = true;
|
|
50466
50469
|
let checkCount = 0;
|
|
@@ -50492,8 +50495,9 @@ class FirmwareUpdateV2 extends BaseMethod {
|
|
|
50492
50495
|
let startPolling = () => undefined;
|
|
50493
50496
|
const pollForBootloader = () => __awaiter(this, void 0, void 0, function* () {
|
|
50494
50497
|
var _b, _c, _d, _e;
|
|
50495
|
-
if (isFinished || isPromptingWebDevice)
|
|
50498
|
+
if (isFinished || isPromptingWebDevice || probeInFlight)
|
|
50496
50499
|
return;
|
|
50500
|
+
probeInFlight = true;
|
|
50497
50501
|
checkCount += 1;
|
|
50498
50502
|
Log$8.log('FirmwareUpdateV2 [checkDeviceToBootloader] isFirstCheck: ', isFirstCheck);
|
|
50499
50503
|
if (isTouchOrProDevice && isFirstCheck) {
|
|
@@ -50527,13 +50531,11 @@ class FirmwareUpdateV2 extends BaseMethod {
|
|
|
50527
50531
|
}
|
|
50528
50532
|
finally {
|
|
50529
50533
|
isPromptingWebDevice = false;
|
|
50534
|
+
probeInFlight = false;
|
|
50530
50535
|
}
|
|
50531
50536
|
return;
|
|
50532
50537
|
}
|
|
50533
50538
|
if (isBleReconnect) {
|
|
50534
|
-
if (bleProbeInFlight)
|
|
50535
|
-
return;
|
|
50536
|
-
bleProbeInFlight = true;
|
|
50537
50539
|
try {
|
|
50538
50540
|
yield ((_c = this.device.deviceConnector) === null || _c === void 0 ? void 0 : _c.acquire(this.device.originalDescriptor.id, null, true, (_d = this.payload.connectProtocol) !== null && _d !== void 0 ? _d : this.device.originalDescriptor.protocolType));
|
|
50539
50541
|
yield this.device.initialize({ timeoutMs: BOOTLOADER_POLL_INITIALIZE_TIMEOUT_MS });
|
|
@@ -50547,11 +50549,16 @@ class FirmwareUpdateV2 extends BaseMethod {
|
|
|
50547
50549
|
Log$8.log('catch Bluetooth error when device is restarting: ', e);
|
|
50548
50550
|
}
|
|
50549
50551
|
finally {
|
|
50550
|
-
|
|
50552
|
+
probeInFlight = false;
|
|
50551
50553
|
}
|
|
50552
50554
|
}
|
|
50553
50555
|
else {
|
|
50554
|
-
|
|
50556
|
+
try {
|
|
50557
|
+
yield checkForBootloader(true);
|
|
50558
|
+
}
|
|
50559
|
+
finally {
|
|
50560
|
+
probeInFlight = false;
|
|
50561
|
+
}
|
|
50555
50562
|
}
|
|
50556
50563
|
});
|
|
50557
50564
|
startPolling = () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-core",
|
|
3
|
-
"version": "1.2.0-alpha.
|
|
3
|
+
"version": "1.2.0-alpha.122",
|
|
4
4
|
"description": "Core processes and APIs for communicating with OneKey hardware devices.",
|
|
5
5
|
"author": "OneKey",
|
|
6
6
|
"homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@onekeyfe/hd-shared": "1.2.0-alpha.
|
|
29
|
-
"@onekeyfe/hd-transport": "1.2.0-alpha.
|
|
28
|
+
"@onekeyfe/hd-shared": "1.2.0-alpha.122",
|
|
29
|
+
"@onekeyfe/hd-transport": "1.2.0-alpha.122",
|
|
30
30
|
"axios": "1.15.2",
|
|
31
31
|
"bignumber.js": "^9.0.2",
|
|
32
32
|
"buffer": "^6.0.3",
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"@types/w3c-web-usb": "^1.0.10",
|
|
47
47
|
"@types/web-bluetooth": "^0.0.21"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "f0a85119fe7f8607768bc77b0ac4eb527d55e1cc"
|
|
50
50
|
}
|
|
@@ -276,10 +276,9 @@ export default class FirmwareUpdateV2 extends BaseMethod<Params> {
|
|
|
276
276
|
this.checkPromise = createDeferred();
|
|
277
277
|
const env = DataManager.getSettings('env');
|
|
278
278
|
const isBleReconnect = connectId && DataManager.isBleConnect(env);
|
|
279
|
-
//
|
|
280
|
-
//
|
|
281
|
-
|
|
282
|
-
let bleProbeInFlight = false;
|
|
279
|
+
// Bootloader probes can outlive the polling interval. Keep discovery and
|
|
280
|
+
// acquire serialized so concurrent ticks never race the same connection.
|
|
281
|
+
let probeInFlight = false;
|
|
283
282
|
|
|
284
283
|
Log.log('FirmwareUpdateV2 [checkDeviceToBootloader] isBleReconnect: ', isBleReconnect);
|
|
285
284
|
|
|
@@ -321,7 +320,8 @@ export default class FirmwareUpdateV2 extends BaseMethod<Params> {
|
|
|
321
320
|
|
|
322
321
|
let startPolling: () => void = () => undefined;
|
|
323
322
|
const pollForBootloader = async () => {
|
|
324
|
-
if (isFinished || isPromptingWebDevice) return;
|
|
323
|
+
if (isFinished || isPromptingWebDevice || probeInFlight) return;
|
|
324
|
+
probeInFlight = true;
|
|
325
325
|
checkCount += 1;
|
|
326
326
|
Log.log('FirmwareUpdateV2 [checkDeviceToBootloader] isFirstCheck: ', isFirstCheck);
|
|
327
327
|
if (isTouchOrProDevice && isFirstCheck) {
|
|
@@ -362,13 +362,12 @@ export default class FirmwareUpdateV2 extends BaseMethod<Params> {
|
|
|
362
362
|
this.checkPromise?.reject(e);
|
|
363
363
|
} finally {
|
|
364
364
|
isPromptingWebDevice = false;
|
|
365
|
+
probeInFlight = false;
|
|
365
366
|
}
|
|
366
367
|
return;
|
|
367
368
|
}
|
|
368
369
|
|
|
369
370
|
if (isBleReconnect) {
|
|
370
|
-
if (bleProbeInFlight) return;
|
|
371
|
-
bleProbeInFlight = true;
|
|
372
371
|
try {
|
|
373
372
|
await this.device.deviceConnector?.acquire(
|
|
374
373
|
this.device.originalDescriptor.id,
|
|
@@ -389,10 +388,14 @@ export default class FirmwareUpdateV2 extends BaseMethod<Params> {
|
|
|
389
388
|
// ignore error because of device is not connected
|
|
390
389
|
Log.log('catch Bluetooth error when device is restarting: ', e);
|
|
391
390
|
} finally {
|
|
392
|
-
|
|
391
|
+
probeInFlight = false;
|
|
393
392
|
}
|
|
394
393
|
} else {
|
|
395
|
-
|
|
394
|
+
try {
|
|
395
|
+
await checkForBootloader(true);
|
|
396
|
+
} finally {
|
|
397
|
+
probeInFlight = false;
|
|
398
|
+
}
|
|
396
399
|
}
|
|
397
400
|
};
|
|
398
401
|
|
|
@@ -4,7 +4,10 @@ import { DeviceSessionPinType, DeviceSettingsPage } from '@onekeyfe/hd-transport
|
|
|
4
4
|
import { BaseMethod } from '../BaseMethod';
|
|
5
5
|
import { invalidParameter } from '../helpers/filesystemValidation';
|
|
6
6
|
import { validateParams } from '../helpers/paramsValidator';
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
mapApplySettingsToState,
|
|
9
|
+
mapCommonSettingsToProtocolV2,
|
|
10
|
+
} from '../../device/DeviceStateMapper';
|
|
8
11
|
import { getProtocolV2SettingsBehavior } from '../../protocols/protocol-v2/settingsUnlockPolicy';
|
|
9
12
|
import {
|
|
10
13
|
DEVICE_SETTINGS_NEVER_TIMEOUT_MS,
|
|
@@ -268,7 +271,7 @@ export default class DeviceSettings extends BaseMethod<ApplySettings> {
|
|
|
268
271
|
'Success',
|
|
269
272
|
protocolV1Params
|
|
270
273
|
);
|
|
271
|
-
|
|
274
|
+
this.device.updateState(mapApplySettingsToState(protocolV1Params), 'settings-write');
|
|
272
275
|
return res.message;
|
|
273
276
|
} catch (error) {
|
|
274
277
|
if (error.message?.toLowerCase().includes('no setting provided')) {
|
|
@@ -198,10 +198,6 @@ export default class DeviceUploadResource extends BaseMethod<ResourceUpload> {
|
|
|
198
198
|
this.params
|
|
199
199
|
);
|
|
200
200
|
|
|
201
|
-
|
|
202
|
-
if (this.payload.resType === PROTO.ResourceType.WallPaper) {
|
|
203
|
-
await this.device.getDeviceState({ refreshSections: ['settings'] });
|
|
204
|
-
}
|
|
205
|
-
return result;
|
|
201
|
+
return this.processResourceRequest(res);
|
|
206
202
|
}
|
|
207
203
|
}
|
package/src/device/Device.ts
CHANGED
|
@@ -989,7 +989,7 @@ export class Device extends EventEmitter {
|
|
|
989
989
|
}
|
|
990
990
|
}
|
|
991
991
|
|
|
992
|
-
async getFeatures(
|
|
992
|
+
async getFeatures() {
|
|
993
993
|
if (this.isProtocolV2()) {
|
|
994
994
|
const deviceInfo = await requestProtocolV2DeviceInfo({
|
|
995
995
|
commands: this.commands,
|
|
@@ -998,7 +998,7 @@ export class Device extends EventEmitter {
|
|
|
998
998
|
}
|
|
999
999
|
|
|
1000
1000
|
const { message } = await this.commands.typedCall('GetFeatures', 'Features', {});
|
|
1001
|
-
this._updateFeatures(message
|
|
1001
|
+
this._updateFeatures(message);
|
|
1002
1002
|
return this.features;
|
|
1003
1003
|
}
|
|
1004
1004
|
|
|
@@ -1012,13 +1012,6 @@ export class Device extends EventEmitter {
|
|
|
1012
1012
|
let initializedWithDeviceInfo = false;
|
|
1013
1013
|
let refreshedDeviceInfo: ProtocolV2DeviceInfo | undefined;
|
|
1014
1014
|
|
|
1015
|
-
const protocolV1RefreshOptions = refresh.has('settings')
|
|
1016
|
-
? {
|
|
1017
|
-
source: 'settings-read' as const,
|
|
1018
|
-
forceChangedKeys: ['settings'],
|
|
1019
|
-
}
|
|
1020
|
-
: undefined;
|
|
1021
|
-
|
|
1022
1015
|
if (!this.state) {
|
|
1023
1016
|
if (this.isProtocolV2()) {
|
|
1024
1017
|
const deviceInfo = await requestProtocolV2DeviceInfo({
|
|
@@ -1029,10 +1022,10 @@ export class Device extends EventEmitter {
|
|
|
1029
1022
|
refreshedDeviceInfo = deviceInfo;
|
|
1030
1023
|
initializedWithDeviceInfo = true;
|
|
1031
1024
|
} else {
|
|
1032
|
-
await this.getFeatures(
|
|
1025
|
+
await this.getFeatures();
|
|
1033
1026
|
}
|
|
1034
1027
|
} else if (!this.isProtocolV2() && refresh.size > 0) {
|
|
1035
|
-
await this.getFeatures(
|
|
1028
|
+
await this.getFeatures();
|
|
1036
1029
|
}
|
|
1037
1030
|
|
|
1038
1031
|
const supportsProtocolV1OnekeyFeatures =
|
|
@@ -1086,14 +1079,7 @@ export class Device extends EventEmitter {
|
|
|
1086
1079
|
return params.includeRaw ? cloneDeviceState(this.state) : createPublicDeviceState(this.state);
|
|
1087
1080
|
}
|
|
1088
1081
|
|
|
1089
|
-
_updateFeatures(
|
|
1090
|
-
protoFeatures: PROTO.Features | Features,
|
|
1091
|
-
initSession?: boolean,
|
|
1092
|
-
options?: {
|
|
1093
|
-
source?: DeviceStateUpdateSource;
|
|
1094
|
-
forceChangedKeys?: string[];
|
|
1095
|
-
}
|
|
1096
|
-
) {
|
|
1082
|
+
_updateFeatures(protoFeatures: PROTO.Features | Features, initSession?: boolean) {
|
|
1097
1083
|
const previousDeviceId = this.getCurrentDeviceId();
|
|
1098
1084
|
let feat =
|
|
1099
1085
|
'protocol' in protoFeatures
|
|
@@ -1104,36 +1090,28 @@ export class Device extends EventEmitter {
|
|
|
1104
1090
|
|
|
1105
1091
|
feat = fixFeaturesFirmwareVersion(feat);
|
|
1106
1092
|
|
|
1107
|
-
this.updateState(mapFeaturesToState(feat),
|
|
1108
|
-
forceChangedKeys: options?.forceChangedKeys,
|
|
1109
|
-
});
|
|
1093
|
+
this.updateState(mapFeaturesToState(feat), 'initialize');
|
|
1110
1094
|
this.reconcileSessionCacheDeviceIdentity(previousDeviceId);
|
|
1111
1095
|
if (feat.deviceId && feat.sessionId) {
|
|
1112
1096
|
this.setInternalState(feat.sessionId, initSession);
|
|
1113
1097
|
}
|
|
1114
1098
|
}
|
|
1115
1099
|
|
|
1116
|
-
updateState(
|
|
1117
|
-
patch: DeviceStatePatch,
|
|
1118
|
-
source: DeviceStateUpdateSource,
|
|
1119
|
-
options?: { forceChangedKeys?: string[] }
|
|
1120
|
-
) {
|
|
1100
|
+
updateState(patch: DeviceStatePatch, source: DeviceStateUpdateSource) {
|
|
1121
1101
|
const result = this.stateStore.update(patch, source);
|
|
1122
|
-
|
|
1123
|
-
result.changedKeys.length > 0 ? result.changedKeys : options?.forceChangedKeys ?? [];
|
|
1124
|
-
if (changedKeys.length === 0) return result.state;
|
|
1102
|
+
if (result.changedKeys.length === 0) return result.state;
|
|
1125
1103
|
|
|
1126
1104
|
const event: DeviceStateEvent = {
|
|
1127
1105
|
connectId: this.getConnectId() ?? null,
|
|
1128
1106
|
state: createPublicDeviceState(result.state),
|
|
1129
1107
|
revision: result.revision,
|
|
1130
1108
|
source,
|
|
1131
|
-
changedKeys,
|
|
1109
|
+
changedKeys: result.changedKeys,
|
|
1132
1110
|
};
|
|
1133
1111
|
Log.debug('Device state updated', {
|
|
1134
1112
|
source,
|
|
1135
1113
|
revision: result.revision,
|
|
1136
|
-
changedKeyCount: changedKeys.length,
|
|
1114
|
+
changedKeyCount: result.changedKeys.length,
|
|
1137
1115
|
});
|
|
1138
1116
|
this.emit(DEVICE.STATE, this, event);
|
|
1139
1117
|
if (result.state.protocol === 'V1') {
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { EDeviceType } from '@onekeyfe/hd-shared';
|
|
2
|
-
import { ResourceType } from '@onekeyfe/hd-transport';
|
|
3
|
-
|
|
4
|
-
import DeviceUploadResource from '../src/api/device/DeviceUploadResource';
|
|
5
|
-
|
|
6
|
-
jest.mock('../src/data/config', () => ({
|
|
7
|
-
DEFAULT_DOMAIN: 'https://example.com/',
|
|
8
|
-
getSDKVersion: () => '0.0.0-test',
|
|
9
|
-
}));
|
|
10
|
-
|
|
11
|
-
describe('DeviceUploadResource state refresh', () => {
|
|
12
|
-
it('refreshes Protocol V1 settings inside a wallpaper update', async () => {
|
|
13
|
-
const typedCall = jest.fn().mockResolvedValue({
|
|
14
|
-
type: 'Success',
|
|
15
|
-
message: { message: 'Success' },
|
|
16
|
-
});
|
|
17
|
-
const getDeviceState = jest.fn().mockResolvedValue({
|
|
18
|
-
settings: { language: 'en-US' },
|
|
19
|
-
});
|
|
20
|
-
const method = new DeviceUploadResource({
|
|
21
|
-
id: 1,
|
|
22
|
-
payload: {
|
|
23
|
-
method: 'deviceUploadResource',
|
|
24
|
-
suffix: 'jpg',
|
|
25
|
-
dataHex: '00',
|
|
26
|
-
thumbnailDataHex: '00',
|
|
27
|
-
blurDataHex: '00',
|
|
28
|
-
resType: ResourceType.WallPaper,
|
|
29
|
-
},
|
|
30
|
-
});
|
|
31
|
-
method.init();
|
|
32
|
-
(method as any).device = {
|
|
33
|
-
commands: { typedCall },
|
|
34
|
-
getCurrentDeviceType: () => EDeviceType.Pro,
|
|
35
|
-
getCurrentFirmwareVersionString: () => '4.21.0',
|
|
36
|
-
getDeviceState,
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
await expect(method.run()).resolves.toEqual({
|
|
40
|
-
message: 'Success',
|
|
41
|
-
applyScreen: false,
|
|
42
|
-
});
|
|
43
|
-
expect(typedCall).toHaveBeenCalledWith(
|
|
44
|
-
'ResourceUpload',
|
|
45
|
-
['ResourceRequest', 'ZoomRequest', 'BlurRequest', 'Success'],
|
|
46
|
-
expect.objectContaining({ res_type: ResourceType.WallPaper })
|
|
47
|
-
);
|
|
48
|
-
expect(getDeviceState).toHaveBeenCalledWith({ refreshSections: ['settings'] });
|
|
49
|
-
expect(typedCall.mock.invocationCallOrder[0]).toBeLessThan(
|
|
50
|
-
getDeviceState.mock.invocationCallOrder[0]
|
|
51
|
-
);
|
|
52
|
-
});
|
|
53
|
-
});
|