react-native-ble-nitro 1.6.0 → 1.7.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.
Files changed (86) hide show
  1. package/README.md +27 -11
  2. package/android/src/main/java/com/margelo/nitro/co/zyke/ble/BleNitroBleManager.kt +8 -3
  3. package/android/src/main/java/com/margelo/nitro/co/zyke/ble/BleNitroBleManagerFactory.kt +21 -0
  4. package/ios/BleNitroBleManager.swift +36 -23
  5. package/ios/BleNitroBleManagerFactory.swift +19 -0
  6. package/lib/commonjs/index.d.ts +2 -5
  7. package/lib/commonjs/index.d.ts.map +1 -1
  8. package/lib/commonjs/index.js +7 -15
  9. package/lib/commonjs/index.js.map +1 -1
  10. package/lib/commonjs/manager.d.ts +9 -0
  11. package/lib/commonjs/manager.d.ts.map +1 -1
  12. package/lib/commonjs/manager.js +44 -30
  13. package/lib/commonjs/manager.js.map +1 -1
  14. package/lib/commonjs/singleton.d.ts +10 -0
  15. package/lib/commonjs/singleton.d.ts.map +1 -0
  16. package/lib/commonjs/singleton.js +20 -0
  17. package/lib/commonjs/singleton.js.map +1 -0
  18. package/lib/commonjs/specs/NativeBleNitro.d.ts +1 -1
  19. package/lib/commonjs/specs/NativeBleNitro.d.ts.map +1 -1
  20. package/lib/commonjs/specs/NativeBleNitro.js +1 -0
  21. package/lib/commonjs/specs/NativeBleNitro.js.map +1 -1
  22. package/lib/commonjs/specs/NativeBleNitro.nitro.d.ts +2 -0
  23. package/lib/commonjs/specs/NativeBleNitro.nitro.d.ts.map +1 -1
  24. package/lib/commonjs/specs/NativeBleNitro.nitro.js.map +1 -1
  25. package/lib/commonjs/specs/NativeBleNitroFactory.d.ts +5 -0
  26. package/lib/commonjs/specs/NativeBleNitroFactory.d.ts.map +1 -0
  27. package/lib/commonjs/specs/NativeBleNitroFactory.js +23 -0
  28. package/lib/commonjs/specs/NativeBleNitroFactory.js.map +1 -0
  29. package/lib/commonjs/specs/NativeBleNitroFactory.nitro.d.ts +9 -0
  30. package/lib/commonjs/specs/NativeBleNitroFactory.nitro.d.ts.map +1 -0
  31. package/lib/commonjs/specs/NativeBleNitroFactory.nitro.js +3 -0
  32. package/lib/commonjs/specs/NativeBleNitroFactory.nitro.js.map +1 -0
  33. package/lib/index.d.ts +2 -5
  34. package/lib/index.js +2 -11
  35. package/lib/manager.d.ts +9 -0
  36. package/lib/manager.js +38 -25
  37. package/lib/singleton.d.ts +9 -0
  38. package/lib/singleton.js +15 -0
  39. package/lib/specs/NativeBleNitro.d.ts +1 -1
  40. package/lib/specs/NativeBleNitro.js +1 -0
  41. package/lib/specs/NativeBleNitro.nitro.d.ts +2 -0
  42. package/lib/specs/NativeBleNitroFactory.d.ts +4 -0
  43. package/lib/specs/NativeBleNitroFactory.js +6 -0
  44. package/lib/specs/NativeBleNitroFactory.nitro.d.ts +8 -0
  45. package/lib/specs/NativeBleNitroFactory.nitro.js +1 -0
  46. package/nitro.json +4 -0
  47. package/nitrogen/generated/android/BleNitro+autolinking.cmake +2 -0
  48. package/nitrogen/generated/android/BleNitroOnLoad.cpp +11 -0
  49. package/nitrogen/generated/android/c++/JBLEDevice.hpp +6 -2
  50. package/nitrogen/generated/android/c++/JFunc_void_std__vector_BLEDevice_.hpp +12 -12
  51. package/nitrogen/generated/android/c++/JHybridNativeBleNitroFactorySpec.cpp +71 -0
  52. package/nitrogen/generated/android/c++/JHybridNativeBleNitroFactorySpec.hpp +64 -0
  53. package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.cpp +11 -3
  54. package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.hpp +2 -1
  55. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BLEDevice.kt +4 -1
  56. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__vector_BLEDevice_.kt +9 -9
  57. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridNativeBleNitroFactorySpec.kt +57 -0
  58. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridNativeBleNitroSpec.kt +5 -1
  59. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.cpp +17 -0
  60. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.hpp +44 -9
  61. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Umbrella.hpp +5 -0
  62. package/nitrogen/generated/ios/BleNitroAutolinking.mm +8 -0
  63. package/nitrogen/generated/ios/BleNitroAutolinking.swift +15 -0
  64. package/nitrogen/generated/ios/c++/HybridNativeBleNitroFactorySpecSwift.cpp +11 -0
  65. package/nitrogen/generated/ios/c++/HybridNativeBleNitroFactorySpecSwift.hpp +94 -0
  66. package/nitrogen/generated/ios/c++/HybridNativeBleNitroSpecSwift.hpp +9 -3
  67. package/nitrogen/generated/ios/swift/BLEDevice.swift +13 -2
  68. package/nitrogen/generated/ios/swift/Func_void_std__vector_BLEDevice_.swift +5 -5
  69. package/nitrogen/generated/ios/swift/HybridNativeBleNitroFactorySpec.swift +49 -0
  70. package/nitrogen/generated/ios/swift/HybridNativeBleNitroFactorySpec_cxx.swift +149 -0
  71. package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec.swift +1 -1
  72. package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec_cxx.swift +22 -1
  73. package/nitrogen/generated/shared/c++/BLEDevice.hpp +6 -2
  74. package/nitrogen/generated/shared/c++/HybridNativeBleNitroFactorySpec.cpp +21 -0
  75. package/nitrogen/generated/shared/c++/HybridNativeBleNitroFactorySpec.hpp +71 -0
  76. package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.cpp +2 -0
  77. package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.hpp +4 -3
  78. package/package.json +9 -1
  79. package/src/__tests__/index.test.ts +36 -26
  80. package/src/index.ts +2 -13
  81. package/src/manager.ts +41 -25
  82. package/src/singleton.ts +17 -0
  83. package/src/specs/NativeBleNitro.nitro.ts +2 -0
  84. package/src/specs/NativeBleNitro.ts +2 -1
  85. package/src/specs/NativeBleNitroFactory.nitro.ts +6 -0
  86. package/src/specs/NativeBleNitroFactory.ts +9 -0
