@onekeyfe/hd-core 1.2.0-alpha.134 → 1.2.0-alpha.136
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__/DeviceCommands.test.ts +7 -0
- package/__tests__/device-lifecycle-events.test.ts +91 -2
- package/__tests__/device-settings.test.ts +167 -9
- package/__tests__/protocol-v2.test.ts +34 -1
- package/dist/api/device/DeviceSettings.d.ts.map +1 -1
- package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +1 -1
- package/dist/core/index.d.ts +3 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/device/Device.d.ts +2 -0
- package/dist/device/Device.d.ts.map +1 -1
- package/dist/device/DeviceCommands.d.ts.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +258 -189
- package/package.json +4 -4
- package/src/api/device/DeviceSettings.ts +2 -16
- package/src/api/protocol-v2/DeviceUploadWallpaper.ts +11 -0
- package/src/core/index.ts +67 -25
- package/src/device/Device.ts +30 -2
- package/src/device/DeviceCommands.ts +14 -1
|
@@ -800,7 +800,13 @@ describe('DeviceCommands cancellation', () => {
|
|
|
800
800
|
try {
|
|
801
801
|
const commands = createCommands();
|
|
802
802
|
commands.disposed = false;
|
|
803
|
+
commands.mainId = 'main-id';
|
|
803
804
|
commands.callPromise = new Promise(() => {});
|
|
805
|
+
const disconnect = jest.fn().mockResolvedValue(undefined);
|
|
806
|
+
commands.transport = {
|
|
807
|
+
name: 'ReactNativeBleTransport',
|
|
808
|
+
disconnect,
|
|
809
|
+
} as any;
|
|
804
810
|
const dispose = jest.fn().mockResolvedValue(undefined);
|
|
805
811
|
commands.dispose = dispose;
|
|
806
812
|
|
|
@@ -810,6 +816,7 @@ describe('DeviceCommands cancellation', () => {
|
|
|
810
816
|
|
|
811
817
|
await expect(cancellation).resolves.toBeUndefined();
|
|
812
818
|
expect(dispose).toHaveBeenCalledWith(true);
|
|
819
|
+
expect(disconnect).toHaveBeenCalledWith('main-id');
|
|
813
820
|
expect(commands.callPromise).toBeUndefined();
|
|
814
821
|
} finally {
|
|
815
822
|
jest.useRealTimers();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { EDeviceType, HardwareErrorCode } from '@onekeyfe/hd-shared';
|
|
1
|
+
import { EDeviceType, ERRORS, HardwareErrorCode, createDeferred } from '@onekeyfe/hd-shared';
|
|
2
2
|
import { DeviceType, TRANSPORT_EVENT } from '@onekeyfe/hd-transport';
|
|
3
3
|
|
|
4
|
-
import { initConnector, initCore } from '../src/core';
|
|
4
|
+
import { initConnector, initCore, isMissingDetectedProtocolV2Error } from '../src/core';
|
|
5
5
|
import { DataManager } from '../src/data-manager';
|
|
6
6
|
import TransportManager from '../src/data-manager/TransportManager';
|
|
7
7
|
import { Device } from '../src/device/Device';
|
|
@@ -82,6 +82,23 @@ describe('public device lifecycle events', () => {
|
|
|
82
82
|
expect(DevicePool.emitter.listenerCount(DEVICE.DISCONNECT)).toBe(1);
|
|
83
83
|
});
|
|
84
84
|
|
|
85
|
+
test('isolates pending cancellation cleanup by connect id', () => {
|
|
86
|
+
core = initCore();
|
|
87
|
+
const context = (core as any).getCoreContext();
|
|
88
|
+
const firstCleanup = createDeferred<void>();
|
|
89
|
+
const replacementCleanup = createDeferred<void>();
|
|
90
|
+
|
|
91
|
+
context.setPrePendingCallPromise('device-a', firstCleanup.promise);
|
|
92
|
+
|
|
93
|
+
expect(context.getPrePendingCallPromise('device-a')).toBe(firstCleanup.promise);
|
|
94
|
+
expect(context.getPrePendingCallPromise('device-b')).toBeUndefined();
|
|
95
|
+
|
|
96
|
+
context.setPrePendingCallPromise('device-a', replacementCleanup.promise);
|
|
97
|
+
context.removePrePendingCallPromise('device-a', firstCleanup.promise);
|
|
98
|
+
|
|
99
|
+
expect(context.getPrePendingCallPromise('device-a')).toBe(replacementCleanup.promise);
|
|
100
|
+
});
|
|
101
|
+
|
|
85
102
|
test('keeps shared device lifecycle listeners across a device cache reset', () => {
|
|
86
103
|
jest.spyOn(DataManager, 'getSettings').mockReturnValue('react-native' as never);
|
|
87
104
|
core = initCore();
|
|
@@ -234,6 +251,22 @@ describe('public device lifecycle events', () => {
|
|
|
234
251
|
expect(device.getProtocol()).toBe('V2');
|
|
235
252
|
});
|
|
236
253
|
|
|
254
|
+
test.each([
|
|
255
|
+
['V2', true],
|
|
256
|
+
['V1', false],
|
|
257
|
+
] as const)(
|
|
258
|
+
'retries a missing detected protocol only for an explicit Protocol %s connection',
|
|
259
|
+
(connectProtocol, expected) => {
|
|
260
|
+
const method = { payload: { connectProtocol } } as never;
|
|
261
|
+
const error = {
|
|
262
|
+
errorCode: HardwareErrorCode.RuntimeError,
|
|
263
|
+
message: 'Device protocol has not been detected for ble-id',
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
expect(isMissingDetectedProtocolV2Error(method, error)).toBe(expected);
|
|
267
|
+
}
|
|
268
|
+
);
|
|
269
|
+
|
|
237
270
|
test('converts an internal transport disconnect into a public KnownDevice snapshot', () => {
|
|
238
271
|
jest.spyOn(DataManager, 'getSettings').mockReturnValue('react-native' as never);
|
|
239
272
|
core = initCore();
|
|
@@ -310,6 +343,62 @@ describe('public device lifecycle events', () => {
|
|
|
310
343
|
}
|
|
311
344
|
);
|
|
312
345
|
|
|
346
|
+
test('sends a fallback Cancel for an acquired Protocol V2 BLE call without a prompt callback', async () => {
|
|
347
|
+
jest.spyOn(DataManager, 'getSettings').mockReturnValue('react-native' as never);
|
|
348
|
+
const device = createInitializedDevice('V2');
|
|
349
|
+
const post = jest.fn().mockResolvedValue(undefined);
|
|
350
|
+
const cancelDevice = jest.fn(() => cancelDeviceInPrompt(device, false));
|
|
351
|
+
const cancel = jest.fn().mockResolvedValue(undefined);
|
|
352
|
+
(device as unknown as { deviceAcquired: boolean }).deviceAcquired = true;
|
|
353
|
+
device.commands = {
|
|
354
|
+
transport: { post },
|
|
355
|
+
cancelDevice,
|
|
356
|
+
cancel,
|
|
357
|
+
} as never;
|
|
358
|
+
|
|
359
|
+
await device.interruptionFromUser();
|
|
360
|
+
|
|
361
|
+
expect(cancelDevice).toHaveBeenCalledTimes(1);
|
|
362
|
+
expect(post).toHaveBeenCalledWith(device.mainId, 'Cancel', {});
|
|
363
|
+
expect(cancel).toHaveBeenCalledTimes(1);
|
|
364
|
+
});
|
|
365
|
+
|
|
366
|
+
test('waits for the canceled run to finish releasing before cancellation completes', async () => {
|
|
367
|
+
jest.spyOn(DataManager, 'getSettings').mockReturnValue('react-native' as never);
|
|
368
|
+
const device = createInitializedDevice('V2');
|
|
369
|
+
const operation = createDeferred<void>();
|
|
370
|
+
const releaseGate = createDeferred<void>();
|
|
371
|
+
const cancelError = ERRORS.TypedError(HardwareErrorCode.DeviceInterruptedFromUser);
|
|
372
|
+
const release = jest.spyOn(device, 'release').mockImplementation(() => releaseGate.promise);
|
|
373
|
+
device.commands = {
|
|
374
|
+
disposed: false,
|
|
375
|
+
cancel: jest.fn(() => {
|
|
376
|
+
operation.reject(cancelError);
|
|
377
|
+
return Promise.resolve();
|
|
378
|
+
}),
|
|
379
|
+
} as never;
|
|
380
|
+
(device as unknown as { deviceAcquired: boolean }).deviceAcquired = true;
|
|
381
|
+
|
|
382
|
+
const runResult = device.run(() => operation.promise).catch(error => error);
|
|
383
|
+
const cancellation = device.interruptionFromUser();
|
|
384
|
+
let cancellationCompleted = false;
|
|
385
|
+
cancellation.then(() => {
|
|
386
|
+
cancellationCompleted = true;
|
|
387
|
+
});
|
|
388
|
+
|
|
389
|
+
await new Promise(resolve => {
|
|
390
|
+
setImmediate(resolve);
|
|
391
|
+
});
|
|
392
|
+
expect(release).toHaveBeenCalledTimes(1);
|
|
393
|
+
expect(cancellationCompleted).toBe(false);
|
|
394
|
+
|
|
395
|
+
releaseGate.resolve();
|
|
396
|
+
await cancellation;
|
|
397
|
+
await expect(runResult).resolves.toMatchObject({
|
|
398
|
+
errorCode: HardwareErrorCode.DeviceInterruptedFromUser,
|
|
399
|
+
});
|
|
400
|
+
});
|
|
401
|
+
|
|
313
402
|
test.each([
|
|
314
403
|
[EDeviceType.Pro2, 'webusb', false, DeviceType.PRO2],
|
|
315
404
|
[EDeviceType.Neo, 'webusb', false, DeviceType.NEO],
|
|
@@ -2,6 +2,9 @@ import { EDeviceType, HardwareErrorCode } from '@onekeyfe/hd-shared';
|
|
|
2
2
|
import { DeviceSettingsPage } from '@onekeyfe/hd-transport';
|
|
3
3
|
|
|
4
4
|
import DeviceSettings from '../src/api/device/DeviceSettings';
|
|
5
|
+
import { Device } from '../src/device/Device';
|
|
6
|
+
import { DEVICE } from '../src/events';
|
|
7
|
+
import { PROTOCOL_V2_DEVICE_STATUS_GET_MESSAGE_TYPE } from '../src/protocols/protocol-v2';
|
|
5
8
|
import { DEVICE_SETTINGS_NEVER_TIMEOUT_MS } from '../src/utils/deviceSettings';
|
|
6
9
|
|
|
7
10
|
import type { Features } from '../src/types';
|
|
@@ -21,6 +24,9 @@ function createDevice({ protocol }: { protocol: 'V1' | 'V2' }) {
|
|
|
21
24
|
const typedCall = jest.fn().mockResolvedValue({ message: { message: 'Success' } });
|
|
22
25
|
const updateState = jest.fn();
|
|
23
26
|
const getDeviceState = jest.fn();
|
|
27
|
+
const refreshProtocolV2SettingsAfterMutation = jest.fn(() =>
|
|
28
|
+
getDeviceState({ refreshSections: ['status', 'settings'] })
|
|
29
|
+
);
|
|
24
30
|
return {
|
|
25
31
|
device: {
|
|
26
32
|
features,
|
|
@@ -29,6 +35,7 @@ function createDevice({ protocol }: { protocol: 'V1' | 'V2' }) {
|
|
|
29
35
|
commands: { typedCall },
|
|
30
36
|
updateState,
|
|
31
37
|
getDeviceState,
|
|
38
|
+
refreshProtocolV2SettingsAfterMutation,
|
|
32
39
|
},
|
|
33
40
|
typedCall,
|
|
34
41
|
updateState,
|
|
@@ -181,7 +188,98 @@ describe('DeviceSettings protocol routing', () => {
|
|
|
181
188
|
expect(updateState).not.toHaveBeenCalled();
|
|
182
189
|
});
|
|
183
190
|
|
|
184
|
-
it('
|
|
191
|
+
it('reconciles stale passphrase and label after an unrelated Protocol V2 setting change', async () => {
|
|
192
|
+
const typedCall = jest.fn().mockImplementation((requestType: string) => {
|
|
193
|
+
if (requestType === 'DeviceSettingsSet') {
|
|
194
|
+
return { message: { message: 'Success' } };
|
|
195
|
+
}
|
|
196
|
+
if (requestType === 'DeviceStatusGet') {
|
|
197
|
+
return {
|
|
198
|
+
message: {
|
|
199
|
+
init_states: true,
|
|
200
|
+
unlocked: false,
|
|
201
|
+
passphrase_enabled: false,
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
if (requestType === 'DeviceSettingsGet') {
|
|
206
|
+
return {
|
|
207
|
+
message: {
|
|
208
|
+
label: 'Current Label',
|
|
209
|
+
brightness: 80,
|
|
210
|
+
passphrase_enable: false,
|
|
211
|
+
},
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
throw new Error(`Unexpected request: ${requestType}`);
|
|
215
|
+
});
|
|
216
|
+
const device = Device.fromDescriptor({
|
|
217
|
+
id: 'pro2',
|
|
218
|
+
path: 'pro2',
|
|
219
|
+
protocolType: 'V2',
|
|
220
|
+
} as never);
|
|
221
|
+
(device as any).commands = { typedCall };
|
|
222
|
+
device.updateState(
|
|
223
|
+
{
|
|
224
|
+
protocol: 'V2',
|
|
225
|
+
identity: {
|
|
226
|
+
deviceType: EDeviceType.Pro2,
|
|
227
|
+
label: 'Stale Label',
|
|
228
|
+
},
|
|
229
|
+
status: {
|
|
230
|
+
mode: 'normal',
|
|
231
|
+
unlocked: false,
|
|
232
|
+
passphraseProtection: true,
|
|
233
|
+
},
|
|
234
|
+
settings: { brightness: 20 },
|
|
235
|
+
raw: {
|
|
236
|
+
protocolV2ProtocolInfo: {
|
|
237
|
+
version: 1,
|
|
238
|
+
build_fingerprint: 'application__5.0.0__abcdef0__PROD__RELEASE',
|
|
239
|
+
supported_messages: [PROTOCOL_V2_DEVICE_STATUS_GET_MESSAGE_TYPE],
|
|
240
|
+
},
|
|
241
|
+
},
|
|
242
|
+
},
|
|
243
|
+
'initialize'
|
|
244
|
+
);
|
|
245
|
+
const onState = jest.fn();
|
|
246
|
+
device.on(DEVICE.STATE, onState);
|
|
247
|
+
const method = new DeviceSettings({
|
|
248
|
+
id: 3,
|
|
249
|
+
payload: {
|
|
250
|
+
method: 'deviceSettings',
|
|
251
|
+
brightness: 80,
|
|
252
|
+
},
|
|
253
|
+
});
|
|
254
|
+
method.init();
|
|
255
|
+
(method as any).device = device;
|
|
256
|
+
|
|
257
|
+
await expect(method.run()).resolves.toEqual({ message: 'Success' });
|
|
258
|
+
|
|
259
|
+
expect(typedCall.mock.calls.map(call => call[0])).toEqual([
|
|
260
|
+
'DeviceSettingsSet',
|
|
261
|
+
'DeviceStatusGet',
|
|
262
|
+
'DeviceSettingsGet',
|
|
263
|
+
]);
|
|
264
|
+
expect(device.state).toMatchObject({
|
|
265
|
+
identity: { label: 'Current Label' },
|
|
266
|
+
status: { passphraseProtection: false },
|
|
267
|
+
settings: { brightness: 80 },
|
|
268
|
+
});
|
|
269
|
+
expect(onState).toHaveBeenLastCalledWith(
|
|
270
|
+
device,
|
|
271
|
+
expect.objectContaining({
|
|
272
|
+
source: 'settings-read',
|
|
273
|
+
state: expect.objectContaining({
|
|
274
|
+
identity: expect.objectContaining({ label: 'Current Label' }),
|
|
275
|
+
status: expect.objectContaining({ passphraseProtection: false }),
|
|
276
|
+
settings: expect.objectContaining({ brightness: 80 }),
|
|
277
|
+
}),
|
|
278
|
+
})
|
|
279
|
+
);
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
it('uses the Pro2 passphrase page and refreshes device state after the toggle', async () => {
|
|
185
283
|
const { device, typedCall, getDeviceState } = createDevice({ protocol: 'V2' });
|
|
186
284
|
getDeviceState
|
|
187
285
|
.mockResolvedValueOnce({
|
|
@@ -263,8 +361,8 @@ describe('DeviceSettings protocol routing', () => {
|
|
|
263
361
|
expect(getDeviceState).toHaveBeenCalledWith({ refreshSections: ['settings'] });
|
|
264
362
|
});
|
|
265
363
|
|
|
266
|
-
it('
|
|
267
|
-
const { device, getDeviceState } = createDevice({ protocol: 'V2' });
|
|
364
|
+
it('does not overwrite Pro2 passphrase state when refreshed state does not match', async () => {
|
|
365
|
+
const { device, getDeviceState, updateState } = createDevice({ protocol: 'V2' });
|
|
268
366
|
getDeviceState.mockResolvedValue({
|
|
269
367
|
status: { passphraseProtection: false },
|
|
270
368
|
});
|
|
@@ -278,14 +376,12 @@ describe('DeviceSettings protocol routing', () => {
|
|
|
278
376
|
method.init();
|
|
279
377
|
(method as any).device = device;
|
|
280
378
|
|
|
281
|
-
await expect(method.run()).
|
|
282
|
-
|
|
283
|
-
message: 'Protocol V2 passphrase setting did not reach the requested value.',
|
|
284
|
-
});
|
|
379
|
+
await expect(method.run()).resolves.toEqual({ message: 'Success' });
|
|
380
|
+
expect(updateState).not.toHaveBeenCalled();
|
|
285
381
|
});
|
|
286
382
|
|
|
287
|
-
it('
|
|
288
|
-
const { device, getDeviceState } = createDevice({ protocol: 'V2' });
|
|
383
|
+
it('keeps the previous Pro2 passphrase state when refreshed state is unavailable after locking', async () => {
|
|
384
|
+
const { device, getDeviceState, updateState } = createDevice({ protocol: 'V2' });
|
|
289
385
|
getDeviceState
|
|
290
386
|
.mockResolvedValueOnce({
|
|
291
387
|
status: { unlocked: true, passphraseProtection: true },
|
|
@@ -304,6 +400,68 @@ describe('DeviceSettings protocol routing', () => {
|
|
|
304
400
|
(method as any).device = device;
|
|
305
401
|
|
|
306
402
|
await expect(method.run()).resolves.toEqual({ message: 'Success' });
|
|
403
|
+
expect(updateState).not.toHaveBeenCalled();
|
|
404
|
+
});
|
|
405
|
+
|
|
406
|
+
it('preserves confirmed Pro2 passphrase state when the post-toggle status is locked', async () => {
|
|
407
|
+
let statusReadCount = 0;
|
|
408
|
+
const typedCall = jest.fn().mockImplementation((requestType: string) => {
|
|
409
|
+
if (requestType === 'DeviceStatusGet') {
|
|
410
|
+
statusReadCount += 1;
|
|
411
|
+
return {
|
|
412
|
+
message:
|
|
413
|
+
statusReadCount === 1
|
|
414
|
+
? { init_states: true, unlocked: true, passphrase_enabled: true }
|
|
415
|
+
: { init_states: true, unlocked: false, passphrase_enabled: false },
|
|
416
|
+
};
|
|
417
|
+
}
|
|
418
|
+
if (requestType === 'DeviceSettingsPageShow') {
|
|
419
|
+
return { message: { message: 'Success' } };
|
|
420
|
+
}
|
|
421
|
+
if (requestType === 'DeviceSettingsGet') {
|
|
422
|
+
return { message: { label: 'Pro 2' } };
|
|
423
|
+
}
|
|
424
|
+
throw new Error(`Unexpected request: ${requestType}`);
|
|
425
|
+
});
|
|
426
|
+
const device = Device.fromDescriptor({
|
|
427
|
+
id: 'pro2-passphrase',
|
|
428
|
+
path: 'pro2-passphrase',
|
|
429
|
+
protocolType: 'V2',
|
|
430
|
+
} as never);
|
|
431
|
+
(device as any).commands = { typedCall };
|
|
432
|
+
device.updateState(
|
|
433
|
+
{
|
|
434
|
+
protocol: 'V2',
|
|
435
|
+
identity: { deviceType: EDeviceType.Pro2 },
|
|
436
|
+
status: {
|
|
437
|
+
mode: 'normal',
|
|
438
|
+
unlocked: true,
|
|
439
|
+
passphraseProtection: true,
|
|
440
|
+
},
|
|
441
|
+
raw: {
|
|
442
|
+
protocolV2ProtocolInfo: {
|
|
443
|
+
version: 1,
|
|
444
|
+
supported_messages: [PROTOCOL_V2_DEVICE_STATUS_GET_MESSAGE_TYPE],
|
|
445
|
+
},
|
|
446
|
+
},
|
|
447
|
+
},
|
|
448
|
+
'initialize'
|
|
449
|
+
);
|
|
450
|
+
const method = new DeviceSettings({
|
|
451
|
+
id: 6,
|
|
452
|
+
payload: {
|
|
453
|
+
method: 'deviceSettings',
|
|
454
|
+
usePassphrase: false,
|
|
455
|
+
},
|
|
456
|
+
});
|
|
457
|
+
method.init();
|
|
458
|
+
(method as any).device = device;
|
|
459
|
+
|
|
460
|
+
await expect(method.run()).resolves.toEqual({ message: 'Success' });
|
|
461
|
+
expect(device.state?.status).toMatchObject({
|
|
462
|
+
unlocked: false,
|
|
463
|
+
passphraseProtection: true,
|
|
464
|
+
});
|
|
307
465
|
});
|
|
308
466
|
|
|
309
467
|
it('keeps Protocol V1 passphrase settings on ApplySettings', async () => {
|
|
@@ -183,6 +183,7 @@ describe('DeviceUploadWallpaper', () => {
|
|
|
183
183
|
stubDevice({
|
|
184
184
|
...device,
|
|
185
185
|
ensureProtocolV2RuntimeContext: jest.fn().mockResolvedValue(wallpaperProtocolInfo),
|
|
186
|
+
refreshProtocolV2SettingsAfterMutation: jest.fn().mockResolvedValue({}),
|
|
186
187
|
});
|
|
187
188
|
|
|
188
189
|
test('encodes, uploads and applies a Pro2 wallpaper', async () => {
|
|
@@ -204,7 +205,8 @@ describe('DeviceUploadWallpaper', () => {
|
|
|
204
205
|
jpegBase64: createJpegBase64(604, 1024),
|
|
205
206
|
},
|
|
206
207
|
});
|
|
207
|
-
|
|
208
|
+
const device = stubWallpaperDevice({ commands: { typedCall } });
|
|
209
|
+
(method as any).device = device;
|
|
208
210
|
method.postMessage = jest.fn();
|
|
209
211
|
|
|
210
212
|
method.init();
|
|
@@ -224,6 +226,7 @@ describe('DeviceUploadWallpaper', () => {
|
|
|
224
226
|
expect(typedCall).toHaveBeenLastCalledWith('DeviceSettingsSet', 'Success', {
|
|
225
227
|
settings: { wallpaper_path: result.path },
|
|
226
228
|
});
|
|
229
|
+
expect(device.refreshProtocolV2SettingsAfterMutation).toHaveBeenCalledTimes(1);
|
|
227
230
|
expect(typedCall.mock.calls.some(call => call[0] === 'SetWallpaper')).toBe(false);
|
|
228
231
|
expect(result).toMatchObject({ colorFormat: 'RGB565', message: 'wallpaper applied' });
|
|
229
232
|
const fileWriteCallCount = typedCall.mock.calls.filter(
|
|
@@ -262,6 +265,36 @@ describe('DeviceUploadWallpaper', () => {
|
|
|
262
265
|
expect(typedCall.mock.calls.some(call => call[0] === 'DeviceSettingsSet')).toBe(false);
|
|
263
266
|
});
|
|
264
267
|
|
|
268
|
+
test('returns success when wallpaper read-back fails after apply', async () => {
|
|
269
|
+
const typedCall = jest.fn().mockImplementation((request, _response, params) => {
|
|
270
|
+
if (request === 'FilesystemDirMake') return { message: {} };
|
|
271
|
+
if (request === 'FilesystemFileWrite') {
|
|
272
|
+
const file = params.file as { data: Uint8Array; offset: number };
|
|
273
|
+
return { message: { processed_byte: file.offset + file.data.byteLength } };
|
|
274
|
+
}
|
|
275
|
+
if (request === 'DeviceSettingsSet') {
|
|
276
|
+
return { message: { message: 'wallpaper applied' } };
|
|
277
|
+
}
|
|
278
|
+
throw new Error(`Unexpected request: ${request}`);
|
|
279
|
+
});
|
|
280
|
+
const method = new DeviceUploadWallpaper({
|
|
281
|
+
id: 1,
|
|
282
|
+
payload: {
|
|
283
|
+
method: 'deviceUploadWallpaper',
|
|
284
|
+
jpegBase64: createJpegBase64(604, 1024),
|
|
285
|
+
},
|
|
286
|
+
});
|
|
287
|
+
const device = stubWallpaperDevice({ commands: { typedCall } });
|
|
288
|
+
device.refreshProtocolV2SettingsAfterMutation.mockRejectedValueOnce(
|
|
289
|
+
new Error('settings read-back failed')
|
|
290
|
+
);
|
|
291
|
+
(method as any).device = device;
|
|
292
|
+
method.init();
|
|
293
|
+
|
|
294
|
+
await expect(method.run()).resolves.toMatchObject({ message: 'wallpaper applied' });
|
|
295
|
+
expect(device.refreshProtocolV2SettingsAfterMutation).toHaveBeenCalledTimes(1);
|
|
296
|
+
});
|
|
297
|
+
|
|
265
298
|
test('rejects unsafe filenames before device communication', () => {
|
|
266
299
|
const method = new DeviceUploadWallpaper({
|
|
267
300
|
id: 1,
|
|
@@ -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;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;
|
|
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;CA2HV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceUploadWallpaper.d.ts","sourceRoot":"","sources":["../../../src/api/protocol-v2/DeviceUploadWallpaper.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"DeviceUploadWallpaper.d.ts","sourceRoot":"","sources":["../../../src/api/protocol-v2/DeviceUploadWallpaper.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,OAAO,EAGL,KAAK,wBAAwB,EAE9B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,2BAA2B,GAAG;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,wBAAwB,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAmBF,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,UAAU,CAAC,2BAA2B,CAAC;IACxF,qBAAqB;IAIrB,OAAO,CAAC,OAAO,CAAC,CAA8D;IAE9E,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,IAAI,CAAM;IAElB,IAAI;YAwBU,kBAAkB;YAgBlB,eAAe;YAaf,MAAM;IAwBd,GAAG,IAAI,OAAO,CAAC,6BAA6B,CAAC;CAyBpD"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -5,8 +5,10 @@ import DeviceConnector from '../device/DeviceConnector';
|
|
|
5
5
|
import type { ConnectSettings } from '../types';
|
|
6
6
|
import type { CoreMessage } from '../events';
|
|
7
7
|
import type { LowlevelTransportSharedPlugin } from '@onekeyfe/hd-transport';
|
|
8
|
+
import type { BaseMethod } from '../api/BaseMethod';
|
|
8
9
|
export type CoreContext = ReturnType<Core['getCoreContext']>;
|
|
9
10
|
export declare const callAPI: (context: CoreContext, message: CoreMessage) => Promise<any>;
|
|
11
|
+
export declare function isMissingDetectedProtocolV2Error(method: BaseMethod, error: unknown): boolean;
|
|
10
12
|
export declare const cancel: (context: CoreContext, connectId?: string) => void;
|
|
11
13
|
export declare const onDeviceButtonHandler: (__0_0: Device, __0_1: import("../events").DeviceButtonRequestPayload) => void;
|
|
12
14
|
export default class Core extends EventEmitter {
|
|
@@ -14,7 +16,7 @@ export default class Core extends EventEmitter {
|
|
|
14
16
|
readonly sdkInstanceId: string;
|
|
15
17
|
private requestQueue;
|
|
16
18
|
private disposePromise?;
|
|
17
|
-
private
|
|
19
|
+
private prePendingCallPromises;
|
|
18
20
|
private methodSynchronize;
|
|
19
21
|
constructor();
|
|
20
22
|
private getCoreContext;
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAoClC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAsB1C,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAYxD,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,UAAU,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAmD,MAAM,WAAW,CAAC;AAI9F,OAAO,KAAK,EACV,6BAA6B,EAG9B,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAoClC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAsB1C,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAYxD,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,UAAU,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAmD,MAAM,WAAW,CAAC;AAI9F,OAAO,KAAK,EACV,6BAA6B,EAG9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAWpD,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAmE7D,eAAO,MAAM,OAAO,YAAmB,WAAW,WAAW,WAAW,iBAoFvE,CAAC;AA2qBF,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,WAQlF;AAsPD,eAAO,MAAM,MAAM,YAAa,WAAW,cAAc,MAAM,SAqF9D,CAAC;AAmGF,eAAO,MAAM,qBAAqB,gFAejC,CAAC;AAiLF,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,YAAY;IAC5C,OAAO,CAAC,cAAc,CAAoB;IAE1C,SAAgB,aAAa,EAAE,MAAM,CAAC;IAEtC,OAAO,CAAC,YAAY,CAAsB;IAE1C,OAAO,CAAC,cAAc,CAAC,CAAgB;IAGvC,OAAO,CAAC,sBAAsB,CAAoC;IAElE,OAAO,CAAC,iBAAiB,CAAoB;;IAS7C,OAAO,CAAC,cAAc;IA6BhB,aAAa,CAAC,OAAO,EAAE,WAAW;IAuExC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAOV,gBAAgB;CAiC/B;AAED,eAAO,MAAM,QAAQ,YAIpB,CAAC;AAEF,eAAO,MAAM,aAAa,uBAYzB,CAAC;AAMF,eAAO,MAAM,IAAI,aACL,eAAe,aACd,GAAG,WACL,6BAA6B,8BAiBvC,CAAC;AAEF,eAAO,MAAM,eAAe;SAKrB,eAAe,CAAC,KAAK,CAAC;eAChB,GAAG;;UASf,CAAC"}
|
package/dist/device/Device.d.ts
CHANGED
|
@@ -80,6 +80,7 @@ export declare class Device extends EventEmitter {
|
|
|
80
80
|
get features(): Features | undefined;
|
|
81
81
|
set features(features: Features | undefined);
|
|
82
82
|
runPromise?: Deferred<void> | null;
|
|
83
|
+
private runCleanupPromise?;
|
|
83
84
|
externalState: string[];
|
|
84
85
|
unavailableCapabilities: UnavailableCapabilities;
|
|
85
86
|
instance: number;
|
|
@@ -148,6 +149,7 @@ export declare class Device extends EventEmitter {
|
|
|
148
149
|
private _initializeProtocolV2;
|
|
149
150
|
getFeatures(): Promise<Features | undefined>;
|
|
150
151
|
getDeviceState(params?: DeviceStateReadOptions): Promise<import("../types").DeviceState>;
|
|
152
|
+
refreshProtocolV2SettingsAfterMutation(): Promise<import("../types").DeviceState>;
|
|
151
153
|
_updateFeatures(protoFeatures: PROTO.Features | Features, initSession?: boolean): void;
|
|
152
154
|
updateState(patch: DeviceStatePatch, source: DeviceStateUpdateSource): import("../types").DeviceState & {
|
|
153
155
|
raw?: import("../types").DeviceFeaturesRaw | 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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceCommands.d.ts","sourceRoot":"","sources":["../../src/device/DeviceCommands.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,oBAAoB,EAG1B,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EAAU,KAAK,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAQlE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;AACxC,KAAK,UAAU,GAAG,OAAO,CAAC,MAAM,WAAW,EAAE,MAAM,CAAC,CAAC;AACrD,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,UAAU,IAAI;IACvD,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CACzB,CAAC;AACF,KAAK,oBAAoB,GAAG;KACzB,CAAC,IAAI,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC;CAC3C,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;AA8DtE,eAAO,MAAM,oBAAoB,WAAY,MAAM;;;;;;;;;;;;;;;;;;EA0ClD,CAAC;AAEF,eAAO,MAAM,0BAA0B,WAAY,MAAM;;;;;;;;;;;;;;;;;;EAgCxD,CAAC;AASF,qBAAa,cAAc;IACzB,UAAU,EAAE,MAAM,CAAC;IAEnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,MAAM,EAAE,MAAM,CAAC;IAEf,SAAS,EAAE,SAAS,CAAC;IAErB,MAAM,EAAE,MAAM,CAAC;IAEf,QAAQ,EAAE,OAAO,CAAC;IAElB,WAAW,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;gBAElC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAUpC,OAAO,CAAC,cAAc,EAAE,OAAO;IAKrC,aAAa;IAOP,0BAA0B;;;;;;;;;;;;;;;;;;;IAkB1B,YAAY;;;;;;;;;;;;;;;;;;;IAkBZ,MAAM;
|
|
1
|
+
{"version":3,"file":"DeviceCommands.d.ts","sourceRoot":"","sources":["../../src/device/DeviceCommands.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -833,6 +833,8 @@ declare class Device extends EventEmitter {
|
|
|
833
833
|
get features(): Features | undefined;
|
|
834
834
|
set features(features: Features | undefined);
|
|
835
835
|
runPromise?: Deferred<void> | null;
|
|
836
|
+
/** Resolves only after the active run has completed its release path. */
|
|
837
|
+
private runCleanupPromise?;
|
|
836
838
|
externalState: string[];
|
|
837
839
|
unavailableCapabilities: UnavailableCapabilities;
|
|
838
840
|
instance: number;
|
|
@@ -927,6 +929,7 @@ declare class Device extends EventEmitter {
|
|
|
927
929
|
private _initializeProtocolV2;
|
|
928
930
|
getFeatures(): Promise<Features | undefined>;
|
|
929
931
|
getDeviceState(params?: DeviceStateReadOptions): Promise<DeviceState>;
|
|
932
|
+
refreshProtocolV2SettingsAfterMutation(): Promise<DeviceState>;
|
|
930
933
|
_updateFeatures(protoFeatures: Messages.Features | Features, initSession?: boolean): void;
|
|
931
934
|
updateState(patch: DeviceStatePatch, source: DeviceStateUpdateSource): DeviceState & {
|
|
932
935
|
raw?: DeviceFeaturesRaw | undefined;
|
|
@@ -1090,7 +1093,7 @@ declare class Core extends EventEmitter {
|
|
|
1090
1093
|
readonly sdkInstanceId: string;
|
|
1091
1094
|
private requestQueue;
|
|
1092
1095
|
private disposePromise?;
|
|
1093
|
-
private
|
|
1096
|
+
private prePendingCallPromises;
|
|
1094
1097
|
private methodSynchronize;
|
|
1095
1098
|
constructor();
|
|
1096
1099
|
private getCoreContext;
|