munim-bluetooth 0.3.26 → 0.4.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 (116) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +476 -74
  3. package/android/gradle.properties +2 -2
  4. package/android/src/main/AndroidManifest.xml +3 -1
  5. package/android/src/main/cpp/cpp-adapter.cpp +4 -1
  6. package/android/src/main/java/com/munimbluetooth/BluetoothPermissionUtils.kt +40 -0
  7. package/android/src/main/java/com/munimbluetooth/HybridMunimBluetooth.kt +2116 -217
  8. package/android/src/main/java/com/munimbluetooth/MunimBluetoothBackgroundService.kt +591 -56
  9. package/app.plugin.js +155 -0
  10. package/ios/HybridMunimBluetooth.swift +2123 -298
  11. package/ios/MunimBluetoothEventEmitter.swift +68 -8
  12. package/lib/commonjs/index.js +272 -11
  13. package/lib/commonjs/index.js.map +1 -1
  14. package/lib/module/index.js +243 -11
  15. package/lib/module/index.js.map +1 -1
  16. package/lib/typescript/src/index.d.ts +310 -7
  17. package/lib/typescript/src/index.d.ts.map +1 -1
  18. package/lib/typescript/src/specs/munim-bluetooth.nitro.d.ts +219 -5
  19. package/lib/typescript/src/specs/munim-bluetooth.nitro.d.ts.map +1 -1
  20. package/nitro.json +9 -3
  21. package/nitrogen/generated/android/c++/JAdvertisingDataTypes.hpp +96 -96
  22. package/nitrogen/generated/android/c++/JAdvertisingOptions.hpp +8 -8
  23. package/nitrogen/generated/android/c++/JBackgroundSessionOptions.hpp +8 -8
  24. package/nitrogen/generated/android/c++/JBluetoothCapabilities.hpp +105 -0
  25. package/nitrogen/generated/android/c++/JBluetoothPhy.hpp +61 -0
  26. package/nitrogen/generated/android/c++/JBluetoothPhyOption.hpp +61 -0
  27. package/nitrogen/generated/android/c++/JBondState.hpp +64 -0
  28. package/nitrogen/generated/android/c++/JDescriptorValue.hpp +69 -0
  29. package/nitrogen/generated/android/c++/JExtendedAdvertisingOptions.hpp +131 -0
  30. package/nitrogen/generated/android/c++/JGATTCharacteristic.hpp +35 -11
  31. package/nitrogen/generated/android/c++/JGATTDescriptor.hpp +85 -0
  32. package/nitrogen/generated/android/c++/JGATTService.hpp +33 -9
  33. package/nitrogen/generated/android/c++/JHybridMunimBluetoothSpec.cpp +422 -12
  34. package/nitrogen/generated/android/c++/JHybridMunimBluetoothSpec.hpp +29 -0
  35. package/nitrogen/generated/android/c++/JL2CAPChannel.hpp +66 -0
  36. package/nitrogen/generated/android/c++/JMultipeerDiscoveryInfoEntry.hpp +61 -0
  37. package/nitrogen/generated/android/c++/JMultipeerEncryptionPreference.hpp +61 -0
  38. package/nitrogen/generated/android/c++/JMultipeerPeer.hpp +93 -0
  39. package/nitrogen/generated/android/c++/JMultipeerPeerState.hpp +61 -0
  40. package/nitrogen/generated/android/c++/JMultipeerSessionOptions.hpp +105 -0
  41. package/nitrogen/generated/android/c++/JPhyStatus.hpp +62 -0
  42. package/nitrogen/generated/android/c++/JScanOptions.hpp +8 -8
  43. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/AdvertisingDataTypes.kt +47 -0
  44. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/AdvertisingOptions.kt +19 -0
  45. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/BackgroundSessionOptions.kt +27 -0
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/BluetoothCapabilities.kt +111 -0
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/BluetoothPhy.kt +24 -0
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/BluetoothPhyOption.kt +24 -0
  49. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/BondState.kt +25 -0
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/CharacteristicValue.kt +17 -0
  51. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/DescriptorValue.kt +66 -0
  52. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/ExtendedAdvertisingOptions.kt +111 -0
  53. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/GATTCharacteristic.kt +25 -3
  54. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/GATTDescriptor.kt +61 -0
  55. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/GATTService.kt +23 -3
  56. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/HybridMunimBluetoothSpec.kt +138 -22
  57. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/L2CAPChannel.kt +61 -0
  58. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/MultipeerDiscoveryInfoEntry.kt +56 -0
  59. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/MultipeerEncryptionPreference.kt +24 -0
  60. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/MultipeerPeer.kt +66 -0
  61. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/MultipeerPeerState.kt +24 -0
  62. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/MultipeerSessionOptions.kt +81 -0
  63. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/PhyStatus.kt +56 -0
  64. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/ScanOptions.kt +17 -0
  65. package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/ServiceDataEntry.kt +15 -0
  66. package/nitrogen/generated/ios/MunimBluetooth+autolinking.rb +2 -0
  67. package/nitrogen/generated/ios/MunimBluetooth-Swift-Cxx-Bridge.cpp +61 -5
  68. package/nitrogen/generated/ios/MunimBluetooth-Swift-Cxx-Bridge.hpp +494 -49
  69. package/nitrogen/generated/ios/MunimBluetooth-Swift-Cxx-Umbrella.hpp +42 -0
  70. package/nitrogen/generated/ios/c++/HybridMunimBluetoothSpecSwift.hpp +254 -0
  71. package/nitrogen/generated/ios/swift/BluetoothCapabilities.swift +89 -0
  72. package/nitrogen/generated/ios/swift/BluetoothPhy.swift +44 -0
  73. package/nitrogen/generated/ios/swift/BluetoothPhyOption.swift +44 -0
  74. package/nitrogen/generated/ios/swift/BondState.swift +48 -0
  75. package/nitrogen/generated/ios/swift/DescriptorValue.swift +44 -0
  76. package/nitrogen/generated/ios/swift/ExtendedAdvertisingOptions.swift +243 -0
  77. package/nitrogen/generated/ios/swift/Func_void_BluetoothCapabilities.swift +46 -0
  78. package/nitrogen/generated/ios/swift/Func_void_BondState.swift +46 -0
  79. package/nitrogen/generated/ios/swift/Func_void_DescriptorValue.swift +46 -0
  80. package/nitrogen/generated/ios/swift/Func_void_L2CAPChannel.swift +46 -0
  81. package/nitrogen/generated/ios/swift/Func_void_PhyStatus.swift +46 -0
  82. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
  83. package/nitrogen/generated/ios/swift/Func_void_std__vector_MultipeerPeer_.swift +46 -0
  84. package/nitrogen/generated/ios/swift/GATTCharacteristic.swift +25 -1
  85. package/nitrogen/generated/ios/swift/GATTDescriptor.swift +71 -0
  86. package/nitrogen/generated/ios/swift/GATTService.swift +25 -1
  87. package/nitrogen/generated/ios/swift/HybridMunimBluetoothSpec.swift +29 -0
  88. package/nitrogen/generated/ios/swift/HybridMunimBluetoothSpec_cxx.swift +556 -23
  89. package/nitrogen/generated/ios/swift/L2CAPChannel.swift +52 -0
  90. package/nitrogen/generated/ios/swift/MultipeerDiscoveryInfoEntry.swift +34 -0
  91. package/nitrogen/generated/ios/swift/MultipeerEncryptionPreference.swift +44 -0
  92. package/nitrogen/generated/ios/swift/MultipeerPeer.swift +63 -0
  93. package/nitrogen/generated/ios/swift/MultipeerPeerState.swift +44 -0
  94. package/nitrogen/generated/ios/swift/MultipeerSessionOptions.swift +136 -0
  95. package/nitrogen/generated/ios/swift/PhyStatus.swift +34 -0
  96. package/nitrogen/generated/shared/c++/BluetoothCapabilities.hpp +131 -0
  97. package/nitrogen/generated/shared/c++/BluetoothPhy.hpp +80 -0
  98. package/nitrogen/generated/shared/c++/BluetoothPhyOption.hpp +80 -0
  99. package/nitrogen/generated/shared/c++/BondState.hpp +84 -0
  100. package/nitrogen/generated/shared/c++/DescriptorValue.hpp +95 -0
  101. package/nitrogen/generated/shared/c++/ExtendedAdvertisingOptions.hpp +138 -0
  102. package/nitrogen/generated/shared/c++/GATTCharacteristic.hpp +9 -3
  103. package/nitrogen/generated/shared/c++/GATTDescriptor.hpp +93 -0
  104. package/nitrogen/generated/shared/c++/GATTService.hpp +7 -2
  105. package/nitrogen/generated/shared/c++/HybridMunimBluetoothSpec.cpp +29 -0
  106. package/nitrogen/generated/shared/c++/HybridMunimBluetoothSpec.hpp +61 -2
  107. package/nitrogen/generated/shared/c++/L2CAPChannel.hpp +92 -0
  108. package/nitrogen/generated/shared/c++/MultipeerDiscoveryInfoEntry.hpp +87 -0
  109. package/nitrogen/generated/shared/c++/MultipeerEncryptionPreference.hpp +80 -0
  110. package/nitrogen/generated/shared/c++/MultipeerPeer.hpp +102 -0
  111. package/nitrogen/generated/shared/c++/MultipeerPeerState.hpp +80 -0
  112. package/nitrogen/generated/shared/c++/MultipeerSessionOptions.hpp +114 -0
  113. package/nitrogen/generated/shared/c++/PhyStatus.hpp +88 -0
  114. package/package.json +22 -11
  115. package/src/index.ts +416 -31
  116. package/src/specs/munim-bluetooth.nitro.ts +298 -14