package/README.md CHANGED
@@ -73,6 +73,15 @@ import { BleNitro, BLEState, AndroidScanMode, type BLEDevice } from 'react-nativ
73
73
 
74
74
  // Get the singleton instance
75
75
  const ble = BleNitro.instance();
76
+
77
+ // Use custom manager instance (e.g. for iOS state restoration)
78
+ // It is recommended to create this instance in an extra file seperated from other BLE business logic for better fast-refresh support
79
+ const ble = new BleNitroManager({
80
+ restoreStateIdentifier: 'my-unique-identifier',
81
+ onRestoreState: (peripherals) => {
82
+ console.log('Restored peripherals:', peripherals);
83
+ },
84
+ });
76
85
  ```
77
86
 
78
87
  ### Complete API Reference
@@ -364,28 +373,35 @@ const fullUUIDs = BleNitro.normalizeGattUUIDs(['180d', '180f']);
364
373
 
365
374
  ### iOS Restore State
366
375
 
367
- There are two ways to handle state restoration on iOS:
376
+ There is built-in support for iOS state restoration. You need to provide a unique identifier and a callback to handle restored peripherals. If no unique identifier is provided, state restoration is disabled.
368
377
 
369
- ```typescript
370
- // Enable state restoration in BleNitro singleton
371
- const ble = BleNitro.instance();
372
- ble.onRestoreState((peripherals) => {
373
- console.log('Restored peripherals:', peripherals);
374
- });
375
- ```
378
+ > [!CAUTION]
379
+ > From 1.7.0 on you have to create your own instance of `BleNitroManager` if you want to use state restoration. The singleton `BleNitro.instance()` will not have state restoration enabled by default anymore.
376
380
 
377
381
  ```typescript
378
- // Or use BleNitroManager with options
379
- // This way you have to assure that only one instance of BleNitroManager is created and that you always use this instance.
380
- import { BleNitroManager, BLEDevice } from 'react-native-ble-nitro/manager';
382
+ import { BleNitroManager, BLEDevice } from 'react-native-ble-nitro';
381
383
 
382
384
  const customBleInstance = new BleNitroManager({
385
+ restoreStateIdentifier: 'my-unique-identifier', // unique identifier for state restoration
383
386
  onRestoreState: (peripherals: BLEDevice[]) => {
384
387
  console.log('Restored peripherals:', peripherals);
388
+ // Handle restored peripherals
385
389
  }
386
390
  });
387
391
  ```
388
392
 
393
+ <details>
394
+ <summary><strong>Singleton Restore State before 1.7.0 (<= 1.6.0)</strong></summary>
395
+
396
+ ```typescript
397
+ // Enable state restoration in BleNitro singleton
398
+ const ble = BleNitro.instance();
399
+ ble.onRestoreState((peripherals) => {
400
+ console.log('Restored peripherals:', peripherals);
401
+ });
402
+ ```
403
+ </details>
404
+
389
405
  ### TypeScript Types
390
406
 
391
407
  ```typescript
@@ -33,7 +33,10 @@ import java.util.concurrent.ConcurrentHashMap
33
33
  * This class provides the actual BLE functionality for Android devices
