@onekeyfe/hd-shared 1.0.37 → 1.0.38-alpha.0

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.
@@ -1,5 +1,33 @@
1
+ /// <reference types="node" />
1
2
  export declare const ONEKEY_WEBUSB_FILTER: {
2
3
  vendorId: number;
3
4
  productId: number;
4
5
  }[];
6
+ export declare enum EOneKeyBleMessageKeys {
7
+ BLE_SELECT = "$onekey-ble-select",
8
+ BLE_SELECT_RESULT = "$onekey-ble-select-result",
9
+ BLE_STOP_SCAN = "$onekey-ble-stop-scan",
10
+ BLE_CANCEL_REQUEST = "$onekey-ble-cancel-request",
11
+ BLE_PRE_SELECT = "$onekey-ble-pre-select",
12
+ BLE_CLEAR_PRE_SELECT = "$onekey-ble-clear-pre-select",
13
+ BLE_PAIRING_REQUEST = "$onekey-ble-pairing-request",
14
+ BLE_PAIRING_RESPONSE = "$onekey-ble-pairing-response",
15
+ BLE_ENUMERATE = "$onekey-ble-enumerate",
16
+ BLE_ENUMERATE_RESULT = "$onekey-ble-enumerate-result",
17
+ BLE_DEVICE_DISCONNECTED = "$onekey-ble-device-disconnected",
18
+ NOBLE_BLE_ENUMERATE = "$onekey-noble-ble-enumerate",
19
+ NOBLE_BLE_STOP_SCAN = "$onekey-noble-ble-stop-scan",
20
+ NOBLE_BLE_GET_DEVICE = "$onekey-noble-ble-get-device",
21
+ NOBLE_BLE_CONNECT = "$onekey-noble-ble-connect",
22
+ NOBLE_BLE_DISCONNECT = "$onekey-noble-ble-disconnect",
23
+ NOBLE_BLE_WRITE = "$onekey-noble-ble-write",
24
+ NOBLE_BLE_SUBSCRIBE = "$onekey-noble-ble-subscribe",
25
+ NOBLE_BLE_UNSUBSCRIBE = "$onekey-noble-ble-unsubscribe",
26
+ NOBLE_BLE_NOTIFICATION = "$onekey-noble-ble-notification"
27
+ }
28
+ export declare const ONEKEY_SERVICE_UUID = "00000001-0000-1000-8000-00805f9b34fb";
29
+ export declare const ONEKEY_WRITE_CHARACTERISTIC_UUID = "00000002-0000-1000-8000-00805f9b34fb";
30
+ export declare const ONEKEY_NOTIFY_CHARACTERISTIC_UUID = "00000003-0000-1000-8000-00805f9b34fb";
31
+ export declare const isHeaderChunk: (chunk: Buffer | Uint8Array) => boolean;
32
+ export declare const isOnekeyDevice: (name: string | null, id?: string) => boolean;
5
33
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB;;;GAOhC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAAA,eAAO,MAAM,oBAAoB;;;GAOhC,CAAC;AAGF,oBAAY,qBAAqB;IAE/B,UAAU,uBAAuB;IACjC,iBAAiB,8BAA8B;IAC/C,aAAa,0BAA0B;IACvC,kBAAkB,+BAA+B;IACjD,cAAc,2BAA2B;IACzC,oBAAoB,iCAAiC;IAGrD,mBAAmB,gCAAgC;IACnD,oBAAoB,iCAAiC;IAGrD,aAAa,0BAA0B;IACvC,oBAAoB,iCAAiC;IAGrD,uBAAuB,oCAAoC;IAG3D,mBAAmB,gCAAgC;IACnD,mBAAmB,gCAAgC;IACnD,oBAAoB,iCAAiC;IACrD,iBAAiB,8BAA8B;IAC/C,oBAAoB,iCAAiC;IACrD,eAAe,4BAA4B;IAC3C,mBAAmB,gCAAgC;IACnD,qBAAqB,kCAAkC;IACvD,sBAAsB,mCAAmC;CAC1D;AAED,eAAO,MAAM,mBAAmB,yCAAyC,CAAC;AAC1E,eAAO,MAAM,gCAAgC,yCAAyC,CAAC;AACvF,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AAIxF,eAAO,MAAM,aAAa,UAAW,MAAM,GAAG,UAAU,KAAG,OAa1D,CAAC;AAEF,eAAO,MAAM,cAAc,SAAU,MAAM,GAAG,IAAI,OAAO,MAAM,KAAG,OAYjE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,33 @@ declare const ONEKEY_WEBUSB_FILTER: {
2
2
  vendorId: number;
3
3
  productId: number;
4
4
  }[];
