@onekeyfe/hd-transport-react-native 1.2.4-alpha.0 → 1.2.4-alpha.2

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.
@@ -0,0 +1,16 @@
1
+ export declare const IOS_PEER_TERMINATION_LINK_WINDOW_MS = 10000;
2
+ export declare const IOS_PEER_TERMINATION_REPEAT_WINDOW_MS = 60000;
3
+ export declare const isIosPeerTerminationError: (error: unknown) => boolean;
4
+ export declare class IosPeerTerminationTracker {
5
+ private linkStartedAt;
6
+ private terminatedAt;
7
+ private evidenceAt;
8
+ attemptStarted(deviceId: string): void;
9
+ linkStarted(deviceId: string): void;
10
+ note(deviceId: string, error: unknown): void;
11
+ linkProven(deviceId: string): void;
12
+ forget(deviceId: string): void;
13
+ attemptFailed(deviceId: string): boolean;
14
+ reset(): void;
15
+ }
16
+ //# sourceMappingURL=bleIosStaleBond.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bleIosStaleBond.d.ts","sourceRoot":"","sources":["../src/bleIosStaleBond.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,mCAAmC,QAAS,CAAC;AAE1D,eAAO,MAAM,qCAAqC,QAAS,CAAC;AAE5D,eAAO,MAAM,yBAAyB,UAAW,OAAO,KAAG,OAE9B,CAAC;AAE9B,qBAAa,yBAAyB;IAEpC,OAAO,CAAC,aAAa,CAA6B;IAGlD,OAAO,CAAC,YAAY,CAA6B;IAGjD,OAAO,CAAC,UAAU,CAA6B;IAE/C,cAAc,CAAC,QAAQ,EAAE,MAAM;IAK/B,WAAW,CAAC,QAAQ,EAAE,MAAM;IAM5B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAMrC,UAAU,CAAC,QAAQ,EAAE,MAAM;IAI3B,MAAM,CAAC,QAAQ,EAAE,MAAM;IAOvB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAuBxC,KAAK;CAKN"}
package/dist/index.d.ts CHANGED
@@ -165,13 +165,6 @@ declare class ReactNativeBleTransport {
165
165
  private protocolReprobeFailures;
166
166
  /** Endpoints whose last detection got no answer; 'woken' once their Initialize wake is spent. */
167
167
  private silentDetections;
168
- /**
169
- * iOS can report a reset Pro2 as a generic peripheral disconnect instead of
170
- * CBErrorPeerRemovedPairingInformation. Keep that first probe failure across
171
- * the automatic cold reconnect and require a second failed probe before
172
- * classifying the OS bond as invalid.
173
- */
174
- private iosProbeDisconnectEvidence;
175
168
  /** Android endpoints whose cached GATT table is suspect; the next connect refreshes it. */
176
169
  private androidGattCacheRefreshes;
177
170
  /**
@@ -182,6 +175,8 @@ declare class ReactNativeBleTransport {
182
175
  private staleBondErrors;
183
176
  /** When the current Android link attempt began; bounds which key-missing signals apply. */
184
177
  private androidLinkStartedAt;
178
+ /** iOS acquire attempts whose new link the peer ended; two in a row mean a stale bond. */
179
+ private iosPeerTermination;
185
180
  /** Strict or previously confirmed V2 target while acquire installs notifications. */
186
181
  private acquiringProtocolV2;
187
182
  private protocolV2Assemblers;
@@ -233,6 +228,16 @@ declare class ReactNativeBleTransport {
233
228
  * connect is re-read as an invalid bond when that signal belongs to the same attempt.
234
229
  */
235
230
  private resolveAndroidBondInvalid;
231
+ /**
232
+ * iOS says why a link ended only on the operation it interrupted, so the native codes are read
233
+ * and logged here. Codes only: the reason text is localized and cannot be matched or searched.
234
+ */
235
+ private noteIosLinkError;
236
+ /**
237
+ * iPhones that do not report a lost bond only show the device ending each new link. One such
238
+ * attempt keeps its error so Core retries; the second in a row is the stale bond.
239
+ */
240
+ private resolveIosBondInvalid;
236
241
  /**
237
242
  * Android 16+ encrypts a bonded link on its own right after connecting. Subscribing to
238
243
  * notifications before that finishes gets the CCCD write rejected, and the framework's retry
@@ -286,9 +291,6 @@ declare class ReactNativeBleTransport {
286
291
  private resetPlxManager;
287
292
  private createProtocolMismatchError;
288
293
  private createProtocolDetectionError;
289
- private rememberIosProbeDisconnect;
290
- private getIosProbeDisconnectEvidence;
291
- private confirmIosProbeDisconnect;
292
294
  private clearProbeProtocol;
293
295
  /** Protocol to route a call with: confirmed if known, otherwise the one being probed. */
294
296
  private getActiveProtocol;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -494,6 +494,63 @@ const waitForAndroidLinkEncryption = ({ deviceId, linkStartedAt, resultTimeoutMs
494
494
  });
495
495
  };
496
496
 
497
+ const IOS_PERIPHERAL_DISCONNECTED$1 = 7;
498
+ const IOS_PEER_TERMINATION_LINK_WINDOW_MS = 10000;
499
+ const IOS_PEER_TERMINATION_REPEAT_WINDOW_MS = 60000;
500
+ const isIosPeerTerminationError = (error) => (error === null || error === void 0 ? void 0 : error.iosErrorCode) ===
501
+ IOS_PERIPHERAL_DISCONNECTED$1;
502
+ class IosPeerTerminationTracker {
503
+ constructor() {
504
+ this.linkStartedAt = new Map();
505
+ this.terminatedAt = new Map();
506
+ this.evidenceAt = new Map();
507
+ }
508
+ attemptStarted(deviceId) {
509
+ this.linkStartedAt.delete(deviceId);
510
+ this.terminatedAt.delete(deviceId);
511
+ }
512
+ linkStarted(deviceId) {
513
+ this.linkStartedAt.set(deviceId, Date.now());
514
+ this.terminatedAt.delete(deviceId);
515
+ }
516
+ note(deviceId, error) {
517
+ if (!isIosPeerTerminationError(error))
518
+ return;
519
+ if (!this.terminatedAt.has(deviceId))
520
+ this.terminatedAt.set(deviceId, Date.now());
521
+ }
522
+ linkProven(deviceId) {
523
+ this.forget(deviceId);
524
+ }
525
+ forget(deviceId) {
526
+ this.linkStartedAt.delete(deviceId);
527
+ this.terminatedAt.delete(deviceId);
528
+ this.evidenceAt.delete(deviceId);
529
+ }
530
+ attemptFailed(deviceId) {
531
+ const startedAt = this.linkStartedAt.get(deviceId);
532
+ const terminatedAt = this.terminatedAt.get(deviceId);
533
+ const previous = this.evidenceAt.get(deviceId);
534
+ this.forget(deviceId);
535
+ if (startedAt === undefined ||
536
+ terminatedAt === undefined ||
537
+ terminatedAt - startedAt > IOS_PEER_TERMINATION_LINK_WINDOW_MS) {
538
+ return false;
539
+ }
540
+ if (previous !== undefined &&
541
+ terminatedAt - previous <= IOS_PEER_TERMINATION_REPEAT_WINDOW_MS) {
542
+ return true;
543
+ }
544
+ this.evidenceAt.set(deviceId, terminatedAt);
545
+ return false;
546
+ }
547
+ reset() {
548
+ this.linkStartedAt.clear();
549
+ this.terminatedAt.clear();
550
+ this.evidenceAt.clear();
551
+ }
552
+ }
553
+
497
554
  const BLE_PLX_DEVICE_DISCONNECTED = 201;
498
555
  const IOS_PERIPHERAL_DISCONNECTED = 7;
499
556
  const nativeErrorText$1 = (error) => [error.reason, error.message]
@@ -661,33 +718,6 @@ const isAndroidLinkLossError = (error) => {
661
718
  code === hdShared.HardwareErrorCode.BleCharacteristicNotifyError ||
662
719
  code === hdShared.HardwareErrorCode.BleConnectedError);
663
720
  };