@@ -10,29 +10,89 @@ import React
10
10
 
11
11
  @objc(MunimBluetoothEventEmitter)
12
12
  class MunimBluetoothEventEmitter: RCTEventEmitter {
13
-
13
+
14
14
  public static var shared: MunimBluetoothEventEmitter?
15
-
15
+ private static var pendingEvents: [(name: String, body: [String: Any])] = []
16
+
16
17
  override init() {
17
18
  super.init()
18
19
  MunimBluetoothEventEmitter.shared = self
20
+ MunimBluetoothEventEmitter.flushPendingEvents()
19
21
  }
20
-
22
+
21
23
  override func supportedEvents() -> [String]! {
22
24
  return [
23
25
  "deviceFound",
24
26
  "onDeviceFound",
25
27
  "scanResult",
28
+ "scanFailed",
29
+ "advertisingStartFailed",
30
+ "advertisingStarted",
31
+ "deviceConnected",
32
+ "deviceDisconnected",
26
33
  "connectionStateChanged",
27
- "characteristicValueChanged"
34
+ "servicesDiscovered",
35
+ "characteristicValueChanged",
36
+ "peripheralReadRequest",
37
+ "peripheralWriteRequest",
38
+ "peripheralSubscribed",
39
+ "peripheralUnsubscribed",
40
+ "rssiUpdated",
41
+ "backgroundSessionStarted",
42
+ "backgroundSessionStopped",
43
+ "backgroundSessionRestored",
44
+ "backgroundSessionStartFailed",
45
+ "multipeerStarted",
46
+ "multipeerStopped",
47
+ "multipeerStartFailed",
48
+ "multipeerPeerFound",
49
+ "multipeerPeerLost",
50
+ "multipeerPeerStateChanged",
51
+ "multipeerMessageReceived"
28
52
  ]
29
53
  }
30
-
54
+
31
55
  override static func requiresMainQueueSetup() -> Bool {
32
- return false
56
+ return true
33
57
  }
34
-
58
+
35
59
  func emitDeviceFound(_ deviceData: [String: Any]) {
36
- sendEvent(withName: "deviceFound", body: deviceData)
60
+ emitOnMain("deviceFound", body: deviceData)
61
+ emitOnMain("onDeviceFound", body: deviceData)
62
+ emitOnMain("scanResult", body: deviceData)
63
+ }
64
+
65
+ func emit(_ eventName: String, body: [String: Any]) {
66
+ emitOnMain(eventName, body: body)
67
+ }
68
+
69
+ static func emitOrQueue(_ eventName: String, body: [String: Any]) {
70
+ guard let shared else {
71
+ pendingEvents.append((name: eventName, body: body))
72
+ return
73
+ }
74
+
75
+ shared.emit(eventName, body: body)
76
+ }
77
+
78
+ private static func flushPendingEvents() {
79
+ guard let shared, !pendingEvents.isEmpty else {
80
+ return
81
+ }
82
+
83
+ let events = pendingEvents
84
+ pendingEvents.removeAll()
85
+ events.forEach { shared.emit($0.name, body: $0.body) }
86
+ }
87
+
88
+ private func emitOnMain(_ eventName: String, body: [String: Any]) {
89
+ if Thread.isMainThread {
90
+ sendEvent(withName: eventName, body: body)
91
+ return
92
+ }
93
+
94
+ DispatchQueue.main.async { [weak self] in
95
+ self?.sendEvent(withName: eventName, body: body)
96
+ }
37
97
  }
38
98
  }