34
34
  */
35
35
  class BleNitroBleManager : HybridNativeBleNitroSpec() {
36
-
36
+
37
+ // iOS-specific property (not used on Android)
38
+ override var restoreStateIdentifier: String? = null
39
+
37
40
  private var bluetoothAdapter: BluetoothAdapter? = null
38
41
  private var stateCallback: ((state: BLEState) -> Unit)? = null
39
42
  private var bluetoothStateReceiver: BroadcastReceiver? = null
@@ -207,7 +210,8 @@ class BleNitroBleManager : HybridNativeBleNitroSpec() {
207
210
  rssi = scanResult.rssi.toDouble(),
208
211
  manufacturerData = manufacturerData,
209
212
  serviceUUIDs = serviceUUIDs,
210
- isConnectable = true // Assume scannable devices are connectable
213
+ isConnectable = true, // Assume scannable devices are connectable
214
+ isConnected = false // Scanned devices are not yet connected
211
215
  )
212
216
  }
213
217
 
@@ -491,7 +495,8 @@ class BleNitroBleManager : HybridNativeBleNitroSpec() {
491
495
  rssi = 0.0, // RSSI not available for already connected devices
492
496
  manufacturerData = ManufacturerData(companyIdentifiers = emptyArray()),
493
497
  serviceUUIDs = emptyArray(), // Service UUIDs not available without service discovery
494
- isConnectable = true
498
+ isConnectable = true,
499
+ isConnected = true
495
500
  )
496
501
  }.toTypedArray()
497
502
  } catch (e: Exception) {
@@ -0,0 +1,21 @@
1
+ package com.margelo.nitro.co.zyke.ble
2
+
3
+ import com.margelo.nitro.core.*
4
+
5
+ /**
6
+ * Android Factory implementation for BLE Nitro Manager
7
+ * Creates BleNitroBleManager instances
8
+ *
9
+ * Note: restoreStateIdentifier and restoreStateCallback are iOS-specific
10
+ * and ignored on Android
11
+ */
12
+ class BleNitroBleManagerFactory : HybridNativeBleNitroFactorySpec() {
13
+
14
+ override fun create(
15
+ nativeRestoreStateIdentifier: String?,
16
+ restoreStateCallback: ((peripherals: Array<BLEDevice>) -> Unit)?
17
+ ): HybridNativeBleNitroSpec {
18
+ // Ignore iOS-specific parameters on Android
19
+ return BleNitroBleManager()
20
+ }
21
+ }
@@ -5,13 +5,10 @@ import NitroModules
5
5
  * iOS implementation of the BLE Nitro Manager
6
6
  * Implements the HybridNativeBleNitroSpec protocol for Core Bluetooth operations
7
7
  */
8
- public class BleNitroBleManager: HybridNativeBleNitroSpec_base, HybridNativeBleNitroSpec_protocol {
9
-
10
- // MARK: - Constants
11
- private static let restoreStateIdentifier = "react-native-ble-nitro"
12
-
8
+ public class BleNitroBleManager: HybridNativeBleNitroSpec {
9
+
13
10
  // MARK: - Static Properties
14
- private static var globalRestoreStateCallback: (([BLEDevice]) -> Void)?
11
+ internal static var globalRestoreStateCallback: (([BLEDevice]) -> Void)?
15
12
 
16
13
  // MARK: - Private Properties
17
14
  private var centralManager: CBCentralManager!
@@ -26,23 +23,30 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec_base, HybridNativeBleN
26
23
  private var centralManagerDelegate: BleCentralManagerDelegate!
27
24
 
28
25
  // MARK: - Restore State Properties
29
- private var restoreStateCallback: (([BLEDevice]) -> Void)?
26
+ internal var restoreStateCallback: (([BLEDevice]) -> Void)?
27
+
28
+ // MARK: - Public Properties (from spec)
29
+ public var restoreStateIdentifier: String? = nil
30
30
 
31
31
  // MARK: - Initialization
32
- public override init() {
32
+ public init(restoreStateIdentifier: String? = nil, restoreStateCallback: (([BLEDevice]) -> Void)? = nil) {
33
+ self.restoreStateIdentifier = restoreStateIdentifier
34
+ self.restoreStateCallback = restoreStateCallback
33
35
  super.init()
34
36
  setupCentralManager()
35
37
  }
36
38
 
37
39
  private func setupCentralManager() {
38
40
  centralManagerDelegate = BleCentralManagerDelegate(manager: self)
39
-
40
- // Create options dictionary for central manager with fixed restore identifier
41
- let options: [String: Any] = [
42
- CBCentralManagerOptionRestoreIdentifierKey: BleNitroBleManager.restoreStateIdentifier
43
- ]
44
-
45
- centralManager = CBCentralManager(delegate: centralManagerDelegate, queue: DispatchQueue.main, options: options)
41
+
42
+ // Create options dictionary for central manager with restore identifier if set
43
+ var options: [String: Any] = [:]
44
+ print("Restore Identifier: \(String(describing: restoreStateIdentifier))")
45
+ if let identifier = restoreStateIdentifier {
46
+ options[CBCentralManagerOptionRestoreIdentifierKey] = identifier
47
+ }
48
+
49
+ centralManager = CBCentralManager(delegate: centralManagerDelegate, queue: DispatchQueue.main, options: options.isEmpty ? nil : options)
46
50
  }
47
51
 
48
52
 
@@ -72,11 +76,9 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec_base, HybridNativeBleN
72
76
 
73
77
  // MARK: - Restore State Management
74
78
  public func setRestoreStateCallback(callback: @escaping ([BLEDevice]) -> Void) throws {
75
- print("🔄 setRestoreStateCallback called")
76
79
  // Set both static and instance variables
77
80
  BleNitroBleManager.globalRestoreStateCallback = callback
78
81
  self.restoreStateCallback = callback
79
- print("🔄 Callback set successfully")
80
82
  }
81
83
 
82
84
  // MARK: - Scanning Operations
@@ -132,7 +134,8 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec_base, HybridNativeBleN
132
134
  rssi: 0, // RSSI not available for connected devices without explicit read
133
135
  manufacturerData: ManufacturerData(companyIdentifiers: []), // Not available for connected devices
134
136
  serviceUUIDs: peripheral.services?.map { $0.uuid.uuidString } ?? [],
135
- isConnectable: true // Already connected, so it was connectable
137
+ isConnectable: true, // Already connected, so it was connectable
138
+ isConnected: true
136
139
  )
137
140
  connectedDevices.append(device)
138
141
  }
@@ -152,7 +155,8 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec_base, HybridNativeBleN
152
155
  rssi: 0,
153
156
  manufacturerData: ManufacturerData(companyIdentifiers: []),
154
157
  serviceUUIDs: peripheral.services?.map { $0.uuid.uuidString } ?? [],
155
- isConnectable: true
158
+ isConnectable: true,
159
+ isConnected: true
156
160
  )
157
161
  connectedDevices.append(device)
158
162
 
@@ -177,7 +181,8 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec_base, HybridNativeBleN
177
181
  rssi: 0,
178
182
  manufacturerData: ManufacturerData(companyIdentifiers: []),
179
183
  serviceUUIDs: peripheral.services?.map { $0.uuid.uuidString } ?? [],
180
- isConnectable: true
184
+ isConnectable: true,
185
+ isConnected: true
181
186
  )