5
+ declare enum EOneKeyBleMessageKeys {
6
+ BLE_SELECT = "$onekey-ble-select",
7
+ BLE_SELECT_RESULT = "$onekey-ble-select-result",
8
+ BLE_STOP_SCAN = "$onekey-ble-stop-scan",
9
+ BLE_CANCEL_REQUEST = "$onekey-ble-cancel-request",
10
+ BLE_PRE_SELECT = "$onekey-ble-pre-select",
11
+ BLE_CLEAR_PRE_SELECT = "$onekey-ble-clear-pre-select",
12
+ BLE_PAIRING_REQUEST = "$onekey-ble-pairing-request",
13
+ BLE_PAIRING_RESPONSE = "$onekey-ble-pairing-response",
14
+ BLE_ENUMERATE = "$onekey-ble-enumerate",
15
+ BLE_ENUMERATE_RESULT = "$onekey-ble-enumerate-result",
16
+ BLE_DEVICE_DISCONNECTED = "$onekey-ble-device-disconnected",
17
+ NOBLE_BLE_ENUMERATE = "$onekey-noble-ble-enumerate",
18
+ NOBLE_BLE_STOP_SCAN = "$onekey-noble-ble-stop-scan",
19
+ NOBLE_BLE_GET_DEVICE = "$onekey-noble-ble-get-device",
20
+ NOBLE_BLE_CONNECT = "$onekey-noble-ble-connect",
21
+ NOBLE_BLE_DISCONNECT = "$onekey-noble-ble-disconnect",
22
+ NOBLE_BLE_WRITE = "$onekey-noble-ble-write",
23
+ NOBLE_BLE_SUBSCRIBE = "$onekey-noble-ble-subscribe",
24
+ NOBLE_BLE_UNSUBSCRIBE = "$onekey-noble-ble-unsubscribe",
25
+ NOBLE_BLE_NOTIFICATION = "$onekey-noble-ble-notification"
26
+ }
27
+ declare const ONEKEY_SERVICE_UUID = "00000001-0000-1000-8000-00805f9b34fb";
28
+ declare const ONEKEY_WRITE_CHARACTERISTIC_UUID = "00000002-0000-1000-8000-00805f9b34fb";
29
+ declare const ONEKEY_NOTIFY_CHARACTERISTIC_UUID = "00000003-0000-1000-8000-00805f9b34fb";
30
+ declare const isHeaderChunk: (chunk: Buffer | Uint8Array) => boolean;
31
+ declare const isOnekeyDevice: (name: string | null, id?: string) => boolean;
5
32
 
