@onekeyfe/hd-common-connect-sdk 1.2.0-alpha.16 → 1.2.0-alpha.161

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);
@@ -627,18 +641,11 @@ var cancel = function (connectId) {
627
641
  return;
628
642
  _core.handleMessage({ event: HardwareSdk.IFRAME.CANCEL, type: HardwareSdk.IFRAME.CANCEL, payload: { connectId: connectId } });
629
643
  };
630
- var cancelOperation = function (operationId) {
631
- _core === null || _core === void 0 ? void 0 : _core.cancelOperation(operationId);
632
- };
633
644
  function handleMessage(message) {
634
645
  var event = message.event;
635
646
  if (!_core) {
636
647
  return;
637
648
  }
638
- var blockLog = HardwareSdk.getLogBlockLabel(message);
639
- if (event !== HardwareSdk.LOG_EVENT) {
640
- Log.debug('hd-common-connect-sdk handleMessage', blockLog !== null && blockLog !== void 0 ? blockLog : message);
641
- }
642
649
  switch (event) {
643
650
  case HardwareSdk.UI_EVENT:
644
651
  // pass UI event up
@@ -650,7 +657,13 @@ function handleMessage(message) {
650
657
  eventEmitter.emit(message.event, message);
651
658
  break;
652
659
  case HardwareSdk.DEVICE_EVENT:
653
- if ([HardwareSdk.DEVICE.CONNECT, HardwareSdk.DEVICE.DISCONNECT, HardwareSdk.DEVICE.FEATURES, HardwareSdk.DEVICE.SUPPORT_FEATURES].includes(message.type)) {
660
+ if ([
661
+ HardwareSdk.DEVICE.CONNECT,
662
+ HardwareSdk.DEVICE.DISCONNECT,
663
+ HardwareSdk.DEVICE.FEATURES,
664
+ HardwareSdk.DEVICE.STATE,
665
+ HardwareSdk.DEVICE.SUPPORT_FEATURES,
666
+ ].includes(message.type)) {
654
667
  eventEmitter.emit(message.type, message.payload);
655
668
  }
656
669
  break;
@@ -732,7 +745,7 @@ var call = function (params) { return __awaiter(void 0, void 0, void 0, function
732
745
  case 2:
733
746
  response = _d.sent();
734
747
  if (response) {
735
- Log.debug('response: ', response);
748
+ Log.debug('response: ', blockLog ? '[REDACTED]' : response);
736
749
  if (!response.success) {
737
750
  if (((_a = response.payload) === null || _a === void 0 ? void 0 : _a.code) === hdShared.HardwareErrorCode.BleUnsupported) {
738
751
  postMessage(HardwareSdk.createUiMessage(HardwareSdk.UI_REQUEST.BLUETOOTH_UNSUPPORTED), false);
@@ -762,7 +775,6 @@ var HardwareCommonConnectSdk = HardwareSdk__default["default"]({
762
775
  init: init,
763
776
  call: call,
764
777
  cancel: cancel,
765
- cancelOperation: cancelOperation,
766
778
  dispose: dispose,
767
779
  uiResponse: uiResponse,
768
780
  updateSettings: updateSettings,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/hd-common-connect-sdk",
3
- "version": "1.2.0-alpha.16",
3
+ "version": "1.2.0-alpha.161",
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.16",
24
- "@onekeyfe/hd-shared": "1.2.0-alpha.16",
25
- "@onekeyfe/hd-transport-emulator": "1.2.0-alpha.16",
26
- "@onekeyfe/hd-transport-http": "1.2.0-alpha.16",
27
- "@onekeyfe/hd-transport-lowlevel": "1.2.0-alpha.16",
28
- "@onekeyfe/hd-transport-usb": "1.2.0-alpha.16",
29
- "@onekeyfe/hd-transport-web-device": "1.2.0-alpha.16"
23
+ "@onekeyfe/hd-core": "1.2.0-alpha.161",
24
+ "@onekeyfe/hd-shared": "1.2.0-alpha.161",
25
+ "@onekeyfe/hd-transport-emulator": "1.2.0-alpha.161",
26
+ "@onekeyfe/hd-transport-http": "1.2.0-alpha.161",
27
+ "@onekeyfe/hd-transport-lowlevel": "1.2.0-alpha.161",
28
+ "@onekeyfe/hd-transport-usb": "1.2.0-alpha.161",
29
+ "@onekeyfe/hd-transport-web-device": "1.2.0-alpha.161"
30
30
  },
31
- "gitHead": "2356d951f63a39a46bc995c2090348a383966175"
31
+ "gitHead": "06316117fc9a7ebaecea1ca583b2d105709361bf"
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) => {
@@ -79,20 +84,12 @@ const cancel = (connectId?: string) => {
79
84
  _core.handleMessage({ event: IFRAME.CANCEL, type: IFRAME.CANCEL, payload: { connectId } });
80
85
  };
81
86
 
82
- const cancelOperation = (operationId: string) => {
83
- _core?.cancelOperation(operationId);
84
- };
85
-
86
87
  function handleMessage(message: CoreMessage) {
87
88
  const { event } = message;
88
89
  if (!_core) {
89
90
  return;
90
91
  }
91
92
 
92
- const blockLog = getLogBlockLabel(message);
93
- if (event !== LOG_EVENT) {
94
- Log.debug('hd-common-connect-sdk handleMessage', blockLog ?? message);
95
- }
96
93
  switch (event) {
97
94
  case UI_EVENT:
98
95
  // pass UI event up
@@ -106,7 +103,13 @@ function handleMessage(message: CoreMessage) {
106
103
  case DEVICE_EVENT:
107
104
  if (
108
105
  (
109
- [DEVICE.CONNECT, DEVICE.DISCONNECT, DEVICE.FEATURES, DEVICE.SUPPORT_FEATURES] as string[]
106
+ [
107
+ DEVICE.CONNECT,
108
+ DEVICE.DISCONNECT,
109
+ DEVICE.FEATURES,
110
+ DEVICE.STATE,
111
+ DEVICE.SUPPORT_FEATURES,
112
+ ] as string[]
110
113
  ).includes(message.type)
111
114
  ) {
112
115
  eventEmitter.emit(message.type, message.payload);
@@ -171,7 +174,7 @@ const call = async (params: any) => {
171
174
  try {
172
175
  const response = await postMessage({ event: IFRAME.CALL, type: IFRAME.CALL, payload: params });
173
176
  if (response) {
174
- Log.debug('response: ', response);
177
+ Log.debug('response: ', blockLog ? '[REDACTED]' : response);
175
178
 
176
179
  if (!response.success) {
177
180
  if (response.payload?.code === HardwareErrorCode.BleUnsupported) {
@@ -203,7 +206,6 @@ const HardwareCommonConnectSdk = HardwareSdk({
203
206
  init,
204
207
  call,
205
208
  cancel,
206
- cancelOperation,
207
209
  dispose,
208
210
  uiResponse,
209
211
  updateSettings,