@onekeyfe/hd-common-connect-sdk 1.2.8-alpha.51 → 1.2.8-alpha.52

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/README.md CHANGED
@@ -28,33 +28,6 @@ function init() {
28
28
  }
29
29
  ```
30
30
 
31
- ## Desktop USB identity discovery
32
-
33
- `probeUsbDeviceIdentities({ commType: 'webusb' | 'bridge' })` is a named export for
34
- choosing a Desktop connection before switching the active SDK. It does not require
35
- SDK initialization, dispose Core, change BLE settings, or open a wallet session.
36
- Concurrent probes for the same mode share one pending request.
37
-
38
- ```typescript
39
- import { probeUsbDeviceIdentities } from '@onekeyfe/hd-common-connect-sdk';
40
-
41
- const devices = await probeUsbDeviceIdentities({ commType: 'webusb' });
42
- ```
43
-
44
- Each result contains `path`, `serialNo`, `deviceId`, `deviceType`, `connectProtocol`,
45
- and `commType`. `path` locates the USB endpoint; compare `serialNo` with the target's
46
- physical identity, or `deviceId` for legacy devices without a physical serial.
47
- Missing identities remain `null`; a descriptor path is never substituted for them.
48
- The protocol comes from an active device response. V1 uses read-only Features;
49
- V2 uses hardware DeviceInfo and does not query a wallet session.
50
-
51
- Busy, ambiguous, disconnected, or unverified endpoints are omitted. An active
52
- WebUSB request's identity can be reused only for the exact USB handle it owns.
53
- Discovery releases only handles it acquired and does not replace the active SDK's
54
- disconnect observer. An empty result is not proof that the device is absent.
55
- Keep the selected transport fixed during a hardware operation; reevaluate it
56
- between operations. Firmware updates must separately validate their live target.
57
-
58
31
  ## Docs
59
32
 
60
33
  Documentation is available [Hardware SDK Getting Started](https://developer.onekey.so/en/hardware-sdk/getting-started)
@@ -1,15 +1,10 @@
1
1
  import { readFileSync } from 'fs';
2
2
  import { resolve } from 'path';
3
3
  import EventEmitter from 'events';
4
- import {
5
- CORE_EVENT,
6
- UI_REQUEST,
7
- initCore,
8
- probeUsbDeviceIdentitiesWithTransport,
9
- } from '@onekeyfe/hd-core';
4
+ import { CORE_EVENT, UI_REQUEST, initCore } from '@onekeyfe/hd-core';
10
5
  import { HardwareErrorCode, createDeferred } from '@onekeyfe/hd-shared';
11
6
 
12
- import sdkExport, { messagePromises, probeUsbDeviceIdentities } from '../src';
7
+ import sdkExport, { messagePromises } from '../src';
13
8
 
14
9
  jest.mock('../../core/src/data/config', () => ({
15
10
  getSDKVersion: jest.fn(() => '1.0.0-test'),
@@ -20,10 +15,9 @@ jest.mock('@onekeyfe/hd-core', () => ({
20
15
  __esModule: true,
21
16
  default: (options: unknown) => options,
22
17
  initCore: jest.fn(),
23
- probeUsbDeviceIdentitiesWithTransport: jest.fn(),
24
18
  }));
25
- jest.mock('@onekeyfe/hd-transport-http', () => ({ __esModule: true, default: jest.fn() }));
26
- jest.mock('@onekeyfe/hd-transport-web-device', () => ({ WebUsbTransport: jest.fn() }));
19
+ jest.mock('@onekeyfe/hd-transport-http', () => ({}));
20
+ jest.mock('@onekeyfe/hd-transport-web-device', () => ({}));
27
21
  jest.mock('@onekeyfe/hd-transport-lowlevel', () => ({}));
28
22
  jest.mock('@onekeyfe/hd-transport-emulator', () => ({}));
29
23
 
@@ -88,34 +82,6 @@ describe('SDK request cleanup', () => {
88
82
  expect(Object.keys(messagePromises)).toHaveLength(0);
89
83
  });
90
84
 
91
- test.each(['webusb', 'bridge'] as const)(
92
- 'probes %s without disposing an outstanding BLE request and coalesces concurrent probes',
93
- async commType => {
94
- const pending = createDeferred<unknown>();
95
- const discovery = createDeferred<never[]>();
96
- core.handleMessage.mockReturnValueOnce(pending.promise);
97
- const request = sdk.call({ method: 'getDeviceState' });
98
- jest
99
- .mocked(probeUsbDeviceIdentitiesWithTransport)
100
- .mockReset()
101
- .mockReturnValueOnce(discovery.promise);
102
- const initializationCount = jest.mocked(initCore).mock.calls.length;
103
- const first = probeUsbDeviceIdentities({ commType });
104
- const second = probeUsbDeviceIdentities({ commType });
105
- expect(second).toBe(first);
106
- expect(probeUsbDeviceIdentitiesWithTransport).toHaveBeenCalledTimes(1);
107
- discovery.resolve([]);
108
- await first;
109
- expect(core.dispose).not.toHaveBeenCalled();
110
- expect(initCore).toHaveBeenCalledTimes(initializationCount);
111
- expect(core.listenerCount(CORE_EVENT)).toBe(1);
112
- expect(Object.keys(messagePromises)).toHaveLength(1);
113
- pending.resolve({ success: true, payload: {} });
114
- await expect(request).resolves.toMatchObject({ success: true });
115
- expect(Object.keys(messagePromises)).toHaveLength(0);
116
- }
117
- );
118
-
119
85
  test('waits for Core disposal and does not retain old listeners after reinitialization', async () => {
120
86
  const cleanup = createDeferred<void>();
121
87
  core.dispose.mockImplementationOnce(async () => {
package/dist/index.d.ts CHANGED
@@ -1,14 +1,9 @@
1
1
  import * as _onekeyfe_hd_core from '@onekeyfe/hd-core';
2
- import { UsbDeviceIdentity } from '@onekeyfe/hd-core';
3
2
  import { Deferred } from '@onekeyfe/hd-shared';
4
3
 
5
- /** Identify USB without disposing the current SDK, changing settings, or opening a wallet. */
6
- declare const probeUsbDeviceIdentities: ({ commType, }: {
7
- commType: UsbDeviceIdentity['commType'];
8
- }) => Promise<UsbDeviceIdentity[]>;
9
4
  declare const messagePromises: {
10
5
  [key: number]: Deferred<any>;
11
6
  };
12
7
  declare const HardwareCommonConnectSdk: _onekeyfe_hd_core.CoreApi;
13
8
 
14
- export { HardwareCommonConnectSdk as default, messagePromises, probeUsbDeviceIdentities };
9
+ export { HardwareCommonConnectSdk as default, messagePromises };
package/dist/index.js CHANGED
@@ -607,31 +607,6 @@ var getTransport = function (env) { return __awaiter(void 0, void 0, void 0, fun
607
607
  }); };
608
608
  var _core;
609
609
  var _settings = HardwareSdk.parseConnectSettings();
610
- var usbIdentityProbeTransports = {};
611
- var usbIdentityProbes = {};
612
- /** Identify USB without disposing the current SDK, changing settings, or opening a wallet. */
613
- var probeUsbDeviceIdentities = function (_a) {
614
- var commType = _a.commType;
615
- if (commType !== 'webusb' && commType !== 'bridge') {
616
- return Promise.reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.CallMethodInvalidParameter));
617
- }
618
- var pending = usbIdentityProbes[commType];
619
- if (pending)
620
- return pending;
621
- var transport = usbIdentityProbeTransports[commType];
622
- if (!transport) {
623
- transport =
624
- commType === 'webusb' ? new hdTransportWebDevice.WebUsbTransport(true) : new HttpTransport__default["default"](undefined, 3000);
625
- usbIdentityProbeTransports[commType] = transport;
626
- }
627
- var probe = HardwareSdk.probeUsbDeviceIdentitiesWithTransport(transport, commType, function (descriptor) {
628
- return _core === null || _core === void 0 ? void 0 : _core.getOwnedUsbDeviceIdentity(descriptor);
629
- }).finally(function () {
630
- delete usbIdentityProbes[commType];
631
- });
632
- usbIdentityProbes[commType] = probe;
633
- return probe;
634
- };
635
610
  var _messageID = 0;
636
611
  var messagePromises = {};
637
612
  var dispose = function () { return __awaiter(void 0, void 0, void 0, function () {
@@ -815,4 +790,3 @@ var HardwareCommonConnectSdk = HardwareSdk__default["default"]({
815
790
 
816
791
  exports["default"] = HardwareCommonConnectSdk;
817
792
  exports.messagePromises = messagePromises;
818
- exports.probeUsbDeviceIdentities = probeUsbDeviceIdentities;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/hd-common-connect-sdk",
3
- "version": "1.2.8-alpha.51",
3
+ "version": "1.2.8-alpha.52",
4
4
  "author": "OneKey",
5
5
  "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
6
6
  "license": "ISC",
@@ -21,13 +21,13 @@
21
21
  "lint:fix": "eslint . --fix"
22
22
  },
23
23
  "dependencies": {
24
- "@onekeyfe/hd-core": "1.2.8-alpha.51",
25
- "@onekeyfe/hd-shared": "1.2.8-alpha.51",
26
- "@onekeyfe/hd-transport-emulator": "1.2.8-alpha.51",
27
- "@onekeyfe/hd-transport-http": "1.2.8-alpha.51",
28
- "@onekeyfe/hd-transport-lowlevel": "1.2.8-alpha.51",
29
- "@onekeyfe/hd-transport-usb": "1.2.8-alpha.51",
30
- "@onekeyfe/hd-transport-web-device": "1.2.8-alpha.51"
24
+ "@onekeyfe/hd-core": "1.2.8-alpha.52",
25
+ "@onekeyfe/hd-shared": "1.2.8-alpha.52",
26
+ "@onekeyfe/hd-transport-emulator": "1.2.8-alpha.52",
27
+ "@onekeyfe/hd-transport-http": "1.2.8-alpha.52",
28
+ "@onekeyfe/hd-transport-lowlevel": "1.2.8-alpha.52",
29
+ "@onekeyfe/hd-transport-usb": "1.2.8-alpha.52",
30
+ "@onekeyfe/hd-transport-web-device": "1.2.8-alpha.52"
31
31
  },
32
- "gitHead": "0ccbc08199c62e96f6084e864e558055100b66ed"
32
+ "gitHead": "389c588beb19de26451c729bb09bc8e7ce6b0717"
33
33
  }
package/src/index.ts CHANGED
@@ -17,7 +17,6 @@ import HardwareSdk, {
17
17
  getLogger,
18
18
  initCore,
19
19
  parseConnectSettings,
20
- probeUsbDeviceIdentitiesWithTransport,
21
20
  setLoggerPostMessage,
22
21
  } from '@onekeyfe/hd-core';
23
22
  import { ERRORS, HardwareErrorCode, createDeferred } from '@onekeyfe/hd-shared';
@@ -33,7 +32,6 @@ import type {
33
32
  CoreMessage,
34
33
  LowLevelCoreApi,
35
34
  UiResponseEvent,
36
- UsbDeviceIdentity,
37
35
  } from '@onekeyfe/hd-core';
38
36
  import type { LowlevelTransportSharedPlugin } from '@onekeyfe/hd-transport';
39
37
 
@@ -59,39 +57,6 @@ const getTransport = async (env: ConnectSettings['env']) => {
59
57
  let _core: Core | undefined;
60
58
  let _settings = parseConnectSettings();
61
59
 
62
- const usbIdentityProbeTransports: Partial<
63
- Record<UsbDeviceIdentity['commType'], WebUsbTransport | HttpTransport>
64
- > = {};
65
- const usbIdentityProbes: Partial<
66
- Record<UsbDeviceIdentity['commType'], Promise<UsbDeviceIdentity[]>>
67
- > = {};
68
-
69
- /** Identify USB without disposing the current SDK, changing settings, or opening a wallet. */
70
- export const probeUsbDeviceIdentities = ({
71
- commType,
72
- }: {
73
- commType: UsbDeviceIdentity['commType'];
74
- }): Promise<UsbDeviceIdentity[]> => {
75
- if (commType !== 'webusb' && commType !== 'bridge') {
76
- return Promise.reject(ERRORS.TypedError(HardwareErrorCode.CallMethodInvalidParameter));
77
- }
78
- const pending = usbIdentityProbes[commType];
79
- if (pending) return pending;
80
- let transport = usbIdentityProbeTransports[commType];
81
- if (!transport) {
82
- transport =
83
- commType === 'webusb' ? new WebUsbTransport(true) : new HttpTransport(undefined, 3000);
84
- usbIdentityProbeTransports[commType] = transport;
85
- }
86
- const probe = probeUsbDeviceIdentitiesWithTransport(transport, commType, descriptor =>
87
- _core?.getOwnedUsbDeviceIdentity(descriptor)
88
- ).finally(() => {
89
- delete usbIdentityProbes[commType];
90
- });
91
- usbIdentityProbes[commType] = probe;
92
- return probe;
93
- };
94
-
95
60
  let _messageID = 0;
96
61
  export const messagePromises: { [key: number]: Deferred<any> } = {};
97
62