@onekeyfe/hd-transport-react-native 1.2.0-alpha.6 → 1.2.0-alpha.62
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/BleTransport.d.ts +1 -3
- package/dist/BleTransport.d.ts.map +1 -1
- package/dist/bleStrategy.d.ts +0 -2
- package/dist/bleStrategy.d.ts.map +1 -1
- package/dist/constants.d.ts +0 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/index.d.ts +79 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +588 -388
- package/dist/subscribeBleOn.d.ts.map +1 -1
- package/dist/transportLog.d.ts +2 -0
- package/dist/transportLog.d.ts.map +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/jest.config.js +10 -0
- package/package.json +7 -6
- package/src/BleTransport.ts +2 -43
- package/src/__tests__/BleTransport.test.ts +41 -0
- package/src/__tests__/bleStrategy.test.ts +1 -6
- package/src/__tests__/connectTimeout.test.ts +192 -0
- package/src/__tests__/constants.test.ts +20 -0
- package/src/__tests__/protocolV2Link.test.ts +527 -0
- package/src/__tests__/staleCallTimeout.test.ts +211 -0
- package/src/__tests__/writePacketTimeout.test.ts +306 -0
- package/src/bleStrategy.ts +0 -25
- package/src/constants.ts +7 -13
- package/src/index.ts +774 -407
- package/src/subscribeBleOn.ts +0 -2
- package/src/transportLog.ts +1 -0
- package/src/types.ts +1 -0
package/dist/BleTransport.d.ts
CHANGED
|
@@ -10,9 +10,7 @@ export default class BleTransport {
|
|
|
10
10
|
disconnectSubscription?: Subscription;
|
|
11
11
|
notifyTransactionId?: string;
|
|
12
12
|
monitorToken?: number;
|
|
13
|
-
static MAX_RETRIES: number;
|
|
14
|
-
static RETRY_DELAY: number;
|
|
15
13
|
constructor(device: Device, writeCharacteristic: Characteristic, notifyCharacteristic: Characteristic);
|
|
16
|
-
writeWithRetry(data: string
|
|
14
|
+
writeWithRetry(data: string): Promise<void>;
|
|
17
15
|
}
|
|
18
16
|
//# sourceMappingURL=BleTransport.d.ts.map
|
|
@@ -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":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEjF,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;gBAGpB,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,cAAc,EACnC,oBAAoB,EAAE,cAAc;IAQhC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGlD"}
|
package/dist/bleStrategy.d.ts
CHANGED
|
@@ -3,9 +3,7 @@ export type BleWriteCapability = {
|
|
|
3
3
|
isWritableWithResponse?: boolean | null;
|
|
4
4
|
isWritableWithoutResponse?: boolean | null;
|
|
5
5
|
};
|
|
6
|
-
export type BleWriteMode = 'withResponse' | 'withoutResponse';
|
|
7
6
|
export declare function hasWritableCapability(characteristic: BleWriteCapability): boolean;
|
|
8
|
-
export declare function resolveBleWriteMode(characteristic: BleWriteCapability, preferredMode?: BleWriteMode): BleWriteMode;
|
|
9
7
|
export declare function resolveProtocolV2PacketCapacity({ platform, iosPacketLength, androidPacketLength, mtu, }: {
|
|
10
8
|
platform: BlePlatform;
|
|
11
9
|
iosPacketLength?: number;
|
|
@@ -1 +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,
|
|
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
|
@@ -8,6 +8,5 @@ export declare const getInfosForServiceUuid: (serviceUuid: string, deviceType: '
|
|
|
8
8
|
notifyUuid?: string | undefined;
|
|
9
9
|
} | null;
|
|
10
10
|
export declare const normalizeBleUuid: (uuid?: string | null) => string;
|
|
11
|
-
export declare const getBleUuidKey: (uuid?: string | null) => string;
|
|
12
11
|
export declare const isSameBleUuid: (left?: string | null, right?: string | null) => boolean;
|
|
13
12
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AA8BtC,eAAO,MAAM,wBAAwB,gBAA0B,CAAC;AAChE,eAAO,MAAM,sBAAsB,gBAAiB,MAAM,cAAc,SAAS;iBA1BhE,MAAM;;;QA2CtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAAW,MAAM,GAAG,IAAI,WACP,CAAC;AAE/C,eAAO,MAAM,aAAa,UAAW,MAAM,GAAG,IAAI,UAAU,MAAM,GAAG,IAAI,YAGxE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,10 +15,8 @@ declare class BleTransport {
|
|
|
15
15
|
disconnectSubscription?: Subscription;
|
|
16
16
|
notifyTransactionId?: string;
|
|
17
17
|
monitorToken?: number;
|
|
18
|
-
static MAX_RETRIES: number;
|
|
19
|
-
static RETRY_DELAY: number;
|
|
20
18
|
constructor(device: Device, writeCharacteristic: Characteristic, notifyCharacteristic: Characteristic);
|
|
21
|
-
writeWithRetry(data: string
|
|
19
|
+
writeWithRetry(data: string): Promise<void>;
|
|
22
20
|
}
|
|
23
21
|
|
|
24
22
|
type TransportOptions = {
|
|
@@ -28,50 +26,80 @@ type BleAcquireInput = {
|
|
|
28
26
|
uuid: string;
|
|
29
27
|
forceCleanRunPromise?: boolean;
|
|
30
28
|
expectedProtocol?: ProtocolType;
|
|
29
|
+
protocolHint?: ProtocolType;
|
|
31
30
|
};
|
|
32
31
|
|
|
32
|
+
type FirmwareUploadWriteRetryType = 'congested';
|
|
33
33
|
type ResolvedBleCharacteristics = {
|
|
34
34
|
writeCharacteristic: Characteristic;
|
|
35
35
|
notifyCharacteristic: Characteristic;
|
|
36
36
|
};
|
|
37
|
+
declare const getFirmwareUploadWriteRetryType: (error: unknown) => FirmwareUploadWriteRetryType | null;
|
|
38
|
+
/**
|
|
39
|
+
* Per-packet write budget. iOS only resolves writeWithoutResponse once CoreBluetooth
|
|
40
|
+
* reports the peripheral ready again; a peripheral wedged by its own firmware reboot
|
|
41
|
+
* stops reporting ready while staying connected, so the write promise never settles.
|
|
42
|
+
* Response timeouts cannot cover that — they are armed after the writes complete —
|
|
43
|
+
* and an unbounded write leaves the whole transport unusable until the process dies.
|
|
44
|
+
* A healthy packet completes in milliseconds, so this only fires on a dead link.
|
|
45
|
+
*/
|
|
46
|
+
declare const BLE_WRITE_PACKET_TIMEOUT_MS = 10000;
|
|
47
|
+
/** Consecutive wedged writes on one device before the BLE manager itself is recreated. */
|
|
48
|
+
declare const BLE_WRITE_TIMEOUT_MANAGER_RESET_THRESHOLD = 2;
|
|
37
49
|
type ProtocolV2BleTuning = {
|
|
38
50
|
iosPacketLength?: number;
|
|
39
51
|
androidPacketLength?: number;
|
|
40
|
-
highVolumeWriteBurstSize?: number;
|
|
41
|
-
highVolumeWritePauseMs?: number;
|
|
42
|
-
highVolumeWriteFlushDelayMs?: number;
|
|
43
|
-
highVolumeWriteWithResponse?: boolean;
|
|
44
52
|
};
|
|
45
53
|
declare function configureProtocolV2BleTuning(tuning?: ProtocolV2BleTuning): void;
|
|
46
54
|
declare function resetProtocolV2BleTuning(): void;
|
|
47
55
|
declare function getProtocolV2BleTuning(): {
|
|
48
56
|
iosPacketLength: number;
|
|
49
57
|
androidPacketLength: number;
|
|
50
|
-
highVolumeWriteBurstSize: number;
|
|
51
|
-
highVolumeWritePauseMs: number;
|
|
52
|
-
highVolumeWriteFlushDelayMs: number;
|
|
53
|
-
highVolumeWriteWithResponse: boolean;
|
|
54
58
|
};
|
|
59
|
+
/**
|
|
60
|
+
* JS backstop for connect. The native adapter applies its own 3s budget, but it
|
|
61
|
+
* schedules that timeout on its serial queue, so a busy queue (e.g. right after a
|
|
62
|
+
* firmware install tears the link down) can leave the promise unsettled — observed
|
|
63
|
+
* blocking a reconnect for 61s until the app-level timeout. Healthy connects finish
|
|
64
|
+
* inside the native budget, so this only fires when the native timeout did not.
|
|
65
|
+
*/
|
|
66
|
+
declare const BLE_CONNECT_TIMEOUT_MS: number;
|
|
67
|
+
/** Consecutive connect timeouts on one device before the BLE manager itself is recreated. */
|
|
68
|
+
declare const BLE_CONNECT_TIMEOUT_MANAGER_RESET_THRESHOLD = 2;
|
|
55
69
|
type IOneKeyDevice = OneKeyDeviceInfoBase & Device;
|
|
56
70
|
declare class ReactNativeBleTransport {
|
|
57
71
|
blePlxManager: BleManager | undefined;
|
|
58
72
|
_messages: ReturnType<typeof transport__default.parseConfigure> | undefined;
|
|
59
73
|
_messagesV2: ReturnType<typeof transport__default.parseConfigure> | undefined;
|
|
74
|
+
private protocolV2SchemaConfiguration;
|
|
60
75
|
name: string;
|
|
61
76
|
configured: boolean;
|
|
62
77
|
stopped: boolean;
|
|
63
78
|
scanTimeout: number;
|
|
64
79
|
runPromise: Deferred<any> | null;
|
|
80
|
+
private runPromiseDeviceId;
|
|
65
81
|
emitter?: EventEmitter;
|
|
66
82
|
firmwareUploadWriteRecoveryIds: Set<string>;
|
|
83
|
+
/** Per-device protocol type detected by active wire-level probe after connect. */
|
|
67
84
|
private deviceProtocol;
|
|
85
|
+
/**
|
|
86
|
+
* Protocol a probe is currently trying, before the device has confirmed it. Calls
|
|
87
|
+
* must route with it, but acquire() must not treat it as a detected protocol: a
|
|
88
|
+
* probe that never answers would otherwise leave the reuse fast path handing out a
|
|
89
|
+
* transport that was never validated.
|
|
90
|
+
*/
|
|
91
|
+
private probingProtocols;
|
|
92
|
+
/** Consecutive write timeouts per device; reset by any write that completes. */
|
|
93
|
+
private writeTimeoutCounts;
|
|
94
|
+
/** Consecutive connect timeouts per device; reset by any connect that settles. */
|
|
95
|
+
private connectTimeoutCounts;
|
|
68
96
|
private deviceProtocolHints;
|
|
69
97
|
private protocolV2Assemblers;
|
|
70
98
|
private protocolV2FrameQueues;
|
|
71
99
|
private protocolV2FramePromises;
|
|
72
|
-
private
|
|
73
|
-
private nextProtocolV2CallToken;
|
|
100
|
+
private protocolV2Links;
|
|
74
101
|
private monitorTokens;
|
|
102
|
+
private disconnectEventTokens;
|
|
75
103
|
private nextMonitorToken;
|
|
76
104
|
constructor(options: TransportOptions);
|
|
77
105
|
init(logger: any, emitter: EventEmitter): void;
|
|
@@ -81,24 +109,58 @@ declare class ReactNativeBleTransport {
|
|
|
81
109
|
getPlxManager(): Promise<BleManager>;
|
|
82
110
|
resolveCharacteristics(device: Device): Promise<ResolvedBleCharacteristics>;
|
|
83
111
|
attachDisconnectSubscription(transport: BleTransport, device: Device, uuid: string): void;
|
|
112
|
+
private emitDeviceDisconnect;
|
|
84
113
|
reconnectFirmwareUploadTransport(uuid: string, transport: BleTransport): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* 获取设备列表
|
|
116
|
+
* 在搜索超过超时时间或设备数量大于 5 台时,返回 OneKey 设备,
|
|
117
|
+
* @returns
|
|
118
|
+
*/
|
|
85
119
|
enumerate(): Promise<IOneKeyDevice[]>;
|
|
120
|
+
private installTransportForAcquire;
|
|
86
121
|
acquire(input: BleAcquireInput): Promise<{
|
|
87
122
|
uuid: string;
|
|
88
123
|
protocolType: ProtocolType;
|
|
89
124
|
}>;
|
|
90
125
|
_monitorCharacteristic(characteristic: Characteristic, uuid: string, monitorToken: number, notifyTransactionId: string): Subscription;
|
|
91
126
|
release(uuid: string, onclose?: boolean): Promise<boolean>;
|
|
127
|
+
private releaseNative;
|
|
92
128
|
post(session: string, name: string, data: Record<string, unknown>): Promise<void>;
|
|
93
129
|
call(uuid: string, name: string, data: Record<string, unknown>, options?: TransportCallOptions): Promise<transport.MessageFromOneKey>;
|
|
94
130
|
private callProtocolV1;
|
|
95
131
|
stop(): void;
|
|
96
132
|
disconnect(session: string): Promise<void>;
|
|
97
133
|
cancel(): void;
|
|
134
|
+
/** Run a native connect under the JS backstop budget. */
|
|
135
|
+
private connectWithTimeout;
|
|
136
|
+
/**
|
|
137
|
+
* Give up on a connect the native layer never settled. The abandoned attempt still
|
|
138
|
+
* holds a native "connecting" entry that would cancel the NEXT attempt out from under
|
|
139
|
+
* itself, so it is cleared here — fire and forget, because that call talks to the very
|
|
140
|
+
* queue that just stopped responding.
|
|
141
|
+
*/
|
|
142
|
+
private abandonStalledConnect;
|
|
98
143
|
private getCachedTransport;
|
|
144
|
+
/**
|
|
145
|
+
* Write one packet under a bounded budget. A write that never settles means the
|
|
146
|
+
* peripheral is wedged even though the GATT link still reports connected, so the
|
|
147
|
+
* link is torn down: releasing JS state alone would leave the poisoned peripheral
|
|
148
|
+
* cached and every later call would hang on it again.
|
|
149
|
+
*/
|
|
150
|
+
private writeBlePacket;
|
|
151
|
+
/**
|
|
152
|
+
* Drop a link whose writes stopped completing. The JS state is purged synchronously
|
|
153
|
+
* so the next acquire() cannot reuse the dead transport, while the native teardown is
|
|
154
|
+
* intentionally NOT awaited: it talks to the very layer that just stopped settling
|
|
155
|
+
* promises, so awaiting it could hang exactly like the write it is recovering from.
|
|
156
|
+
*/
|
|
157
|
+
private tearDownWedgedLink;
|
|
158
|
+
private resetPlxManager;
|
|
99
159
|
private createProtocolMismatchError;
|
|
100
160
|
private createProtocolDetectionError;
|
|
101
161
|
private clearProbeProtocol;
|
|
162
|
+
/** Protocol to route a call with: confirmed if known, otherwise the one being probed. */
|
|
163
|
+
private getActiveProtocol;
|
|
102
164
|
private detectProtocol;
|
|
103
165
|
private resetProbeStateAfterProtocolProbe;
|
|
104
166
|
private probeProtocolV1;
|
|
@@ -106,13 +168,14 @@ declare class ReactNativeBleTransport {
|
|
|
106
168
|
private handleProtocolV2Notification;
|
|
107
169
|
private getProtocolV2FrameQueue;
|
|
108
170
|
private resolveProtocolV2Frame;
|
|
109
|
-
private rejectAllProtocolV2Frames;
|
|
110
171
|
private resetProtocolV2Frames;
|
|
111
|
-
private
|
|
172
|
+
private rejectProtocolV2Frames;
|
|
112
173
|
private readProtocolV2Frame;
|
|
174
|
+
private writeProtocolV2Packet;
|
|
113
175
|
private writeProtocolV2Frame;
|
|
114
176
|
private callProtocolV2;
|
|
177
|
+
private createProtocolV2Adapter;
|
|
115
178
|
getProtocolType(path: string): ProtocolType | undefined;
|
|
116
179
|
}
|
|
117
180
|
|
|
118
|
-
export { IOneKeyDevice, ProtocolV2BleTuning, configureProtocolV2BleTuning, ReactNativeBleTransport as default, getProtocolV2BleTuning, resetProtocolV2BleTuning };
|
|
181
|
+
export { BLE_CONNECT_TIMEOUT_MANAGER_RESET_THRESHOLD, BLE_CONNECT_TIMEOUT_MS, BLE_WRITE_PACKET_TIMEOUT_MS, BLE_WRITE_TIMEOUT_MANAGER_RESET_THRESHOLD, IOneKeyDevice, ProtocolV2BleTuning, configureProtocolV2BleTuning, ReactNativeBleTransport as default, getFirmwareUploadWriteRetryType, 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,EAEhB,KAAK,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|