munim-bluetooth 0.3.15 → 0.3.17
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/ios/HybridMunimBluetooth.swift +37 -7
- package/ios/MunimBluetoothEventEmitter.m +5 -0
- package/lib/commonjs/index.js +11 -3
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +11 -3
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +47 -13
|
@@ -79,9 +79,18 @@ class HybridMunimBluetooth: HybridMunimBluetoothSpec {
|
|
|
79
79
|
// MARK: - Peripheral Features
|
|
80
80
|
|
|
81
81
|
func startAdvertising(options: AdvertisingOptions) throws {
|
|
82
|
-
guard let peripheralManager = peripheralManager
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
guard let peripheralManager = peripheralManager else {
|
|
83
|
+
throw NSError(domain: "MunimBluetooth", code: 1, userInfo: [NSLocalizedDescriptionKey: "Peripheral manager not initialized"])
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
guard peripheralManager.state == .poweredOn else {
|
|
87
|
+
throw NSError(domain: "MunimBluetooth", code: 2, userInfo: [NSLocalizedDescriptionKey: "Bluetooth is not powered on. Current state: \(peripheralManager.state.rawValue)"])
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Stop any existing advertising first
|
|
91
|
+
if peripheralManager.isAdvertising {
|
|
92
|
+
NSLog("[MunimBluetooth] Stopping existing advertising")
|
|
93
|
+
peripheralManager.stopAdvertising()
|
|
85
94
|
}
|
|
86
95
|
|
|
87
96
|
var advertisingData: [String: Any] = [:]
|
|
@@ -90,17 +99,20 @@ class HybridMunimBluetooth: HybridMunimBluetoothSpec {
|
|
|
90
99
|
if !options.serviceUUIDs.isEmpty {
|
|
91
100
|
let uuids = options.serviceUUIDs.compactMap { CBUUID(string: $0) }
|
|
92
101
|
advertisingData[CBAdvertisementDataServiceUUIDsKey] = uuids
|
|
102
|
+
NSLog("[MunimBluetooth] Advertising service UUIDs: %@", options.serviceUUIDs)
|
|
93
103
|
}
|
|
94
104
|
|
|
95
105
|
// Local name
|
|
96
106
|
if let localName = options.localName {
|
|
97
107
|
advertisingData[CBAdvertisementDataLocalNameKey] = localName
|
|
108
|
+
NSLog("[MunimBluetooth] Advertising local name: %@", localName)
|
|
98
109
|
}
|
|
99
110
|
|
|
100
111
|
// Manufacturer data
|
|
101
112
|
if let manufacturerData = options.manufacturerData,
|
|
102
113
|
let data = hexStringToData(manufacturerData) {
|
|
103
114
|
advertisingData[CBAdvertisementDataManufacturerDataKey] = data
|
|
115
|
+
NSLog("[MunimBluetooth] Advertising manufacturer data: %@ bytes", String(data.count))
|
|
104
116
|
}
|
|
105
117
|
|
|
106
118
|
// Advertising data
|
|
@@ -109,7 +121,9 @@ class HybridMunimBluetooth: HybridMunimBluetoothSpec {
|
|
|
109
121
|
}
|
|
110
122
|
|
|
111
123
|
currentAdvertisingData = options.advertisingData
|
|
112
|
-
|
|
124
|
+
|
|
125
|
+
NSLog("[MunimBluetooth] Starting advertising with data: %@", advertisingData)
|
|
126
|
+
peripheralManager.startAdvertising(advertisingData)
|
|
113
127
|
}
|
|
114
128
|
|
|
115
129
|
func updateAdvertisingData(advertisingData: AdvertisingDataTypes) throws {
|
|
@@ -139,14 +153,28 @@ class HybridMunimBluetooth: HybridMunimBluetoothSpec {
|
|
|
139
153
|
}
|
|
140
154
|
|
|
141
155
|
func setServices(services: [GATTService]) throws {
|
|
156
|
+
guard let peripheralManager = peripheralManager else {
|
|
157
|
+
throw NSError(domain: "MunimBluetooth", code: 1, userInfo: [NSLocalizedDescriptionKey: "Peripheral manager not initialized"])
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
guard peripheralManager.state == .poweredOn else {
|
|
161
|
+
throw NSError(domain: "MunimBluetooth", code: 2, userInfo: [NSLocalizedDescriptionKey: "Bluetooth is not powered on. Current state: \(peripheralManager.state.rawValue)"])
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// Remove existing services first
|
|
165
|
+
peripheralManager.removeAllServices()
|
|
142
166
|
peripheralServices.removeAll()
|
|
143
167
|
|
|
168
|
+
NSLog("[MunimBluetooth] Setting up %d services", services.count)
|
|
169
|
+
|
|
144
170
|
for service in services {
|
|
145
171
|
let serviceUUID = CBUUID(string: service.uuid)
|
|
146
172
|
let mutableService = CBMutableService(type: serviceUUID, primary: true)
|
|
147
173
|
|
|
148
174
|
var characteristics: [CBMutableCharacteristic] = []
|
|
149
175
|
|
|
176
|
+
NSLog("[MunimBluetooth] Service %@: %d characteristics", service.uuid, service.characteristics.count)
|
|
177
|
+
|
|
150
178
|
for characteristic in service.characteristics {
|
|
151
179
|
let charUUID = CBUUID(string: characteristic.uuid)
|
|
152
180
|
|
|
@@ -186,15 +214,17 @@ class HybridMunimBluetooth: HybridMunimBluetoothSpec {
|
|
|
186
214
|
)
|
|
187
215
|
|
|
188
216
|
characteristics.append(mutableChar)
|
|
217
|
+
NSLog("[MunimBluetooth] Characteristic added: %@ with properties: %lu", characteristic.uuid, properties.rawValue)
|
|
189
218
|
}
|
|
190
219
|
|
|
191
220
|
mutableService.characteristics = characteristics
|
|
192
221
|
peripheralServices.append(mutableService)
|
|
222
|
+
|
|
223
|
+
NSLog("[MunimBluetooth] Adding service to peripheral manager: %@", service.uuid)
|
|
224
|
+
peripheralManager.add(mutableService)
|
|
193
225
|
}
|
|
194
226
|
|
|
195
|
-
|
|
196
|
-
peripheralManager?.add(service)
|
|
197
|
-
}
|
|
227
|
+
NSLog("[MunimBluetooth] All services added successfully")
|
|
198
228
|
}
|
|
199
229
|
|
|
200
230
|
// MARK: - Central/Manager Features
|
package/lib/commonjs/index.js
CHANGED
|
@@ -34,11 +34,19 @@ const MunimBluetooth = _reactNativeNitroModules.NitroModules.createHybridObject(
|
|
|
34
34
|
const {
|
|
35
35
|
MunimBluetoothEventEmitter
|
|
36
36
|
} = _reactNative.NativeModules;
|
|
37
|
+
console.log('[munim-bluetooth] Checking for event emitter...', MunimBluetoothEventEmitter ? 'FOUND' : 'NOT FOUND');
|
|
38
|
+
console.log('[munim-bluetooth] Available NativeModules:', Object.keys(_reactNative.NativeModules).filter(key => key.includes('Bluetooth') || key.includes('Munim')));
|
|
37
39
|
let eventEmitter = null;
|
|
38
40
|
if (MunimBluetoothEventEmitter) {
|
|
39
|
-
|
|
41
|
+
try {
|
|
42
|
+
eventEmitter = new _reactNative.NativeEventEmitter(MunimBluetoothEventEmitter);
|
|
43
|
+
console.log('[munim-bluetooth] Event emitter initialized successfully');
|
|
44
|
+
} catch (error) {
|
|
45
|
+
console.error('[munim-bluetooth] Failed to initialize event emitter:', error);
|
|
46
|
+
}
|
|
40
47
|
} else {
|
|
41
|
-
console.warn('[munim-bluetooth] Event emitter not
|
|
48
|
+
console.warn('[munim-bluetooth] Event emitter module not found in NativeModules - device discovery events will not work');
|
|
49
|
+
console.warn('[munim-bluetooth] This usually means the native module was not linked properly or needs a rebuild');
|
|
42
50
|
}
|
|
43
51
|
|
|
44
52
|
// ========== Peripheral Features ==========
|
|
@@ -222,7 +230,7 @@ function readRSSI(deviceId) {
|
|
|
222
230
|
|
|
223
231
|
/**
|
|
224
232
|
* Add a device found event listener (for scanning).
|
|
225
|
-
*
|
|
233
|
+
*
|
|
226
234
|
* @param callback - Function to call when a device is found
|
|
227
235
|
* @returns A function to remove the listener
|
|
228
236
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeNitroModules","require","_reactNative","MunimBluetooth","NitroModules","createHybridObject","MunimBluetoothEventEmitter","NativeModules","eventEmitter","NativeEventEmitter","
|
|
1
|
+
{"version":3,"names":["_reactNativeNitroModules","require","_reactNative","MunimBluetooth","NitroModules","createHybridObject","MunimBluetoothEventEmitter","NativeModules","console","log","Object","keys","filter","key","includes","eventEmitter","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","addDeviceFoundListener","callback","subscription","addListener","remove","addEventListener","eventName","removeListeners","count","_default","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -8,11 +8,19 @@ const MunimBluetooth = NitroModules.createHybridObject('MunimBluetooth');
|
|
|
8
8
|
const {
|
|
9
9
|
MunimBluetoothEventEmitter
|
|
10
10
|
} = NativeModules;
|
|
11
|
+
console.log('[munim-bluetooth] Checking for event emitter...', MunimBluetoothEventEmitter ? 'FOUND' : 'NOT FOUND');
|
|
12
|
+
console.log('[munim-bluetooth] Available NativeModules:', Object.keys(NativeModules).filter(key => key.includes('Bluetooth') || key.includes('Munim')));
|
|
11
13
|
let eventEmitter = null;
|
|
12
14
|
if (MunimBluetoothEventEmitter) {
|
|
13
|
-
|
|
15
|
+
try {
|
|
16
|
+
eventEmitter = new NativeEventEmitter(MunimBluetoothEventEmitter);
|
|
17
|
+
console.log('[munim-bluetooth] Event emitter initialized successfully');
|
|
18
|
+
} catch (error) {
|
|
19
|
+
console.error('[munim-bluetooth] Failed to initialize event emitter:', error);
|
|
20
|
+
}
|
|
14
21
|
} else {
|
|
15
|
-
console.warn('[munim-bluetooth] Event emitter not
|
|
22
|
+
console.warn('[munim-bluetooth] Event emitter module not found in NativeModules - device discovery events will not work');
|
|
23
|
+
console.warn('[munim-bluetooth] This usually means the native module was not linked properly or needs a rebuild');
|
|
16
24
|
}
|
|
17
25
|
|
|
18
26
|
// ========== Peripheral Features ==========
|
|
@@ -196,7 +204,7 @@ export function readRSSI(deviceId) {
|
|
|
196
204
|
|
|
197
205
|
/**
|
|
198
206
|
* Add a device found event listener (for scanning).
|
|
199
|
-
*
|
|
207
|
+
*
|
|
200
208
|
* @param callback - Function to call when a device is found
|
|
201
209
|
* @returns A function to remove the listener
|
|
202
210
|
*/
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NitroModules","NativeEventEmitter","NativeModules","MunimBluetooth","createHybridObject","MunimBluetoothEventEmitter","eventEmitter","
|
|
1
|
+
{"version":3,"names":["NitroModules","NativeEventEmitter","NativeModules","MunimBluetooth","createHybridObject","MunimBluetoothEventEmitter","console","log","Object","keys","filter","key","includes","eventEmitter","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","addDeviceFoundListener","callback","subscription","addListener","remove","addEventListener","eventName","removeListeners","count"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,WAAW,EACX,mBAAmB,EACpB,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "munim-bluetooth",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.17",
|
|
4
4
|
"description": "A comprehensive React Native library for all your Bluetooth Low Energy (BLE) needs, supporting both peripheral and central roles with Expo support",
|
|
5
5
|
"main": "./lib/commonjs/index.js",
|
|
6
6
|
"module": "./lib/module/index.js",
|
package/src/index.ts
CHANGED
|
@@ -14,12 +14,37 @@ const MunimBluetooth =
|
|
|
14
14
|
|
|
15
15
|
// Event Emitter for Bluetooth events
|
|
16
16
|
const { MunimBluetoothEventEmitter } = NativeModules
|
|
17
|
+
|
|
18
|
+
console.log(
|
|
19
|
+
'[munim-bluetooth] Checking for event emitter...',
|
|
20
|
+
MunimBluetoothEventEmitter ? 'FOUND' : 'NOT FOUND'
|
|
21
|
+
)
|
|
22
|
+
console.log(
|
|
23
|
+
'[munim-bluetooth] Available NativeModules:',
|
|
24
|
+
Object.keys(NativeModules).filter(
|
|
25
|
+
(key) => key.includes('Bluetooth') || key.includes('Munim')
|
|
26
|
+
)
|
|
27
|
+
)
|
|
28
|
+
|
|
17
29
|
let eventEmitter: NativeEventEmitter | null = null
|
|
18
30
|
|
|
19
31
|
if (MunimBluetoothEventEmitter) {
|
|
20
|
-
|
|
32
|
+
try {
|
|
33
|
+
eventEmitter = new NativeEventEmitter(MunimBluetoothEventEmitter)
|
|
34
|
+
console.log('[munim-bluetooth] Event emitter initialized successfully')
|
|
35
|
+
} catch (error) {
|
|
36
|
+
console.error(
|
|
37
|
+
'[munim-bluetooth] Failed to initialize event emitter:',
|
|
38
|
+
error
|
|
39
|
+
)
|
|
40
|
+
}
|
|
21
41
|
} else {
|
|
22
|
-
console.warn(
|
|
42
|
+
console.warn(
|
|
43
|
+
'[munim-bluetooth] Event emitter module not found in NativeModules - device discovery events will not work'
|
|
44
|
+
)
|
|
45
|
+
console.warn(
|
|
46
|
+
'[munim-bluetooth] This usually means the native module was not linked properly or needs a rebuild'
|
|
47
|
+
)
|
|
23
48
|
}
|
|
24
49
|
|
|
25
50
|
// ========== Peripheral Features ==========
|
|
@@ -30,10 +55,10 @@ if (MunimBluetoothEventEmitter) {
|
|
|
30
55
|
* @param options - An object with serviceUUIDs (string[]) and supported advertising data types.
|
|
31
56
|
*/
|
|
32
57
|
export function startAdvertising(options: {
|
|
33
|
-
serviceUUIDs: string[]
|
|
34
|
-
localName?: string
|
|
35
|
-
manufacturerData?: string
|
|
36
|
-
advertisingData?: AdvertisingDataTypes
|
|
58
|
+
serviceUUIDs: string[]
|
|
59
|
+
localName?: string
|
|
60
|
+
manufacturerData?: string
|
|
61
|
+
advertisingData?: AdvertisingDataTypes
|
|
37
62
|
}): void {
|
|
38
63
|
return MunimBluetooth.startAdvertising(options)
|
|
39
64
|
}
|
|
@@ -246,16 +271,20 @@ export function readRSSI(deviceId: string): Promise<number> {
|
|
|
246
271
|
|
|
247
272
|
/**
|
|
248
273
|
* Add a device found event listener (for scanning).
|
|
249
|
-
*
|
|
274
|
+
*
|
|
250
275
|
* @param callback - Function to call when a device is found
|
|
251
276
|
* @returns A function to remove the listener
|
|
252
277
|
*/
|
|
253
|
-
export function addDeviceFoundListener(
|
|
278
|
+
export function addDeviceFoundListener(
|
|
279
|
+
callback: (device: BLEDevice) => void
|
|
280
|
+
): () => void {
|
|
254
281
|
if (!eventEmitter) {
|
|
255
|
-
console.warn(
|
|
282
|
+
console.warn(
|
|
283
|
+
'[munim-bluetooth] Cannot add listener - event emitter not available'
|
|
284
|
+
)
|
|
256
285
|
return () => {}
|
|
257
286
|
}
|
|
258
|
-
|
|
287
|
+
|
|
259
288
|
const subscription = eventEmitter.addListener('deviceFound', callback)
|
|
260
289
|
return () => subscription.remove()
|
|
261
290
|
}
|
|
@@ -267,12 +296,17 @@ export function addDeviceFoundListener(callback: (device: BLEDevice) => void): (
|
|
|
267
296
|
* @param callback - The callback to invoke when the event occurs.
|
|
268
297
|
* @returns A function to remove the listener
|
|
269
298
|
*/
|
|
270
|
-
export function addEventListener(
|
|
299
|
+
export function addEventListener(
|
|
300
|
+
eventName: string,
|
|
301
|
+
callback: (data: any) => void
|
|
302
|
+
): () => void {
|
|
271
303
|
if (!eventEmitter) {
|
|
272
|
-
console.warn(
|
|
304
|
+
console.warn(
|
|
305
|
+
'[munim-bluetooth] Cannot add listener - event emitter not available'
|
|
306
|
+
)
|
|
273
307
|
return () => {}
|
|
274
308
|
}
|
|
275
|
-
|
|
309
|
+
|
|
276
310
|
const subscription = eventEmitter.addListener(eventName, callback)
|
|
277
311
|
return () => subscription.remove()
|
|
278
312
|
}
|