react-native-ble-nitro 1.3.0 → 1.3.1
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/README.md +8 -10
- package/lib/commonjs/index.d.ts +11 -5
- package/lib/commonjs/index.d.ts.map +1 -1
- package/lib/commonjs/index.js +24 -24
- package/lib/commonjs/index.js.map +1 -1
- package/lib/index.d.ts +11 -5
- package/lib/index.js +24 -24
- package/package.json +1 -1
- package/src/__tests__/index.test.ts +6 -7
- package/src/index.ts +37 -28
package/README.md
CHANGED
|
@@ -394,16 +394,6 @@ Built on [Nitro Modules](https://nitro.margelo.com/) for:
|
|
|
394
394
|
- **Android**: ✅ Complete Kotlin implementation using Android BLE APIs
|
|
395
395
|
- **Shared C++**: Common logic and type definitions via Nitro Modules
|
|
396
396
|
|
|
397
|
-
### Compatibility Layer
|
|
398
|
-
|
|
399
|
-
While maintaining 100% API compatibility, some internal changes were needed for Nitro:
|
|
400
|
-
|
|
401
|
-
- **Enum Values**: Numeric instead of string (transparent to users)
|
|
402
|
-
- **Service Data**: Structured format internally (automatic conversion)
|
|
403
|
-
- **Type Safety**: Enhanced compile-time checks
|
|
404
|
-
|
|
405
|
-
See [API_DIFFERENCES.md](./API_DIFFERENCES.md) for technical details.
|
|
406
|
-
|
|
407
397
|
## ⚙️ Configuration
|
|
408
398
|
|
|
409
399
|
### Expo Plugin Options
|
|
@@ -513,6 +503,14 @@ npm test
|
|
|
513
503
|
npm run lint
|
|
514
504
|
```
|
|
515
505
|
|
|
506
|
+
### Node not found with Android Studio on Mac
|
|
507
|
+
|
|
508
|
+
Start Android Studio from terminal to inherit correct PATH:
|
|
509
|
+
|
|
510
|
+
```sh
|
|
511
|
+
open -a Android\ Studio.app
|
|
512
|
+
```
|
|
513
|
+
|
|
516
514
|
### Project Structure
|
|
517
515
|
|
|
518
516
|
```
|
package/lib/commonjs/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export type ByteArray = number[];
|
|
1
2
|
export interface ScanFilter {
|
|
2
3
|
serviceUUIDs?: string[];
|
|
3
4
|
rssiThreshold?: number;
|
|
@@ -6,7 +7,7 @@ export interface ScanFilter {
|
|
|
6
7
|
}
|
|
7
8
|
export interface ManufacturerDataEntry {
|
|
8
9
|
id: string;
|
|
9
|
-
data:
|
|
10
|
+
data: ByteArray;
|
|
10
11
|
}
|
|
11
12
|
export interface ManufacturerData {
|
|
12
13
|
companyIdentifiers: ManufacturerDataEntry[];
|
|
@@ -20,10 +21,11 @@ export interface BLEDevice {
|
|
|
20
21
|
isConnectable: boolean;
|
|
21
22
|
}
|
|
22
23
|
export type ScanCallback = (device: BLEDevice) => void;
|
|
24
|
+
export type RestoreStateCallback = (connectedPeripherals: BLEDevice[]) => void;
|
|
23
25
|
export type ConnectionCallback = (success: boolean, deviceId: string, error: string) => void;
|
|
24
26
|
export type DisconnectEventCallback = (deviceId: string, interrupted: boolean, error: string) => void;
|
|
25
27
|
export type OperationCallback = (success: boolean, error: string) => void;
|
|
26
|
-
export type CharacteristicUpdateCallback = (characteristicId: string, data:
|
|
28
|
+
export type CharacteristicUpdateCallback = (characteristicId: string, data: ByteArray) => void;
|
|
27
29
|
export type Subscription = {
|
|
28
30
|
remove: () => void;
|
|
29
31
|
};
|
|
@@ -41,6 +43,10 @@ export declare enum AndroidScanMode {
|
|
|
41
43
|
LowPower = "LowPower",
|
|
42
44
|
Opportunistic = "Opportunistic"
|
|
43
45
|
}
|
|
46
|
+
export type BleNitroOptions = {
|
|
47
|
+
restoreStateIdentifier?: string;
|
|
48
|
+
onRestoreState?: RestoreStateCallback;
|
|
49
|
+
};
|
|
44
50
|
export declare class BleNitro {
|
|
45
51
|
private _isScanning;
|
|
46
52
|
private _connectedDevices;
|
|
@@ -128,17 +134,17 @@ export declare class BleNitro {
|
|
|
128
134
|
* @param characteristicId ID of the characteristic
|
|
129
135
|
* @returns Promise resolving to the characteristic data as ArrayBuffer
|
|
130
136
|
*/
|
|
131
|
-
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<
|
|
137
|
+
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<ByteArray>;
|
|
132
138
|
/**
|
|
133
139
|
* Write a value to a characteristic
|
|
134
140
|
* @param deviceId ID of the device
|
|
135
141
|
* @param serviceId ID of the service
|
|
136
142
|
* @param characteristicId ID of the characteristic
|
|
137
|
-
* @param data Data to write as
|
|
143
|
+
* @param data Data to write as ByteArray (number[])
|
|
138
144
|
* @param withResponse Whether to wait for response
|
|
139
145
|
* @returns Promise resolving when write is complete
|
|
140
146
|
*/
|
|
141
|
-
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data:
|
|
147
|
+
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: ByteArray, withResponse?: boolean): Promise<boolean>;
|
|
142
148
|
/**
|
|
143
149
|
* Subscribe to characteristic notifications
|
|
144
150
|
* @param deviceId ID of the device
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -43,6 +43,24 @@ function mapAndroidScanModeToNativeAndroidScanMode(scanMode) {
|
|
|
43
43
|
};
|
|
44
44
|
return map[scanMode];
|
|
45
45
|
}
|
|
46
|
+
function convertNativeBleDeviceToBleDevice(nativeBleDevice) {
|
|
47
|
+
return {
|
|
48
|
+
...nativeBleDevice,
|
|
49
|
+
serviceUUIDs: BleNitro.normalizeGattUUIDs(nativeBleDevice.serviceUUIDs),
|
|
50
|
+
manufacturerData: {
|
|
51
|
+
companyIdentifiers: nativeBleDevice.manufacturerData.companyIdentifiers.map(entry => ({
|
|
52
|
+
id: entry.id,
|
|
53
|
+
data: arrayBufferToByteArray(entry.data)
|
|
54
|
+
}))
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function arrayBufferToByteArray(buffer) {
|
|
59
|
+
return Array.from(new Uint8Array(buffer));
|
|
60
|
+
}
|
|
61
|
+
function byteArrayToArrayBuffer(data) {
|
|
62
|
+
return new Uint8Array(data).buffer;
|
|
63
|
+
}
|
|
46
64
|
let _instance;
|
|
47
65
|
class BleNitro {
|
|
48
66
|
constructor() {
|
|
@@ -102,16 +120,7 @@ class BleNitro {
|
|
|
102
120
|
}
|
|
103
121
|
device = device; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
104
122
|
// Convert manufacturer data to Uint8Arrays
|
|
105
|
-
const convertedDevice =
|
|
106
|
-
...device,
|
|
107
|
-
serviceUUIDs: BleNitro.normalizeGattUUIDs(device.serviceUUIDs),
|
|
108
|
-
manufacturerData: {
|
|
109
|
-
companyIdentifiers: device.manufacturerData.companyIdentifiers.map(entry => ({
|
|
110
|
-
id: entry.id,
|
|
111
|
-
data: entry.data
|
|
112
|
-
}))
|
|
113
|
-
}
|
|
114
|
-
};
|
|
123
|
+
const convertedDevice = convertNativeBleDeviceToBleDevice(device);
|
|
115
124
|
callback(convertedDevice);
|
|
116
125
|
};
|
|
117
126
|
// Start scan
|
|
@@ -145,16 +154,7 @@ class BleNitro {
|
|
|
145
154
|
getConnectedDevices(services) {
|
|
146
155
|
const devices = NativeBleNitro_1.default.getConnectedDevices(services || []);
|
|
147
156
|
// Normalize service UUIDs - manufacturer data already comes as ArrayBuffers
|
|
148
|
-
return devices.map(device => (
|
|
149
|
-
...device,
|
|
150
|
-
serviceUUIDs: BleNitro.normalizeGattUUIDs(device.serviceUUIDs),
|
|
151
|
-
manufacturerData: {
|
|
152
|
-
companyIdentifiers: device.manufacturerData.companyIdentifiers.map(entry => ({
|
|
153
|
-
id: entry.id,
|
|
154
|
-
data: entry.data
|
|
155
|
-
}))
|
|
156
|
-
}
|
|
157
|
-
}));
|
|
157
|
+
return devices.map(device => convertNativeBleDeviceToBleDevice(device));
|
|
158
158
|
}
|
|
159
159
|
/**
|
|
160
160
|
* Connect to a Bluetooth device
|
|
@@ -298,7 +298,7 @@ class BleNitro {
|
|
|
298
298
|
}
|
|
299
299
|
NativeBleNitro_1.default.readCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), (success, data, error) => {
|
|
300
300
|
if (success) {
|
|
301
|
-
resolve(data);
|
|
301
|
+
resolve(arrayBufferToByteArray(data));
|
|
302
302
|
}
|
|
303
303
|
else {
|
|
304
304
|
reject(new Error(error));
|
|
@@ -311,7 +311,7 @@ class BleNitro {
|
|
|
311
311
|
* @param deviceId ID of the device
|
|
312
312
|
* @param serviceId ID of the service
|
|
313
313
|
* @param characteristicId ID of the characteristic
|
|
314
|
-
* @param data Data to write as
|
|
314
|
+
* @param data Data to write as ByteArray (number[])
|
|
315
315
|
* @param withResponse Whether to wait for response
|
|
316
316
|
* @returns Promise resolving when write is complete
|
|
317
317
|
*/
|
|
@@ -322,7 +322,7 @@ class BleNitro {
|
|
|
322
322
|
reject(new Error('Device not connected'));
|
|
323
323
|
return;
|
|
324
324
|
}
|
|
325
|
-
NativeBleNitro_1.default.writeCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), data, withResponse, (success, error) => {
|
|
325
|
+
NativeBleNitro_1.default.writeCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), byteArrayToArrayBuffer(data), withResponse, (success, error) => {
|
|
326
326
|
if (success) {
|
|
327
327
|
resolve(true);
|
|
328
328
|
}
|
|
@@ -347,7 +347,7 @@ class BleNitro {
|
|
|
347
347
|
}
|
|
348
348
|
let _success = false;
|
|
349
349
|
NativeBleNitro_1.default.subscribeToCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), (charId, data) => {
|
|
350
|
-
callback(charId, data);
|
|
350
|
+
callback(charId, arrayBufferToByteArray(data));
|
|
351
351
|
}, (success, error) => {
|
|
352
352
|
_success = success;
|
|
353
353
|
if (!success) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export type ByteArray = number[];
|
|
1
2
|
export interface ScanFilter {
|
|
2
3
|
serviceUUIDs?: string[];
|
|
3
4
|
rssiThreshold?: number;
|
|
@@ -6,7 +7,7 @@ export interface ScanFilter {
|
|
|
6
7
|
}
|
|
7
8
|
export interface ManufacturerDataEntry {
|
|
8
9
|
id: string;
|
|
9
|
-
data:
|
|
10
|
+
data: ByteArray;
|
|
10
11
|
}
|
|
11
12
|
export interface ManufacturerData {
|
|
12
13
|
companyIdentifiers: ManufacturerDataEntry[];
|
|
@@ -20,10 +21,11 @@ export interface BLEDevice {
|
|
|
20
21
|
isConnectable: boolean;
|
|
21
22
|
}
|
|
22
23
|
export type ScanCallback = (device: BLEDevice) => void;
|
|
24
|
+
export type RestoreStateCallback = (connectedPeripherals: BLEDevice[]) => void;
|
|
23
25
|
export type ConnectionCallback = (success: boolean, deviceId: string, error: string) => void;
|
|
24
26
|
export type DisconnectEventCallback = (deviceId: string, interrupted: boolean, error: string) => void;
|
|
25
27
|
export type OperationCallback = (success: boolean, error: string) => void;
|
|
26
|
-
export type CharacteristicUpdateCallback = (characteristicId: string, data:
|
|
28
|
+
export type CharacteristicUpdateCallback = (characteristicId: string, data: ByteArray) => void;
|
|
27
29
|
export type Subscription = {
|
|
28
30
|
remove: () => void;
|
|
29
31
|
};
|
|
@@ -41,6 +43,10 @@ export declare enum AndroidScanMode {
|
|
|
41
43
|
LowPower = "LowPower",
|
|
42
44
|
Opportunistic = "Opportunistic"
|
|
43
45
|
}
|
|
46
|
+
export type BleNitroOptions = {
|
|
47
|
+
restoreStateIdentifier?: string;
|
|
48
|
+
onRestoreState?: RestoreStateCallback;
|
|
49
|
+
};
|
|
44
50
|
export declare class BleNitro {
|
|
45
51
|
private _isScanning;
|
|
46
52
|
private _connectedDevices;
|
|
@@ -128,17 +134,17 @@ export declare class BleNitro {
|
|
|
128
134
|
* @param characteristicId ID of the characteristic
|
|
129
135
|
* @returns Promise resolving to the characteristic data as ArrayBuffer
|
|
130
136
|
*/
|
|
131
|
-
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<
|
|
137
|
+
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<ByteArray>;
|
|
132
138
|
/**
|
|
133
139
|
* Write a value to a characteristic
|
|
134
140
|
* @param deviceId ID of the device
|
|
135
141
|
* @param serviceId ID of the service
|
|
136
142
|
* @param characteristicId ID of the characteristic
|
|
137
|
-
* @param data Data to write as
|
|
143
|
+
* @param data Data to write as ByteArray (number[])
|
|
138
144
|
* @param withResponse Whether to wait for response
|
|
139
145
|
* @returns Promise resolving when write is complete
|
|
140
146
|
*/
|
|
141
|
-
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data:
|
|
147
|
+
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: ByteArray, withResponse?: boolean): Promise<boolean>;
|
|
142
148
|
/**
|
|
143
149
|
* Subscribe to characteristic notifications
|
|
144
150
|
* @param deviceId ID of the device
|
package/lib/index.js
CHANGED
|
@@ -37,6 +37,24 @@ function mapAndroidScanModeToNativeAndroidScanMode(scanMode) {
|
|
|
37
37
|
};
|
|
38
38
|
return map[scanMode];
|
|
39
39
|
}
|
|
40
|
+
function convertNativeBleDeviceToBleDevice(nativeBleDevice) {
|
|
41
|
+
return {
|
|
42
|
+
...nativeBleDevice,
|
|
43
|
+
serviceUUIDs: BleNitro.normalizeGattUUIDs(nativeBleDevice.serviceUUIDs),
|
|
44
|
+
manufacturerData: {
|
|
45
|
+
companyIdentifiers: nativeBleDevice.manufacturerData.companyIdentifiers.map(entry => ({
|
|
46
|
+
id: entry.id,
|
|
47
|
+
data: arrayBufferToByteArray(entry.data)
|
|
48
|
+
}))
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function arrayBufferToByteArray(buffer) {
|
|
53
|
+
return Array.from(new Uint8Array(buffer));
|
|
54
|
+
}
|
|
55
|
+
function byteArrayToArrayBuffer(data) {
|
|
56
|
+
return new Uint8Array(data).buffer;
|
|
57
|
+
}
|
|
40
58
|
let _instance;
|
|
41
59
|
export class BleNitro {
|
|
42
60
|
constructor() {
|
|
@@ -95,16 +113,7 @@ export class BleNitro {
|
|
|
95
113
|
}
|
|
96
114
|
device = device; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
97
115
|
// Convert manufacturer data to Uint8Arrays
|
|
98
|
-
const convertedDevice =
|
|
99
|
-
...device,
|
|
100
|
-
serviceUUIDs: BleNitro.normalizeGattUUIDs(device.serviceUUIDs),
|
|
101
|
-
manufacturerData: {
|
|
102
|
-
companyIdentifiers: device.manufacturerData.companyIdentifiers.map(entry => ({
|
|
103
|
-
id: entry.id,
|
|
104
|
-
data: entry.data
|
|
105
|
-
}))
|
|
106
|
-
}
|
|
107
|
-
};
|
|
116
|
+
const convertedDevice = convertNativeBleDeviceToBleDevice(device);
|
|
108
117
|
callback(convertedDevice);
|
|
109
118
|
};
|
|
110
119
|
// Start scan
|
|
@@ -138,16 +147,7 @@ export class BleNitro {
|
|
|
138
147
|
getConnectedDevices(services) {
|
|
139
148
|
const devices = BleNitroNative.getConnectedDevices(services || []);
|
|
140
149
|
// Normalize service UUIDs - manufacturer data already comes as ArrayBuffers
|
|
141
|
-
return devices.map(device => (
|
|
142
|
-
...device,
|
|
143
|
-
serviceUUIDs: BleNitro.normalizeGattUUIDs(device.serviceUUIDs),
|
|
144
|
-
manufacturerData: {
|
|
145
|
-
companyIdentifiers: device.manufacturerData.companyIdentifiers.map(entry => ({
|
|
146
|
-
id: entry.id,
|
|
147
|
-
data: entry.data
|
|
148
|
-
}))
|
|
149
|
-
}
|
|
150
|
-
}));
|
|
150
|
+
return devices.map(device => convertNativeBleDeviceToBleDevice(device));
|
|
151
151
|
}
|
|
152
152
|
/**
|
|
153
153
|
* Connect to a Bluetooth device
|
|
@@ -291,7 +291,7 @@ export class BleNitro {
|
|
|
291
291
|
}
|
|
292
292
|
BleNitroNative.readCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), (success, data, error) => {
|
|
293
293
|
if (success) {
|
|
294
|
-
resolve(data);
|
|
294
|
+
resolve(arrayBufferToByteArray(data));
|
|
295
295
|
}
|
|
296
296
|
else {
|
|
297
297
|
reject(new Error(error));
|
|
@@ -304,7 +304,7 @@ export class BleNitro {
|
|
|
304
304
|
* @param deviceId ID of the device
|
|
305
305
|
* @param serviceId ID of the service
|
|
306
306
|
* @param characteristicId ID of the characteristic
|
|
307
|
-
* @param data Data to write as
|
|
307
|
+
* @param data Data to write as ByteArray (number[])
|
|
308
308
|
* @param withResponse Whether to wait for response
|
|
309
309
|
* @returns Promise resolving when write is complete
|
|
310
310
|
*/
|
|
@@ -315,7 +315,7 @@ export class BleNitro {
|
|
|
315
315
|
reject(new Error('Device not connected'));
|
|
316
316
|
return;
|
|
317
317
|
}
|
|
318
|
-
BleNitroNative.writeCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), data, withResponse, (success, error) => {
|
|
318
|
+
BleNitroNative.writeCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), byteArrayToArrayBuffer(data), withResponse, (success, error) => {
|
|
319
319
|
if (success) {
|
|
320
320
|
resolve(true);
|
|
321
321
|
}
|
|
@@ -340,7 +340,7 @@ export class BleNitro {
|
|
|
340
340
|
}
|
|
341
341
|
let _success = false;
|
|
342
342
|
BleNitroNative.subscribeToCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), (charId, data) => {
|
|
343
|
-
callback(charId, data);
|
|
343
|
+
callback(charId, arrayBufferToByteArray(data));
|
|
344
344
|
}, (success, error) => {
|
|
345
345
|
_success = success;
|
|
346
346
|
if (!success) {
|
package/package.json
CHANGED
|
@@ -115,9 +115,9 @@ describe('BleNitro', () => {
|
|
|
115
115
|
});
|
|
116
116
|
|
|
117
117
|
test('writeCharacteristic requires connected device', async () => {
|
|
118
|
-
const data =
|
|
118
|
+
const data = [1, 2, 3];
|
|
119
119
|
await expect(
|
|
120
|
-
BleNitro.writeCharacteristic('device', 'service', 'char',
|
|
120
|
+
BleNitro.writeCharacteristic('device', 'service', 'char',data)
|
|
121
121
|
).rejects.toThrow('Device not connected');
|
|
122
122
|
});
|
|
123
123
|
|
|
@@ -144,10 +144,9 @@ describe('BleNitro', () => {
|
|
|
144
144
|
expect.any(Function)
|
|
145
145
|
);
|
|
146
146
|
|
|
147
|
-
// Result should be
|
|
148
|
-
expect(result).
|
|
149
|
-
|
|
150
|
-
expect(resultArray[0]).toBe(85);
|
|
147
|
+
// Result should be number array (ByteArray)
|
|
148
|
+
expect(Array.isArray(result)).toBe(true);
|
|
149
|
+
expect(result).toEqual([85]);
|
|
151
150
|
});
|
|
152
151
|
|
|
153
152
|
test('disconnect calls native', async () => {
|
|
@@ -187,7 +186,7 @@ describe('BleNitro', () => {
|
|
|
187
186
|
const subscription = BleNitro.subscribeToCharacteristic('device', 'service', 'char', notificationCallback);
|
|
188
187
|
|
|
189
188
|
expect(mockNative.subscribeToCharacteristic).toHaveBeenCalled();
|
|
190
|
-
expect(notificationCallback).toHaveBeenCalledWith('char-id',
|
|
189
|
+
expect(notificationCallback).toHaveBeenCalledWith('char-id', [1, 2, 3]);
|
|
191
190
|
|
|
192
191
|
// Verify subscription object
|
|
193
192
|
expect(subscription).toHaveProperty('remove');
|
package/src/index.ts
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
AndroidScanMode as NativeAndroidScanMode,
|
|
8
8
|
} from './specs/NativeBleNitro';
|
|
9
9
|
|
|
10
|
+
export type ByteArray = number[];
|
|
10
11
|
|
|
11
12
|
export interface ScanFilter {
|
|
12
13
|
serviceUUIDs?: string[];
|
|
@@ -17,7 +18,7 @@ export interface ScanFilter {
|
|
|
17
18
|
|
|
18
19
|
export interface ManufacturerDataEntry {
|
|
19
20
|
id: string;
|
|
20
|
-
data:
|
|
21
|
+
data: ByteArray;
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
export interface ManufacturerData {
|
|
@@ -34,6 +35,7 @@ export interface BLEDevice {
|
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
export type ScanCallback = (device: BLEDevice) => void;
|
|
38
|
+
export type RestoreStateCallback = (connectedPeripherals: BLEDevice[]) => void;
|
|
37
39
|
export type ConnectionCallback = (
|
|
38
40
|
success: boolean,
|
|
39
41
|
deviceId: string,
|
|
@@ -47,7 +49,7 @@ export type DisconnectEventCallback = (
|
|
|
47
49
|
export type OperationCallback = (success: boolean, error: string) => void;
|
|
48
50
|
export type CharacteristicUpdateCallback = (
|
|
49
51
|
characteristicId: string,
|
|
50
|
-
data:
|
|
52
|
+
data: ByteArray
|
|
51
53
|
) => void;
|
|
52
54
|
|
|
53
55
|
export type Subscription = {
|
|
@@ -70,6 +72,11 @@ export enum AndroidScanMode {
|
|
|
70
72
|
Opportunistic = 'Opportunistic',
|
|
71
73
|
}
|
|
72
74
|
|
|
75
|
+
export type BleNitroOptions = {
|
|
76
|
+
restoreStateIdentifier?: string;
|
|
77
|
+
onRestoreState?: RestoreStateCallback;
|
|
78
|
+
};
|
|
79
|
+
|
|
73
80
|
function mapNativeBLEStateToBLEState(nativeState: NativeBLEState): BLEState {
|
|
74
81
|
const map = {
|
|
75
82
|
0: BLEState.Unknown,
|
|
@@ -92,6 +99,26 @@ function mapAndroidScanModeToNativeAndroidScanMode(scanMode: AndroidScanMode): N
|
|
|
92
99
|
return map[scanMode];
|
|
93
100
|
}
|
|
94
101
|
|
|
102
|
+
function convertNativeBleDeviceToBleDevice(nativeBleDevice: NativeBLEDevice): BLEDevice {
|
|
103
|
+
return {
|
|
104
|
+
...nativeBleDevice,
|
|
105
|
+
serviceUUIDs: BleNitro.normalizeGattUUIDs(nativeBleDevice.serviceUUIDs),
|
|
106
|
+
manufacturerData: {
|
|
107
|
+
companyIdentifiers: nativeBleDevice.manufacturerData.companyIdentifiers.map(entry => ({
|
|
108
|
+
id: entry.id,
|
|
109
|
+
data: arrayBufferToByteArray(entry.data)
|
|
110
|
+
}))
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function arrayBufferToByteArray(buffer: ArrayBuffer): ByteArray {
|
|
116
|
+
return Array.from(new Uint8Array(buffer));
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function byteArrayToArrayBuffer(data: ByteArray): ArrayBuffer {
|
|
120
|
+
return new Uint8Array(data).buffer;
|
|
121
|
+
}
|
|
95
122
|
|
|
96
123
|
let _instance: BleNitro;
|
|
97
124
|
|
|
@@ -162,16 +189,7 @@ export class BleNitro {
|
|
|
162
189
|
}
|
|
163
190
|
device = device!; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
164
191
|
// Convert manufacturer data to Uint8Arrays
|
|
165
|
-
const convertedDevice: BLEDevice =
|
|
166
|
-
...device,
|
|
167
|
-
serviceUUIDs: BleNitro.normalizeGattUUIDs(device.serviceUUIDs),
|
|
168
|
-
manufacturerData: {
|
|
169
|
-
companyIdentifiers: device.manufacturerData.companyIdentifiers.map(entry => ({
|
|
170
|
-
id: entry.id,
|
|
171
|
-
data: entry.data
|
|
172
|
-
}))
|
|
173
|
-
}
|
|
174
|
-
};
|
|
192
|
+
const convertedDevice: BLEDevice = convertNativeBleDeviceToBleDevice(device);
|
|
175
193
|
callback(convertedDevice);
|
|
176
194
|
};
|
|
177
195
|
|
|
@@ -210,16 +228,7 @@ export class BleNitro {
|
|
|
210
228
|
public getConnectedDevices(services?: string[]): BLEDevice[] {
|
|
211
229
|
const devices = BleNitroNative.getConnectedDevices(services || []);
|
|
212
230
|
// Normalize service UUIDs - manufacturer data already comes as ArrayBuffers
|
|
213
|
-
return devices.map(device => (
|
|
214
|
-
...device,
|
|
215
|
-
serviceUUIDs: BleNitro.normalizeGattUUIDs(device.serviceUUIDs),
|
|
216
|
-
manufacturerData: {
|
|
217
|
-
companyIdentifiers: device.manufacturerData.companyIdentifiers.map(entry => ({
|
|
218
|
-
id: entry.id,
|
|
219
|
-
data: entry.data
|
|
220
|
-
}))
|
|
221
|
-
}
|
|
222
|
-
}));
|
|
231
|
+
return devices.map(device => convertNativeBleDeviceToBleDevice(device));
|
|
223
232
|
}
|
|
224
233
|
|
|
225
234
|
/**
|
|
@@ -387,7 +396,7 @@ export class BleNitro {
|
|
|
387
396
|
deviceId: string,
|
|
388
397
|
serviceId: string,
|
|
389
398
|
characteristicId: string
|
|
390
|
-
): Promise<
|
|
399
|
+
): Promise<ByteArray> {
|
|
391
400
|
return new Promise((resolve, reject) => {
|
|
392
401
|
// Check if connected first
|
|
393
402
|
if (!this._connectedDevices[deviceId]) {
|
|
@@ -401,7 +410,7 @@ export class BleNitro {
|
|
|
401
410
|
BleNitro.normalizeGattUUID(characteristicId),
|
|
402
411
|
(success: boolean, data: ArrayBuffer, error: string) => {
|
|
403
412
|
if (success) {
|
|
404
|
-
resolve(data);
|
|
413
|
+
resolve(arrayBufferToByteArray(data));
|
|
405
414
|
} else {
|
|
406
415
|
reject(new Error(error));
|
|
407
416
|
}
|
|
@@ -415,7 +424,7 @@ export class BleNitro {
|
|
|
415
424
|
* @param deviceId ID of the device
|
|
416
425
|
* @param serviceId ID of the service
|
|
417
426
|
* @param characteristicId ID of the characteristic
|
|
418
|
-
* @param data Data to write as
|
|
427
|
+
* @param data Data to write as ByteArray (number[])
|
|
419
428
|
* @param withResponse Whether to wait for response
|
|
420
429
|
* @returns Promise resolving when write is complete
|
|
421
430
|
*/
|
|
@@ -423,7 +432,7 @@ export class BleNitro {
|
|
|
423
432
|
deviceId: string,
|
|
424
433
|
serviceId: string,
|
|
425
434
|
characteristicId: string,
|
|
426
|
-
data:
|
|
435
|
+
data: ByteArray,
|
|
427
436
|
withResponse: boolean = true
|
|
428
437
|
): Promise<boolean> {
|
|
429
438
|
return new Promise((resolve, reject) => {
|
|
@@ -437,7 +446,7 @@ export class BleNitro {
|
|
|
437
446
|
deviceId,
|
|
438
447
|
BleNitro.normalizeGattUUID(serviceId),
|
|
439
448
|
BleNitro.normalizeGattUUID(characteristicId),
|
|
440
|
-
data,
|
|
449
|
+
byteArrayToArrayBuffer(data),
|
|
441
450
|
withResponse,
|
|
442
451
|
(success: boolean, error: string) => {
|
|
443
452
|
if (success) {
|
|
@@ -476,7 +485,7 @@ export class BleNitro {
|
|
|
476
485
|
BleNitro.normalizeGattUUID(serviceId),
|
|
477
486
|
BleNitro.normalizeGattUUID(characteristicId),
|
|
478
487
|
(charId: string, data: ArrayBuffer) => {
|
|
479
|
-
callback(charId, data);
|
|
488
|
+
callback(charId, arrayBufferToByteArray(data));
|
|
480
489
|
},
|
|
481
490
|
(success, error) => {
|
|
482
491
|
_success = success;
|