6
33
  type Deferred<T, I = any, D = any> = {
7
34
  id?: I;
@@ -167,4 +194,4 @@ declare enum EDeviceType {
167
194
  Pro = "pro"
168
195
  }
169
196
 
170
- export { CreateErrorByMessage, Deferred, EDeviceType, HardwareError$1 as ERRORS, HardwareError, HardwareErrorCode, HardwareErrorCodeMessage, IHardwareError, ONEKEY_WEBUSB_FILTER, TypedError, createDeferred, createDeprecatedHardwareError, createNeedUpgradeFirmwareHardwareError, createNewFirmwareForceUpdateHardwareError, createNewFirmwareUnReleaseHardwareError, serializeError, wait };
197
+ export { CreateErrorByMessage, Deferred, EDeviceType, EOneKeyBleMessageKeys, HardwareError$1 as ERRORS, HardwareError, HardwareErrorCode, HardwareErrorCodeMessage, IHardwareError, ONEKEY_NOTIFY_CHARACTERISTIC_UUID, ONEKEY_SERVICE_UUID, ONEKEY_WEBUSB_FILTER, ONEKEY_WRITE_CHARACTERISTIC_UUID, TypedError, createDeferred, createDeprecatedHardwareError, createNeedUpgradeFirmwareHardwareError, createNewFirmwareForceUpdateHardwareError, createNewFirmwareUnReleaseHardwareError, isHeaderChunk, isOnekeyDevice, serializeError, wait };
package/dist/index.js CHANGED
@@ -8,6 +8,56 @@ const ONEKEY_WEBUSB_FILTER = [
8
8
  { vendorId: 0x1209, productId: 0x4f4a },
9
9
  { vendorId: 0x1209, productId: 0x4f4b },
10
10
  ];
11
+ exports.EOneKeyBleMessageKeys = void 0;
12
+ (function (EOneKeyBleMessageKeys) {
13
+ EOneKeyBleMessageKeys["BLE_SELECT"] = "$onekey-ble-select";
14
+ EOneKeyBleMessageKeys["BLE_SELECT_RESULT"] = "$onekey-ble-select-result";
15
+ EOneKeyBleMessageKeys["BLE_STOP_SCAN"] = "$onekey-ble-stop-scan";
16
+ EOneKeyBleMessageKeys["BLE_CANCEL_REQUEST"] = "$onekey-ble-cancel-request";
17
+ EOneKeyBleMessageKeys["BLE_PRE_SELECT"] = "$onekey-ble-pre-select";
18
+ EOneKeyBleMessageKeys["BLE_CLEAR_PRE_SELECT"] = "$onekey-ble-clear-pre-select";
19
+ EOneKeyBleMessageKeys["BLE_PAIRING_REQUEST"] = "$onekey-ble-pairing-request";
20
+ EOneKeyBleMessageKeys["BLE_PAIRING_RESPONSE"] = "$onekey-ble-pairing-response";
21
+ EOneKeyBleMessageKeys["BLE_ENUMERATE"] = "$onekey-ble-enumerate";
22
+ EOneKeyBleMessageKeys["BLE_ENUMERATE_RESULT"] = "$onekey-ble-enumerate-result";
23
+ EOneKeyBleMessageKeys["BLE_DEVICE_DISCONNECTED"] = "$onekey-ble-device-disconnected";
24
+ EOneKeyBleMessageKeys["NOBLE_BLE_ENUMERATE"] = "$onekey-noble-ble-enumerate";
25
+ EOneKeyBleMessageKeys["NOBLE_BLE_STOP_SCAN"] = "$onekey-noble-ble-stop-scan";
26
+ EOneKeyBleMessageKeys["NOBLE_BLE_GET_DEVICE"] = "$onekey-noble-ble-get-device";
27
+ EOneKeyBleMessageKeys["NOBLE_BLE_CONNECT"] = "$onekey-noble-ble-connect";
28
+ EOneKeyBleMessageKeys["NOBLE_BLE_DISCONNECT"] = "$onekey-noble-ble-disconnect";
29
+ EOneKeyBleMessageKeys["NOBLE_BLE_WRITE"] = "$onekey-noble-ble-write";
30
+ EOneKeyBleMessageKeys["NOBLE_BLE_SUBSCRIBE"] = "$onekey-noble-ble-subscribe";
31
+ EOneKeyBleMessageKeys["NOBLE_BLE_UNSUBSCRIBE"] = "$onekey-noble-ble-unsubscribe";
32
+ EOneKeyBleMessageKeys["NOBLE_BLE_NOTIFICATION"] = "$onekey-noble-ble-notification";
33
+ })(exports.EOneKeyBleMessageKeys || (exports.EOneKeyBleMessageKeys = {}));
34
+ const ONEKEY_SERVICE_UUID = '00000001-0000-1000-8000-00805f9b34fb';
35
+ const ONEKEY_WRITE_CHARACTERISTIC_UUID = '00000002-0000-1000-8000-00805f9b34fb';
36
+ const ONEKEY_NOTIFY_CHARACTERISTIC_UUID = '00000003-0000-1000-8000-00805f9b34fb';
37
+ const MESSAGE_TOP_CHAR = 63;
38
+ const MESSAGE_HEADER_BYTE = 35;
39
+ const isHeaderChunk = (chunk) => {
40
+ if (chunk.length < 9)
41
+ return false;
42
+ const [MagicQuestionMark, sharp1, sharp2] = chunk;
43
+ if (String.fromCharCode(MagicQuestionMark) === String.fromCharCode(MESSAGE_TOP_CHAR) &&
44
+ String.fromCharCode(sharp1) === String.fromCharCode(MESSAGE_HEADER_BYTE) &&
45
+ String.fromCharCode(sharp2) === String.fromCharCode(MESSAGE_HEADER_BYTE)) {
46
+ return true;
47
+ }
48
+ return false;
49
+ };
50
+ const isOnekeyDevice = (name, id) => {
51
+ var _a;
52
+ if ((_a = id === null || id === void 0 ? void 0 : id.startsWith) === null || _a === void 0 ? void 0 : _a.call(id, 'MI')) {
53
+ return true;
54
+ }
55
+ const re = /(BixinKey\d{10})|(K\d{4})|(T\d{4})|(Touch\s\w{4})|(Pro\s\w{4})/i;
56
+ if (name && re.exec(name)) {
57
+ return true;
58
+ }
59
+ return false;
60
+ };
11
61
 
12
62
  /******************************************************************************
13
63
  Copyright (c) Microsoft Corporation.
@@ -344,12 +394,17 @@ exports.ERRORS = HardwareError$1;
344
394
  exports.HardwareError = HardwareError;
345
395
  exports.HardwareErrorCode = HardwareErrorCode;
346
396
  exports.HardwareErrorCodeMessage = HardwareErrorCodeMessage;
397
+ exports.ONEKEY_NOTIFY_CHARACTERISTIC_UUID = ONEKEY_NOTIFY_CHARACTERISTIC_UUID;
398
+ exports.ONEKEY_SERVICE_UUID = ONEKEY_SERVICE_UUID;
347
399
  exports.ONEKEY_WEBUSB_FILTER = ONEKEY_WEBUSB_FILTER;
400
+ exports.ONEKEY_WRITE_CHARACTERISTIC_UUID = ONEKEY_WRITE_CHARACTERISTIC_UUID;
348
401
  exports.TypedError = TypedError;
349
402
  exports.createDeferred = createDeferred;
350
403
  exports.createDeprecatedHardwareError = createDeprecatedHardwareError;
351
404
  exports.createNeedUpgradeFirmwareHardwareError = createNeedUpgradeFirmwareHardwareError;
352
405
  exports.createNewFirmwareForceUpdateHardwareError = createNewFirmwareForceUpdateHardwareError;
353
406
  exports.createNewFirmwareUnReleaseHardwareError = createNewFirmwareUnReleaseHardwareError;
407
+ exports.isHeaderChunk = isHeaderChunk;
408
+ exports.isOnekeyDevice = isOnekeyDevice;
354
409
  exports.serializeError = serializeError;
355
410
  exports.wait = wait;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/hd-shared",
3
- "version": "1.0.37",
3
+ "version": "1.0.38-alpha.0",
4
4
  "description": "Hardware SDK's shared tool library",
5
5
  "keywords": [
6
6
  "Hardware-SDK",
@@ -25,5 +25,5 @@
25
25
  "lint": "eslint .",
26
26
  "lint:fix": "eslint . --fix"
27
27
  },
28
- "gitHead": "da0c9ea1fafecff38f87b243cb072c175ad5c5f2"
28
+ "gitHead": "d33215ecb015dcaf397d2ad4787a641299932cf4"
29
29
  }
package/src/constants.ts CHANGED
@@ -6,3 +6,71 @@ export const ONEKEY_WEBUSB_FILTER = [
6
6
  // { vendorId: 0x1209, productId: 0x4f4c }, // Pro Board
7
7
  // { vendorId: 0x1209, productId: 0x4f50 }, // Touch Board
8
8
  ];
9
+
10
+ // BLE IPC communication message types
11
+ export enum EOneKeyBleMessageKeys {
12
+ // BLE device selection related
13
+ BLE_SELECT = '$onekey-ble-select',
14
+ BLE_SELECT_RESULT = '$onekey-ble-select-result',
15
+ BLE_STOP_SCAN = '$onekey-ble-stop-scan',
16
+ BLE_CANCEL_REQUEST = '$onekey-ble-cancel-request',
17
+ BLE_PRE_SELECT = '$onekey-ble-pre-select',
18
+ BLE_CLEAR_PRE_SELECT = '$onekey-ble-clear-pre-select',
19
+
20
+ // BLE pairing related
21
+ BLE_PAIRING_REQUEST = '$onekey-ble-pairing-request',
22
+ BLE_PAIRING_RESPONSE = '$onekey-ble-pairing-response',
23
+
24
+ // BLE enumeration related
25
+ BLE_ENUMERATE = '$onekey-ble-enumerate',
26
+ BLE_ENUMERATE_RESULT = '$onekey-ble-enumerate-result',
27
+
28
+ // BLE connection status related
29
+ BLE_DEVICE_DISCONNECTED = '$onekey-ble-device-disconnected',
30
+
31
+ // Noble BLE related (for direct BLE communication)
32
+ NOBLE_BLE_ENUMERATE = '$onekey-noble-ble-enumerate',
33
+ NOBLE_BLE_STOP_SCAN = '$onekey-noble-ble-stop-scan',
34
+ NOBLE_BLE_GET_DEVICE = '$onekey-noble-ble-get-device',
35
+ NOBLE_BLE_CONNECT = '$onekey-noble-ble-connect',
36
+ NOBLE_BLE_DISCONNECT = '$onekey-noble-ble-disconnect',
37
+ NOBLE_BLE_WRITE = '$onekey-noble-ble-write',
38
+ NOBLE_BLE_SUBSCRIBE = '$onekey-noble-ble-subscribe',
39
+ NOBLE_BLE_UNSUBSCRIBE = '$onekey-noble-ble-unsubscribe',
40
+ NOBLE_BLE_NOTIFICATION = '$onekey-noble-ble-notification',
41
+ }
42
+
43
+ export const ONEKEY_SERVICE_UUID = '00000001-0000-1000-8000-00805f9b34fb';
44
+ export const ONEKEY_WRITE_CHARACTERISTIC_UUID = '00000002-0000-1000-8000-00805f9b34fb';
45
+ export const ONEKEY_NOTIFY_CHARACTERISTIC_UUID = '00000003-0000-1000-8000-00805f9b34fb';
46
+
47
+ const MESSAGE_TOP_CHAR = 63;
48
+ const MESSAGE_HEADER_BYTE = 35;
49
+ export const isHeaderChunk = (chunk: Buffer | Uint8Array): boolean => {
50
+ if (chunk.length < 9) return false;
51
+ const [MagicQuestionMark, sharp1, sharp2] = chunk;
52
+
53
+ if (
54
+ String.fromCharCode(MagicQuestionMark) === String.fromCharCode(MESSAGE_TOP_CHAR) &&
55
+ String.fromCharCode(sharp1) === String.fromCharCode(MESSAGE_HEADER_BYTE) &&
56
+ String.fromCharCode(sharp2) === String.fromCharCode(MESSAGE_HEADER_BYTE)
57
+ ) {
58
+ return true;
59
+ }
60
+
61
+ return false;
62
+ };
63
+
64
+ export const isOnekeyDevice = (name: string | null, id?: string): boolean => {
65
+ if (id?.startsWith?.('MI')) {
66
+ return true;
67
+ }
68
+
69
+ // 过滤 BixinKeyxxx 和 Kxxxx 和 Txxxx
70
+ // i 忽略大小写模式
71
+ const re = /(BixinKey\d{10})|(K\d{4})|(T\d{4})|(Touch\s\w{4})|(Pro\s\w{4})/i;
72
+ if (name && re.exec(name)) {
73
+ return true;
74
+ }
75
+ return false;
76
+ };