@@ -6,28 +6,57 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.addDeviceFoundListener = addDeviceFoundListener;
7
7
  exports.addEventListener = addEventListener;
8
8
  exports.addListener = addListener;
9
+ exports.closeL2CAPChannel = closeL2CAPChannel;
9
10
  exports.connect = connect;
11
+ exports.connectClassic = connectClassic;
12
+ exports.createBond = createBond;
10
13
  exports.default = void 0;
11
14
  exports.disconnect = disconnect;
15
+ exports.disconnectClassic = disconnectClassic;
12
16
  exports.discoverServices = discoverServices;
13
17
  exports.getAdvertisingData = getAdvertisingData;
18
+ exports.getBondState = getBondState;
19
+ exports.getCapabilities = getCapabilities;
14
20
  exports.getConnectedDevices = getConnectedDevices;
21
+ exports.getMultipeerPeers = getMultipeerPeers;
22
+ exports.inviteMultipeerPeer = inviteMultipeerPeer;
15
23
  exports.isBluetoothEnabled = isBluetoothEnabled;
24
+ exports.openL2CAPChannel = openL2CAPChannel;
25
+ exports.publishL2CAPChannel = publishL2CAPChannel;
16
26
  exports.readCharacteristic = readCharacteristic;
27
+ exports.readDescriptor = readDescriptor;
28
+ exports.readPhy = readPhy;
17
29
  exports.readRSSI = readRSSI;