664
- const logIosBleBondDiagnostic = (phase, error, outcome) => {
665
- if (reactNative.Platform.OS !== 'ios')
666
- return;
667
- const nativeError = (error !== null && error !== void 0 ? error : {});
668
- const scalar = (value) => typeof value === 'string' || typeof value === 'number' ? value : undefined;
669
- Log === null || Log === void 0 ? void 0 : Log.debug('[ReactNativeBleTransport][BleBondDiagnostic] probe error', {
670
- phase,
671
- outcome,
672
- errorName: scalar(nativeError.name),
673
- errorCode: scalar(nativeError.errorCode),
674
- attErrorCode: scalar(nativeError.attErrorCode),
675
- iosErrorCode: scalar(nativeError.iosErrorCode),
676
- androidErrorCode: scalar(nativeError.androidErrorCode),
677
- nativeStaleBond: isNativeBleStaleBondError(error),
678
- hardwareStaleBond: hdShared.isBleStaleBondHardwareError(error),
679
- nativeDisconnect: isNativeBleDisconnectError(error),
680
- });
681
- };
682
- const IOS_PROBE_DISCONNECT_EVIDENCE_TTL_MS = 5 * 60000;
683
- const isIosProbeDisconnectError = (error) => {
684
- if (reactNative.Platform.OS !== 'ios')
685
- return false;
686
- const code = error === null || error === void 0 ? void 0 : error.errorCode;
687
- return (isNativeBleDisconnectError(error) ||
688
- code === hdShared.HardwareErrorCode.BleDeviceNotBonded ||
689
- code === hdShared.HardwareErrorCode.BleDeviceDisconnected);
690
- };
691
721
  const BLE_WRITE_TIMEOUT_MANAGER_RESET_THRESHOLD = 2;
