@bota-dev/react-native-sdk 0.0.13 → 0.0.14
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/lib/commonjs/ble/BleManager.js +45 -15
- package/lib/commonjs/ble/BleManager.js.map +1 -1
- package/lib/module/ble/BleManager.js +45 -15
- package/lib/module/ble/BleManager.js.map +1 -1
- package/lib/typescript/src/ble/BleManager.d.ts +5 -1
- package/lib/typescript/src/ble/BleManager.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ble/BleManager.ts +44 -13
|
@@ -20,6 +20,19 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
20
20
|
|
|
21
21
|
const log = _logger.logger.tag('BleManager');
|
|
22
22
|
|
|
23
|
+
/** Extract a human-readable message from a BleError (message is often null) */
|
|
24
|
+
function describeBleError(err) {
|
|
25
|
+
if (!err) return 'Unknown error';
|
|
26
|
+
const ble = err;
|
|
27
|
+
if (ble.message) return ble.message;
|
|
28
|
+
if (ble.reason) return ble.reason;
|
|
29
|
+
const parts = [];
|
|
30
|
+
if (ble.errorCode !== undefined) parts.push(`errorCode=${ble.errorCode}`);
|
|
31
|
+
if (ble.iosErrorCode != null) parts.push(`ios=${ble.iosErrorCode}`);
|
|
32
|
+
if (ble.androidErrorCode != null) parts.push(`android=${ble.androidErrorCode}`);
|
|
33
|
+
return parts.length > 0 ? parts.join(', ') : 'Unknown BLE error';
|
|
34
|
+
}
|
|
35
|
+
|
|
23
36
|
/**
|
|
24
37
|
* Events emitted by BleManager
|
|
25
38
|
*/
|
|
@@ -32,6 +45,7 @@ class BleManager extends _eventemitter.default {
|
|
|
32
45
|
disconnectSubscriptions = new Map();
|
|
33
46
|
connectedDevices = new Map();
|
|
34
47
|
discoveredDevices = new Map();
|
|
48
|
+
pendingConnects = new Map();
|
|
35
49
|
isScanning = false;
|
|
36
50
|
cachedState = _reactNativeBlePlx.State.Unknown;
|
|
37
51
|
constructor() {
|
|
@@ -275,13 +289,11 @@ class BleManager extends _eventemitter.default {
|
|
|
275
289
|
}
|
|
276
290
|
|
|
277
291
|
/**
|
|
278
|
-
* Connect to a device
|
|
292
|
+
* Connect to a device.
|
|
293
|
+
* Deduplicates concurrent calls — if a connect is already in progress
|
|
294
|
+
* for this device, callers share the same promise.
|
|
279
295
|
*/
|
|
280
296
|
async connect(deviceId) {
|
|
281
|
-
log.info('Connecting to device', {
|
|
282
|
-
deviceId
|
|
283
|
-
});
|
|
284
|
-
|
|
285
297
|
// Check if already connected
|
|
286
298
|
if (this.connectedDevices.has(deviceId)) {
|
|
287
299
|
log.debug('Device already connected', {
|
|
@@ -289,6 +301,27 @@ class BleManager extends _eventemitter.default {
|
|
|
289
301
|
});
|
|
290
302
|
return this.connectedDevices.get(deviceId);
|
|
291
303
|
}
|
|
304
|
+
|
|
305
|
+
// Deduplicate: if a connect is already in progress, return the same promise
|
|
306
|
+
const pending = this.pendingConnects.get(deviceId);
|
|
307
|
+
if (pending) {
|
|
308
|
+
log.debug('Connection already in progress, sharing promise', {
|
|
309
|
+
deviceId
|
|
310
|
+
});
|
|
311
|
+
return pending;
|
|
312
|
+
}
|
|
313
|
+
const connectPromise = this.doConnect(deviceId);
|
|
314
|
+
this.pendingConnects.set(deviceId, connectPromise);
|
|
315
|
+
try {
|
|
316
|
+
return await connectPromise;
|
|
317
|
+
} finally {
|
|
318
|
+
this.pendingConnects.delete(deviceId);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
async doConnect(deviceId) {
|
|
322
|
+
log.info('Connecting to device', {
|
|
323
|
+
deviceId
|
|
324
|
+
});
|
|
292
325
|
try {
|
|
293
326
|
// Connect with timeout
|
|
294
327
|
const device = await this.manager.connectToDevice(deviceId, {
|
|
@@ -307,21 +340,21 @@ class BleManager extends _eventemitter.default {
|
|
|
307
340
|
|
|
308
341
|
// Set up disconnect listener
|
|
309
342
|
const disconnectSub = device.onDisconnected((error, disconnectedDevice) => {
|
|
343
|
+
const errorMsg = error ? describeBleError(error) : undefined;
|
|
310
344
|
log.info('Device disconnected', {
|
|
311
345
|
deviceId: disconnectedDevice.id,
|
|
312
|
-
error:
|
|
346
|
+
error: errorMsg
|
|
313
347
|
});
|
|
314
348
|
this.connectedDevices.delete(disconnectedDevice.id);
|
|
315
349
|
this.disconnectSubscriptions.get(disconnectedDevice.id)?.remove();
|
|
316
350
|
this.disconnectSubscriptions.delete(disconnectedDevice.id);
|
|
317
|
-
this.emit('deviceDisconnected', disconnectedDevice.id, error ? new Error(
|
|
351
|
+
this.emit('deviceDisconnected', disconnectedDevice.id, error ? new Error(errorMsg || 'Device disconnected') : undefined);
|
|
318
352
|
});
|
|
319
353
|
this.disconnectSubscriptions.set(deviceId, disconnectSub);
|
|
320
354
|
this.emit('deviceConnected', deviceId);
|
|
321
355
|
return device;
|
|
322
356
|
} catch (error) {
|
|
323
|
-
const
|
|
324
|
-
const msg = bleError.message || 'Connection failed';
|
|
357
|
+
const msg = describeBleError(error);
|
|
325
358
|
log.error('Connection failed', new Error(msg), {
|
|
326
359
|
deviceId
|
|
327
360
|
});
|
|
@@ -346,9 +379,8 @@ class BleManager extends _eventemitter.default {
|
|
|
346
379
|
try {
|
|
347
380
|
await device.cancelConnection();
|
|
348
381
|
} catch (error) {
|
|
349
|
-
const bleError = error;
|
|
350
382
|
log.warn('Disconnect error (may be expected)', {
|
|
351
|
-
error:
|
|
383
|
+
error: describeBleError(error)
|
|
352
384
|
});
|
|
353
385
|
}
|
|
354
386
|
this.connectedDevices.delete(deviceId);
|
|
@@ -401,8 +433,7 @@ class BleManager extends _eventemitter.default {
|
|
|
401
433
|
}
|
|
402
434
|
return _buffer.Buffer.from(characteristic.value, 'base64');
|
|
403
435
|
} catch (error) {
|
|
404
|
-
const
|
|
405
|
-
const msg = bleError.message || 'Unknown BLE error';
|
|
436
|
+
const msg = describeBleError(error);
|
|
406
437
|
log.error('Read characteristic failed', new Error(msg), {
|
|
407
438
|
deviceId,
|
|
408
439
|
serviceUuid,
|
|
@@ -428,8 +459,7 @@ class BleManager extends _eventemitter.default {
|
|
|
428
459
|
await device.writeCharacteristicWithoutResponseForService(serviceUuid, characteristicUuid, base64Data);
|
|
429
460
|
}
|
|
430
461
|
} catch (error) {
|
|
431
|
-
const
|
|
432
|
-
const msg = bleError.message || 'Unknown BLE error';
|
|
462
|
+
const msg = describeBleError(error);
|
|
433
463
|
log.error('Write characteristic failed', new Error(msg), {
|
|
434
464
|
deviceId,
|
|
435
465
|
serviceUuid,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeBlePlx","require","_buffer","_eventemitter","_interopRequireDefault","_constants","_errors","_logger","_parsers","e","__esModule","default","log","logger","tag","BleManager","EventEmitter","stateSubscription","disconnectSubscriptions","Map","connectedDevices","discoveredDevices","isScanning","cachedState","State","Unknown","constructor","manager","RNBleManager","setupStateListener","onStateChange","state","debug","emit","getState","getCachedState","isReady","PoweredOn","waitForReady","timeoutMs","startTime","Date","now","Unsupported","BluetoothError","unavailable","Unauthorized","unauthorized","PoweredOff","poweredOff","Promise","resolve","setTimeout","startScan","options","warn","timeout","SCAN_TIMEOUT","deviceTypes","pairingState","minRssi","allowDuplicates","info","clear","scanTimeout","stopScan","startDeviceScan","error","device","clearTimeout","deviceName","localName","name","cachedName","id","rssi","discovered","parseDiscoveredDevice","includes","deviceType","undefined","existingDevice","get","set","type","stopDeviceScan","getDiscoveredDevices","Array","from","values","firmwareVersion","manufacturerData","Buffer","length","parseDeviceType","parseFirmwareVersion","parsePairingState","deviceId","discoveredAt","connect","has","connectToDevice","CONNECTION_TIMEOUT","requestMTU","MAX_MTU","discoverAllServicesAndCharacteristics","disconnectSub","onDisconnected","disconnectedDevice","message","delete","remove","Error","bleError","msg","DeviceError","connectionFailed","disconnect","cancelConnection","isConnected","getConnectedDevice","getMtu","DEFAULT_MTU","mtu","readCharacteristic","serviceUuid","characteristicUuid","notConnected","characteristic","readCharacteristicForService","value","alloc","writeCharacteristic","data","withResponse","base64Data","toString","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","subscribeToCharacteristic","onData","onError","monitorCharacteristicForService","errorMessage","isCancelled","errorCode","reason","destroy","sub","keys","catch","removeAllListeners","exports","instance","getBleManager","resetBleManager"],"sourceRoot":"../../../src","sources":["ble/BleManager.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNativeBlePlx","require","_buffer","_eventemitter","_interopRequireDefault","_constants","_errors","_logger","_parsers","e","__esModule","default","log","logger","tag","describeBleError","err","ble","message","reason","parts","errorCode","undefined","push","iosErrorCode","androidErrorCode","length","join","BleManager","EventEmitter","stateSubscription","disconnectSubscriptions","Map","connectedDevices","discoveredDevices","pendingConnects","isScanning","cachedState","State","Unknown","constructor","manager","RNBleManager","setupStateListener","onStateChange","state","debug","emit","getState","getCachedState","isReady","PoweredOn","waitForReady","timeoutMs","startTime","Date","now","Unsupported","BluetoothError","unavailable","Unauthorized","unauthorized","PoweredOff","poweredOff","Promise","resolve","setTimeout","startScan","options","warn","timeout","SCAN_TIMEOUT","deviceTypes","pairingState","minRssi","allowDuplicates","info","clear","scanTimeout","stopScan","startDeviceScan","error","device","clearTimeout","deviceName","localName","name","cachedName","id","rssi","discovered","parseDiscoveredDevice","includes","deviceType","existingDevice","get","set","type","stopDeviceScan","getDiscoveredDevices","Array","from","values","firmwareVersion","manufacturerData","Buffer","parseDeviceType","parseFirmwareVersion","parsePairingState","deviceId","discoveredAt","connect","has","pending","connectPromise","doConnect","delete","connectToDevice","CONNECTION_TIMEOUT","requestMTU","MAX_MTU","discoverAllServicesAndCharacteristics","disconnectSub","onDisconnected","disconnectedDevice","errorMsg","remove","Error","msg","DeviceError","connectionFailed","disconnect","cancelConnection","isConnected","getConnectedDevice","getMtu","DEFAULT_MTU","mtu","readCharacteristic","serviceUuid","characteristicUuid","notConnected","characteristic","readCharacteristicForService","value","alloc","writeCharacteristic","data","withResponse","base64Data","toString","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","subscribeToCharacteristic","onData","onError","monitorCharacteristicForService","errorMessage","isCancelled","destroy","sub","keys","catch","removeAllListeners","exports","instance","getBleManager","resetBleManager"],"sourceRoot":"../../../src","sources":["ble/BleManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,6 +13,19 @@ import { logger } from '../utils/logger';
|
|
|
13
13
|
import { parseDeviceType, parsePairingState, parseFirmwareVersion } from './parsers';
|
|
14
14
|
const log = logger.tag('BleManager');
|
|
15
15
|
|
|
16
|
+
/** Extract a human-readable message from a BleError (message is often null) */
|
|
17
|
+
function describeBleError(err) {
|
|
18
|
+
if (!err) return 'Unknown error';
|
|
19
|
+
const ble = err;
|
|
20
|
+
if (ble.message) return ble.message;
|
|
21
|
+
if (ble.reason) return ble.reason;
|
|
22
|
+
const parts = [];
|
|
23
|
+
if (ble.errorCode !== undefined) parts.push(`errorCode=${ble.errorCode}`);
|
|
24
|
+
if (ble.iosErrorCode != null) parts.push(`ios=${ble.iosErrorCode}`);
|
|
25
|
+
if (ble.androidErrorCode != null) parts.push(`android=${ble.androidErrorCode}`);
|
|
26
|
+
return parts.length > 0 ? parts.join(', ') : 'Unknown BLE error';
|
|
27
|
+
}
|
|
28
|
+
|
|
16
29
|
/**
|
|
17
30
|
* Events emitted by BleManager
|
|
18
31
|
*/
|
|
@@ -25,6 +38,7 @@ export class BleManager extends EventEmitter {
|
|
|
25
38
|
disconnectSubscriptions = new Map();
|
|
26
39
|
connectedDevices = new Map();
|
|
27
40
|
discoveredDevices = new Map();
|
|
41
|
+
pendingConnects = new Map();
|
|
28
42
|
isScanning = false;
|
|
29
43
|
cachedState = State.Unknown;
|
|
30
44
|
constructor() {
|
|
@@ -268,13 +282,11 @@ export class BleManager extends EventEmitter {
|
|
|
268
282
|
}
|
|
269
283
|
|
|
270
284
|
/**
|
|
271
|
-
* Connect to a device
|
|
285
|
+
* Connect to a device.
|
|
286
|
+
* Deduplicates concurrent calls — if a connect is already in progress
|
|
287
|
+
* for this device, callers share the same promise.
|
|
272
288
|
*/
|
|
273
289
|
async connect(deviceId) {
|
|
274
|
-
log.info('Connecting to device', {
|
|
275
|
-
deviceId
|
|
276
|
-
});
|
|
277
|
-
|
|
278
290
|
// Check if already connected
|
|
279
291
|
if (this.connectedDevices.has(deviceId)) {
|
|
280
292
|
log.debug('Device already connected', {
|
|
@@ -282,6 +294,27 @@ export class BleManager extends EventEmitter {
|
|
|
282
294
|
});
|
|
283
295
|
return this.connectedDevices.get(deviceId);
|
|
284
296
|
}
|
|
297
|
+
|
|
298
|
+
// Deduplicate: if a connect is already in progress, return the same promise
|
|
299
|
+
const pending = this.pendingConnects.get(deviceId);
|
|
300
|
+
if (pending) {
|
|
301
|
+
log.debug('Connection already in progress, sharing promise', {
|
|
302
|
+
deviceId
|
|
303
|
+
});
|
|
304
|
+
return pending;
|
|
305
|
+
}
|
|
306
|
+
const connectPromise = this.doConnect(deviceId);
|
|
307
|
+
this.pendingConnects.set(deviceId, connectPromise);
|
|
308
|
+
try {
|
|
309
|
+
return await connectPromise;
|
|
310
|
+
} finally {
|
|
311
|
+
this.pendingConnects.delete(deviceId);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
async doConnect(deviceId) {
|
|
315
|
+
log.info('Connecting to device', {
|
|
316
|
+
deviceId
|
|
317
|
+
});
|
|
285
318
|
try {
|
|
286
319
|
// Connect with timeout
|
|
287
320
|
const device = await this.manager.connectToDevice(deviceId, {
|
|
@@ -300,21 +333,21 @@ export class BleManager extends EventEmitter {
|
|
|
300
333
|
|
|
301
334
|
// Set up disconnect listener
|
|
302
335
|
const disconnectSub = device.onDisconnected((error, disconnectedDevice) => {
|
|
336
|
+
const errorMsg = error ? describeBleError(error) : undefined;
|
|
303
337
|
log.info('Device disconnected', {
|
|
304
338
|
deviceId: disconnectedDevice.id,
|
|
305
|
-
error:
|
|
339
|
+
error: errorMsg
|
|
306
340
|
});
|
|
307
341
|
this.connectedDevices.delete(disconnectedDevice.id);
|
|
308
342
|
this.disconnectSubscriptions.get(disconnectedDevice.id)?.remove();
|
|
309
343
|
this.disconnectSubscriptions.delete(disconnectedDevice.id);
|
|
310
|
-
this.emit('deviceDisconnected', disconnectedDevice.id, error ? new Error(
|
|
344
|
+
this.emit('deviceDisconnected', disconnectedDevice.id, error ? new Error(errorMsg || 'Device disconnected') : undefined);
|
|
311
345
|
});
|
|
312
346
|
this.disconnectSubscriptions.set(deviceId, disconnectSub);
|
|
313
347
|
this.emit('deviceConnected', deviceId);
|
|
314
348
|
return device;
|
|
315
349
|
} catch (error) {
|
|
316
|
-
const
|
|
317
|
-
const msg = bleError.message || 'Connection failed';
|
|
350
|
+
const msg = describeBleError(error);
|
|
318
351
|
log.error('Connection failed', new Error(msg), {
|
|
319
352
|
deviceId
|
|
320
353
|
});
|
|
@@ -339,9 +372,8 @@ export class BleManager extends EventEmitter {
|
|
|
339
372
|
try {
|
|
340
373
|
await device.cancelConnection();
|
|
341
374
|
} catch (error) {
|
|
342
|
-
const bleError = error;
|
|
343
375
|
log.warn('Disconnect error (may be expected)', {
|
|
344
|
-
error:
|
|
376
|
+
error: describeBleError(error)
|
|
345
377
|
});
|
|
346
378
|
}
|
|
347
379
|
this.connectedDevices.delete(deviceId);
|
|
@@ -394,8 +426,7 @@ export class BleManager extends EventEmitter {
|
|
|
394
426
|
}
|
|
395
427
|
return Buffer.from(characteristic.value, 'base64');
|
|
396
428
|
} catch (error) {
|
|
397
|
-
const
|
|
398
|
-
const msg = bleError.message || 'Unknown BLE error';
|
|
429
|
+
const msg = describeBleError(error);
|
|
399
430
|
log.error('Read characteristic failed', new Error(msg), {
|
|
400
431
|
deviceId,
|
|
401
432
|
serviceUuid,
|
|
@@ -421,8 +452,7 @@ export class BleManager extends EventEmitter {
|
|
|
421
452
|
await device.writeCharacteristicWithoutResponseForService(serviceUuid, characteristicUuid, base64Data);
|
|
422
453
|
}
|
|
423
454
|
} catch (error) {
|
|
424
|
-
const
|
|
425
|
-
const msg = bleError.message || 'Unknown BLE error';
|
|
455
|
+
const msg = describeBleError(error);
|
|
426
456
|
log.error('Write characteristic failed', new Error(msg), {
|
|
427
457
|
deviceId,
|
|
428
458
|
serviceUuid,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BleManager","RNBleManager","State","Buffer","EventEmitter","DEFAULT_MTU","MAX_MTU","CONNECTION_TIMEOUT","SCAN_TIMEOUT","BluetoothError","DeviceError","logger","parseDeviceType","parsePairingState","parseFirmwareVersion","log","tag","stateSubscription","disconnectSubscriptions","Map","connectedDevices","discoveredDevices","isScanning","cachedState","Unknown","constructor","manager","setupStateListener","onStateChange","state","debug","emit","getState","getCachedState","isReady","PoweredOn","waitForReady","timeoutMs","startTime","Date","now","Unsupported","unavailable","Unauthorized","unauthorized","PoweredOff","poweredOff","Promise","resolve","setTimeout","startScan","options","warn","timeout","deviceTypes","pairingState","minRssi","allowDuplicates","info","clear","scanTimeout","stopScan","startDeviceScan","error","device","clearTimeout","deviceName","localName","name","cachedName","id","rssi","discovered","parseDiscoveredDevice","includes","deviceType","undefined","existingDevice","get","set","type","stopDeviceScan","getDiscoveredDevices","Array","from","values","firmwareVersion","manufacturerData","length","e","deviceId","discoveredAt","connect","has","connectToDevice","requestMTU","discoverAllServicesAndCharacteristics","disconnectSub","onDisconnected","disconnectedDevice","message","delete","remove","Error","bleError","msg","connectionFailed","disconnect","cancelConnection","isConnected","getConnectedDevice","getMtu","mtu","readCharacteristic","serviceUuid","characteristicUuid","notConnected","characteristic","readCharacteristicForService","value","alloc","writeCharacteristic","data","withResponse","base64Data","toString","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","subscribeToCharacteristic","onData","onError","monitorCharacteristicForService","errorMessage","isCancelled","errorCode","reason","destroy","sub","keys","catch","removeAllListeners","instance","getBleManager","resetBleManager"],"sourceRoot":"../../../src","sources":["ble/BleManager.ts"],"mappings":"AAAA;AACA;AACA;;AAEA,SACEA,UAAU,IAAIC,YAAY,EAE1BC,KAAK,QAGA,sBAAsB;AAC7B,SAASC,MAAM,QAAQ,QAAQ;AAC/B,OAAOC,YAAY,MAAM,eAAe;AAExC;AACE;AACAC,WAAW,EACXC,OAAO,EACPC,kBAAkB,EAClBC,YAAY,QACP,aAAa;AAOpB,SAASC,cAAc,EAAEC,WAAW,QAAQ,iBAAiB;AAC7D,SAASC,MAAM,QAAQ,iBAAiB;AACxC,SACEC,eAAe,EACfC,iBAAiB,EACjBC,oBAAoB,QACf,WAAW;AAElB,MAAMC,GAAG,GAAGJ,MAAM,CAACK,GAAG,CAAC,YAAY,CAAC;;AAEpC;AACA;AACA;;AAQA;AACA;AACA;AACA,OAAO,MAAMhB,UAAU,SAASI,YAAY,CAAmB;EAErDa,iBAAiB,GAAwB,IAAI;EAC7CC,uBAAuB,GAA8B,IAAIC,GAAG,CAAC,CAAC;EAC9DC,gBAAgB,GAAwB,IAAID,GAAG,CAAC,CAAC;EACjDE,iBAAiB,GAAkC,IAAIF,GAAG,CAAC,CAAC;EAC5DG,UAAU,GAAG,KAAK;EAClBC,WAAW,GAAUrB,KAAK,CAACsB,OAAO;EAE1CC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,OAAO,GAAG,IAAIzB,YAAY,CAAC,CAAC;IACjC,IAAI,CAAC0B,kBAAkB,CAAC,CAAC;EAC3B;;EAEA;AACF;AACA;EACUA,kBAAkBA,CAAA,EAAS;IACjC,IAAI,CAACV,iBAAiB,GAAG,IAAI,CAACS,OAAO,CAACE,aAAa,CAAEC,KAAK,IAAK;MAC7Dd,GAAG,CAACe,KAAK,CAAC,yBAAyB,EAAE;QAAED;MAAM,CAAC,CAAC;MAC/C,IAAI,CAACN,WAAW,GAAGM,KAAK;MACxB,IAAI,CAACE,IAAI,CAAC,aAAa,EAAEF,KAAK,CAAC;IACjC,CAAC,EAAE,IAAI,CAAC;EACV;;EAEA;AACF;AACA;EACE,MAAMG,QAAQA,CAAA,EAAmB;IAC/B,MAAMH,KAAK,GAAG,MAAM,IAAI,CAACH,OAAO,CAACG,KAAK,CAAC,CAAC;IACxC,IAAI,CAACN,WAAW,GAAGM,KAAK;IACxB,OAAOA,KAAK;EACd;;EAEA;AACF;AACA;EACEI,cAAcA,CAAA,EAAU;IACtB,OAAO,IAAI,CAACV,WAAW;EACzB;;EAEA;AACF;AACA;EACE,MAAMW,OAAOA,CAAA,EAAqB;IAChC,MAAML,KAAK,GAAG,MAAM,IAAI,CAACG,QAAQ,CAAC,CAAC;IACnC,OAAOH,KAAK,KAAK3B,KAAK,CAACiC,SAAS;EAClC;;EAEA;AACF;AACA;EACE,MAAMC,YAAYA,CAACC,SAAiB,GAAG,KAAK,EAAiB;IAC3D,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAE5B,OAAOD,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGF,SAAS,GAAGD,SAAS,EAAE;MACzC,MAAMR,KAAK,GAAG,MAAM,IAAI,CAACG,QAAQ,CAAC,CAAC;MAEnC,IAAIH,KAAK,KAAK3B,KAAK,CAACiC,SAAS,EAAE;QAC7B;MACF;MAEA,IAAIN,KAAK,KAAK3B,KAAK,CAACuC,WAAW,EAAE;QAC/B,MAAMhC,cAAc,CAACiC,WAAW,CAAC,CAAC;MACpC;MAEA,IAAIb,KAAK,KAAK3B,KAAK,CAACyC,YAAY,EAAE;QAChC,MAAMlC,cAAc,CAACmC,YAAY,CAAC,CAAC;MACrC;MAEA,IAAIf,KAAK,KAAK3B,KAAK,CAAC2C,UAAU,EAAE;QAC9B,MAAMpC,cAAc,CAACqC,UAAU,CAAC,CAAC;MACnC;;MAEA;MACA,MAAM,IAAIC,OAAO,CAAEC,OAAO,IAAKC,UAAU,CAACD,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1D;IAEA,MAAM,IAAIvC,cAAc,CAAC,wCAAwC,EAAE,SAAS,CAAC;EAC/E;;EAEA;AACF;AACA;EACE,MAAMyC,SAASA,CAACC,OAAoB,GAAG,CAAC,CAAC,EAAiB;IACxD,IAAI,IAAI,CAAC7B,UAAU,EAAE;MACnBP,GAAG,CAACqC,IAAI,CAAC,0BAA0B,CAAC;MACpC;IACF;IAEA,MAAM,IAAI,CAAChB,YAAY,CAAC,CAAC;IAEzB,MAAM;MACJiB,OAAO,GAAG7C,YAAY;MACtB8C,WAAW;MACXC,YAAY;MACZC,OAAO;MACPC,eAAe,GAAG;IACpB,CAAC,GAAGN,OAAO;IAEXpC,GAAG,CAAC2C,IAAI,CAAC,mBAAmB,EAAE;MAAEL,OAAO;MAAEC,WAAW;MAAEC;IAAa,CAAC,CAAC;IAErE,IAAI,CAAClC,iBAAiB,CAACsC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAACrC,UAAU,GAAG,IAAI;;IAEtB;IACA,MAAMsC,WAAW,GAAGX,UAAU,CAAC,MAAM;MACnC,IAAI,CAACY,QAAQ,CAAC,CAAC;IACjB,CAAC,EAAER,OAAO,CAAC;;IAEX;IACA,IAAI,CAAC3B,OAAO,CAACoC,eAAe,CAC1B,IAAI;IAAE;IACN;MAAEL;IAAgB,CAAC,EACnB,CAACM,KAAK,EAAEC,MAAM,KAAK;MACjB,IAAID,KAAK,EAAE;QACThD,GAAG,CAACgD,KAAK,CAAC,YAAY,EAAEA,KAAK,CAAC;QAC9B,IAAI,CAACF,QAAQ,CAAC,CAAC;QACfI,YAAY,CAACL,WAAW,CAAC;QACzB;MACF;;MAEA;MACA,MAAMM,UAAU,GAAGF,MAAM,EAAEG,SAAS,IAAIH,MAAM,EAAEI,IAAI;;MAEpD;MACA,IAAIF,UAAU,EAAE;QACdnD,GAAG,CAAC2C,IAAI,CAAC,kBAAkB,EAAE;UAAEU,IAAI,EAAEF,UAAU;UAAEC,SAAS,EAAEH,MAAM,EAAEG,SAAS;UAAEE,UAAU,EAAEL,MAAM,EAAEI,IAAI;UAAEE,EAAE,EAAEN,MAAM,EAAEM,EAAE;UAAEC,IAAI,EAAEP,MAAM,EAAEO;QAAK,CAAC,CAAC;MAChJ;;MAEA;MACA,IAAI,CAACP,MAAM,IAAI,CAACE,UAAU,EAAE;QAC1B;MACF;MACA;MACA;MACA;MACA;;MAEA;MACA,MAAMM,UAAU,GAAG,IAAI,CAACC,qBAAqB,CAACT,MAAM,CAAC;MACrD,IAAI,CAACQ,UAAU,EAAE;QACf;MACF;;MAEA;MACA,IAAIlB,WAAW,IAAI,CAACA,WAAW,CAACoB,QAAQ,CAACF,UAAU,CAACG,UAAU,CAAC,EAAE;QAC/D;MACF;MAEA,IAAIpB,YAAY,IAAIiB,UAAU,CAACjB,YAAY,KAAKA,YAAY,EAAE;QAC5D;MACF;MAEA,IAAIC,OAAO,KAAKoB,SAAS,IAAIJ,UAAU,CAACD,IAAI,GAAGf,OAAO,EAAE;QACtD;MACF;;MAEA;MACA,MAAMqB,cAAc,GAAG,IAAI,CAACxD,iBAAiB,CAACyD,GAAG,CAACd,MAAM,CAACM,EAAE,CAAC;MAC5D,IAAIO,cAAc,IAAI,CAACpB,eAAe,EAAE;QACtC;QACAoB,cAAc,CAACN,IAAI,GAAGC,UAAU,CAACD,IAAI;QACrC;MACF;;MAEA;MACA,IAAI,CAAClD,iBAAiB,CAAC0D,GAAG,CAACf,MAAM,CAACM,EAAE,EAAEE,UAAU,CAAC;MACjDzD,GAAG,CAACe,KAAK,CAAC,mBAAmB,EAAE;QAC7BwC,EAAE,EAAEE,UAAU,CAACF,EAAE;QACjBF,IAAI,EAAEI,UAAU,CAACJ,IAAI;QACrBY,IAAI,EAAER,UAAU,CAACG;MACnB,CAAC,CAAC;MACF,IAAI,CAAC5C,IAAI,CAAC,kBAAkB,EAAEyC,UAAU,CAAC;IAC3C,CACF,CAAC;EACH;;EAEA;AACF;AACA;EACEX,QAAQA,CAAA,EAAS;IACf,IAAI,CAAC,IAAI,CAACvC,UAAU,EAAE;MACpB;IACF;IAEAP,GAAG,CAAC2C,IAAI,CAAC,mBAAmB,CAAC;IAC7B,IAAI,CAAChC,OAAO,CAACuD,cAAc,CAAC,CAAC;IAC7B,IAAI,CAAC3D,UAAU,GAAG,KAAK;EACzB;;EAEA;AACF;AACA;EACE4D,oBAAoBA,CAAA,EAAuB;IACzC,OAAOC,KAAK,CAACC,IAAI,CAAC,IAAI,CAAC/D,iBAAiB,CAACgE,MAAM,CAAC,CAAC,CAAC;EACpD;;EAEA;AACF;AACA;EACUZ,qBAAqBA,CAACT,MAAc,EAA2B;IACrE;IACA;IACA,MAAME,UAAU,GAAGF,MAAM,CAACG,SAAS,IAAIH,MAAM,CAACI,IAAI;IAElD,IAAI,CAACF,UAAU,EAAE;MACf,OAAO,IAAI;IACb;;IAEA;IACA,IAAIS,UAAsB,GAAG,UAAU;IACvC,IAAIW,eAAe,GAAG,OAAO;IAC7B,IAAI/B,YAA0B,GAAG,UAAU;IAC3C,IAAIgC,gBAAwC;IAE5C,IAAIvB,MAAM,CAACuB,gBAAgB,EAAE;MAC3B,IAAI;QACFA,gBAAgB,GAAGpF,MAAM,CAACiF,IAAI,CAACpB,MAAM,CAACuB,gBAAgB,EAAE,QAAQ,CAAC;QACjE,IAAIA,gBAAgB,CAACC,MAAM,IAAI,CAAC,EAAE;UAChCb,UAAU,GAAG/D,eAAe,CAAC2E,gBAAgB,CAAC,CAAC,CAAC,CAAC;UACjDD,eAAe,GAAGxE,oBAAoB,CACpCyE,gBAAgB,CAAC,CAAC,CAAC,EACnBA,gBAAgB,CAAC,CAAC,CACpB,CAAC;UACDhC,YAAY,GAAG1C,iBAAiB,CAAC0E,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACvD;MACF,CAAC,CAAC,OAAOE,CAAC,EAAE;QACV1E,GAAG,CAACqC,IAAI,CAAC,mCAAmC,EAAE;UAAEsC,QAAQ,EAAE1B,MAAM,CAACM;QAAG,CAAC,CAAC;MACxE;IACF,CAAC,MAAM;MACL;MACA,IAAIJ,UAAU,CAACQ,QAAQ,CAAC,OAAO,CAAC,EAAE;QAChCC,UAAU,GAAG,aAAa;MAC5B,CAAC,MAAM,IAAIT,UAAU,CAACQ,QAAQ,CAAC,MAAM,CAAC,EAAE;QACtCC,UAAU,GAAG,WAAW;MAC1B,CAAC,MAAM,IAAIT,UAAU,CAACQ,QAAQ,CAAC,KAAK,CAAC,EAAE;QACrCC,UAAU,GAAG,UAAU;MACzB;IACF;IAEA,OAAO;MACLL,EAAE,EAAEN,MAAM,CAACM,EAAE;MACbF,IAAI,EAAEF,UAAU;MAChBS,UAAU;MACVW,eAAe;MACf/B,YAAY;MACZgB,IAAI,EAAEP,MAAM,CAACO,IAAI,IAAI,CAAC,GAAG;MACzBgB,gBAAgB;MAChBI,YAAY,EAAE,IAAIpD,IAAI,CAAC;IACzB,CAAC;EACH;;EAEA;AACF;AACA;EACE,MAAMqD,OAAOA,CAACF,QAAgB,EAAmB;IAC/C3E,GAAG,CAAC2C,IAAI,CAAC,sBAAsB,EAAE;MAAEgC;IAAS,CAAC,CAAC;;IAE9C;IACA,IAAI,IAAI,CAACtE,gBAAgB,CAACyE,GAAG,CAACH,QAAQ,CAAC,EAAE;MACvC3E,GAAG,CAACe,KAAK,CAAC,0BAA0B,EAAE;QAAE4D;MAAS,CAAC,CAAC;MACnD,OAAO,IAAI,CAACtE,gBAAgB,CAAC0D,GAAG,CAACY,QAAQ,CAAC;IAC5C;IAEA,IAAI;MACF;MACA,MAAM1B,MAAM,GAAG,MAAM,IAAI,CAACtC,OAAO,CAACoE,eAAe,CAACJ,QAAQ,EAAE;QAC1DrC,OAAO,EAAE9C,kBAAkB;QAC3BwF,UAAU,EAAEzF;MACd,CAAC,CAAC;MAEFS,GAAG,CAACe,KAAK,CAAC,wCAAwC,EAAE;QAAE4D;MAAS,CAAC,CAAC;;MAEjE;MACA,MAAM1B,MAAM,CAACgC,qCAAqC,CAAC,CAAC;;MAEpD;MACA,IAAI,CAAC5E,gBAAgB,CAAC2D,GAAG,CAACW,QAAQ,EAAE1B,MAAM,CAAC;;MAE3C;MACA,MAAMiC,aAAa,GAAGjC,MAAM,CAACkC,cAAc,CAAC,CAACnC,KAAK,EAAEoC,kBAAkB,KAAK;QACzEpF,GAAG,CAAC2C,IAAI,CAAC,qBAAqB,EAAE;UAC9BgC,QAAQ,EAAES,kBAAkB,CAAC7B,EAAE;UAC/BP,KAAK,EAAEA,KAAK,EAAEqC;QAChB,CAAC,CAAC;QACF,IAAI,CAAChF,gBAAgB,CAACiF,MAAM,CAACF,kBAAkB,CAAC7B,EAAE,CAAC;QACnD,IAAI,CAACpD,uBAAuB,CAAC4D,GAAG,CAACqB,kBAAkB,CAAC7B,EAAE,CAAC,EAAEgC,MAAM,CAAC,CAAC;QACjE,IAAI,CAACpF,uBAAuB,CAACmF,MAAM,CAACF,kBAAkB,CAAC7B,EAAE,CAAC;QAC1D,IAAI,CAACvC,IAAI,CACP,oBAAoB,EACpBoE,kBAAkB,CAAC7B,EAAE,EACrBP,KAAK,GAAG,IAAIwC,KAAK,CAACxC,KAAK,CAACqC,OAAO,IAAI,qBAAqB,CAAC,GAAGxB,SAC9D,CAAC;MACH,CAAC,CAAC;MACF,IAAI,CAAC1D,uBAAuB,CAAC6D,GAAG,CAACW,QAAQ,EAAEO,aAAa,CAAC;MAEzD,IAAI,CAAClE,IAAI,CAAC,iBAAiB,EAAE2D,QAAQ,CAAC;MACtC,OAAO1B,MAAM;IACf,CAAC,CAAC,OAAOD,KAAK,EAAE;MACd,MAAMyC,QAAQ,GAAGzC,KAAiB;MAClC,MAAM0C,GAAG,GAAGD,QAAQ,CAACJ,OAAO,IAAI,mBAAmB;MACnDrF,GAAG,CAACgD,KAAK,CAAC,mBAAmB,EAAE,IAAIwC,KAAK,CAACE,GAAG,CAAC,EAAE;QAAEf;MAAS,CAAC,CAAC;MAC5D,MAAMhF,WAAW,CAACgG,gBAAgB,CAAChB,QAAQ,EAAE,IAAIa,KAAK,CAACE,GAAG,CAAC,CAAC;IAC9D;EACF;;EAEA;AACF;AACA;EACE,MAAME,UAAUA,CAACjB,QAAgB,EAAiB;IAChD3E,GAAG,CAAC2C,IAAI,CAAC,2BAA2B,EAAE;MAAEgC;IAAS,CAAC,CAAC;IAEnD,MAAM1B,MAAM,GAAG,IAAI,CAAC5C,gBAAgB,CAAC0D,GAAG,CAACY,QAAQ,CAAC;IAClD,IAAI,CAAC1B,MAAM,EAAE;MACXjD,GAAG,CAACqC,IAAI,CAAC,uCAAuC,EAAE;QAAEsC;MAAS,CAAC,CAAC;MAC/D;IACF;IAEA,IAAI;MACF,MAAM1B,MAAM,CAAC4C,gBAAgB,CAAC,CAAC;IACjC,CAAC,CAAC,OAAO7C,KAAK,EAAE;MACd,MAAMyC,QAAQ,GAAGzC,KAAiB;MAClChD,GAAG,CAACqC,IAAI,CAAC,oCAAoC,EAAE;QAAEW,KAAK,EAAEyC,QAAQ,CAACJ;MAAQ,CAAC,CAAC;IAC7E;IAEA,IAAI,CAAChF,gBAAgB,CAACiF,MAAM,CAACX,QAAQ,CAAC;IACtC,IAAI,CAACxE,uBAAuB,CAAC4D,GAAG,CAACY,QAAQ,CAAC,EAAEY,MAAM,CAAC,CAAC;IACpD,IAAI,CAACpF,uBAAuB,CAACmF,MAAM,CAACX,QAAQ,CAAC;EAC/C;;EAEA;AACF;AACA;EACEmB,WAAWA,CAACnB,QAAgB,EAAW;IACrC,OAAO,IAAI,CAACtE,gBAAgB,CAACyE,GAAG,CAACH,QAAQ,CAAC;EAC5C;;EAEA;AACF;AACA;EACEoB,kBAAkBA,CAACpB,QAAgB,EAAsB;IACvD,OAAO,IAAI,CAACtE,gBAAgB,CAAC0D,GAAG,CAACY,QAAQ,CAAC;EAC5C;;EAEA;AACF;AACA;EACE,MAAMqB,MAAMA,CAACrB,QAAgB,EAAmB;IAC9C,MAAM1B,MAAM,GAAG,IAAI,CAAC5C,gBAAgB,CAAC0D,GAAG,CAACY,QAAQ,CAAC;IAClD,IAAI,CAAC1B,MAAM,EAAE;MACX,OAAO3D,WAAW;IACpB;IAEA,IAAI;MACF;MACA,OAAO2D,MAAM,CAACgD,GAAG,IAAI3G,WAAW;IAClC,CAAC,CAAC,MAAM;MACN,OAAOA,WAAW;IACpB;EACF;;EAEA;AACF;AACA;EACE,MAAM4G,kBAAkBA,CACtBvB,QAAgB,EAChBwB,WAAmB,EACnBC,kBAA0B,EACT;IACjB,MAAMnD,MAAM,GAAG,IAAI,CAAC5C,gBAAgB,CAAC0D,GAAG,CAACY,QAAQ,CAAC;IAClD,IAAI,CAAC1B,MAAM,EAAE;MACX,MAAMtD,WAAW,CAAC0G,YAAY,CAAC1B,QAAQ,CAAC;IAC1C;IAEA,IAAI;MACF,MAAM2B,cAAc,GAAG,MAAMrD,MAAM,CAACsD,4BAA4B,CAC9DJ,WAAW,EACXC,kBACF,CAAC;MAED,IAAI,CAACE,cAAc,CAACE,KAAK,EAAE;QACzB,OAAOpH,MAAM,CAACqH,KAAK,CAAC,CAAC,CAAC;MACxB;MAEA,OAAOrH,MAAM,CAACiF,IAAI,CAACiC,cAAc,CAACE,KAAK,EAAE,QAAQ,CAAC;IACpD,CAAC,CAAC,OAAOxD,KAAK,EAAE;MACd,MAAMyC,QAAQ,GAAGzC,KAAiB;MAClC,MAAM0C,GAAG,GAAGD,QAAQ,CAACJ,OAAO,IAAI,mBAAmB;MACnDrF,GAAG,CAACgD,KAAK,CAAC,4BAA4B,EAAE,IAAIwC,KAAK,CAACE,GAAG,CAAC,EAAE;QACtDf,QAAQ;QACRwB,WAAW;QACXC;MACF,CAAC,CAAC;MACF,MAAM,IAAIzG,WAAW,CACnB,kCAAkC+F,GAAG,EAAE,EACvC,aAAa,EACbf,QAAQ,EACR,IAAIa,KAAK,CAACE,GAAG,CACf,CAAC;IACH;EACF;;EAEA;AACF;AACA;EACE,MAAMgB,mBAAmBA,CACvB/B,QAAgB,EAChBwB,WAAmB,EACnBC,kBAA0B,EAC1BO,IAAY,EACZC,YAAqB,GAAG,IAAI,EACb;IACf,MAAM3D,MAAM,GAAG,IAAI,CAAC5C,gBAAgB,CAAC0D,GAAG,CAACY,QAAQ,CAAC;IAClD,IAAI,CAAC1B,MAAM,EAAE;MACX,MAAMtD,WAAW,CAAC0G,YAAY,CAAC1B,QAAQ,CAAC;IAC1C;IAEA,MAAMkC,UAAU,GAAGF,IAAI,CAACG,QAAQ,CAAC,QAAQ,CAAC;IAE1C,IAAI;MACF,IAAIF,YAAY,EAAE;QAChB,MAAM3D,MAAM,CAAC8D,yCAAyC,CACpDZ,WAAW,EACXC,kBAAkB,EAClBS,UACF,CAAC;MACH,CAAC,MAAM;QACL,MAAM5D,MAAM,CAAC+D,4CAA4C,CACvDb,WAAW,EACXC,kBAAkB,EAClBS,UACF,CAAC;MACH;IACF,CAAC,CAAC,OAAO7D,KAAK,EAAE;MACd,MAAMyC,QAAQ,GAAGzC,KAAiB;MAClC,MAAM0C,GAAG,GAAGD,QAAQ,CAACJ,OAAO,IAAI,mBAAmB;MACnDrF,GAAG,CAACgD,KAAK,CAAC,6BAA6B,EAAE,IAAIwC,KAAK,CAACE,GAAG,CAAC,EAAE;QACvDf,QAAQ;QACRwB,WAAW;QACXC;MACF,CAAC,CAAC;MACF,MAAM,IAAIzG,WAAW,CACnB,mCAAmC+F,GAAG,EAAE,EACxC,cAAc,EACdf,QAAQ,EACR,IAAIa,KAAK,CAACE,GAAG,CACf,CAAC;IACH;EACF;;EAEA;AACF;AACA;EACEuB,yBAAyBA,CACvBtC,QAAgB,EAChBwB,WAAmB,EACnBC,kBAA0B,EAC1Bc,MAA8B,EAC9BC,OAAgC,EAClB;IACd,MAAMlE,MAAM,GAAG,IAAI,CAAC5C,gBAAgB,CAAC0D,GAAG,CAACY,QAAQ,CAAC;IAClD,IAAI,CAAC1B,MAAM,EAAE;MACX,MAAMtD,WAAW,CAAC0G,YAAY,CAAC1B,QAAQ,CAAC;IAC1C;IAEA,OAAO1B,MAAM,CAACmE,+BAA+B,CAC3CjB,WAAW,EACXC,kBAAkB,EAClB,CAACpD,KAAK,EAAEsD,cAAc,KAAK;MACzB,IAAItD,KAAK,EAAE;QACT;QACA,MAAMqE,YAAY,GAAGrE,KAAK,CAACqC,OAAO,IAAI,mBAAmB;QACzD,MAAMiC,WAAW,GAAGD,YAAY,CAAC1D,QAAQ,CAAC,WAAW,CAAC,IAClC0D,YAAY,CAAC1D,QAAQ,CAAC,cAAc,CAAC,IACrCX,KAAK,CAACuE,SAAS,KAAK,CAAC;QAAI;QACzBvE,KAAK,CAACuE,SAAS,KAAK,GAAG;QAAI;QAC3B,CAAC,IAAI,CAAClH,gBAAgB,CAACyE,GAAG,CAACH,QAAQ,CAAC,CAAC,CAAC;;QAE1D,IAAI,CAAC2C,WAAW,EAAE;UAChBtH,GAAG,CAACgD,KAAK,CAAC,oBAAoB,EAAE,IAAIwC,KAAK,CAAC6B,YAAY,CAAC,EAAE;YACvD1C,QAAQ;YACRyB;UACF,CAAC,CAAC;UACFe,OAAO,GAAG,IAAI3B,KAAK,CAAC6B,YAAY,CAAC,CAAC;QACpC,CAAC,MAAM;UACLrH,GAAG,CAACe,KAAK,CAAC,oBAAoB,EAAE;YAAE4D,QAAQ;YAAEyB,kBAAkB;YAAEoB,MAAM,EAAEH;UAAa,CAAC,CAAC;QACzF;QACA;MACF;MAEA,IAAIf,cAAc,EAAEE,KAAK,EAAE;QACzB,MAAMG,IAAI,GAAGvH,MAAM,CAACiF,IAAI,CAACiC,cAAc,CAACE,KAAK,EAAE,QAAQ,CAAC;QACxDU,MAAM,CAACP,IAAI,CAAC;MACd;IACF,CACF,CAAC;EACH;;EAEA;AACF;AACA;EACEc,OAAOA,CAAA,EAAS;IACdzH,GAAG,CAAC2C,IAAI,CAAC,wBAAwB,CAAC;IAElC,IAAI,CAACG,QAAQ,CAAC,CAAC;;IAEf;IACA,KAAK,MAAM4E,GAAG,IAAI,IAAI,CAACvH,uBAAuB,CAACmE,MAAM,CAAC,CAAC,EAAE;MACvDoD,GAAG,CAACnC,MAAM,CAAC,CAAC;IACd;IACA,IAAI,CAACpF,uBAAuB,CAACyC,KAAK,CAAC,CAAC;;IAEpC;IACA,KAAK,MAAM+B,QAAQ,IAAI,IAAI,CAACtE,gBAAgB,CAACsH,IAAI,CAAC,CAAC,EAAE;MACnD,IAAI,CAAC/B,UAAU,CAACjB,QAAQ,CAAC,CAACiD,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C;IACA,IAAI,CAACvH,gBAAgB,CAACuC,KAAK,CAAC,CAAC;;IAE7B;IACA,IAAI,CAAC1C,iBAAiB,EAAEqF,MAAM,CAAC,CAAC;IAChC,IAAI,CAACrF,iBAAiB,GAAG,IAAI;;IAE7B;IACA,IAAI,CAACS,OAAO,CAAC8G,OAAO,CAAC,CAAC;IAEtB,IAAI,CAACI,kBAAkB,CAAC,CAAC;EAC3B;AACF;;AAEA;AACA;AACA;AACA,IAAIC,QAA2B,GAAG,IAAI;;AAEtC;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAAA,EAAe;EAC1C,IAAI,CAACD,QAAQ,EAAE;IACbA,QAAQ,GAAG,IAAI7I,UAAU,CAAC,CAAC;EAC7B;EACA,OAAO6I,QAAQ;AACjB;;AAEA;AACA;AACA;AACA,OAAO,SAASE,eAAeA,CAAA,EAAS;EACtC,IAAIF,QAAQ,EAAE;IACZA,QAAQ,CAACL,OAAO,CAAC,CAAC;IAClBK,QAAQ,GAAG,IAAI;EACjB;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["BleManager","RNBleManager","State","Buffer","EventEmitter","DEFAULT_MTU","MAX_MTU","CONNECTION_TIMEOUT","SCAN_TIMEOUT","BluetoothError","DeviceError","logger","parseDeviceType","parsePairingState","parseFirmwareVersion","log","tag","describeBleError","err","ble","message","reason","parts","errorCode","undefined","push","iosErrorCode","androidErrorCode","length","join","stateSubscription","disconnectSubscriptions","Map","connectedDevices","discoveredDevices","pendingConnects","isScanning","cachedState","Unknown","constructor","manager","setupStateListener","onStateChange","state","debug","emit","getState","getCachedState","isReady","PoweredOn","waitForReady","timeoutMs","startTime","Date","now","Unsupported","unavailable","Unauthorized","unauthorized","PoweredOff","poweredOff","Promise","resolve","setTimeout","startScan","options","warn","timeout","deviceTypes","pairingState","minRssi","allowDuplicates","info","clear","scanTimeout","stopScan","startDeviceScan","error","device","clearTimeout","deviceName","localName","name","cachedName","id","rssi","discovered","parseDiscoveredDevice","includes","deviceType","existingDevice","get","set","type","stopDeviceScan","getDiscoveredDevices","Array","from","values","firmwareVersion","manufacturerData","e","deviceId","discoveredAt","connect","has","pending","connectPromise","doConnect","delete","connectToDevice","requestMTU","discoverAllServicesAndCharacteristics","disconnectSub","onDisconnected","disconnectedDevice","errorMsg","remove","Error","msg","connectionFailed","disconnect","cancelConnection","isConnected","getConnectedDevice","getMtu","mtu","readCharacteristic","serviceUuid","characteristicUuid","notConnected","characteristic","readCharacteristicForService","value","alloc","writeCharacteristic","data","withResponse","base64Data","toString","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","subscribeToCharacteristic","onData","onError","monitorCharacteristicForService","errorMessage","isCancelled","destroy","sub","keys","catch","removeAllListeners","instance","getBleManager","resetBleManager"],"sourceRoot":"../../../src","sources":["ble/BleManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,6 +23,7 @@ export declare class BleManager extends EventEmitter<BleManagerEvents> {
|
|
|
23
23
|
private disconnectSubscriptions;
|
|
24
24
|
private connectedDevices;
|
|
25
25
|
private discoveredDevices;
|
|
26
|
+
private pendingConnects;
|
|
26
27
|
private isScanning;
|
|
27
28
|
private cachedState;
|
|
28
29
|
constructor();
|
|
@@ -63,9 +64,12 @@ export declare class BleManager extends EventEmitter<BleManagerEvents> {
|
|
|
63
64
|
*/
|
|
64
65
|
private parseDiscoveredDevice;
|
|
65
66
|
/**
|
|
66
|
-
* Connect to a device
|
|
67
|
+
* Connect to a device.
|
|
68
|
+
* Deduplicates concurrent calls — if a connect is already in progress
|
|
69
|
+
* for this device, callers share the same promise.
|
|
67
70
|
*/
|
|
68
71
|
connect(deviceId: string): Promise<Device>;
|
|
72
|
+
private doConnect;
|
|
69
73
|
/**
|
|
70
74
|
* Disconnect from a device
|
|
71
75
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BleManager.d.ts","sourceRoot":"","sources":["../../../../src/ble/BleManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAEL,MAAM,EACN,KAAK,EACL,YAAY,EAEb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,YAAY,MAAM,eAAe,CAAC;AASzC,OAAO,KAAK,EACV,gBAAgB,EAGhB,WAAW,EACZ,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"BleManager.d.ts","sourceRoot":"","sources":["../../../../src/ble/BleManager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/ble/BleManager.ts
CHANGED
|
@@ -35,6 +35,19 @@ import {
|
|
|
35
35
|
|
|
36
36
|
const log = logger.tag('BleManager');
|
|
37
37
|
|
|
38
|
+
/** Extract a human-readable message from a BleError (message is often null) */
|
|
39
|
+
function describeBleError(err: BleError | Error | null | undefined): string {
|
|
40
|
+
if (!err) return 'Unknown error';
|
|
41
|
+
const ble = err as BleError;
|
|
42
|
+
if (ble.message) return ble.message;
|
|
43
|
+
if (ble.reason) return ble.reason;
|
|
44
|
+
const parts: string[] = [];
|
|
45
|
+
if (ble.errorCode !== undefined) parts.push(`errorCode=${ble.errorCode}`);
|
|
46
|
+
if ((ble as any).iosErrorCode != null) parts.push(`ios=${(ble as any).iosErrorCode}`);
|
|
47
|
+
if ((ble as any).androidErrorCode != null) parts.push(`android=${(ble as any).androidErrorCode}`);
|
|
48
|
+
return parts.length > 0 ? parts.join(', ') : 'Unknown BLE error';
|
|
49
|
+
}
|
|
50
|
+
|
|
38
51
|
/**
|
|
39
52
|
* Events emitted by BleManager
|
|
40
53
|
*/
|
|
@@ -54,6 +67,7 @@ export class BleManager extends EventEmitter<BleManagerEvents> {
|
|
|
54
67
|
private disconnectSubscriptions: Map<string, Subscription> = new Map();
|
|
55
68
|
private connectedDevices: Map<string, Device> = new Map();
|
|
56
69
|
private discoveredDevices: Map<string, DiscoveredDevice> = new Map();
|
|
70
|
+
private pendingConnects: Map<string, Promise<Device>> = new Map();
|
|
57
71
|
private isScanning = false;
|
|
58
72
|
private cachedState: State = State.Unknown;
|
|
59
73
|
|
|
@@ -303,17 +317,37 @@ export class BleManager extends EventEmitter<BleManagerEvents> {
|
|
|
303
317
|
}
|
|
304
318
|
|
|
305
319
|
/**
|
|
306
|
-
* Connect to a device
|
|
320
|
+
* Connect to a device.
|
|
321
|
+
* Deduplicates concurrent calls — if a connect is already in progress
|
|
322
|
+
* for this device, callers share the same promise.
|
|
307
323
|
*/
|
|
308
324
|
async connect(deviceId: string): Promise<Device> {
|
|
309
|
-
log.info('Connecting to device', { deviceId });
|
|
310
|
-
|
|
311
325
|
// Check if already connected
|
|
312
326
|
if (this.connectedDevices.has(deviceId)) {
|
|
313
327
|
log.debug('Device already connected', { deviceId });
|
|
314
328
|
return this.connectedDevices.get(deviceId)!;
|
|
315
329
|
}
|
|
316
330
|
|
|
331
|
+
// Deduplicate: if a connect is already in progress, return the same promise
|
|
332
|
+
const pending = this.pendingConnects.get(deviceId);
|
|
333
|
+
if (pending) {
|
|
334
|
+
log.debug('Connection already in progress, sharing promise', { deviceId });
|
|
335
|
+
return pending;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
const connectPromise = this.doConnect(deviceId);
|
|
339
|
+
this.pendingConnects.set(deviceId, connectPromise);
|
|
340
|
+
|
|
341
|
+
try {
|
|
342
|
+
return await connectPromise;
|
|
343
|
+
} finally {
|
|
344
|
+
this.pendingConnects.delete(deviceId);
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
private async doConnect(deviceId: string): Promise<Device> {
|
|
349
|
+
log.info('Connecting to device', { deviceId });
|
|
350
|
+
|
|
317
351
|
try {
|
|
318
352
|
// Connect with timeout
|
|
319
353
|
const device = await this.manager.connectToDevice(deviceId, {
|
|
@@ -331,9 +365,10 @@ export class BleManager extends EventEmitter<BleManagerEvents> {
|
|
|
331
365
|
|
|
332
366
|
// Set up disconnect listener
|
|
333
367
|
const disconnectSub = device.onDisconnected((error, disconnectedDevice) => {
|
|
368
|
+
const errorMsg = error ? describeBleError(error) : undefined;
|
|
334
369
|
log.info('Device disconnected', {
|
|
335
370
|
deviceId: disconnectedDevice.id,
|
|
336
|
-
error:
|
|
371
|
+
error: errorMsg,
|
|
337
372
|
});
|
|
338
373
|
this.connectedDevices.delete(disconnectedDevice.id);
|
|
339
374
|
this.disconnectSubscriptions.get(disconnectedDevice.id)?.remove();
|
|
@@ -341,7 +376,7 @@ export class BleManager extends EventEmitter<BleManagerEvents> {
|
|
|
341
376
|
this.emit(
|
|
342
377
|
'deviceDisconnected',
|
|
343
378
|
disconnectedDevice.id,
|
|
344
|
-
error ? new Error(
|
|
379
|
+
error ? new Error(errorMsg || 'Device disconnected') : undefined
|
|
345
380
|
);
|
|
346
381
|
});
|
|
347
382
|
this.disconnectSubscriptions.set(deviceId, disconnectSub);
|
|
@@ -349,8 +384,7 @@ export class BleManager extends EventEmitter<BleManagerEvents> {
|
|
|
349
384
|
this.emit('deviceConnected', deviceId);
|
|
350
385
|
return device;
|
|
351
386
|
} catch (error) {
|
|
352
|
-
const
|
|
353
|
-
const msg = bleError.message || 'Connection failed';
|
|
387
|
+
const msg = describeBleError(error as BleError);
|
|
354
388
|
log.error('Connection failed', new Error(msg), { deviceId });
|
|
355
389
|
throw DeviceError.connectionFailed(deviceId, new Error(msg));
|
|
356
390
|
}
|
|
@@ -371,8 +405,7 @@ export class BleManager extends EventEmitter<BleManagerEvents> {
|
|
|
371
405
|
try {
|
|
372
406
|
await device.cancelConnection();
|
|
373
407
|
} catch (error) {
|
|
374
|
-
|
|
375
|
-
log.warn('Disconnect error (may be expected)', { error: bleError.message });
|
|
408
|
+
log.warn('Disconnect error (may be expected)', { error: describeBleError(error as BleError) });
|
|
376
409
|
}
|
|
377
410
|
|
|
378
411
|
this.connectedDevices.delete(deviceId);
|
|
@@ -436,8 +469,7 @@ export class BleManager extends EventEmitter<BleManagerEvents> {
|
|
|
436
469
|
|
|
437
470
|
return Buffer.from(characteristic.value, 'base64');
|
|
438
471
|
} catch (error) {
|
|
439
|
-
const
|
|
440
|
-
const msg = bleError.message || 'Unknown BLE error';
|
|
472
|
+
const msg = describeBleError(error as BleError);
|
|
441
473
|
log.error('Read characteristic failed', new Error(msg), {
|
|
442
474
|
deviceId,
|
|
443
475
|
serviceUuid,
|
|
@@ -484,8 +516,7 @@ export class BleManager extends EventEmitter<BleManagerEvents> {
|
|
|
484
516
|
);
|
|
485
517
|
}
|
|
486
518
|
} catch (error) {
|
|
487
|
-
const
|
|
488
|
-
const msg = bleError.message || 'Unknown BLE error';
|
|
519
|
+
const msg = describeBleError(error as BleError);
|
|
489
520
|
log.error('Write characteristic failed', new Error(msg), {
|
|
490
521
|
deviceId,
|
|
491
522
|
serviceUuid,
|