30
+ exports.removeBond = removeBond;
18
31
  exports.removeListeners = removeListeners;
19
32
  exports.requestBluetoothPermission = requestBluetoothPermission;
33
+ exports.requestMTU = requestMTU;
34
+ exports.sendL2CAPData = sendL2CAPData;
35
+ exports.sendMultipeerMessage = sendMultipeerMessage;
36
+ exports.setPreferredPhy = setPreferredPhy;
20
37
  exports.setServices = setServices;
21
38
  exports.startAdvertising = startAdvertising;
22
39
  exports.startBackgroundSession = startBackgroundSession;
40
+ exports.startClassicScan = startClassicScan;
41
+ exports.startClassicServer = startClassicServer;
42
+ exports.startExtendedAdvertising = startExtendedAdvertising;
43
+ exports.startMultipeerSession = startMultipeerSession;
23
44
  exports.startScan = startScan;
24
45
  exports.stopAdvertising = stopAdvertising;
25
46
  exports.stopBackgroundSession = stopBackgroundSession;
47
+ exports.stopClassicScan = stopClassicScan;
48
+ exports.stopClassicServer = stopClassicServer;
49
+ exports.stopExtendedAdvertising = stopExtendedAdvertising;
50
+ exports.stopMultipeerSession = stopMultipeerSession;
26
51
  exports.stopScan = stopScan;
27
52
  exports.subscribeToCharacteristic = subscribeToCharacteristic;
53
+ exports.unpublishL2CAPChannel = unpublishL2CAPChannel;
28
54
  exports.unsubscribeFromCharacteristic = unsubscribeFromCharacteristic;
29
55
  exports.updateAdvertisingData = updateAdvertisingData;
56
+ exports.updateCharacteristicValue = updateCharacteristicValue;
30
57
  exports.writeCharacteristic = writeCharacteristic;
58
+ exports.writeClassic = writeClassic;
59
+ exports.writeDescriptor = writeDescriptor;
31
60
  var _reactNativeNitroModules = require("react-native-nitro-modules");
32
61
  var _reactNative = require("react-native");
33
62
  const MunimBluetooth = _reactNativeNitroModules.NitroModules.createHybridObject('MunimBluetooth');