692
722
  const DEVICE_SCAN_TIMEOUT_MS = 3000;
693
723
  const IOS_NOTIFY_READY_DELAY_MS = 150;
@@ -883,10 +913,10 @@ class ReactNativeBleTransport {
883
913
  this.confirmedProtocolV2 = new Set();
884
914
  this.protocolReprobeFailures = new Map();
885
915
  this.silentDetections = new Map();
886
- this.iosProbeDisconnectEvidence = new Map();
887
916
  this.androidGattCacheRefreshes = new Set();
888
917
  this.staleBondErrors = new Map();
889
918
  this.androidLinkStartedAt = new Map();
919
+ this.iosPeerTermination = new IosPeerTerminationTracker();
890
920
  this.acquiringProtocolV2 = new Set();
891
921
  this.protocolV2Assemblers = new Map();
892
922
  this.protocolV2FrameQueues = new Map();
@@ -1329,7 +1359,7 @@ class ReactNativeBleTransport {
1329
1359
  return yield this.acquireUnlocked(input);
1330
1360
  }
1331
1361
  catch (error) {
1332
- throw yield this.resolveAndroidBondInvalid(uuid, error);
1362
+ throw this.resolveIosBondInvalid(input, yield this.resolveAndroidBondInvalid(uuid, error));
1333
1363
  }
1334
1364
  }));
1335
1365
  });
@@ -1340,6 +1370,7 @@ class ReactNativeBleTransport {
1340
1370
  if (this.stopped)
1341
1371
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.BleDeviceDisconnected);
1342
1372
  const { uuid, forceCleanRunPromise, expectedProtocol, skipProtocolProbe } = input;
1373
+ this.iosPeerTermination.attemptStarted(uuid);
1343
1374
  const shouldMapProtocolV2StaleBond = expectedProtocol
1344
1375
  ? expectedProtocol === 'V2'
1345
1376
  : this.confirmedProtocolV2.has(uuid);
@@ -1633,6 +1664,7 @@ class ReactNativeBleTransport {
1633
1664
  }));
1634
1665
  if (this.stopped)
1635
1666
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.BleDeviceDisconnected);
1667
+ this.iosPeerTermination.linkProven(uuid);
1636
1668
  const currentTransport = transportCache[uuid];
1637
1669
  if (!currentTransport) {
1638
1670
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.TransportNotFound);
@@ -1659,6 +1691,8 @@ class ReactNativeBleTransport {
1659
1691
  var _a, _b, _c, _d, _e, _f;
1660
1692
  const isCurrentMonitor = this.monitorTokens.get(uuid) === monitorToken;
1661
1693
  if (error) {
1694
+ if (isCurrentMonitor)
1695
+ this.noteIosLinkError(uuid, 'notify', error);
1662
1696
  Log === null || Log === void 0 ? void 0 : Log.debug(`error monitor ${characteristic.uuid}, deviceId: ${characteristic.deviceID}: ${error}`);
1663
1697
  if (this.firmwareUploadWriteRecoveryIds.has(uuid)) {
1664
1698
  Log === null || Log === void 0 ? void 0 : Log.debug('notify error ignored during FirmwareUpload write recovery: ', uuid);
@@ -1877,6 +1911,40 @@ class ReactNativeBleTransport {
1877
1911
  });
1878
1912
  });