182
187
  connectedDevices.append(device)
183
188
 
@@ -507,7 +512,8 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec_base, HybridNativeBleN
507
512
  rssi: 0, // RSSI not available for restored peripherals
508
513
  manufacturerData: ManufacturerData(companyIdentifiers: []),
509
514
  serviceUUIDs: peripheral.services?.map { $0.uuid.uuidString } ?? [],
510
- isConnectable: true
515
+ isConnectable: true,
516
+ isConnected: peripheral.state == .connected
511
517
  )
512
518
  restoredDevices.append(device)
513
519
 
@@ -634,7 +640,8 @@ public class BleNitroBleManager: HybridNativeBleNitroSpec_base, HybridNativeBleN
634
640
  rssi: rssi,
635
641
  manufacturerData: manufacturerData,
636
642
  serviceUUIDs: serviceUUIDs,
637
- isConnectable: isConnectable
643
+ isConnectable: isConnectable,
644
+ isConnected: peripheral.state == .connected
638
645
  )
639
646
  }
640
647
 
@@ -719,6 +726,12 @@ class BleCentralManagerDelegate: NSObject, CBCentralManagerDelegate {
719
726
  }
720
727
 
721
728
  func centralManager(_ central: CBCentralManager, willRestoreState dict: [String: Any]) {
722
- manager?.handleStateRestoration(dict)
729
+ // Only handle state restoration if restoreStateIdentifier is set and a callback is registered
730
+ guard let manager = manager,
731
+ manager.restoreStateIdentifier != nil,
732
+ (BleNitroBleManager.globalRestoreStateCallback != nil || manager.restoreStateCallback != nil) else {
733
+ return
734
+ }
735
+ manager.handleStateRestoration(dict)
723
736
  }
724
737
  }
