@onekeyfe/hd-transport-react-native 1.1.34-alpha.2 → 1.1.34-alpha.3
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/BleManager.d.ts.map +1 -1
- package/dist/BleTransport.d.ts +2 -0
- package/dist/BleTransport.d.ts.map +1 -1
- package/dist/bleStrategy.d.ts +13 -0
- package/dist/bleStrategy.d.ts.map +1 -0
- package/dist/constants.d.ts +4 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/index.d.ts +62 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +799 -150
- package/dist/logger.d.ts +14 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/subscribeBleOn.d.ts.map +1 -1
- package/dist/transportLog.d.ts +13 -0
- package/dist/transportLog.d.ts.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/BleManager.ts +11 -14
- package/src/BleTransport.ts +9 -5
- package/src/__tests__/bleStrategy.test.ts +42 -0
- package/src/__tests__/constants.test.ts +18 -0
- package/src/__tests__/protocolV2Link.test.ts +243 -0
- package/src/bleStrategy.ts +35 -0
- package/src/constants.ts +33 -1
- package/src/index.ts +836 -91
- package/src/logger.ts +19 -0
- package/src/subscribeBleOn.ts +0 -2
- package/src/transportLog.ts +18 -0
- package/src/types.ts +3 -0
- package/src/utils/validateNotify.ts +4 -4
package/dist/BleManager.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BleManager.d.ts","sourceRoot":"","sources":["../src/BleManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BleManager.d.ts","sourceRoot":"","sources":["../src/BleManager.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AASnE,eAAO,MAAM,qBAAqB,iBAAkB,MAAM,EAAE,0BACZ,CAAC;AAEjD,eAAO,MAAM,gBAAgB,6BAAwC,CAAC;AAEtE,eAAO,MAAM,UAAU,eAAgB,MAAM;;;EAAoC,CAAC;AAElF,eAAO,MAAM,iBAAiB,kBAAmB,MAAM,KAAG,QAAQ,UAAU,GAAG,SAAS,CA+BpF,CAAC"}
|
package/dist/BleTransport.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export default class BleTransport {
|
|
|
8
8
|
notifyCharacteristic: Characteristic;
|
|
9
9
|
notifySubscription?: Subscription;
|
|
10
10
|
disconnectSubscription?: Subscription;
|
|
11
|
+
notifyTransactionId?: string;
|
|
12
|
+
monitorToken?: number;
|
|
11
13
|
static MAX_RETRIES: number;
|
|
12
14
|
static RETRY_DELAY: number;
|
|
13
15
|
constructor(device: Device, writeCharacteristic: Characteristic, notifyCharacteristic: Characteristic);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BleTransport.d.ts","sourceRoot":"","sources":["../src/BleTransport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BleTransport.d.ts","sourceRoot":"","sources":["../src/BleTransport.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIjF,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,EAAE,EAAE,MAAM,CAAC;IAEX,IAAI,SAA6B;IAEjC,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,SAAM;IAEb,mBAAmB,EAAE,cAAc,CAAC;IAEpC,oBAAoB,EAAE,cAAc,CAAC;IAErC,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAElC,sBAAsB,CAAC,EAAE,YAAY,CAAC;IAEtC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,MAAM,CAAC,WAAW,SAAK;IAEvB,MAAM,CAAC,WAAW,SAAQ;gBAGxB,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,cAAc,EACnC,oBAAoB,EAAE,cAAc;IAchC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BzF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type BlePlatform = 'ios' | 'android' | string;
|
|
2
|
+
export type BleWriteCapability = {
|
|
3
|
+
isWritableWithResponse?: boolean | null;
|
|
4
|
+
isWritableWithoutResponse?: boolean | null;
|
|
5
|
+
};
|
|
6
|
+
export declare function hasWritableCapability(characteristic: BleWriteCapability): boolean;
|
|
7
|
+
export declare function resolveProtocolV2PacketCapacity({ platform, iosPacketLength, androidPacketLength, mtu, }: {
|
|
8
|
+
platform: BlePlatform;
|
|
9
|
+
iosPacketLength?: number;
|
|
10
|
+
androidPacketLength?: number;
|
|
11
|
+
mtu?: number | null;
|
|
12
|
+
}): number;
|
|
13
|
+
//# sourceMappingURL=bleStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bleStrategy.d.ts","sourceRoot":"","sources":["../src/bleStrategy.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;AAErD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,sBAAsB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,yBAAyB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5C,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,kBAAkB,WAEvE;AAED,wBAAgB,+BAA+B,CAAC,EAC9C,QAAQ,EACR,eAAmC,EACnC,mBAA2C,EAC3C,GAAG,GACJ,EAAE;IACD,QAAQ,EAAE,WAAW,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,UAWA"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
export declare const IOS_PACKET_LENGTH = 128;
|
|
2
2
|
export declare const ANDROID_PACKET_LENGTH = 192;
|
|
3
|
+
export declare const ANDROID_DEFAULT_MTU = 23;
|
|
4
|
+
export declare const normalizeBleUuid: (uuid?: string | null) => string;
|
|
5
|
+
export declare const getBleUuidKey: (uuid?: string | null) => string;
|
|
3
6
|
export declare const getBluetoothServiceUuids: () => string[];
|
|
4
7
|
export declare const getInfosForServiceUuid: (serviceUuid: string, deviceType: 'classic') => {
|
|
5
8
|
serviceUuid: string;
|
|
6
9
|
writeUuid?: string | undefined;
|
|
7
10
|
notifyUuid?: string | undefined;
|
|
8
11
|
} | null;
|
|
12
|
+
export declare const isSameBleUuid: (left?: string | null, right?: string | null) => boolean;
|
|
9
13
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,qBAAqB,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,eAAO,MAAM,gBAAgB,UAAW,MAAM,GAAG,IAAI,WACP,CAAC;AAE/C,eAAO,MAAM,aAAa,UAAW,MAAM,GAAG,IAAI,WAGjD,CAAC;AAoCF,eAAO,MAAM,wBAAwB,gBAA0B,CAAC;AAChE,eAAO,MAAM,sBAAsB,gBAAiB,MAAM,cAAc,SAAS;iBAhChE,MAAM;;;QAiDtB,CAAC;AAEF,eAAO,MAAM,aAAa,UAAW,MAAM,GAAG,IAAI,UAAU,MAAM,GAAG,IAAI,YAQxE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as transport from '@onekeyfe/hd-transport';
|
|
2
|
-
import transport__default, { OneKeyDeviceInfoBase } from '@onekeyfe/hd-transport';
|
|
2
|
+
import transport__default, { ProtocolType, OneKeyDeviceInfoBase, TransportCallOptions } from '@onekeyfe/hd-transport';
|
|
3
3
|
import { Device, Characteristic, Subscription, BleManager } from 'react-native-ble-plx';
|
|
4
4
|
import { Deferred } from '@onekeyfe/hd-shared';
|
|
5
5
|
import EventEmitter from 'events';
|
|
@@ -13,9 +13,17 @@ declare class BleTransport {
|
|
|
13
13
|
notifyCharacteristic: Characteristic;
|
|
14
14
|
notifySubscription?: Subscription;
|
|
15
15
|
disconnectSubscription?: Subscription;
|
|
16
|
+
notifyTransactionId?: string;
|
|
17
|
+
monitorToken?: number;
|
|
16
18
|
static MAX_RETRIES: number;
|
|
17
19
|
static RETRY_DELAY: number;
|
|
18
20
|
constructor(device: Device, writeCharacteristic: Characteristic, notifyCharacteristic: Characteristic);
|
|
21
|
+
/**
|
|
22
|
+
* @description only for pro / touch , while upgrade firmware
|
|
23
|
+
* @param data
|
|
24
|
+
* @param retryCount
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
19
27
|
writeWithRetry(data: string, retryCount?: number): Promise<void>;
|
|
20
28
|
}
|
|
21
29
|
|
|
@@ -25,16 +33,28 @@ type TransportOptions = {
|
|
|
25
33
|
type BleAcquireInput = {
|
|
26
34
|
uuid: string;
|
|
27
35
|
forceCleanRunPromise?: boolean;
|
|
36
|
+
expectedProtocol?: ProtocolType;
|
|
28
37
|
};
|
|
29
38
|
|
|
30
39
|
type ResolvedBleCharacteristics = {
|
|
31
40
|
writeCharacteristic: Characteristic;
|
|
32
41
|
notifyCharacteristic: Characteristic;
|
|
33
42
|
};
|
|
43
|
+
type ProtocolV2BleTuning = {
|
|
44
|
+
iosPacketLength?: number;
|
|
45
|
+
androidPacketLength?: number;
|
|
46
|
+
};
|
|
47
|
+
declare function configureProtocolV2BleTuning(tuning?: ProtocolV2BleTuning): void;
|
|
48
|
+
declare function resetProtocolV2BleTuning(): void;
|
|
49
|
+
declare function getProtocolV2BleTuning(): {
|
|
50
|
+
iosPacketLength: number;
|
|
51
|
+
androidPacketLength: number;
|
|
52
|
+
};
|
|
34
53
|
type IOneKeyDevice = OneKeyDeviceInfoBase & Device;
|
|
35
54
|
declare class ReactNativeBleTransport {
|
|
36
55
|
blePlxManager: BleManager | undefined;
|
|
37
56
|
_messages: ReturnType<typeof transport__default.parseConfigure> | undefined;
|
|
57
|
+
_messagesV2: ReturnType<typeof transport__default.parseConfigure> | undefined;
|
|
38
58
|
name: string;
|
|
39
59
|
configured: boolean;
|
|
40
60
|
stopped: boolean;
|
|
@@ -42,25 +62,61 @@ declare class ReactNativeBleTransport {
|
|
|
42
62
|
runPromise: Deferred<any> | null;
|
|
43
63
|
emitter?: EventEmitter;
|
|
44
64
|
firmwareUploadWriteRecoveryIds: Set<string>;
|
|
65
|
+
/** Per-device protocol type detected by active wire-level probe after connect. */
|
|
66
|
+
private deviceProtocol;
|
|
67
|
+
private deviceProtocolHints;
|
|
68
|
+
private protocolV2Assemblers;
|
|
69
|
+
private protocolV2FrameQueues;
|
|
70
|
+
private protocolV2FramePromises;
|
|
71
|
+
private protocolV2Links;
|
|
72
|
+
private monitorTokens;
|
|
73
|
+
private nextMonitorToken;
|
|
45
74
|
constructor(options: TransportOptions);
|
|
46
|
-
init(
|
|
75
|
+
init(logger: any, emitter: EventEmitter): void;
|
|
47
76
|
configure(signedData: any): void;
|
|
77
|
+
configureProtocolV2(signedData: any): void;
|
|
48
78
|
listen(): void;
|
|
49
79
|
getPlxManager(): Promise<BleManager>;
|
|
50
80
|
resolveCharacteristics(device: Device): Promise<ResolvedBleCharacteristics>;
|
|
51
81
|
attachDisconnectSubscription(transport: BleTransport, device: Device, uuid: string): void;
|
|
52
82
|
reconnectFirmwareUploadTransport(uuid: string, transport: BleTransport): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* 获取设备列表
|
|
85
|
+
* 在搜索超过超时时间或设备数量大于 5 台时,返回 OneKey 设备,
|
|
86
|
+
* @returns
|
|
87
|
+
*/
|
|
53
88
|
enumerate(): Promise<IOneKeyDevice[]>;
|
|
54
89
|
acquire(input: BleAcquireInput): Promise<{
|
|
55
90
|
uuid: string;
|
|
91
|
+
protocolType: ProtocolType;
|
|
56
92
|
}>;
|
|
57
|
-
_monitorCharacteristic(characteristic: Characteristic, uuid: string): Subscription;
|
|
58
|
-
release(uuid: string): Promise<boolean>;
|
|
93
|
+
_monitorCharacteristic(characteristic: Characteristic, uuid: string, monitorToken: number, notifyTransactionId: string): Subscription;
|
|
94
|
+
release(uuid: string, onclose?: boolean): Promise<boolean>;
|
|
59
95
|
post(session: string, name: string, data: Record<string, unknown>): Promise<void>;
|
|
60
|
-
call(uuid: string, name: string, data: Record<string, unknown
|
|
96
|
+
call(uuid: string, name: string, data: Record<string, unknown>, options?: TransportCallOptions): Promise<transport.MessageFromOneKey>;
|
|
97
|
+
private callProtocolV1;
|
|
61
98
|
stop(): void;
|
|
62
99
|
disconnect(session: string): Promise<void>;
|
|
63
100
|
cancel(): void;
|
|
101
|
+
private getCachedTransport;
|
|
102
|
+
private createProtocolMismatchError;
|
|
103
|
+
private createProtocolDetectionError;
|
|
104
|
+
private clearProbeProtocol;
|
|
105
|
+
private detectProtocol;
|
|
106
|
+
private resetProbeStateAfterProtocolProbe;
|
|
107
|
+
private probeProtocolV1;
|
|
108
|
+
private probeProtocolV2;
|
|
109
|
+
private handleProtocolV2Notification;
|
|
110
|
+
private getProtocolV2FrameQueue;
|
|
111
|
+
private resolveProtocolV2Frame;
|
|
112
|
+
private rejectAllProtocolV2Frames;
|
|
113
|
+
private resetProtocolV2Frames;
|
|
114
|
+
private rejectProtocolV2Frames;
|
|
115
|
+
private readProtocolV2Frame;
|
|
116
|
+
private writeProtocolV2Frame;
|
|
117
|
+
private callProtocolV2;
|
|
118
|
+
private createProtocolV2Adapter;
|
|
119
|
+
getProtocolType(path: string): ProtocolType | undefined;
|
|
64
120
|
}
|
|
65
121
|
|
|
66
|
-
export { IOneKeyDevice, ReactNativeBleTransport as default };
|
|
122
|
+
export { IOneKeyDevice, ProtocolV2BleTuning, configureProtocolV2BleTuning, ReactNativeBleTransport as default, getProtocolV2BleTuning, resetProtocolV2BleTuning };
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAIL,UAAU,IAAI,aAAa,EAE5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|