@@ -35,30 +64,24 @@ const MunimBluetooth = _reactNativeNitroModules.NitroModules.createHybridObject(
35
64
  // Android emits through DeviceEventEmitter from the Nitro module itself.
36
65
  // iOS exposes a dedicated RCTEventEmitter module.
37
66
  const nativeEventModule = _reactNative.Platform.OS === 'ios' ? _reactNative.NativeModules.MunimBluetoothEventEmitter : null;
38
- console.log('[munim-bluetooth] Checking for event emitter...', _reactNative.Platform.OS === 'android' ? 'USING_DEVICE_EVENT_EMITTER' : nativeEventModule ? 'FOUND' : 'NOT FOUND');
39
- console.log('[munim-bluetooth] Available NativeModules:', Object.keys(_reactNative.NativeModules).filter(key => key.includes('Bluetooth') || key.includes('Munim')));
40
67
  let eventEmitter = null;
41
68
  if (_reactNative.Platform.OS === 'android') {
42
69
  eventEmitter = _reactNative.DeviceEventEmitter;
43
- console.log('[munim-bluetooth] Using DeviceEventEmitter on Android');
44
70
  } else if (nativeEventModule) {
45
71
  try {
46
72
  eventEmitter = new _reactNative.NativeEventEmitter(nativeEventModule);
47
- console.log('[munim-bluetooth] Event emitter initialized successfully');
48
73
  } catch (error) {
49
74
  console.error('[munim-bluetooth] Failed to initialize event emitter:', error);
50
75
  }
51
- } else {
52
- console.warn('[munim-bluetooth] Event emitter module not found in NativeModules - device discovery events will not work');
53
- console.warn('[munim-bluetooth] This usually means the native module was not linked properly or needs a rebuild');
54
76
  }
55
77
 
56
78
  // ========== Peripheral Features ==========
57
79
 
58
80
  /**
59
- * Start advertising as a Bluetooth peripheral with supported advertising data.
81
+ * Start advertising as a Bluetooth peripheral with platform-aware advertising data.
60
82
  *
61
- * @param options - An object with serviceUUIDs (string[]) and supported advertising data types.
83
+ * @param options - An object with serviceUUIDs (string[]) and advertising data types.
84
+ * iOS only advertises local name and service UUIDs.
62
85
  */
63
86
  function startAdvertising(options) {
64
87
  return MunimBluetooth.startAdvertising(options);
@@ -98,6 +121,14 @@ function setServices(services) {
98
121
  return MunimBluetooth.setServices(services);
99
122
  }
100
123
 
124
+ /**
125
+ * Update a local peripheral characteristic value and optionally notify/indicate
126
+ * subscribed centrals.
127
+ */
128
+ function updateCharacteristicValue(serviceUUID, characteristicUUID, value, notify) {
129
+ return MunimBluetooth.updateCharacteristicValue(serviceUUID, characteristicUUID, value, notify);
130
+ }
131
+
101
132
  // ========== Central/Manager Features ==========
102
133
 
103
134
  /**
@@ -118,6 +149,13 @@ function requestBluetoothPermission() {
118
149
  return MunimBluetooth.requestBluetoothPermission();
119
150
  }
120
151
 
152
+ /**
153
+ * Return the Bluetooth feature set supported by the current platform/device.
154
+ */
155
+ function getCapabilities() {
156
+ return MunimBluetooth.getCapabilities();
157
+ }
158
+
121
159
  /**
122
160
  * Start scanning for BLE devices.
123
161
  *
@@ -175,6 +213,13 @@ function readCharacteristic(deviceId, serviceUUID, characteristicUUID) {
175
213
  return MunimBluetooth.readCharacteristic(deviceId, serviceUUID, characteristicUUID);
176
214
  }
177
215
 
216
+ /**
217
+ * Read a descriptor value from a connected device.
218
+ */
219
+ function readDescriptor(deviceId, serviceUUID, characteristicUUID, descriptorUUID) {
220
+ return MunimBluetooth.readDescriptor(deviceId, serviceUUID, characteristicUUID, descriptorUUID);
221
+ }
222
+
178
223
  /**
179
224
  * Write a value to a characteristic on a connected device.
180
225
  *
@@ -189,6 +234,13 @@ function writeCharacteristic(deviceId, serviceUUID, characteristicUUID, value, w
189
234
  return MunimBluetooth.writeCharacteristic(deviceId, serviceUUID, characteristicUUID, value, writeType);
190
235
  }
191
236
 
237
+ /**
238
+ * Write a descriptor value to a connected device.
239
+ */
240
+ function writeDescriptor(deviceId, serviceUUID, characteristicUUID, descriptorUUID, value) {
241
+ return MunimBluetooth.writeDescriptor(deviceId, serviceUUID, characteristicUUID, descriptorUUID, value);
242
+ }
243
+
192
244
  /**
193
245
  * Subscribe to notifications/indications from a characteristic.
194
246
  *
@@ -230,11 +282,154 @@ function readRSSI(deviceId) {
230
282
  return MunimBluetooth.readRSSI(deviceId);
231
283
  }
232
284
 
285
+ /**
286
+ * Request an ATT MTU. Android supports this directly; iOS rejects with unsupported.
287
+ */
288
+ function requestMTU(deviceId, mtu) {
289
+ return MunimBluetooth.requestMTU(deviceId, mtu);
290
+ }
291
+
292
+ /**
293
+ * Set preferred BLE PHY. Android 8+ supports this when hardware allows it.
294
+ */
295
+ function setPreferredPhy(deviceId, txPhy, rxPhy, phyOption) {
296
+ return MunimBluetooth.setPreferredPhy(deviceId, txPhy, rxPhy, phyOption);
297
+ }
298
+
299
+ /**
300
+ * Read current BLE PHY. Android 8+ supports this when hardware allows it.
301
+ */
302
+ function readPhy(deviceId) {
303
+ return MunimBluetooth.readPhy(deviceId);
304
+ }
305
+
306
+ /**
307
+ * Return current platform bond state for a device.
308
+ */
309
+ function getBondState(deviceId) {
310
+ return MunimBluetooth.getBondState(deviceId);
311
+ }
312
+
313
+ /**
314
+ * Start platform pairing/bonding for a device.
315
+ */
316
+ function createBond(deviceId) {
317
+ return MunimBluetooth.createBond(deviceId);
318
+ }
319
+
320
+ /**
321
+ * Remove a platform bond where supported.
322
+ */
323
+ function removeBond(deviceId) {
324
+ return MunimBluetooth.removeBond(deviceId);
325
+ }
326
+
327
+ /**
328
+ * Start BLE extended advertising where supported.
329
+ */
330
+ function startExtendedAdvertising(options) {
331
+ return MunimBluetooth.startExtendedAdvertising(options);
332
+ }
333
+
334
+ /**
335
+ * Stop a BLE extended advertising set.
336
+ */
337
+ function stopExtendedAdvertising(advertisingId) {
338
+ return MunimBluetooth.stopExtendedAdvertising(advertisingId);
339
+ }
340
+
341
+ /**
342
+ * Publish a local BLE L2CAP channel where supported.
343
+ */
344
+ function publishL2CAPChannel(encryptionRequired) {
345
+ return MunimBluetooth.publishL2CAPChannel(encryptionRequired);
346
+ }
347
+
348
+ /**
349
+ * Stop a local BLE L2CAP channel.
350
+ */
351
+ function unpublishL2CAPChannel(psm) {
352
+ return MunimBluetooth.unpublishL2CAPChannel(psm);
353
+ }
354
+
355
+ /**
356
+ * Open an outbound BLE L2CAP channel.
357
+ */
358
+ function openL2CAPChannel(deviceId, psm) {
359
+ return MunimBluetooth.openL2CAPChannel(deviceId, psm);
360
+ }
361
+
362
+ /**
363
+ * Close an L2CAP channel.
364
+ */
365
+ function closeL2CAPChannel(channelId) {
366
+ return MunimBluetooth.closeL2CAPChannel(channelId);
367
+ }
368
+
369
+ /**
370
+ * Send hex data over an open L2CAP channel.
371
+ */
372
+ function sendL2CAPData(channelId, value) {
373
+ return MunimBluetooth.sendL2CAPData(channelId, value);
374
+ }
375
+
376
+ /**
377
+ * Start Classic Bluetooth discovery where supported.
378
+ */
379
+ function startClassicScan() {
380
+ return MunimBluetooth.startClassicScan();
381
+ }
382
+
383
+ /**
384
+ * Stop Classic Bluetooth discovery.
385
+ */
386
+ function stopClassicScan() {
387
+ return MunimBluetooth.stopClassicScan();
388
+ }
389
+
390
+ /**
391
+ * Connect to a Classic Bluetooth RFCOMM service where supported.
392
+ */
393
+ function connectClassic(deviceId, serviceUUID) {
394
+ return MunimBluetooth.connectClassic(deviceId, serviceUUID);
395
+ }
396
+
397
+ /**
398
+ * Listen for incoming Classic Bluetooth RFCOMM connections on Android.
399
+ */
400
+ function startClassicServer(serviceUUID, serviceName) {
401
+ return MunimBluetooth.startClassicServer(serviceUUID, serviceName);
402
+ }
403
+
404
+ /**
405
+ * Stop a Classic Bluetooth RFCOMM listener on Android.
406
+ */
407
+ function stopClassicServer(serviceUUID) {
408
+ return MunimBluetooth.stopClassicServer(serviceUUID);
409
+ }
410
+
411
+ /**
412
+ * Disconnect a Classic Bluetooth device.
413
+ */
414
+ function disconnectClassic(deviceId) {
415
+ return MunimBluetooth.disconnectClassic(deviceId);
416
+ }
417
+
418
+ /**
419
+ * Write hex data to a Classic Bluetooth RFCOMM connection.
420
+ */
421
+ function writeClassic(deviceId, value) {
422
+ return MunimBluetooth.writeClassic(deviceId, value);
423
+ }
424
+
233
425
  /**
234
426
  * Start a best-effort background BLE session.
235
427
  *
236
- * Android uses a foreground service. iOS relies on the host app's Bluetooth
237
- * background modes and state restoration.
428
+ * Android uses a foreground service and restores scan/advertising/configured
429
+ * GATT services after normal service process recreation. iOS relies on the host
430
+ * app's Bluetooth background modes and CoreBluetooth state restoration, with
431
+ * terminated-state relaunch still limited by Apple's current relaunch rules.
432
+ * User force-quit/force-stop is controlled by the OS and cannot be bypassed.
238
433
  */
239
434
  function startBackgroundSession(options) {
240
435
  return MunimBluetooth.startBackgroundSession(options);
@@ -247,6 +442,43 @@ function stopBackgroundSession() {
247
442
  return MunimBluetooth.stopBackgroundSession();
248
443
  }
249
444
 
445
+ /**
446
+ * Start Apple Multipeer Connectivity transport. This is iOS/iPadOS/macOS/tvOS
447
+ * only; Android cannot join Apple Multipeer sessions.
448
+ */
449
+ function startMultipeerSession(options) {
450
+ return MunimBluetooth.startMultipeerSession(options);
451
+ }
452
+
453
+ /**
454
+ * Stop the active Apple Multipeer Connectivity session.
455
+ */
456
+ function stopMultipeerSession() {
457
+ return MunimBluetooth.stopMultipeerSession();
458
+ }
459
+
460
+ /**
461
+ * Invite a discovered Multipeer peer by runtime peer id.
462
+ */
463
+ function inviteMultipeerPeer(peerId) {
464
+ return MunimBluetooth.inviteMultipeerPeer(peerId);
465
+ }
466
+
467
+ /**
468
+ * Return discovered/connected Apple Multipeer peers.
469
+ */
470
+ function getMultipeerPeers() {
471
+ return MunimBluetooth.getMultipeerPeers();
472
+ }
473
+
474
+ /**
475
+ * Send hex data over Apple Multipeer Connectivity. Omit peerIds to broadcast
476
+ * to all connected peers.
477
+ */
478
+ function sendMultipeerMessage(value, peerIds, reliable) {
479
+ return MunimBluetooth.sendMultipeerMessage(value, peerIds, reliable);
480
+ }
481
+
250
482
  // ========== Event Management ==========
251
483
 
252
484
  /**
@@ -307,22 +539,51 @@ var _default = exports.default = {
307
539
  updateAdvertisingData,
308
540
  getAdvertisingData,
309
541
  setServices,
542
+ updateCharacteristicValue,
310
543
  // Central
311
544
  isBluetoothEnabled,
312
545
  requestBluetoothPermission,
546
+ getCapabilities,
313
547
  startScan,
314
548
  stopScan,
315
549
  connect,
316
550
  disconnect,
317
551
  discoverServices,
318
552
  readCharacteristic,
553
+ readDescriptor,
319
554
  writeCharacteristic,
555
+ writeDescriptor,
320
556
  subscribeToCharacteristic,
321
557
  unsubscribeFromCharacteristic,
322
558
  getConnectedDevices,
323
559
  readRSSI,
560
+ requestMTU,
561
+ setPreferredPhy,
562
+ readPhy,
563
+ getBondState,
564
+ createBond,
565
+ removeBond,
566
+ startExtendedAdvertising,
567
+ stopExtendedAdvertising,
568
+ publishL2CAPChannel,
569
+ unpublishL2CAPChannel,
570
+ openL2CAPChannel,
571
+ closeL2CAPChannel,
572
+ sendL2CAPData,
573
+ startClassicScan,
574
+ stopClassicScan,
575
+ connectClassic,
576
+ startClassicServer,
577
+ stopClassicServer,
578
+ disconnectClassic,
579
+ writeClassic,
324
580
  startBackgroundSession,
325
581
  stopBackgroundSession,
582
+ startMultipeerSession,
583
+ stopMultipeerSession,
584
+ inviteMultipeerPeer,
585
+ getMultipeerPeers,
586
+ sendMultipeerMessage,
326
587
  // Events
327
588
  addDeviceFoundListener,
328
589
  addEventListener,
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","_reactNative","MunimBluetooth","NitroModules","createHybridObject","nativeEventModule","Platform","OS","NativeModules","MunimBluetoothEventEmitter","console","log","Object","keys","filter","key","includes","eventEmitter","DeviceEventEmitter","NativeEventEmitter","error","warn","startAdvertising","options","updateAdvertisingData","advertisingData","getAdvertisingData","stopAdvertising","setServices","services","isBluetoothEnabled","requestBluetoothPermission","startScan","stopScan","connect","deviceId","disconnect","discoverServices","readCharacteristic","serviceUUID","characteristicUUID","writeCharacteristic","value","writeType","subscribeToCharacteristic","unsubscribeFromCharacteristic","getConnectedDevices","readRSSI","startBackgroundSession","stopBackgroundSession","addDeviceFoundListener","callback","subscription","addListener","remove","addEventListener","eventName","removeListeners","count","_default","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_reactNative","MunimBluetooth","NitroModules","createHybridObject","nativeEventModule","Platform","OS","NativeModules","MunimBluetoothEventEmitter","eventEmitter","DeviceEventEmitter","NativeEventEmitter","error","console","startAdvertising","options","updateAdvertisingData","advertisingData","getAdvertisingData","stopAdvertising","setServices","services","updateCharacteristicValue","serviceUUID","characteristicUUID","value","notify","isBluetoothEnabled","requestBluetoothPermission","getCapabilities","startScan","stopScan","connect","deviceId","disconnect","discoverServices","readCharacteristic","readDescriptor","descriptorUUID","writeCharacteristic","writeType","writeDescriptor","subscribeToCharacteristic","unsubscribeFromCharacteristic","getConnectedDevices","readRSSI","requestMTU","mtu","setPreferredPhy","txPhy","rxPhy","phyOption","readPhy","getBondState","createBond","removeBond","startExtendedAdvertising","stopExtendedAdvertising","advertisingId","publishL2CAPChannel","encryptionRequired","unpublishL2CAPChannel","psm","openL2CAPChannel","closeL2CAPChannel","channelId","sendL2CAPData","startClassicScan","stopClassicScan","connectClassic","startClassicServer","serviceName","stopClassicServer","disconnectClassic","writeClassic","startBackgroundSession","stopBackgroundSession","startMultipeerSession","stopMultipeerSession","inviteMultipeerPeer","peerId","getMultipeerPeers","sendMultipeerMessage","peerIds","reliable","addDeviceFoundListener","callback","warn","subscription","addListener","remove","addEventListener","eventName","removeListeners","count","_default","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}