@onekeyfe/hd-common-connect-sdk 1.1.34-alpha.1 → 1.1.34-alpha.3
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-state-event.test.js +97 -0
- package/dist/index.js +18 -5
- package/package.json +9 -9
- package/src/index.ts +20 -4
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { CORE_EVENT, DEVICE, DEVICE_EVENT, initCore } from '@onekeyfe/hd-core';
|
|
2
|
+
|
|
3
|
+
import HardwareCommonConnectSdk from '../src';
|
|
4
|
+
|
|
5
|
+
jest.mock('@onekeyfe/hd-core', () => {
|
|
6
|
+
const actual = jest.requireActual('@onekeyfe/hd-core');
|
|
7
|
+
return {
|
|
8
|
+
__esModule: true,
|
|
9
|
+
...actual,
|
|
10
|
+
default: ({ eventEmitter, init, dispose }) => ({
|
|
11
|
+
init,
|
|
12
|
+
dispose,
|
|
13
|
+
on: (type, listener) => eventEmitter.on(type, listener),
|
|
14
|
+
off: (type, listener) => eventEmitter.off(type, listener),
|
|
15
|
+
removeAllListeners: type => eventEmitter.removeAllListeners(type),
|
|
16
|
+
}),
|
|
17
|
+
initCore: jest.fn(),
|
|
18
|
+
};
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
describe('hd-common-connect-sdk device state events', () => {
|
|
22
|
+
test('forwards KnownDevice connect and disconnect payload wrappers to SDK consumers', async () => {
|
|
23
|
+
let handleCoreMessage;
|
|
24
|
+
const core = {
|
|
25
|
+
on: jest.fn((event, listener) => {
|
|
26
|
+
if (event === CORE_EVENT) {
|
|
27
|
+
handleCoreMessage = listener;
|
|
28
|
+
}
|
|
29
|
+
}),
|
|
30
|
+
dispose: jest.fn(),
|
|
31
|
+
};
|
|
32
|
+
initCore.mockResolvedValue(core);
|
|
33
|
+
const onConnect = jest.fn();
|
|
34
|
+
const onDisconnect = jest.fn();
|
|
35
|
+
HardwareCommonConnectSdk.on(DEVICE.CONNECT, onConnect);
|
|
36
|
+
HardwareCommonConnectSdk.on(DEVICE.DISCONNECT, onDisconnect);
|
|
37
|
+
|
|
38
|
+
await HardwareCommonConnectSdk.init({ env: 'lowlevel' });
|
|
39
|
+
const device = {
|
|
40
|
+
connectId: 'ble-connect-id',
|
|
41
|
+
serialNo: 'SERIAL-001',
|
|
42
|
+
uuid: 'SERIAL-001',
|
|
43
|
+
label: 'OneKey Test',
|
|
44
|
+
};
|
|
45
|
+
const payload = { device };
|
|
46
|
+
|
|
47
|
+
handleCoreMessage({
|
|
48
|
+
event: DEVICE_EVENT,
|
|
49
|
+
type: DEVICE.CONNECT,
|
|
50
|
+
payload,
|
|
51
|
+
});
|
|
52
|
+
handleCoreMessage({
|
|
53
|
+
event: DEVICE_EVENT,
|
|
54
|
+
type: DEVICE.DISCONNECT,
|
|
55
|
+
payload,
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
expect(onConnect).toHaveBeenCalledWith(payload);
|
|
59
|
+
expect(onDisconnect).toHaveBeenCalledWith(payload);
|
|
60
|
+
HardwareCommonConnectSdk.removeAllListeners(DEVICE.CONNECT);
|
|
61
|
+
HardwareCommonConnectSdk.removeAllListeners(DEVICE.DISCONNECT);
|
|
62
|
+
await HardwareCommonConnectSdk.dispose();
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
test('forwards Protocol V2 DEVICE.STATE payloads to SDK consumers', async () => {
|
|
66
|
+
let handleCoreMessage;
|
|
67
|
+
const core = {
|
|
68
|
+
on: jest.fn((event, listener) => {
|
|
69
|
+
if (event === CORE_EVENT) {
|
|
70
|
+
handleCoreMessage = listener;
|
|
71
|
+
}
|
|
72
|
+
}),
|
|
73
|
+
dispose: jest.fn(),
|
|
74
|
+
};
|
|
75
|
+
initCore.mockResolvedValue(core);
|
|
76
|
+
const listener = jest.fn();
|
|
77
|
+
HardwareCommonConnectSdk.on(DEVICE.STATE, listener);
|
|
78
|
+
|
|
79
|
+
await HardwareCommonConnectSdk.init({ env: 'webusb' });
|
|
80
|
+
const payload = {
|
|
81
|
+
connectId: 'connect-id',
|
|
82
|
+
revision: 1,
|
|
83
|
+
source: 'device-info',
|
|
84
|
+
changedKeys: ['protocolVersion'],
|
|
85
|
+
state: { protocol: 'V2', protocolVersion: 2 },
|
|
86
|
+
};
|
|
87
|
+
handleCoreMessage({
|
|
88
|
+
event: DEVICE_EVENT,
|
|
89
|
+
type: DEVICE.STATE,
|
|
90
|
+
payload,
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
expect(listener).toHaveBeenCalledWith(payload);
|
|
94
|
+
HardwareCommonConnectSdk.removeAllListeners(DEVICE.STATE);
|
|
95
|
+
await HardwareCommonConnectSdk.dispose();
|
|
96
|
+
});
|
|
97
|
+
});
|
package/dist/index.js
CHANGED
|
@@ -586,8 +586,9 @@ var getTransport = function (env) { return __awaiter(void 0, void 0, void 0, fun
|
|
|
586
586
|
return __generator(this, function (_a) {
|
|
587
587
|
switch (_a.label) {
|
|
588
588
|
case 0:
|
|
589
|
-
if (env === 'desktop-web-ble')
|
|
589
|
+
if (env === 'desktop-web-ble') {
|
|
590
590
|
return [2 /*return*/, hdTransportWebDevice.ElectronBleTransport];
|
|
591
|
+
}
|
|
591
592
|
if (env === 'webusb' || env === 'desktop-webusb')
|
|
592
593
|
return [2 /*return*/, hdTransportWebDevice.WebUsbTransport];
|
|
593
594
|
if (env === 'lowlevel')
|
|
@@ -626,13 +627,17 @@ var cancel = function (connectId) {
|
|
|
626
627
|
return;
|
|
627
628
|
_core.handleMessage({ event: HardwareSdk.IFRAME.CANCEL, type: HardwareSdk.IFRAME.CANCEL, payload: { connectId: connectId } });
|
|
628
629
|
};
|
|
630
|
+
var cancelOperation = function (operationId) {
|
|
631
|
+
_core === null || _core === void 0 ? void 0 : _core.cancelOperation(operationId);
|
|
632
|
+
};
|
|
629
633
|
function handleMessage(message) {
|
|
630
634
|
var event = message.event;
|
|
631
635
|
if (!_core) {
|
|
632
636
|
return;
|
|
633
637
|
}
|
|
638
|
+
var blockLog = HardwareSdk.getLogBlockLabel(message);
|
|
634
639
|
if (event !== HardwareSdk.LOG_EVENT) {
|
|
635
|
-
Log.debug('hd-common-connect-sdk handleMessage', message);
|
|
640
|
+
Log.debug('hd-common-connect-sdk handleMessage', blockLog !== null && blockLog !== void 0 ? blockLog : message);
|
|
636
641
|
}
|
|
637
642
|
switch (event) {
|
|
638
643
|
case HardwareSdk.UI_EVENT:
|
|
@@ -645,7 +650,13 @@ function handleMessage(message) {
|
|
|
645
650
|
eventEmitter.emit(message.event, message);
|
|
646
651
|
break;
|
|
647
652
|
case HardwareSdk.DEVICE_EVENT:
|
|
648
|
-
if ([
|
|
653
|
+
if ([
|
|
654
|
+
HardwareSdk.DEVICE.CONNECT,
|
|
655
|
+
HardwareSdk.DEVICE.DISCONNECT,
|
|
656
|
+
HardwareSdk.DEVICE.FEATURES,
|
|
657
|
+
HardwareSdk.DEVICE.STATE,
|
|
658
|
+
HardwareSdk.DEVICE.SUPPORT_FEATURES,
|
|
659
|
+
].includes(message.type)) {
|
|
649
660
|
eventEmitter.emit(message.type, message.payload);
|
|
650
661
|
}
|
|
651
662
|
break;
|
|
@@ -713,12 +724,13 @@ var init = function (settings, _, plugin) { return __awaiter(void 0, void 0, voi
|
|
|
713
724
|
});
|
|
714
725
|
}); };
|
|
715
726
|
var call = function (params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
716
|
-
var response, error_2;
|
|
727
|
+
var blockLog, response, error_2;
|
|
717
728
|
var _a, _b, _c;
|
|
718
729
|
return __generator(this, function (_d) {
|
|
719
730
|
switch (_d.label) {
|
|
720
731
|
case 0:
|
|
721
|
-
|
|
732
|
+
blockLog = HardwareSdk.getLogBlockLabel(params);
|
|
733
|
+
Log.debug('call: ', blockLog !== null && blockLog !== void 0 ? blockLog : params);
|
|
722
734
|
_d.label = 1;
|
|
723
735
|
case 1:
|
|
724
736
|
_d.trys.push([1, 3, , 4]);
|
|
@@ -756,6 +768,7 @@ var HardwareCommonConnectSdk = HardwareSdk__default["default"]({
|
|
|
756
768
|
init: init,
|
|
757
769
|
call: call,
|
|
758
770
|
cancel: cancel,
|
|
771
|
+
cancelOperation: cancelOperation,
|
|
759
772
|
dispose: dispose,
|
|
760
773
|
uiResponse: uiResponse,
|
|
761
774
|
updateSettings: updateSettings,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-common-connect-sdk",
|
|
3
|
-
"version": "1.1.34-alpha.
|
|
3
|
+
"version": "1.1.34-alpha.3",
|
|
4
4
|
"author": "OneKey",
|
|
5
5
|
"homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
|
|
6
6
|
"license": "ISC",
|
|
@@ -20,13 +20,13 @@
|
|
|
20
20
|
"lint:fix": "eslint . --fix"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@onekeyfe/hd-core": "1.1.34-alpha.
|
|
24
|
-
"@onekeyfe/hd-shared": "1.1.34-alpha.
|
|
25
|
-
"@onekeyfe/hd-transport-emulator": "1.1.34-alpha.
|
|
26
|
-
"@onekeyfe/hd-transport-http": "1.1.34-alpha.
|
|
27
|
-
"@onekeyfe/hd-transport-lowlevel": "1.1.34-alpha.
|
|
28
|
-
"@onekeyfe/hd-transport-usb": "1.1.34-alpha.
|
|
29
|
-
"@onekeyfe/hd-transport-web-device": "1.1.34-alpha.
|
|
23
|
+
"@onekeyfe/hd-core": "1.1.34-alpha.3",
|
|
24
|
+
"@onekeyfe/hd-shared": "1.1.34-alpha.3",
|
|
25
|
+
"@onekeyfe/hd-transport-emulator": "1.1.34-alpha.3",
|
|
26
|
+
"@onekeyfe/hd-transport-http": "1.1.34-alpha.3",
|
|
27
|
+
"@onekeyfe/hd-transport-lowlevel": "1.1.34-alpha.3",
|
|
28
|
+
"@onekeyfe/hd-transport-usb": "1.1.34-alpha.3",
|
|
29
|
+
"@onekeyfe/hd-transport-web-device": "1.1.34-alpha.3"
|
|
30
30
|
},
|
|
31
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "3688bc8495eeb2ffd5616270d13fa29e8967623a"
|
|
32
32
|
}
|
package/src/index.ts
CHANGED
|
@@ -13,6 +13,7 @@ import HardwareSdk, {
|
|
|
13
13
|
createUiMessage,
|
|
14
14
|
enableLog,
|
|
15
15
|
executeCallback,
|
|
16
|
+
getLogBlockLabel,
|
|
16
17
|
getLogger,
|
|
17
18
|
initCore,
|
|
18
19
|
parseConnectSettings,
|
|
@@ -38,7 +39,9 @@ const eventEmitter = new EventEmitter();
|
|
|
38
39
|
const Log = getLogger(LoggerNames.HdCommonConnectSdk);
|
|
39
40
|
|
|
40
41
|
const getTransport = async (env: ConnectSettings['env']) => {
|
|
41
|
-
if (env === 'desktop-web-ble')
|
|
42
|
+
if (env === 'desktop-web-ble') {
|
|
43
|
+
return ElectronBleTransport;
|
|
44
|
+
}
|
|
42
45
|
if (env === 'webusb' || env === 'desktop-webusb') return WebUsbTransport;
|
|
43
46
|
if (env === 'lowlevel') return LowlevelTransport;
|
|
44
47
|
if (env === 'node-usb') {
|
|
@@ -76,14 +79,19 @@ const cancel = (connectId?: string) => {
|
|
|
76
79
|
_core.handleMessage({ event: IFRAME.CANCEL, type: IFRAME.CANCEL, payload: { connectId } });
|
|
77
80
|
};
|
|
78
81
|
|
|
82
|
+
const cancelOperation = (operationId: string) => {
|
|
83
|
+
_core?.cancelOperation(operationId);
|
|
84
|
+
};
|
|
85
|
+
|
|
79
86
|
function handleMessage(message: CoreMessage) {
|
|
80
87
|
const { event } = message;
|
|
81
88
|
if (!_core) {
|
|
82
89
|
return;
|
|
83
90
|
}
|
|
84
91
|
|
|
92
|
+
const blockLog = getLogBlockLabel(message);
|
|
85
93
|
if (event !== LOG_EVENT) {
|
|
86
|
-
Log.debug('hd-common-connect-sdk handleMessage', message);
|
|
94
|
+
Log.debug('hd-common-connect-sdk handleMessage', blockLog ?? message);
|
|
87
95
|
}
|
|
88
96
|
switch (event) {
|
|
89
97
|
case UI_EVENT:
|
|
@@ -98,7 +106,13 @@ function handleMessage(message: CoreMessage) {
|
|
|
98
106
|
case DEVICE_EVENT:
|
|
99
107
|
if (
|
|
100
108
|
(
|
|
101
|
-
[
|
|
109
|
+
[
|
|
110
|
+
DEVICE.CONNECT,
|
|
111
|
+
DEVICE.DISCONNECT,
|
|
112
|
+
DEVICE.FEATURES,
|
|
113
|
+
DEVICE.STATE,
|
|
114
|
+
DEVICE.SUPPORT_FEATURES,
|
|
115
|
+
] as string[]
|
|
102
116
|
).includes(message.type)
|
|
103
117
|
) {
|
|
104
118
|
eventEmitter.emit(message.type, message.payload);
|
|
@@ -157,7 +171,8 @@ const init = async (
|
|
|
157
171
|
};
|
|
158
172
|
|
|
159
173
|
const call = async (params: any) => {
|
|
160
|
-
|
|
174
|
+
const blockLog = getLogBlockLabel(params);
|
|
175
|
+
Log.debug('call: ', blockLog ?? params);
|
|
161
176
|
|
|
162
177
|
try {
|
|
163
178
|
const response = await postMessage({ event: IFRAME.CALL, type: IFRAME.CALL, payload: params });
|
|
@@ -194,6 +209,7 @@ const HardwareCommonConnectSdk = HardwareSdk({
|
|
|
194
209
|
init,
|
|
195
210
|
call,
|
|
196
211
|
cancel,
|
|
212
|
+
cancelOperation,
|
|
197
213
|
dispose,
|
|
198
214
|
uiResponse,
|
|
199
215
|
updateSettings,
|