@@ -0,0 +1,19 @@
1
+ import Foundation
2
+ import NitroModules
3
+
4
+ /**
5
+ * iOS Factory implementation for BLE Nitro Manager
6
+ * Creates BleNitroBleManager instances with optional state restoration configuration
7
+ */
8
+ public class BleNitroBleManagerFactory: HybridNativeBleNitroFactorySpec_base, HybridNativeBleNitroFactorySpec_protocol {
9
+
10
+ public func create(
11
+ nativeRestoreStateIdentifier: String?,
12
+ restoreStateCallback: (([BLEDevice]) -> Void)?
13
+ ) throws -> any HybridNativeBleNitroSpec {
14
+ return BleNitroBleManager(
15
+ restoreStateIdentifier: nativeRestoreStateIdentifier,
16
+ restoreStateCallback: restoreStateCallback
17
+ )
18
+ }
19
+ }
@@ -1,6 +1,3 @@
1
- import { BleNitroManager } from "./manager";
2
- export { type ByteArray, type ScanFilter, type BLEDevice, type ScanCallback, type ManufacturerDataEntry, type ManufacturerData, type ConnectionCallback, type DisconnectEventCallback, type OperationCallback, type CharacteristicUpdateCallback, type Subscription, type BleNitroManager, type BleNitroManagerOptions, BLEState, AndroidScanMode, } from "./manager";
3
- export declare class BleNitro extends BleNitroManager {
4
- static instance(): BleNitroManager;
5
- }
1
+ export { type ByteArray, type ScanFilter, type BLEDevice, type ScanCallback, type ManufacturerDataEntry, type ManufacturerData, type ConnectionCallback, type DisconnectEventCallback, type OperationCallback, type CharacteristicUpdateCallback, type Subscription, type BleNitroManagerOptions, BLEState, AndroidScanMode, BleNitroManager, } from "./manager";
2
+ export { BleNitro } from './singleton';
6
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EACL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,4BAA4B,EACjC,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,QAAQ,EACR,eAAe,GAChB,MAAM,WAAW,CAAC;AAInB,qBAAa,QAAS,SAAQ,eAAe;WAC7B,QAAQ;CAMvB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,4BAA4B,EACjC,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,QAAQ,EACR,eAAe,EACf,eAAe,GAChB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
@@ -1,18 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BleNitro = exports.AndroidScanMode = exports.BLEState = void 0;
4
- const manager_1 = require("./manager");
5
- var manager_2 = require("./manager");
6
- Object.defineProperty(exports, "BLEState", { enumerable: true, get: function () { return manager_2.BLEState; } });
7
- Object.defineProperty(exports, "AndroidScanMode", { enumerable: true, get: function () { return manager_2.AndroidScanMode; } });
8
- let _instance;
9
- class BleNitro extends manager_1.BleNitroManager {
10
- static instance() {
11
- if (!_instance) {
12
- _instance = new BleNitro();
13
- }
14
- return _instance;
15
- }
16
- }
17
- exports.BleNitro = BleNitro;
3
+ exports.BleNitro = exports.BleNitroManager = exports.AndroidScanMode = exports.BLEState = void 0;
4
+ var manager_1 = require("./manager");
5
+ Object.defineProperty(exports, "BLEState", { enumerable: true, get: function () { return manager_1.BLEState; } });
6
+ Object.defineProperty(exports, "AndroidScanMode", { enumerable: true, get: function () { return manager_1.AndroidScanMode; } });
7
+ Object.defineProperty(exports, "BleNitroManager", { enumerable: true, get: function () { return manager_1.BleNitroManager; } });
8
+ var singleton_1 = require("./singleton");
9
+ Object.defineProperty(exports, "BleNitro", { enumerable: true, get: function () { return singleton_1.BleNitro; } });
18
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAA4C;AAE5C,qCAgBmB;AAFjB,mGAAA,QAAQ,OAAA;AACR,0GAAA,eAAe,OAAA;AAGjB,IAAI,SAA0B,CAAC;AAE/B,MAAa,QAAS,SAAQ,yBAAe;IACpC,MAAM,CAAC,QAAQ;QACpB,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC7B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAPD,4BAOC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,qCAgBmB;AAHjB,mGAAA,QAAQ,OAAA;AACR,0GAAA,eAAe,OAAA;AACf,0GAAA,eAAe,OAAA;AAGjB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA"}
@@ -20,6 +20,7 @@ export interface BLEDevice {
20
20
  manufacturerData: ManufacturerData;
21
21
  serviceUUIDs: string[];
22
22
  isConnectable: boolean;
23
+ isConnected: boolean;
23
24
  }
24
25
  export type ScanCallback = (device: BLEDevice) => void;
25
26
  export type RestoreStateCallback = (connectedPeripherals: BLEDevice[]) => void;
@@ -45,6 +46,7 @@ export declare enum AndroidScanMode {
45
46
  Opportunistic = "Opportunistic"
46
47
  }
47
48
  export type BleNitroManagerOptions = {
49
+ restoreIdentifier?: string;
48
50
  onRestoredState?: RestoreStateCallback;
49
51
  };
50
52
  export declare function mapNativeBLEStateToBLEState(nativeState: NativeBLEState): BLEState;