1879
1913
  }
1914
+ noteIosLinkError(uuid, stage, error) {
1915
+ if (reactNative.Platform.OS !== 'ios')
1916
+ return;
1917
+ this.iosPeerTermination.note(uuid, error);
1918
+ if (stage !== 'gatt-setup' && !isNativeBleDisconnectError(error))
1919
+ return;
1920
+ const native = (error !== null && error !== void 0 ? error : {});
1921
+ const code = (value) => typeof value === 'number' || typeof value === 'string' ? value : undefined;
1922
+ Log === null || Log === void 0 ? void 0 : Log.debug('[ReactNativeBleTransport] iOS operation failed', {
1923
+ connectIdSuffix: uuid.slice(-8),
1924
+ stage,
1925
+ errorCode: code(native.errorCode),
1926
+ iosErrorCode: code(native.iosErrorCode),
1927
+ attErrorCode: code(native.attErrorCode),
1928
+ });
1929
+ }
1930
+ resolveIosBondInvalid(input, error) {
1931
+ if (reactNative.Platform.OS !== 'ios')
1932
+ return error;
1933
+ const { uuid, skipProtocolProbe } = input;
1934
+ if (skipProtocolProbe || hdShared.isBleStaleBondHardwareError(error)) {
1935
+ this.iosPeerTermination.forget(uuid);
1936
+ return error;
1937
+ }
1938
+ if (!this.iosPeerTermination.attemptFailed(uuid))
1939
+ return error;
1940
+ Log === null || Log === void 0 ? void 0 : Log.debug('[ReactNativeBleTransport] iOS peer ended two new links in a row, bond is invalid:', {
1941
+ connectIdSuffix: uuid.slice(-8),
1942
+ });
1943
+ return hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.BleBondInvalid, undefined, {
1944
+ phase: 'connect',
1945
+ reason: 'peer_disconnected',
1946
+ });
1947
+ }
1880
1948
  waitForAndroidLinkSecurity(uuid) {
1881
1949
  return __awaiter(this, void 0, void 0, function* () {
1882
1950
  const linkStartedAt = this.androidLinkStartedAt.get(uuid);
@@ -2116,9 +2184,9 @@ class ReactNativeBleTransport {
2116
2184
  this.androidPriorityResetTimers.clear();
2117
2185
  this.androidHighPriorityDevices.clear();
2118
2186
  this.androidLinkStartedAt.clear();
2187
+ this.iosPeerTermination.reset();
2119
2188
  stopBleKeyMissingTracking();
2120
2189
  stopBleEncryptionTracking();
2121
- this.iosProbeDisconnectEvidence.clear();
2122
2190
  const error = hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.BleDeviceDisconnected);
2123
2191
  (_a = this.runPromise) === null || _a === void 0 ? void 0 : _a.reject(error);
2124
2192
  this.runPromise = null;
@@ -2372,6 +2440,7 @@ class ReactNativeBleTransport {
2372
2440
  }),
2373
2441
  ]);
2374
2442
  succeeded = true;
2443
+ this.iosPeerTermination.linkStarted(uuid);
2375
2444
  return result;
2376
2445
  }
