@onekeyfe/hd-common-connect-sdk 1.2.0-alpha.3 → 1.2.0-alpha.31

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.
@@ -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
+ });
@@ -0,0 +1,11 @@
1
+ import { readFileSync } from 'fs';
2
+ import { resolve } from 'path';
3
+
4
+ describe('hd-common-connect-sdk device state events', () => {
5
+ test('forwards the canonical DEVICE.STATE event to SDK consumers', () => {
6
+ const source = readFileSync(resolve(__dirname, '../src/index.ts'), 'utf8');
7
+
8
+ expect(source).toContain('DEVICE.STATE');
9
+ expect(source).toContain('eventEmitter.emit(message.type, message.payload)');
10
+ });
11
+ });
package/dist/index.js CHANGED
@@ -609,12 +609,26 @@ var _core;
609
609
  var _settings = HardwareSdk.parseConnectSettings();
610
610
  var _messageID = 0;
611
611
  var messagePromises = {};
612
- var dispose = function () {
612
+ var dispose = function () { return __awaiter(void 0, void 0, void 0, function () {
613
+ var core;
613
614
  var _a;
614
- eventEmitter.removeAllListeners();
615
- (_a = _core === null || _core === void 0 ? void 0 : _core.dispose) === null || _a === void 0 ? void 0 : _a.call(_core);
616
- _settings = HardwareSdk.parseConnectSettings();
617
- };
615
+ return __generator(this, function (_b) {
616
+ switch (_b.label) {
617
+ case 0:
618
+ core = _core;
619
+ _core = undefined;
620
+ eventEmitter.removeAllListeners();
621
+ Object.keys(messagePromises).forEach(function (key) {
622
+ delete messagePromises[Number(key)];
623
+ });
624
+ _settings = HardwareSdk.parseConnectSettings();
625
+ return [4 /*yield*/, ((_a = core === null || core === void 0 ? void 0 : core.dispose) === null || _a === void 0 ? void 0 : _a.call(core))];
626
+ case 1:
627
+ _b.sent();
628
+ return [2 /*return*/];
629
+ }
630
+ });
631
+ }); };
618
632
  var uiResponse = function (response) {
619
633
  if (!_core) {
620
634
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.NotInitialized);
@@ -647,7 +661,13 @@ function handleMessage(message) {
647
661
  eventEmitter.emit(message.event, message);
648
662
  break;
649
663
  case HardwareSdk.DEVICE_EVENT:
650
- if ([HardwareSdk.DEVICE.CONNECT, HardwareSdk.DEVICE.DISCONNECT, HardwareSdk.DEVICE.FEATURES, HardwareSdk.DEVICE.SUPPORT_FEATURES].includes(message.type)) {
664
+ if ([
665
+ HardwareSdk.DEVICE.CONNECT,
666
+ HardwareSdk.DEVICE.DISCONNECT,
667
+ HardwareSdk.DEVICE.FEATURES,
668
+ HardwareSdk.DEVICE.STATE,
669
+ HardwareSdk.DEVICE.SUPPORT_FEATURES,
670
+ ].includes(message.type)) {
651
671
  eventEmitter.emit(message.type, message.payload);
652
672
  }
653
673
  break;
@@ -729,7 +749,7 @@ var call = function (params) { return __awaiter(void 0, void 0, void 0, function
729
749
  case 2:
730
750
  response = _d.sent();
731
751
  if (response) {
732
- Log.debug('response: ', response);
752
+ Log.debug('response: ', blockLog ? '[REDACTED]' : response);
733
753
  if (!response.success) {
734
754
  if (((_a = response.payload) === null || _a === void 0 ? void 0 : _a.code) === hdShared.HardwareErrorCode.BleUnsupported) {
735
755
  postMessage(HardwareSdk.createUiMessage(HardwareSdk.UI_REQUEST.BLUETOOTH_UNSUPPORTED), false);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/hd-common-connect-sdk",
3
- "version": "1.2.0-alpha.3",
3
+ "version": "1.2.0-alpha.31",
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.2.0-alpha.3",
24
- "@onekeyfe/hd-shared": "1.2.0-alpha.3",
25
- "@onekeyfe/hd-transport-emulator": "1.2.0-alpha.3",
26
- "@onekeyfe/hd-transport-http": "1.2.0-alpha.3",
27
- "@onekeyfe/hd-transport-lowlevel": "1.2.0-alpha.3",
28
- "@onekeyfe/hd-transport-usb": "1.2.0-alpha.3",
29
- "@onekeyfe/hd-transport-web-device": "1.2.0-alpha.3"
23
+ "@onekeyfe/hd-core": "1.2.0-alpha.31",
24
+ "@onekeyfe/hd-shared": "1.2.0-alpha.31",
25
+ "@onekeyfe/hd-transport-emulator": "1.2.0-alpha.31",
26
+ "@onekeyfe/hd-transport-http": "1.2.0-alpha.31",
27
+ "@onekeyfe/hd-transport-lowlevel": "1.2.0-alpha.31",
28
+ "@onekeyfe/hd-transport-usb": "1.2.0-alpha.31",
29
+ "@onekeyfe/hd-transport-web-device": "1.2.0-alpha.31"
30
30
  },
31
- "gitHead": "54a4a40baee7e376b9a810dade60007d2c9b00c9"
31
+ "gitHead": "01354bd66a7ef042a47f45c9ba80c49ba5b241de"
32
32
  }
package/src/index.ts CHANGED
@@ -60,10 +60,15 @@ let _settings = parseConnectSettings();
60
60
  let _messageID = 0;
61
61
  export const messagePromises: { [key: number]: Deferred<any> } = {};
62
62
 
63
- const dispose = () => {
63
+ const dispose = async () => {
64
+ const core = _core;
65
+ _core = undefined;
64
66
  eventEmitter.removeAllListeners();
65
- _core?.dispose?.();
67
+ Object.keys(messagePromises).forEach(key => {
68
+ delete messagePromises[Number(key)];
69
+ });
66
70
  _settings = parseConnectSettings();
71
+ await core?.dispose?.();
67
72
  };
68
73
 
69
74
  const uiResponse = (response: UiResponseEvent) => {
@@ -102,7 +107,13 @@ function handleMessage(message: CoreMessage) {
102
107
  case DEVICE_EVENT:
103
108
  if (
104
109
  (
105
- [DEVICE.CONNECT, DEVICE.DISCONNECT, DEVICE.FEATURES, DEVICE.SUPPORT_FEATURES] as string[]
110
+ [
111
+ DEVICE.CONNECT,
112
+ DEVICE.DISCONNECT,
113
+ DEVICE.FEATURES,
114
+ DEVICE.STATE,
115
+ DEVICE.SUPPORT_FEATURES,
116
+ ] as string[]
106
117
  ).includes(message.type)
107
118
  ) {
108
119
  eventEmitter.emit(message.type, message.payload);
@@ -167,7 +178,7 @@ const call = async (params: any) => {
167
178
  try {
168
179
  const response = await postMessage({ event: IFRAME.CALL, type: IFRAME.CALL, payload: params });
169
180
  if (response) {
170
- Log.debug('response: ', response);
181
+ Log.debug('response: ', blockLog ? '[REDACTED]' : response);
171
182
 
172
183
  if (!response.success) {
173
184
  if (response.payload?.code === HardwareErrorCode.BleUnsupported) {