@@ -57,8 +59,15 @@ export declare class BleNitroManager {
57
59
  private _connectedDevices;
58
60
  private _restoredStateCallback;
59
61
  private _restoredState;
62
+ private _restoreStateIdentifier;
63
+ private Instance;
60
64
  constructor(options?: BleNitroManagerOptions);
61
65
  private onNativeRestoreStateCallback;
66
+ /**
67
+ *
68
+ * Registers callback and returns restored peripheral state in it. Not working from 1.7.x upwards for singleton implementation!
69
+ * @deprecated This method is deprecated and will be removed in 2.x, use onRestoredState option in BleNitroManageroptions instead!
70
+ */
62
71
  onRestoredState(callback: RestoreStateCallback): void;
63
72
  /**
64
73
  * Converts a 16- oder 32-Bit UUID to a 128-Bit UUID
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/manager.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,8 @@ exports.mapAndroidScanModeToNativeAndroidScanMode = mapAndroidScanModeToNativeAn
9
9
  exports.convertNativeBleDeviceToBleDevice = convertNativeBleDeviceToBleDevice;
10
10
  exports.arrayBufferToByteArray = arrayBufferToByteArray;
11
11
  exports.byteArrayToArrayBuffer = byteArrayToArrayBuffer;
12
- const NativeBleNitro_1 = __importDefault(require("./specs/NativeBleNitro"));
13
- const NativeBleNitro_2 = require("./specs/NativeBleNitro");
12
+ const NativeBleNitroFactory_1 = __importDefault(require("./specs/NativeBleNitroFactory"));
13
+ const NativeBleNitro_1 = require("./specs/NativeBleNitro");
14
14
  var BLEState;
15
15
  (function (BLEState) {
16
16
  BLEState["Unknown"] = "Unknown";
@@ -41,10 +41,10 @@ function mapNativeBLEStateToBLEState(nativeState) {
41
41
  }
42
42
  function mapAndroidScanModeToNativeAndroidScanMode(scanMode) {
43
43
  const map = {
44
- LowLatency: NativeBleNitro_2.AndroidScanMode.LowLatency,
45
- Balanced: NativeBleNitro_2.AndroidScanMode.Balanced,
46
- LowPower: NativeBleNitro_2.AndroidScanMode.LowPower,
47
- Opportunistic: NativeBleNitro_2.AndroidScanMode.Opportunistic,
44
+ LowLatency: NativeBleNitro_1.AndroidScanMode.LowLatency,
45
+ Balanced: NativeBleNitro_1.AndroidScanMode.Balanced,
46
+ LowPower: NativeBleNitro_1.AndroidScanMode.LowPower,
47
+ Opportunistic: NativeBleNitro_1.AndroidScanMode.Opportunistic,
48
48
  };
49
49
  return map[scanMode];
50
50
  }
@@ -68,15 +68,22 @@ function byteArrayToArrayBuffer(data) {
68
68
  }
69
69
  class BleNitroManager {
70
70
  constructor(options) {
71
+ var _a, _b;
71
72
  this._isScanning = false;
72
73
  this._connectedDevices = {};
73
- this._restoredStateCallback = null;
74
74
  this._restoredState = null;
75
- this._restoredStateCallback = (options === null || options === void 0 ? void 0 : options.onRestoredState) || null;
76
- NativeBleNitro_1.default.setRestoreStateCallback((peripherals) => this.onNativeRestoreStateCallback(peripherals));
75
+ this._restoreStateIdentifier = null;
76
+ this._restoredStateCallback = (_a = options === null || options === void 0 ? void 0 : options.onRestoredState) !== null && _a !== void 0 ? _a : null;
77
+ this._restoreStateIdentifier = (_b = options === null || options === void 0 ? void 0 : options.restoreIdentifier) !== null && _b !== void 0 ? _b : null;
78
+ this.Instance = NativeBleNitroFactory_1.default.create(options === null || options === void 0 ? void 0 : options.restoreIdentifier, (peripherals) => this.onNativeRestoreStateCallback(peripherals));
77
79
  }
78
80
  onNativeRestoreStateCallback(peripherals) {
81
+ if (!this._restoreStateIdentifier)
82
+ return;
79
83
  const bleDevices = peripherals.map((peripheral) => convertNativeBleDeviceToBleDevice(peripheral));
84
+ bleDevices.forEach((device) => {
85
+ this._connectedDevices[device.id] = device.isConnected;
86
+ });
80
87
  if (this._restoredStateCallback) {
81
88
  this._restoredStateCallback(bleDevices);
82
89
  }
@@ -84,7 +91,14 @@ class BleNitroManager {
84
91
  this._restoredState = bleDevices;
85
92
  }
86
93
  }
94
+ /**
95
+ *
96
+ * Registers callback and returns restored peripheral state in it. Not working from 1.7.x upwards for singleton implementation!
97
+ * @deprecated This method is deprecated and will be removed in 2.x, use onRestoredState option in BleNitroManageroptions instead!
98
+ */
87
99
  onRestoredState(callback) {
100
+ if (!this._restoreStateIdentifier)
101
+ return;
88
102
  if (this._restoredState) {
89
103
  callback(this._restoredState);
90
104
  this._restoredState = null;
@@ -142,7 +156,7 @@ class BleNitroManager {
142
156
  callback(convertedDevice);
143
157
  };
144
158
  // Start scan
145
- NativeBleNitro_1.default.startScan(nativeFilter, scanCallback);
159
+ this.Instance.startScan(nativeFilter, scanCallback);
146
160
  this._isScanning = true;
147
161
  }
148
162
  /**
@@ -153,7 +167,7 @@ class BleNitroManager {
153
167
  if (!this._isScanning) {
154
168
  return;
155
169
  }
156
- NativeBleNitro_1.default.stopScan();
170
+ this.Instance.stopScan();
157
171
  this._isScanning = false;
158
172
  }
159
173
  /**
@@ -161,7 +175,7 @@ class BleNitroManager {
161
175
  * @returns Boolean indicating if currently scanning
162
176
  */
163
177
  isScanning() {
164
- this._isScanning = NativeBleNitro_1.default.isScanning();
178
+ this._isScanning = this.Instance.isScanning();
165
179
  return this._isScanning;
166
180
  }
167
181
  /**
@@ -170,7 +184,7 @@ class BleNitroManager {
170
184
  * @returns Array of connected devices
171
185
  */
172
186
  getConnectedDevices(services) {
173
- const devices = NativeBleNitro_1.default.getConnectedDevices(services || []);
187
+ const devices = this.Instance.getConnectedDevices(services || []);
174
188
  // Normalize service UUIDs - manufacturer data already comes as ArrayBuffers
175
189
  return devices.map(device => convertNativeBleDeviceToBleDevice(device));
176
190
  }
@@ -187,7 +201,7 @@ class BleNitroManager {
187
201
  resolve(deviceId);
188
202
  return;
189
203
  }
190
- NativeBleNitro_1.default.connect(deviceId, (success, connectedDeviceId, error) => {
204
+ this.Instance.connect(deviceId, (success, connectedDeviceId, error) => {
191
205
  if (success) {
192
206
  this._connectedDevices[deviceId] = true;
193
207
  resolve(connectedDeviceId);
@@ -247,7 +261,7 @@ class BleNitroManager {
247
261
  resolve();
248
262
  return;
249
263
  }
250
- NativeBleNitro_1.default.disconnect(deviceId, (success, error) => {
264
+ this.Instance.disconnect(deviceId, (success, error) => {
251
265
  if (success) {
252
266
  delete this._connectedDevices[deviceId];
253
267
  resolve();
@@ -264,7 +278,7 @@ class BleNitroManager {
264
278
  * @returns Boolean indicating if device is connected
265
279
  */
266
280
  isConnected(deviceId) {
267
- return NativeBleNitro_1.default.isConnected(deviceId);
281
+ return this.Instance.isConnected(deviceId);
268
282
  }
269
283
  /**
270
284
  * Request a new MTU size
@@ -274,7 +288,7 @@ class BleNitroManager {
274
288
  */
275
289
  requestMTU(deviceId, mtu) {
276
290
  mtu = parseInt(mtu.toString(), 10);
277
- const deviceMtu = NativeBleNitro_1.default.requestMTU(deviceId, mtu);
291
+ const deviceMtu = this.Instance.requestMTU(deviceId, mtu);
278
292
  return deviceMtu;
279
293
  }
280
294
  /**
@@ -289,7 +303,7 @@ class BleNitroManager {
289
303
  reject(new Error('Device not connected'));
290
304
  return;
291
305
  }
292
- NativeBleNitro_1.default.readRSSI(deviceId, (success, rssi, error) => {
306
+ this.Instance.readRSSI(deviceId, (success, rssi, error) => {
293
307
  if (success) {
294
308
  resolve(rssi);
295
309
  }
@@ -311,7 +325,7 @@ class BleNitroManager {
311
325
  reject(new Error('Device not connected'));
312
326
  return;
313
327
  }
314
- NativeBleNitro_1.default.discoverServices(deviceId, (success, error) => {
328
+ this.Instance.discoverServices(deviceId, (success, error) => {
315
329
  if (success) {
316
330
  resolve(true);
317
331
  }
@@ -338,7 +352,7 @@ class BleNitroManager {
338
352
  reject(new Error('Failed to discover services'));
339
353
  return;
340
354
  }
341
- const services = NativeBleNitro_1.default.getServices(deviceId);
355
+ const services = this.Instance.getServices(deviceId);
342
356
  resolve(BleNitroManager.normalizeGattUUIDs(services));
343
357
  });
344
358
  }
@@ -352,7 +366,7 @@ class BleNitroManager {
352
366
  if (!this._connectedDevices[deviceId]) {
353
367
  throw new Error('Device not connected');
354
368
  }
355
- const characteristics = NativeBleNitro_1.default.getCharacteristics(deviceId, BleNitroManager.normalizeGattUUID(serviceId));
369
+ const characteristics = this.Instance.getCharacteristics(deviceId, BleNitroManager.normalizeGattUUID(serviceId));
356
370
  return BleNitroManager.normalizeGattUUIDs(characteristics);
357
371
  }
358
372
  /**
@@ -386,7 +400,7 @@ class BleNitroManager {
386
400
  reject(new Error('Device not connected'));
387
401
  return;
388
402
  }
389
- NativeBleNitro_1.default.readCharacteristic(deviceId, BleNitroManager.normalizeGattUUID(serviceId), BleNitroManager.normalizeGattUUID(characteristicId), (success, data, error) => {
403
+ this.Instance.readCharacteristic(deviceId, BleNitroManager.normalizeGattUUID(serviceId), BleNitroManager.normalizeGattUUID(characteristicId), (success, data, error) => {
390
404
  if (success) {
391
405
  resolve(arrayBufferToByteArray(data));
392
406
  }
@@ -412,7 +426,7 @@ class BleNitroManager {
412
426
  reject(new Error('Device not connected'));
413
427
  return;
414
428
  }
415
- NativeBleNitro_1.default.writeCharacteristic(deviceId, BleNitroManager.normalizeGattUUID(serviceId), BleNitroManager.normalizeGattUUID(characteristicId), byteArrayToArrayBuffer(data), withResponse, (success, responseData, error) => {
429
+ this.Instance.writeCharacteristic(deviceId, BleNitroManager.normalizeGattUUID(serviceId), BleNitroManager.normalizeGattUUID(characteristicId), byteArrayToArrayBuffer(data), withResponse, (success, responseData, error) => {
416
430
  if (success) {
417
431
  // Convert ArrayBuffer response to ByteArray
418
432
  const responseByteArray = arrayBufferToByteArray(responseData);
@@ -438,7 +452,7 @@ class BleNitroManager {
438
452
  throw new Error('Device not connected');
439
453
  }
440
454
  let _success = false;
441
- NativeBleNitro_1.default.subscribeToCharacteristic(deviceId, BleNitroManager.normalizeGattUUID(serviceId), BleNitroManager.normalizeGattUUID(characteristicId), (charId, data) => {
455
+ this.Instance.subscribeToCharacteristic(deviceId, BleNitroManager.normalizeGattUUID(serviceId), BleNitroManager.normalizeGattUUID(characteristicId), (charId, data) => {
442
456
  callback(charId, arrayBufferToByteArray(data));
443
457
  }, (success, error) => {
444
458
  _success = success;
@@ -469,7 +483,7 @@ class BleNitroManager {
469
483
  reject(new Error('Device not connected'));
470
484
  return;
471
485
  }
472
- NativeBleNitro_1.default.unsubscribeFromCharacteristic(deviceId, BleNitroManager.normalizeGattUUID(serviceId), BleNitroManager.normalizeGattUUID(characteristicId), (success, error) => {
486
+ this.Instance.unsubscribeFromCharacteristic(deviceId, BleNitroManager.normalizeGattUUID(serviceId), BleNitroManager.normalizeGattUUID(characteristicId), (success, error) => {
473
487
  if (success) {
474
488
  resolve();
475
489
  }
@@ -492,7 +506,7 @@ class BleNitroManager {
492
506
  */
493
507
  requestBluetoothEnable() {
494
508
  return new Promise((resolve, reject) => {
495
- NativeBleNitro_1.default.requestBluetoothEnable((success, error) => {
509
+ this.Instance.requestBluetoothEnable((success, error) => {
496
510
  if (success) {
497
511
  resolve(true);
498
512
  }
@@ -508,7 +522,7 @@ class BleNitroManager {
508
522
  * @see BLEState
509
523
  */
510
524
  state() {
511
- return mapNativeBLEStateToBLEState(NativeBleNitro_1.default.state());
525
+ return mapNativeBLEStateToBLEState(this.Instance.state());
512
526
  }
513
527
  /**
514
528
  * Subscribe to Bluetooth state changes
@@ -522,12 +536,12 @@ class BleNitroManager {
522
536
  const state = this.state();
523
537
  callback(state);
524
538
  }
525
- NativeBleNitro_1.default.subscribeToStateChange((nativeState) => {
539
+ this.Instance.subscribeToStateChange((nativeState) => {
526
540
  callback(mapNativeBLEStateToBLEState(nativeState));
527
541
  });
528
542
  return {
529
543
  remove: () => {
530
- NativeBleNitro_1.default.unsubscribeFromStateChange();
544
+ this.Instance.unsubscribeFromStateChange();
531
545
  },
532
546
  };
533
547
  }
@@ -536,7 +550,7 @@ class BleNitroManager {
536
550
  * @returns Promise resolving when settings are opened
537
551
  */
538
552
  openSettings() {
539
- return NativeBleNitro_1.default.openSettings();
553
+ return this.Instance.openSettings();
540
554
  }
541
555
  }
542
556
  exports.BleNitroManager = BleNitroManager;