2377
2446
  catch (error) {
@@ -2418,6 +2487,10 @@ class ReactNativeBleTransport {
2418
2487
  return result;
2419
2488
  }
2420
2489
  catch (error) {
2490
+ this.noteIosLinkError(uuid, 'gatt-setup', error);
2491
+ if (reactNative.Platform.OS === 'ios' && isNativeBleStaleBondError(error)) {
2492
+ throw toBleStaleBondHardwareError(error);
2493
+ }
2421
2494
  if (timedOut || isNativeOperationTimeoutError(error)) {
2422
2495
  const resetManager = this.abandonStalledConnection(uuid, timedOut ? 'gatt-backstop' : 'gatt-native');
2423
2496
  if (resetManager) {
@@ -2496,6 +2569,7 @@ class ReactNativeBleTransport {
2496
2569
  this.writeTimeoutCounts.delete(uuid);
2497
2570
  }
2498
2571
  catch (error) {
2572
+ this.noteIosLinkError(uuid, 'write', error);
2499
2573
  if (timedOut) {
2500
2574
  if (isCurrentOwner && !isCurrentOwner()) {
2501
2575
  Log === null || Log === void 0 ? void 0 : Log.debug('[ReactNativeBleTransport] stale BLE write timed out, link kept:', uuid);
@@ -2604,50 +2678,6 @@ class ReactNativeBleTransport {
2604
2678
  createProtocolDetectionError() {
2605
2679
  return hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.BleTimeoutError, 'Unable to detect BLE protocol: device did not respond to Protocol V1 GetFeatures or Protocol V2 Ping');
2606
2680
  }
2607
- rememberIosProbeDisconnect(uuid, phase, error) {
2608
- if (!isIosProbeDisconnectError(error))
2609
- return undefined;
2610
- const previous = this.getIosProbeDisconnectEvidence(uuid);
2611
- const errorCode = error === null || error === void 0 ? void 0 : error.errorCode;
2612
- const evidence = Object.assign(Object.assign({ phase }, (typeof errorCode === 'string' || typeof errorCode === 'number' ? { errorCode } : {})), { recordedAt: Date.now() });
2613
- this.iosProbeDisconnectEvidence.set(uuid, evidence);
2614
- Log === null || Log === void 0 ? void 0 : Log.debug('[ReactNativeBleTransport][BleBondDiagnostic] probe disconnect recorded', {
2615
- phase,
2616
- errorCode: evidence.errorCode,
2617
- repeated: Boolean(previous),
2618
- });
2619
- if (!previous)
2620
- return undefined;
2621
- return this.confirmIosProbeDisconnect(uuid, 'repeated-probe-disconnect');
2622
- }
2623
- getIosProbeDisconnectEvidence(uuid) {
2624
- const evidence = this.iosProbeDisconnectEvidence.get(uuid);
2625
- if (!evidence)
2626
- return undefined;
2627
- const ageMs = Date.now() - evidence.recordedAt;
2628
- if (ageMs <= IOS_PROBE_DISCONNECT_EVIDENCE_TTL_MS)
2629
- return evidence;
2630
- this.iosProbeDisconnectEvidence.delete(uuid);
2631
- Log === null || Log === void 0 ? void 0 : Log.debug('[ReactNativeBleTransport][BleBondDiagnostic] probe disconnect expired', {
2632
- triggerPhase: evidence.phase,
2633
- triggerErrorCode: evidence.errorCode,
2634
- ageMs,
2635
- });
2636
- return undefined;
2637
- }
2638
- confirmIosProbeDisconnect(uuid, confirmation) {
2639
- const evidence = this.getIosProbeDisconnectEvidence(uuid);
2640
- if (!evidence)
2641
- return undefined;
2642
- Log === null || Log === void 0 ? void 0 : Log.debug('[ReactNativeBleTransport][BleBondDiagnostic] stale bond confirmed', {
2643
- confirmation,
2644
- triggerPhase: evidence.phase,
2645
- triggerErrorCode: evidence.errorCode,
2646
- evidenceAgeMs: Date.now() - evidence.recordedAt,
2647
- finalErrorCode: hdShared.HardwareErrorCode.BleBondInvalid,
2648
- });
2649
- return hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.BleBondInvalid);
2650
- }
2651
2681
  clearProbeProtocol(uuid, protocol) {
2652
2682
  if (this.probingProtocols.get(uuid) === protocol) {
2653
2683
  this.probingProtocols.delete(uuid);
@@ -2661,10 +2691,9 @@ class ReactNativeBleTransport {
2661
2691
  return (_a = this.deviceProtocol.get(uuid)) !== null && _a !== void 0 ? _a : this.probingProtocols.get(uuid);
2662
2692
  }
2663
2693
  detectProtocol(uuid, expectedProtocol, protocolHint, rebuildTransport) {
2664
- var _a, _b;
2694
+ var _a;
2665
2695
  return __awaiter(this, void 0, void 0, function* () {
2666
2696
  if (expectedProtocol === 'V1') {
2667
- this.iosProbeDisconnectEvidence.delete(uuid);
2668
2697
  this.deviceProtocol.set(uuid, 'V1');
2669
2698
  Log === null || Log === void 0 ? void 0 : Log.debug('[ReactNativeBleTransport] protocol selected', {
2670
2699
  deviceId: uuid,
@@ -2678,7 +2707,6 @@ class ReactNativeBleTransport {
2678
2707
  }
2679
2708
  if (expectedProtocol === 'V2') {
2680
2709
  if (yield this.probeProtocolV2(uuid)) {
2681
- this.iosProbeDisconnectEvidence.delete(uuid);
2682
2710
  this.deviceProtocol.set(uuid, 'V2');
2683
2711
  this.sessionProtocols.set(uuid, 'V2');
2684
2712
  this.confirmedProtocolV2.add(uuid);
@@ -2689,19 +2717,6 @@ class ReactNativeBleTransport {
2689
2717
  });
2690
2718
  return 'V2';
2691
2719
  }
2692
- const staleBondError = this.confirmIosProbeDisconnect(uuid, 'follow-up-no-response');
2693
- if (reactNative.Platform.OS === 'ios') {
2694
- Log === null || Log === void 0 ? void 0 : Log.debug('[ReactNativeBleTransport][BleBondDiagnostic] protocol detection ended', {
2695
- outcome: 'expected-v2-no-response',
2696
- expectedProtocol,
2697
- protocolHint: protocolHint !== null && protocolHint !== void 0 ? protocolHint : 'none',
2698
- finalErrorCode: staleBondError
2699
- ? hdShared.HardwareErrorCode.BleBondInvalid
2700
- : hdShared.HardwareErrorCode.RuntimeError,
2701
- });
2702
- }
2703
- if (staleBondError)
2704
- throw staleBondError;
2705
2720
  throw this.createProtocolMismatchError(expectedProtocol);
2706
2721
  }
2707
2722
  const sessionProtocol = this.sessionProtocols.get(uuid);
@@ -2725,7 +2740,6 @@ class ReactNativeBleTransport {
2725
2740
  }
2726
2741
  const detected = protocol === 'V1' ? yield this.probeProtocolV1(uuid) : yield this.probeProtocolV2(uuid);
2727
2742
  if (detected) {
2728
- this.iosProbeDisconnectEvidence.delete(uuid);
2729
2743
  this.deviceProtocol.set(uuid, protocol);
2730
2744
  this.sessionProtocols.set(uuid, protocol);
2731
2745
  if (protocol === 'V2') {
@@ -2751,26 +2765,6 @@ class ReactNativeBleTransport {
2751
2765
  }
2752
2766
  this.deviceProtocol.delete(uuid);
2753
2767
  this.probingProtocols.delete(uuid);
2754
- const staleBondError = this.confirmIosProbeDisconnect(uuid, 'follow-up-no-response');
2755
- if (reactNative.Platform.OS === 'ios') {
2756
- Log === null || Log === void 0 ? void 0 : Log.debug('[ReactNativeBleTransport][BleBondDiagnostic] protocol detection ended', {
2757
- outcome: 'all-probes-no-response',
2758
- expectedProtocol: expectedProtocol !== null && expectedProtocol !== void 0 ? expectedProtocol : 'none',
2759
- protocolHint: protocolHint !== null && protocolHint !== void 0 ? protocolHint : 'none',
2760
- sessionProtocol: sessionProtocol !== null && sessionProtocol !== void 0 ? sessionProtocol : 'none',
2761
- probeOrder: probeOrder.join(','),
2762
- trustSessionProtocol,
2763
- reprobeFailures,
2764
- transportCached: Boolean(transportCache[uuid]),
2765
- notifyActive: Boolean((_b = transportCache[uuid]) === null || _b === void 0 ? void 0 : _b.notifySubscription),
2766
- staleBondRecorded: this.iosProbeDisconnectEvidence.has(uuid),
2767
- finalErrorCode: staleBondError
2768
- ? hdShared.HardwareErrorCode.BleBondInvalid
2769
- : hdShared.HardwareErrorCode.BleTimeoutError,
2770
- });
2771
- }
2772
- if (staleBondError)
2773
- throw staleBondError;
2774
2768
  throw this.createProtocolDetectionError();
2775
2769
  });
2776
2770
  }
@@ -2854,12 +2848,7 @@ class ReactNativeBleTransport {
2854
2848
  catch (error) {
2855
2849
  this.clearProbeProtocol(uuid, 'V1');
2856
2850
  Log === null || Log === void 0 ? void 0 : Log.debug('[ReactNativeBleTransport] Protocol V1 GetFeatures probe failed:', error);
2857
- const shouldRethrow = shouldRethrowProtocolProbeError(error);
2858
- const staleBondError = this.rememberIosProbeDisconnect(uuid, 'protocol-v1-get-features', error);
2859
- logIosBleBondDiagnostic('protocol-v1-get-features', error, shouldRethrow ? 'rethrow' : 'fallback');
2860
- if (staleBondError)
2861
- throw staleBondError;
2862
- if (shouldRethrow) {
2851
+ if (shouldRethrowProtocolProbeError(error)) {
2863
2852
  throw error;
2864
2853
  }
2865
2854
  return false;
@@ -2875,28 +2864,18 @@ class ReactNativeBleTransport {
2875
2864
  this.probingProtocols.set(uuid, 'V2');
2876
2865
  (_a = this.protocolV2Assemblers.get(uuid)) === null || _a === void 0 ? void 0 : _a.reset();
2877
2866
  this.throwIfStaleBondError(uuid);
2878
- let detected;
2879
- try {
2880
- detected = yield transport.probeProtocolV2({
2881
- call: (name, data, options) => this.callProtocolV2(uuid, name, data, options),
2882
- timeoutMs: PROTOCOL_V2_PROBE_TIMEOUT_MS,
2883
- logger: Log,
2884
- logPrefix: 'ProtocolV2 RN-BLE',
2885
- onProbeFailed: () => {
2886
- var _a;
2887
- (_a = this.protocolV2Assemblers.get(uuid)) === null || _a === void 0 ? void 0 : _a.reset();
2888
- this.resetProtocolV2Frames(uuid);
2889
- },
2890
- shouldRethrow: shouldRethrowProtocolProbeError,
2891
- });
2892
- }
2893
- catch (error) {
2894
- const staleBondError = this.rememberIosProbeDisconnect(uuid, 'protocol-v2-ping', error);
2895
- logIosBleBondDiagnostic('protocol-v2-ping', error, 'rethrow');
2896
- if (staleBondError)
2897
- throw staleBondError;
2898
- throw error;
2899
- }
2867
+ const detected = yield transport.probeProtocolV2({
2868
+ call: (name, data, options) => this.callProtocolV2(uuid, name, data, options),
2869
+ timeoutMs: PROTOCOL_V2_PROBE_TIMEOUT_MS,
2870
+ logger: Log,
2871
+ logPrefix: 'ProtocolV2 RN-BLE',
2872
+ onProbeFailed: () => {
2873
+ var _a;
2874
+ (_a = this.protocolV2Assemblers.get(uuid)) === null || _a === void 0 ? void 0 : _a.reset();
2875
+ this.resetProtocolV2Frames(uuid);
2876
+ },
2877
+ shouldRethrow: shouldRethrowProtocolProbeError,
2878
+ });
2900
2879
  if (!detected) {
2901
2880
  this.clearProbeProtocol(uuid, 'V2');
2902
2881
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/hd-transport-react-native",
3
- "version": "1.2.4-alpha.0",
3
+ "version": "1.2.4-alpha.2",
4
4
  "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -20,11 +20,11 @@
20
20
  "lint:fix": "eslint . --fix"
21
21
  },
22
22
  "dependencies": {
23
- "@onekeyfe/hd-core": "1.2.4-alpha.0",
24
- "@onekeyfe/hd-shared": "1.2.4-alpha.0",
25
- "@onekeyfe/hd-transport": "1.2.4-alpha.0",
23
+ "@onekeyfe/hd-core": "1.2.4-alpha.2",
24
+ "@onekeyfe/hd-shared": "1.2.4-alpha.2",
25
+ "@onekeyfe/hd-transport": "1.2.4-alpha.2",
26
26
  "@onekeyfe/react-native-ble-utils": "0.1.9",
27
27
  "react-native-ble-plx": "3.5.1"
28
28
  },
29
- "gitHead": "4996c67dbb5a3ac85c2559b164d9a931274890a7"
29
+ "gitHead": "691b0ef5e3f0015108b3d64b948f2b9ee9734734"
30
30
  }