@onekeyfe/hd-shared 1.2.0-alpha.157 → 1.2.0-alpha.158
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/dist/constants.d.ts +4 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/index.d.ts +15 -8
- package/dist/index.js +5 -19
- package/package.json +2 -2
- package/src/constants.test.ts +0 -33
- package/src/constants.ts +15 -24
package/dist/constants.d.ts
CHANGED
|
@@ -46,6 +46,10 @@ export declare enum EOneKeyBleMessageKeys {
|
|
|
46
46
|
NOBLE_BLE_MTU_CHANGED = "$onekey-noble-ble-mtu-changed",
|
|
47
47
|
NOBLE_BLE_CANCEL_PAIRING = "$onekey-noble-ble-cancel-pairing"
|
|
48
48
|
}
|
|
49
|
+
export declare enum EBleDisconnectReason {
|
|
50
|
+
DeviceDisconnected = "device-disconnected",
|
|
51
|
+
IdleKeepAlive = "idle-keep-alive"
|
|
52
|
+
}
|
|
49
53
|
export declare const ONEKEY_SERVICE_UUID = "00000001-0000-1000-8000-00805f9b34fb";
|
|
50
54
|
export declare const ONEKEY_WRITE_CHARACTERISTIC_UUID = "00000002-0000-1000-8000-00805f9b34fb";
|
|
51
55
|
export declare const ONEKEY_NOTIFY_CHARACTERISTIC_UUID = "00000003-0000-1000-8000-00805f9b34fb";
|
|
@@ -70,8 +74,6 @@ export declare const createKnownBleUuidAliases: (uuid: string) => ReadonlySet<st
|
|
|
70
74
|
export declare const matchesKnownBleUuid: (actualUuid: string | null | undefined, aliases: ReadonlySet<string>) => boolean;
|
|
71
75
|
export declare const isPro2FindMyAdvertisementName: (value?: string | null) => boolean;
|
|
72
76
|
export declare const normalizePro2FindMyAdvertisementName: (value: string) => string;
|
|
73
|
-
export declare const canonicalizePro2BleAdvertisementName: (value: string) => string;
|
|
74
|
-
export declare const isSameOnekeyBleName: (left?: string | null, right?: string | null) => boolean;
|
|
75
77
|
export declare const hasOnekeyCommunicationService: (serviceUuids: Array<string | null | undefined> | null | undefined) => boolean;
|
|
76
78
|
export declare const isOnekeyBluetoothDevice: ({ id, name, localName, serviceUuids, }: BluetoothDeviceIdentity) => boolean;
|
|
77
79
|
export {};
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAEA,eAAO,MAAM,yBAAyB;;;CAG5B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,OAAO,yBAAyB,CAAC,CAAC;AAE7E,eAAO,MAAM,oBAAoB;;;GAOhC,CAAC;AAGF,eAAO,MAAM,0BAA0B;;;EAAqD,CAAC;AAE7F,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAIF,eAAO,MAAM,yBAAyB,eAAgB,wBAAwB,KAAG,OAQhF,CAAC;AAMF,eAAO,MAAM,2BAA2B,mDAS9B,CAAC;AAMX,eAAO,MAAM,8BAA8B,qBAGjC,CAAC;AAGX,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;IAC3D,sBAAsB,mCAAmC;IAGzD,mBAAmB,gCAAgC;IACnD,mBAAmB,gCAAgC;IACnD,oBAAoB,iCAAiC;IACrD,iBAAiB,8BAA8B;IAG/C,iBAAiB,8BAA8B;IAC/C,oBAAoB,iCAAiC;IACrD,eAAe,4BAA4B;IAC3C,mBAAmB,gCAAgC;IACnD,qBAAqB,kCAAkC;IACvD,sBAAsB,mCAAmC;IACzD,qBAAqB,kCAAkC;IACvD,wBAAwB,qCAAqC;CAC9D;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;AAkBF,eAAO,MAAM,cAAc,SAAU,MAAM,GAAG,IAAI,OAAO,MAAM,KAAG,OA2BjE,CAAC;AAEF,eAAO,MAAM,0BAA0B,cAAe,MAAM,GAAG,IAAI,cAAc,MAAM,GAAG,IAAI,qBAG/E,CAAC;AAEhB,KAAK,kBAAkB,GAAG;IACxB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,0BAA0B,WAAY,kBAAkB,KAAG,MAAM,GAAG,SAehF,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;CACxD,CAAC;AAIF,eAAO,MAAM,gBAAgB,UAAW,MAAM,GAAG,IAAI,WACP,CAAC;AAE/C,eAAO,MAAM,yBAAyB,SAAU,MAAM,KAAG,YAAY,MAAM,CAc1E,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAClB,MAAM,GAAG,IAAI,GAAG,SAAS,WAC5B,YAAY,MAAM,CAAC,YACgB,CAAC;AAmC/C,eAAO,MAAM,6BAA6B,WAAY,MAAM,GAAG,IAAI,YAWlE,CAAC;AAEF,eAAO,MAAM,oCAAoC,UAAW,MAAM,WAejE,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -54,6 +54,20 @@ declare enum EOneKeyBleMessageKeys {
|
|
|
54
54
|
NOBLE_BLE_MTU_CHANGED = "$onekey-noble-ble-mtu-changed",
|
|
55
55
|
NOBLE_BLE_CANCEL_PAIRING = "$onekey-noble-ble-cancel-pairing"
|
|
56
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Why a BLE link went down, carried on BLE_DEVICE_DISCONNECTED.
|
|
59
|
+
*
|
|
60
|
+
* The main process frees an idle link on its own keep-alive timer, which is an
|
|
61
|
+
* internal optimisation the device knows nothing about — consumers must not
|
|
62
|
+
* treat it as "the device is gone". Only DeviceDisconnected means the
|
|
63
|
+
* peripheral actually dropped.
|
|
64
|
+
*/
|
|
65
|
+
declare enum EBleDisconnectReason {
|
|
66
|
+
/** Unsolicited peripheral drop: powered off, out of range, cable/BLE lost. */
|
|
67
|
+
DeviceDisconnected = "device-disconnected",
|
|
68
|
+
/** Main-process keep-alive timer released an idle link; device still present. */
|
|
69
|
+
IdleKeepAlive = "idle-keep-alive"
|
|
70
|
+
}
|
|
57
71
|
declare const ONEKEY_SERVICE_UUID = "00000001-0000-1000-8000-00805f9b34fb";
|
|
58
72
|
declare const ONEKEY_WRITE_CHARACTERISTIC_UUID = "00000002-0000-1000-8000-00805f9b34fb";
|
|
59
73
|
declare const ONEKEY_NOTIFY_CHARACTERISTIC_UUID = "00000003-0000-1000-8000-00805f9b34fb";
|
|
@@ -78,13 +92,6 @@ declare const createKnownBleUuidAliases: (uuid: string) => ReadonlySet<string>;
|
|
|
78
92
|
declare const matchesKnownBleUuid: (actualUuid: string | null | undefined, aliases: ReadonlySet<string>) => boolean;
|
|
79
93
|
declare const isPro2FindMyAdvertisementName: (value?: string | null) => boolean;
|
|
80
94
|
declare const normalizePro2FindMyAdvertisementName: (value: string) => string;
|
|
81
|
-
/**
|
|
82
|
-
* Current Pro2 advertisements use "Pro 2 XXXX". Older firmware used "Pro2 XXXX".
|
|
83
|
-
* Discovery and DeviceInfo both go through this helper so the public BLE name
|
|
84
|
-
* stays on the spaced form without changing OneKey Pro / Neo names.
|
|
85
|
-
*/
|
|
86
|
-
declare const canonicalizePro2BleAdvertisementName: (value: string) => string;
|
|
87
|
-
declare const isSameOnekeyBleName: (left?: string | null, right?: string | null) => boolean;
|
|
88
95
|
declare const hasOnekeyCommunicationService: (serviceUuids: Array<string | null | undefined> | null | undefined) => boolean;
|
|
89
96
|
declare const isOnekeyBluetoothDevice: ({ id, name, localName, serviceUuids, }: BluetoothDeviceIdentity) => boolean;
|
|
90
97
|
|
|
@@ -551,4 +558,4 @@ declare enum EDeviceType {
|
|
|
551
558
|
Neo = "neo"
|
|
552
559
|
}
|
|
553
560
|
|
|
554
|
-
export { CreateErrorByMessage, CreateHardwareErrorByBridgeError, Deferred, EDeviceType, EFirmwareType, EOneKeyBleMessageKeys, HardwareError$1 as ERRORS, ERROR_CODES_REQUIRE_DISCONNECT, ERROR_CODES_REQUIRE_RELEASE, HARDWARE_CONNECT_PROTOCOL, HardwareConnectProtocol, HardwareError, HardwareErrorCode, HardwareErrorCodeMessage, IHardwareError, ONEKEY_NOTIFY_CHARACTERISTIC_UUID, ONEKEY_PROTOCOL_V2_USB_IDS, ONEKEY_SERVICE_UUID, ONEKEY_WEBUSB_FILTER, ONEKEY_WRITE_CHARACTERISTIC_UUID, TypedError,
|
|
561
|
+
export { CreateErrorByMessage, CreateHardwareErrorByBridgeError, Deferred, EBleDisconnectReason, EDeviceType, EFirmwareType, EOneKeyBleMessageKeys, HardwareError$1 as ERRORS, ERROR_CODES_REQUIRE_DISCONNECT, ERROR_CODES_REQUIRE_RELEASE, HARDWARE_CONNECT_PROTOCOL, HardwareConnectProtocol, HardwareError, HardwareErrorCode, HardwareErrorCodeMessage, IHardwareError, ONEKEY_NOTIFY_CHARACTERISTIC_UUID, ONEKEY_PROTOCOL_V2_USB_IDS, ONEKEY_SERVICE_UUID, ONEKEY_WEBUSB_FILTER, ONEKEY_WRITE_CHARACTERISTIC_UUID, TypedError, createDefectiveFirmwareError, createDeferred, createDeprecatedHardwareError, createDeviceNotSupportMethodError, createKnownBleUuidAliases, createNeedUpgradeFirmwareHardwareError, createNewFirmwareForceUpdateHardwareError, createNewFirmwareUnReleaseHardwareError, hasOnekeyCommunicationService, inferProtocolHintFromUsbId, isHeaderChunk, isKnownTrezorWebUsbDevice, isOnekeyBluetoothDevice, isOnekeyDevice, isPro2FindMyAdvertisementName, matchesKnownBleUuid, normalizeBleUuid, normalizePro2FindMyAdvertisementName, resolveOneKeyUsbDevicePath, serializeError, wait };
|
package/dist/index.js
CHANGED
|
@@ -450,6 +450,11 @@ exports.EOneKeyBleMessageKeys = void 0;
|
|
|
450
450
|
EOneKeyBleMessageKeys["NOBLE_BLE_MTU_CHANGED"] = "$onekey-noble-ble-mtu-changed";
|
|
451
451
|
EOneKeyBleMessageKeys["NOBLE_BLE_CANCEL_PAIRING"] = "$onekey-noble-ble-cancel-pairing";
|
|
452
452
|
})(exports.EOneKeyBleMessageKeys || (exports.EOneKeyBleMessageKeys = {}));
|
|
453
|
+
exports.EBleDisconnectReason = void 0;
|
|
454
|
+
(function (EBleDisconnectReason) {
|
|
455
|
+
EBleDisconnectReason["DeviceDisconnected"] = "device-disconnected";
|
|
456
|
+
EBleDisconnectReason["IdleKeepAlive"] = "idle-keep-alive";
|
|
457
|
+
})(exports.EBleDisconnectReason || (exports.EBleDisconnectReason = {}));
|
|
453
458
|
const ONEKEY_SERVICE_UUID = '00000001-0000-1000-8000-00805f9b34fb';
|
|
454
459
|
const ONEKEY_WRITE_CHARACTERISTIC_UUID = '00000002-0000-1000-8000-00805f9b34fb';
|
|
455
460
|
const ONEKEY_NOTIFY_CHARACTERISTIC_UUID = '00000003-0000-1000-8000-00805f9b34fb';
|
|
@@ -596,23 +601,6 @@ const normalizePro2FindMyAdvertisementName = (value) => {
|
|
|
596
601
|
}
|
|
597
602
|
return value;
|
|
598
603
|
};
|
|
599
|
-
const canonicalizePro2BleAdvertisementName = (value) => {
|
|
600
|
-
const withoutFindMy = normalizePro2FindMyAdvertisementName(value);
|
|
601
|
-
const match = withoutFindMy.match(/^(onekey\s*)?pro\s*2\s*/i);
|
|
602
|
-
if (!match)
|
|
603
|
-
return withoutFindMy;
|
|
604
|
-
const rest = withoutFindMy.slice(match[0].length);
|
|
605
|
-
const prefix = match[1] ? 'OneKey Pro 2' : 'Pro 2';
|
|
606
|
-
return rest ? `${prefix} ${rest}` : prefix;
|
|
607
|
-
};
|
|
608
|
-
const isSameOnekeyBleName = (left, right) => {
|
|
609
|
-
if (!left || !right)
|
|
610
|
-
return false;
|
|
611
|
-
if (left === right)
|
|
612
|
-
return true;
|
|
613
|
-
return (compactBleName(canonicalizePro2BleAdvertisementName(left)) ===
|
|
614
|
-
compactBleName(canonicalizePro2BleAdvertisementName(right)));
|
|
615
|
-
};
|
|
616
604
|
const hasOnekeyCommunicationService = (serviceUuids) => (serviceUuids !== null && serviceUuids !== void 0 ? serviceUuids : []).some(uuid => matchesKnownBleUuid(uuid, ONEKEY_COMMUNICATION_SERVICE_ALIASES));
|
|
617
605
|
const isOnekeyBluetoothDevice = ({ id, name, localName, serviceUuids, }) => {
|
|
618
606
|
const advertisedServiceUuids = serviceUuids !== null && serviceUuids !== void 0 ? serviceUuids : [];
|
|
@@ -717,7 +705,6 @@ exports.ONEKEY_SERVICE_UUID = ONEKEY_SERVICE_UUID;
|
|
|
717
705
|
exports.ONEKEY_WEBUSB_FILTER = ONEKEY_WEBUSB_FILTER;
|
|
718
706
|
exports.ONEKEY_WRITE_CHARACTERISTIC_UUID = ONEKEY_WRITE_CHARACTERISTIC_UUID;
|
|
719
707
|
exports.TypedError = TypedError;
|
|
720
|
-
exports.canonicalizePro2BleAdvertisementName = canonicalizePro2BleAdvertisementName;
|
|
721
708
|
exports.createDefectiveFirmwareError = createDefectiveFirmwareError;
|
|
722
709
|
exports.createDeferred = createDeferred;
|
|
723
710
|
exports.createDeprecatedHardwareError = createDeprecatedHardwareError;
|
|
@@ -733,7 +720,6 @@ exports.isKnownTrezorWebUsbDevice = isKnownTrezorWebUsbDevice;
|
|
|
733
720
|
exports.isOnekeyBluetoothDevice = isOnekeyBluetoothDevice;
|
|
734
721
|
exports.isOnekeyDevice = isOnekeyDevice;
|
|
735
722
|
exports.isPro2FindMyAdvertisementName = isPro2FindMyAdvertisementName;
|
|
736
|
-
exports.isSameOnekeyBleName = isSameOnekeyBleName;
|
|
737
723
|
exports.matchesKnownBleUuid = matchesKnownBleUuid;
|
|
738
724
|
exports.normalizeBleUuid = normalizeBleUuid;
|
|
739
725
|
exports.normalizePro2FindMyAdvertisementName = normalizePro2FindMyAdvertisementName;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-shared",
|
|
3
|
-
"version": "1.2.0-alpha.
|
|
3
|
+
"version": "1.2.0-alpha.158",
|
|
4
4
|
"description": "Hardware SDK's shared tool library",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Hardware-SDK",
|
|
@@ -26,5 +26,5 @@
|
|
|
26
26
|
"lint": "eslint .",
|
|
27
27
|
"lint:fix": "eslint . --fix"
|
|
28
28
|
},
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "4eff5659b79164afa0c2d070833bec4f2a477f0b"
|
|
30
30
|
}
|
package/src/constants.test.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import {
|
|
2
|
-
canonicalizePro2BleAdvertisementName,
|
|
3
2
|
createKnownBleUuidAliases,
|
|
4
3
|
hasOnekeyCommunicationService,
|
|
5
4
|
inferProtocolHintFromUsbId,
|
|
@@ -7,7 +6,6 @@ import {
|
|
|
7
6
|
isOnekeyBluetoothDevice,
|
|
8
7
|
isOnekeyDevice,
|
|
9
8
|
isPro2FindMyAdvertisementName,
|
|
10
|
-
isSameOnekeyBleName,
|
|
11
9
|
matchesKnownBleUuid,
|
|
12
10
|
normalizePro2FindMyAdvertisementName,
|
|
13
11
|
resolveOneKeyUsbDevicePath,
|
|
@@ -19,9 +17,7 @@ describe('hardware device identity filters', () => {
|
|
|
19
17
|
expect(isOnekeyDevice('Pro A1B2')).toBe(true);
|
|
20
18
|
expect(isOnekeyDevice('Neo A1B2')).toBe(true);
|
|
21
19
|
expect(isOnekeyDevice('Pro2A1B2')).toBe(true);
|
|
22
|
-
expect(isOnekeyDevice('Pro 2 A1B2')).toBe(true);
|
|
23
20
|
expect(isOnekeyDevice('OneKeyPro2A1B2')).toBe(true);
|
|
24
|
-
expect(isOnekeyDevice('OneKey Pro 2 A1B2')).toBe(true);
|
|
25
21
|
expect(isOnekeyDevice('Neo22D8')).toBe(true);
|
|
26
22
|
expect(isOnekeyDevice('K1234')).toBe(true);
|
|
27
23
|
expect(isOnekeyDevice('S8')).toBe(true);
|
|
@@ -46,12 +42,6 @@ describe('hardware device identity filters', () => {
|
|
|
46
42
|
serviceUuids: ['0001', 'fffd'],
|
|
47
43
|
})
|
|
48
44
|
).toBe(true);
|
|
49
|
-
expect(
|
|
50
|
-
isOnekeyBluetoothDevice({
|
|
51
|
-
name: 'Pro 2 A1B2',
|
|
52
|
-
serviceUuids: ['0001', 'fffd'],
|
|
53
|
-
})
|
|
54
|
-
).toBe(true);
|
|
55
45
|
expect(
|
|
56
46
|
isOnekeyBluetoothDevice({
|
|
57
47
|
localName: 'Pro2 A1B2 - Find My',
|
|
@@ -114,29 +104,6 @@ describe('hardware device identity filters', () => {
|
|
|
114
104
|
expect(normalizePro2FindMyAdvertisementName(name)).toBe(expected);
|
|
115
105
|
});
|
|
116
106
|
|
|
117
|
-
it.each([
|
|
118
|
-
['Pro2 A1B2', 'Pro 2 A1B2'],
|
|
119
|
-
['Pro2A1B2', 'Pro 2 A1B2'],
|
|
120
|
-
['Pro 2 A1B2', 'Pro 2 A1B2'],
|
|
121
|
-
['Pro 2 0088', 'Pro 2 0088'],
|
|
122
|
-
['Pro2 22D8 - Find My', 'Pro 2 22D8'],
|
|
123
|
-
['Pro 2 A1B2 - Find My', 'Pro 2 A1B2'],
|
|
124
|
-
['OneKeyPro2A1B2', 'OneKey Pro 2 A1B2'],
|
|
125
|
-
['OneKey Pro 2 A1B2', 'OneKey Pro 2 A1B2'],
|
|
126
|
-
['OneKey Pro 2', 'OneKey Pro 2'],
|
|
127
|
-
['Pro A1B2', 'Pro A1B2'],
|
|
128
|
-
['Neo 22D8', 'Neo 22D8'],
|
|
129
|
-
])('canonicalizes the public Pro2 advertisement name %s', (name, expected) => {
|
|
130
|
-
expect(canonicalizePro2BleAdvertisementName(name)).toBe(expected);
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
it('treats compact and spaced Pro2 BLE names as the same device', () => {
|
|
134
|
-
expect(isSameOnekeyBleName('Pro2 6136', 'Pro 2 6136')).toBe(true);
|
|
135
|
-
expect(isSameOnekeyBleName('Pro2 6136 - Find My', 'Pro 2 6136')).toBe(true);
|
|
136
|
-
expect(isSameOnekeyBleName('Pro 2 6136', 'Pro 2 0088')).toBe(false);
|
|
137
|
-
expect(isSameOnekeyBleName('Pro A1B2', 'Pro 2 A1B2')).toBe(false);
|
|
138
|
-
});
|
|
139
|
-
|
|
140
107
|
it('keeps OneKey discovery on the communication service', () => {
|
|
141
108
|
expect(
|
|
142
109
|
isOnekeyBluetoothDevice({
|
package/src/constants.ts
CHANGED
|
@@ -101,6 +101,21 @@ export enum EOneKeyBleMessageKeys {
|
|
|
101
101
|
NOBLE_BLE_CANCEL_PAIRING = '$onekey-noble-ble-cancel-pairing',
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
+
/**
|
|
105
|
+
* Why a BLE link went down, carried on BLE_DEVICE_DISCONNECTED.
|
|
106
|
+
*
|
|
107
|
+
* The main process frees an idle link on its own keep-alive timer, which is an
|
|
108
|
+
* internal optimisation the device knows nothing about — consumers must not
|
|
109
|
+
* treat it as "the device is gone". Only DeviceDisconnected means the
|
|
110
|
+
* peripheral actually dropped.
|
|
111
|
+
*/
|
|
112
|
+
export enum EBleDisconnectReason {
|
|
113
|
+
/** Unsolicited peripheral drop: powered off, out of range, cable/BLE lost. */
|
|
114
|
+
DeviceDisconnected = 'device-disconnected',
|
|
115
|
+
/** Main-process keep-alive timer released an idle link; device still present. */
|
|
116
|
+
IdleKeepAlive = 'idle-keep-alive',
|
|
117
|
+
}
|
|
118
|
+
|
|
104
119
|
export const ONEKEY_SERVICE_UUID = '00000001-0000-1000-8000-00805f9b34fb';
|
|
105
120
|
export const ONEKEY_WRITE_CHARACTERISTIC_UUID = '00000002-0000-1000-8000-00805f9b34fb';
|
|
106
121
|
export const ONEKEY_NOTIFY_CHARACTERISTIC_UUID = '00000003-0000-1000-8000-00805f9b34fb';
|
|
@@ -292,30 +307,6 @@ export const normalizePro2FindMyAdvertisementName = (value: string) => {
|
|
|
292
307
|
return value;
|
|
293
308
|
};
|
|
294
309
|
|
|
295
|
-
/**
|
|
296
|
-
* Current Pro2 advertisements use "Pro 2 XXXX". Older firmware used "Pro2 XXXX".
|
|
297
|
-
* Discovery and DeviceInfo both go through this helper so the public BLE name
|
|
298
|
-
* stays on the spaced form without changing OneKey Pro / Neo names.
|
|
299
|
-
*/
|
|
300
|
-
export const canonicalizePro2BleAdvertisementName = (value: string) => {
|
|
301
|
-
const withoutFindMy = normalizePro2FindMyAdvertisementName(value);
|
|
302
|
-
const match = withoutFindMy.match(/^(onekey\s*)?pro\s*2\s*/i);
|
|
303
|
-
if (!match) return withoutFindMy;
|
|
304
|
-
|
|
305
|
-
const rest = withoutFindMy.slice(match[0].length);
|
|
306
|
-
const prefix = match[1] ? 'OneKey Pro 2' : 'Pro 2';
|
|
307
|
-
return rest ? `${prefix} ${rest}` : prefix;
|
|
308
|
-
};
|
|
309
|
-
|
|
310
|
-
export const isSameOnekeyBleName = (left?: string | null, right?: string | null) => {
|
|
311
|
-
if (!left || !right) return false;
|
|
312
|
-
if (left === right) return true;
|
|
313
|
-
return (
|
|
314
|
-
compactBleName(canonicalizePro2BleAdvertisementName(left)) ===
|
|
315
|
-
compactBleName(canonicalizePro2BleAdvertisementName(right))
|
|
316
|
-
);
|
|
317
|
-
};
|
|
318
|
-
|
|
319
310
|
export const hasOnekeyCommunicationService = (
|
|
320
311
|
serviceUuids: Array<string | null | undefined> | null | undefined
|
|
321
312
|
) =>
|