react-native-ble-nitro 1.0.0-beta.9 → 1.0.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.
- package/BleNitro.podspec +39 -0
- package/LICENSE +1 -1
- package/README.md +273 -77
- package/ios/BleNitroBleManager.swift +426 -458
- package/ios/BlePeripheralDelegate.swift +174 -0
- package/lib/commonjs/index.d.ts +174 -10
- package/lib/commonjs/index.d.ts.map +1 -1
- package/lib/commonjs/index.js +461 -38
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/specs/NativeBleNitro.d.ts +5 -0
- package/lib/commonjs/specs/NativeBleNitro.d.ts.map +1 -0
- package/lib/commonjs/{utils/index.js → specs/NativeBleNitro.js} +6 -3
- package/lib/commonjs/specs/NativeBleNitro.js.map +1 -0
- package/lib/commonjs/specs/NativeBleNitro.nitro.d.ts +69 -0
- package/lib/commonjs/specs/NativeBleNitro.nitro.d.ts.map +1 -0
- package/lib/commonjs/specs/NativeBleNitro.nitro.js +14 -0
- package/lib/commonjs/specs/NativeBleNitro.nitro.js.map +1 -0
- package/lib/index.d.ts +174 -10
- package/lib/index.js +456 -16
- package/lib/specs/NativeBleNitro.d.ts +4 -0
- package/lib/specs/NativeBleNitro.js +5 -0
- package/lib/specs/NativeBleNitro.nitro.d.ts +68 -0
- package/lib/specs/NativeBleNitro.nitro.js +10 -0
- package/nitro.json +1 -1
- package/nitrogen/generated/android/BleNitro+autolinking.cmake +2 -10
- package/nitrogen/generated/android/BleNitroOnLoad.cpp +25 -22
- package/nitrogen/generated/android/c++/JBLEDevice.hpp +95 -0
- package/nitrogen/generated/android/c++/{JState.hpp → JBLEState.hpp} +22 -22
- package/nitrogen/generated/android/c++/JFunc_void_BLEDevice.hpp +82 -0
- package/nitrogen/generated/android/c++/JFunc_void_BLEState.hpp +76 -0
- package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +74 -0
- package/nitrogen/generated/android/c++/JFunc_void_bool_std__string.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_bool_std__string_std__string.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_bool_std__vector_double__std__string.hpp +86 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string_bool_std__string.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string_std__vector_double_.hpp +86 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_BLEDevice_.hpp +99 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_std__string_.hpp +93 -0
- package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.cpp +171 -0
- package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.hpp +83 -0
- package/nitrogen/generated/android/c++/JManufacturerData.hpp +73 -0
- package/nitrogen/generated/android/c++/JManufacturerDataEntry.hpp +68 -0
- package/nitrogen/generated/android/c++/JScanFilter.hpp +79 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BLEDevice.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{LogLevel.kt → BLEState.kt} +9 -13
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{Func_void_std__optional_NativeBleError__std__optional_NativeDevice_.kt → Func_void_BLEDevice.kt} +15 -14
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{Func_void.kt → Func_void_BLEState.kt} +15 -14
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{Func_void_State.kt → Func_void_bool.kt} +15 -14
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{Func_void_std__optional_NativeBleError__std__optional_NativeCharacteristic_.kt → Func_void_bool_std__string.kt} +15 -14
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_bool_std__string_std__string.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_bool_std__vector_double__std__string.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__string_bool_std__string.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__string_std__vector_double_.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__vector_BLEDevice_.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__vector_std__string_.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridNativeBleNitroSpec.kt +223 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{ServiceDataEntry.kt → ManufacturerData.kt} +7 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{ConnectionOptions.kt → ManufacturerDataEntry.kt} +10 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{NativeService.kt → ScanFilter.kt} +13 -7
- package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.cpp +67 -175
- package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.hpp +205 -867
- package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Umbrella.hpp +20 -88
- package/nitrogen/generated/ios/BleNitroAutolinking.mm +3 -3
- package/nitrogen/generated/ios/BleNitroAutolinking.swift +4 -4
- package/nitrogen/generated/ios/c++/{HybridCharacteristicSpecSwift.cpp → HybridNativeBleNitroSpecSwift.cpp} +2 -2
- package/nitrogen/generated/ios/c++/HybridNativeBleNitroSpecSwift.hpp +205 -0
- package/nitrogen/generated/ios/swift/BLEDevice.swift +102 -0
- package/nitrogen/generated/ios/swift/{State.swift → BLEState.swift} +6 -6
- package/nitrogen/generated/ios/swift/Func_void.swift +1 -0
- package/nitrogen/generated/ios/swift/{Func_void_State.swift → Func_void_BLEDevice.swift} +12 -11
- package/nitrogen/generated/ios/swift/{Func_void_LogLevel.swift → Func_void_BLEState.swift} +12 -11
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +6 -5
- package/nitrogen/generated/ios/swift/{Func_void_NativeDescriptor.swift → Func_void_bool_std__string.swift} +12 -11
- package/nitrogen/generated/ios/swift/{Func_void_std__vector_NativeCharacteristic_.swift → Func_void_bool_std__string_std__string.swift} +12 -11
- package/nitrogen/generated/ios/swift/Func_void_bool_std__vector_double__std__string.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -0
- package/nitrogen/generated/ios/swift/{Func_void_NativeDevice.swift → Func_void_std__string_bool_std__string.swift} +12 -11
- package/nitrogen/generated/ios/swift/{Func_void_std__optional_BleRestoredState_.swift → Func_void_std__string_std__vector_double_.swift} +12 -17
- package/nitrogen/generated/ios/swift/{Func_void_NativeCharacteristic.swift → Func_void_std__vector_BLEDevice_.swift} +12 -11
- package/nitrogen/generated/ios/swift/{Func_void_std__vector_NativeDevice_.swift → Func_void_std__vector_std__string_.swift} +12 -11
- package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec.swift +68 -0
- package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec_cxx.swift +485 -0
- package/nitrogen/generated/ios/swift/ManufacturerData.swift +47 -0
- package/nitrogen/generated/ios/swift/ManufacturerDataEntry.swift +58 -0
- package/nitrogen/generated/ios/swift/ScanFilter.swift +69 -0
- package/nitrogen/generated/shared/c++/BLEDevice.hpp +90 -0
- package/nitrogen/generated/shared/c++/{State.hpp → BLEState.hpp} +13 -15
- package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.cpp +40 -0
- package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.hpp +93 -0
- package/nitrogen/generated/shared/c++/ManufacturerData.hpp +69 -0
- package/nitrogen/generated/shared/c++/{ServiceDataEntry.hpp → ManufacturerDataEntry.hpp} +19 -20
- package/nitrogen/generated/shared/c++/ScanFilter.hpp +76 -0
- package/package.json +9 -11
- package/react-native.config.js +2 -7
- package/src/__tests__/index.test.ts +188 -0
- package/src/index.ts +604 -45
- package/src/specs/NativeBleNitro.nitro.ts +84 -0
- package/src/specs/NativeBleNitro.ts +8 -0
- package/android/build.gradle +0 -58
- package/android/src/main/AndroidManifest.xml +0 -23
- package/android/src/main/kotlin/com/margelo/nitro/co/zyke/ble/BleNitroBleManager.kt +0 -760
- package/ios/BleNitro.podspec +0 -44
- package/ios/BleNitroModule.swift +0 -24
- package/lib/BleManagerCompatFactory.d.ts +0 -55
- package/lib/BleManagerCompatFactory.js +0 -194
- package/lib/BleManagerFactory.d.ts +0 -30
- package/lib/BleManagerFactory.js +0 -73
- package/lib/commonjs/BleManagerCompatFactory.d.ts +0 -56
- package/lib/commonjs/BleManagerCompatFactory.d.ts.map +0 -1
- package/lib/commonjs/BleManagerCompatFactory.js +0 -201
- package/lib/commonjs/BleManagerCompatFactory.js.map +0 -1
- package/lib/commonjs/BleManagerFactory.d.ts +0 -31
- package/lib/commonjs/BleManagerFactory.d.ts.map +0 -1
- package/lib/commonjs/BleManagerFactory.js +0 -81
- package/lib/commonjs/BleManagerFactory.js.map +0 -1
- package/lib/commonjs/compatibility/constants.d.ts +0 -50
- package/lib/commonjs/compatibility/constants.d.ts.map +0 -1
- package/lib/commonjs/compatibility/constants.js +0 -58
- package/lib/commonjs/compatibility/constants.js.map +0 -1
- package/lib/commonjs/compatibility/deviceWrapper.d.ts +0 -100
- package/lib/commonjs/compatibility/deviceWrapper.d.ts.map +0 -1
- package/lib/commonjs/compatibility/deviceWrapper.js +0 -268
- package/lib/commonjs/compatibility/deviceWrapper.js.map +0 -1
- package/lib/commonjs/compatibility/enums.d.ts +0 -39
- package/lib/commonjs/compatibility/enums.d.ts.map +0 -1
- package/lib/commonjs/compatibility/enums.js +0 -179
- package/lib/commonjs/compatibility/enums.js.map +0 -1
- package/lib/commonjs/compatibility/index.d.ts +0 -13
- package/lib/commonjs/compatibility/index.d.ts.map +0 -1
- package/lib/commonjs/compatibility/index.js +0 -41
- package/lib/commonjs/compatibility/index.js.map +0 -1
- package/lib/commonjs/compatibility/serviceData.d.ts +0 -52
- package/lib/commonjs/compatibility/serviceData.d.ts.map +0 -1
- package/lib/commonjs/compatibility/serviceData.js +0 -80
- package/lib/commonjs/compatibility/serviceData.js.map +0 -1
- package/lib/commonjs/errors/BleError.d.ts +0 -60
- package/lib/commonjs/errors/BleError.d.ts.map +0 -1
- package/lib/commonjs/errors/BleError.js +0 -125
- package/lib/commonjs/errors/BleError.js.map +0 -1
- package/lib/commonjs/specs/BleManager.nitro.d.ts +0 -45
- package/lib/commonjs/specs/BleManager.nitro.d.ts.map +0 -1
- package/lib/commonjs/specs/BleManager.nitro.js +0 -3
- package/lib/commonjs/specs/BleManager.nitro.js.map +0 -1
- package/lib/commonjs/specs/Characteristic.nitro.d.ts +0 -27
- package/lib/commonjs/specs/Characteristic.nitro.d.ts.map +0 -1
- package/lib/commonjs/specs/Characteristic.nitro.js +0 -3
- package/lib/commonjs/specs/Characteristic.nitro.js.map +0 -1
- package/lib/commonjs/specs/Descriptor.nitro.d.ts +0 -18
- package/lib/commonjs/specs/Descriptor.nitro.d.ts.map +0 -1
- package/lib/commonjs/specs/Descriptor.nitro.js +0 -3
- package/lib/commonjs/specs/Descriptor.nitro.js.map +0 -1
- package/lib/commonjs/specs/Device.nitro.d.ts +0 -38
- package/lib/commonjs/specs/Device.nitro.d.ts.map +0 -1
- package/lib/commonjs/specs/Device.nitro.js +0 -3
- package/lib/commonjs/specs/Device.nitro.js.map +0 -1
- package/lib/commonjs/specs/Service.nitro.d.ts +0 -20
- package/lib/commonjs/specs/Service.nitro.d.ts.map +0 -1
- package/lib/commonjs/specs/Service.nitro.js +0 -3
- package/lib/commonjs/specs/Service.nitro.js.map +0 -1
- package/lib/commonjs/specs/types.d.ts +0 -229
- package/lib/commonjs/specs/types.d.ts.map +0 -1
- package/lib/commonjs/specs/types.js +0 -150
- package/lib/commonjs/specs/types.js.map +0 -1
- package/lib/commonjs/utils/base64.d.ts +0 -26
- package/lib/commonjs/utils/base64.d.ts.map +0 -1
- package/lib/commonjs/utils/base64.js +0 -88
- package/lib/commonjs/utils/base64.js.map +0 -1
- package/lib/commonjs/utils/index.d.ts +0 -3
- package/lib/commonjs/utils/index.d.ts.map +0 -1
- package/lib/commonjs/utils/index.js.map +0 -1
- package/lib/commonjs/utils/uuid.d.ts +0 -10
- package/lib/commonjs/utils/uuid.d.ts.map +0 -1
- package/lib/commonjs/utils/uuid.js +0 -41
- package/lib/commonjs/utils/uuid.js.map +0 -1
- package/lib/compatibility/constants.d.ts +0 -49
- package/lib/compatibility/constants.js +0 -50
- package/lib/compatibility/deviceWrapper.d.ts +0 -99
- package/lib/compatibility/deviceWrapper.js +0 -259
- package/lib/compatibility/enums.d.ts +0 -38
- package/lib/compatibility/enums.js +0 -159
- package/lib/compatibility/index.d.ts +0 -12
- package/lib/compatibility/index.js +0 -12
- package/lib/compatibility/serviceData.d.ts +0 -51
- package/lib/compatibility/serviceData.js +0 -70
- package/lib/errors/BleError.d.ts +0 -59
- package/lib/errors/BleError.js +0 -120
- package/lib/specs/BleManager.nitro.d.ts +0 -44
- package/lib/specs/BleManager.nitro.js +0 -1
- package/lib/specs/Characteristic.nitro.d.ts +0 -26
- package/lib/specs/Characteristic.nitro.js +0 -1
- package/lib/specs/Descriptor.nitro.d.ts +0 -17
- package/lib/specs/Descriptor.nitro.js +0 -1
- package/lib/specs/Device.nitro.d.ts +0 -37
- package/lib/specs/Device.nitro.js +0 -1
- package/lib/specs/Service.nitro.d.ts +0 -19
- package/lib/specs/Service.nitro.js +0 -1
- package/lib/specs/types.d.ts +0 -228
- package/lib/specs/types.js +0 -146
- package/lib/utils/base64.d.ts +0 -25
- package/lib/utils/base64.js +0 -80
- package/lib/utils/index.d.ts +0 -2
- package/lib/utils/index.js +0 -2
- package/lib/utils/uuid.d.ts +0 -9
- package/lib/utils/uuid.js +0 -37
- package/nitrogen/generated/android/c++/JBleATTErrorCode.hpp +0 -107
- package/nitrogen/generated/android/c++/JBleAndroidErrorCode.hpp +0 -101
- package/nitrogen/generated/android/c++/JBleErrorCode.hpp +0 -170
- package/nitrogen/generated/android/c++/JBleIOSErrorCode.hpp +0 -92
- package/nitrogen/generated/android/c++/JBleManagerNitroOptions.hpp +0 -54
- package/nitrogen/generated/android/c++/JBleRestoredState.hpp +0 -76
- package/nitrogen/generated/android/c++/JCharacteristicSubscriptionType.hpp +0 -59
- package/nitrogen/generated/android/c++/JConnectionOptions.hpp +0 -61
- package/nitrogen/generated/android/c++/JConnectionPriority.hpp +0 -62
- package/nitrogen/generated/android/c++/JFunc_void.hpp +0 -74
- package/nitrogen/generated/android/c++/JFunc_void_State.hpp +0 -76
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_NativeBleError__std__optional_NativeCharacteristic_.hpp +0 -88
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_NativeBleError__std__optional_NativeDevice_.hpp +0 -91
- package/nitrogen/generated/android/c++/JHybridBleManagerSpec.cpp +0 -653
- package/nitrogen/generated/android/c++/JHybridBleManagerSpec.hpp +0 -92
- package/nitrogen/generated/android/c++/JHybridCharacteristicSpec.cpp +0 -253
- package/nitrogen/generated/android/c++/JHybridCharacteristicSpec.hpp +0 -79
- package/nitrogen/generated/android/c++/JHybridDescriptorSpec.cpp +0 -115
- package/nitrogen/generated/android/c++/JHybridDescriptorSpec.hpp +0 -70
- package/nitrogen/generated/android/c++/JHybridDeviceSpec.cpp +0 -476
- package/nitrogen/generated/android/c++/JHybridDeviceSpec.hpp +0 -90
- package/nitrogen/generated/android/c++/JHybridServiceSpec.cpp +0 -232
- package/nitrogen/generated/android/c++/JHybridServiceSpec.hpp +0 -72
- package/nitrogen/generated/android/c++/JLogLevel.hpp +0 -71
- package/nitrogen/generated/android/c++/JNativeBleError.hpp +0 -98
- package/nitrogen/generated/android/c++/JNativeCharacteristic.hpp +0 -98
- package/nitrogen/generated/android/c++/JNativeDescriptor.hpp +0 -82
- package/nitrogen/generated/android/c++/JNativeDevice.hpp +0 -173
- package/nitrogen/generated/android/c++/JNativeService.hpp +0 -65
- package/nitrogen/generated/android/c++/JScanCallbackType.hpp +0 -62
- package/nitrogen/generated/android/c++/JScanMode.hpp +0 -65
- package/nitrogen/generated/android/c++/JScanOptions.hpp +0 -69
- package/nitrogen/generated/android/c++/JServiceDataEntry.hpp +0 -57
- package/nitrogen/generated/android/c++/JSubscription.hpp +0 -64
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleATTErrorCode.kt +0 -41
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleAndroidErrorCode.kt +0 -39
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleErrorCode.kt +0 -62
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleIOSErrorCode.kt +0 -36
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleManagerNitroOptions.kt +0 -26
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleRestoredState.kt +0 -26
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/CharacteristicSubscriptionType.kt +0 -25
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ConnectionPriority.kt +0 -26
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridBleManagerSpec.kt +0 -192
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridCharacteristicSpec.kt +0 -127
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridDescriptorSpec.kt +0 -86
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridDeviceSpec.kt +0 -176
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridServiceSpec.kt +0 -99
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeBleError.kt +0 -35
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeCharacteristic.kt +0 -37
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeDescriptor.kt +0 -33
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeDevice.kt +0 -38
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ScanCallbackType.kt +0 -26
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ScanMode.kt +0 -27
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ScanOptions.kt +0 -29
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/State.kt +0 -29
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Subscription.kt +0 -30
- package/nitrogen/generated/ios/c++/HybridBleManagerSpecSwift.cpp +0 -11
- package/nitrogen/generated/ios/c++/HybridBleManagerSpecSwift.hpp +0 -377
- package/nitrogen/generated/ios/c++/HybridCharacteristicSpecSwift.hpp +0 -192
- package/nitrogen/generated/ios/c++/HybridDescriptorSpecSwift.cpp +0 -11
- package/nitrogen/generated/ios/c++/HybridDescriptorSpecSwift.hpp +0 -112
- package/nitrogen/generated/ios/c++/HybridDeviceSpecSwift.cpp +0 -11
- package/nitrogen/generated/ios/c++/HybridDeviceSpecSwift.hpp +0 -294
- package/nitrogen/generated/ios/c++/HybridServiceSpecSwift.cpp +0 -11
- package/nitrogen/generated/ios/c++/HybridServiceSpecSwift.hpp +0 -170
- package/nitrogen/generated/ios/swift/BleATTErrorCode.swift +0 -104
- package/nitrogen/generated/ios/swift/BleAndroidErrorCode.swift +0 -96
- package/nitrogen/generated/ios/swift/BleErrorCode.swift +0 -188
- package/nitrogen/generated/ios/swift/BleIOSErrorCode.swift +0 -84
- package/nitrogen/generated/ios/swift/BleManagerNitroOptions.swift +0 -53
- package/nitrogen/generated/ios/swift/BleRestoredState.swift +0 -47
- package/nitrogen/generated/ios/swift/CharacteristicSubscriptionType.swift +0 -40
- package/nitrogen/generated/ios/swift/ConnectionOptions.swift +0 -57
- package/nitrogen/generated/ios/swift/ConnectionPriority.swift +0 -44
- package/nitrogen/generated/ios/swift/Func_void_std__optional_NativeBleError__std__optional_NativeCharacteristic_.swift +0 -58
- package/nitrogen/generated/ios/swift/Func_void_std__optional_NativeBleError__std__optional_NativeDevice_.swift +0 -58
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_margelo__nitro__co__zyke__ble__HybridCharacteristicSpec_.swift +0 -50
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_margelo__nitro__co__zyke__ble__HybridDescriptorSpec_.swift +0 -50
- package/nitrogen/generated/ios/swift/Func_void_std__vector_NativeDescriptor_.swift +0 -46
- package/nitrogen/generated/ios/swift/Func_void_std__vector_NativeService_.swift +0 -46
- package/nitrogen/generated/ios/swift/HybridBleManagerSpec.swift +0 -78
- package/nitrogen/generated/ios/swift/HybridBleManagerSpec_cxx.swift +0 -852
- package/nitrogen/generated/ios/swift/HybridCharacteristicSpec.swift +0 -65
- package/nitrogen/generated/ios/swift/HybridCharacteristicSpec_cxx.swift +0 -384
- package/nitrogen/generated/ios/swift/HybridDescriptorSpec.swift +0 -56
- package/nitrogen/generated/ios/swift/HybridDescriptorSpec_cxx.swift +0 -218
- package/nitrogen/generated/ios/swift/HybridDeviceSpec.swift +0 -76
- package/nitrogen/generated/ios/swift/HybridDeviceSpec_cxx.swift +0 -702
- package/nitrogen/generated/ios/swift/HybridServiceSpec.swift +0 -58
- package/nitrogen/generated/ios/swift/HybridServiceSpec_cxx.swift +0 -338
- package/nitrogen/generated/ios/swift/LogLevel.swift +0 -56
- package/nitrogen/generated/ios/swift/NativeBleError.swift +0 -278
- package/nitrogen/generated/ios/swift/NativeCharacteristic.swift +0 -174
- package/nitrogen/generated/ios/swift/NativeDescriptor.swift +0 -130
- package/nitrogen/generated/ios/swift/NativeDevice.swift +0 -377
- package/nitrogen/generated/ios/swift/NativeService.swift +0 -68
- package/nitrogen/generated/ios/swift/ScanCallbackType.swift +0 -44
- package/nitrogen/generated/ios/swift/ScanMode.swift +0 -48
- package/nitrogen/generated/ios/swift/ScanOptions.swift +0 -116
- package/nitrogen/generated/ios/swift/ServiceDataEntry.swift +0 -46
- package/nitrogen/generated/ios/swift/Subscription.swift +0 -46
- package/nitrogen/generated/shared/c++/BleATTErrorCode.hpp +0 -80
- package/nitrogen/generated/shared/c++/BleAndroidErrorCode.hpp +0 -78
- package/nitrogen/generated/shared/c++/BleErrorCode.hpp +0 -101
- package/nitrogen/generated/shared/c++/BleIOSErrorCode.hpp +0 -75
- package/nitrogen/generated/shared/c++/BleManagerNitroOptions.hpp +0 -70
- package/nitrogen/generated/shared/c++/BleRestoredState.hpp +0 -71
- package/nitrogen/generated/shared/c++/CharacteristicSubscriptionType.hpp +0 -64
- package/nitrogen/generated/shared/c++/ConnectionOptions.hpp +0 -77
- package/nitrogen/generated/shared/c++/ConnectionPriority.hpp +0 -65
- package/nitrogen/generated/shared/c++/HybridBleManagerSpec.cpp +0 -51
- package/nitrogen/generated/shared/c++/HybridBleManagerSpec.hpp +0 -137
- package/nitrogen/generated/shared/c++/HybridCharacteristicSpec.cpp +0 -39
- package/nitrogen/generated/shared/c++/HybridCharacteristicSpec.hpp +0 -101
- package/nitrogen/generated/shared/c++/HybridDescriptorSpec.cpp +0 -30
- package/nitrogen/generated/shared/c++/HybridDescriptorSpec.hpp +0 -75
- package/nitrogen/generated/shared/c++/HybridDeviceSpec.cpp +0 -50
- package/nitrogen/generated/shared/c++/HybridDeviceSpec.hpp +0 -123
- package/nitrogen/generated/shared/c++/HybridServiceSpec.cpp +0 -32
- package/nitrogen/generated/shared/c++/HybridServiceSpec.hpp +0 -90
- package/nitrogen/generated/shared/c++/LogLevel.hpp +0 -68
- package/nitrogen/generated/shared/c++/NativeBleError.hpp +0 -117
- package/nitrogen/generated/shared/c++/NativeCharacteristic.hpp +0 -114
- package/nitrogen/generated/shared/c++/NativeDescriptor.hpp +0 -98
- package/nitrogen/generated/shared/c++/NativeDevice.hpp +0 -121
- package/nitrogen/generated/shared/c++/NativeService.hpp +0 -81
- package/nitrogen/generated/shared/c++/ScanCallbackType.hpp +0 -65
- package/nitrogen/generated/shared/c++/ScanMode.hpp +0 -66
- package/nitrogen/generated/shared/c++/ScanOptions.hpp +0 -86
- package/nitrogen/generated/shared/c++/Subscription.hpp +0 -69
- package/src/BleManagerCompatFactory.ts +0 -371
- package/src/BleManagerFactory.ts +0 -93
- package/src/__tests__/BleManager.test.ts +0 -327
- package/src/__tests__/compatibility/deviceWrapper.test.ts +0 -563
- package/src/__tests__/compatibility/enums.test.ts +0 -264
- package/src/compatibility/constants.ts +0 -71
- package/src/compatibility/deviceWrapper.ts +0 -427
- package/src/compatibility/enums.ts +0 -190
- package/src/compatibility/index.ts +0 -32
- package/src/compatibility/serviceData.ts +0 -85
- package/src/errors/BleError.ts +0 -193
- package/src/specs/BleManager.nitro.ts +0 -165
- package/src/specs/Characteristic.nitro.ts +0 -61
- package/src/specs/Descriptor.nitro.ts +0 -28
- package/src/specs/Device.nitro.ts +0 -104
- package/src/specs/Service.nitro.ts +0 -64
- package/src/specs/types.ts +0 -259
- package/src/utils/base64.ts +0 -80
- package/src/utils/index.ts +0 -2
- package/src/utils/uuid.ts +0 -45
package/lib/index.d.ts
CHANGED
|
@@ -1,10 +1,174 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export
|
|
1
|
+
export interface ScanFilter {
|
|
2
|
+
serviceUUIDs?: string[];
|
|
3
|
+
rssiThreshold?: number;
|
|
4
|
+
allowDuplicates?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface ManufacturerDataEntry {
|
|
7
|
+
id: string;
|
|
8
|
+
data: number[];
|
|
9
|
+
}
|
|
10
|
+
export interface ManufacturerData {
|
|
11
|
+
companyIdentifiers: ManufacturerDataEntry[];
|
|
12
|
+
}
|
|
13
|
+
export interface BLEDevice {
|
|
14
|
+
id: string;
|
|
15
|
+
name: string;
|
|
16
|
+
rssi: number;
|
|
17
|
+
manufacturerData: ManufacturerData;
|
|
18
|
+
serviceUUIDs: string[];
|
|
19
|
+
isConnectable: boolean;
|
|
20
|
+
}
|
|
21
|
+
export type ScanCallback = (device: BLEDevice) => void;
|
|
22
|
+
export type ConnectionCallback = (success: boolean, deviceId: string, error: string) => void;
|
|
23
|
+
export type DisconnectEventCallback = (deviceId: string, interrupted: boolean, error: string) => void;
|
|
24
|
+
export type OperationCallback = (success: boolean, error: string) => void;
|
|
25
|
+
export type CharacteristicUpdateCallback = (characteristicId: string, data: number[]) => void;
|
|
26
|
+
export type Subscription = {
|
|
27
|
+
remove: () => Promise<void>;
|
|
28
|
+
};
|
|
29
|
+
export declare enum BLEState {
|
|
30
|
+
Unknown = "Unknown",
|
|
31
|
+
Resetting = "Resetting",
|
|
32
|
+
Unsupported = "Unsupported",
|
|
33
|
+
Unauthorized = "Unauthorized",
|
|
34
|
+
PoweredOff = "PoweredOff",
|
|
35
|
+
PoweredOn = "PoweredOn"
|
|
36
|
+
}
|
|
37
|
+
export declare class BleNitro {
|
|
38
|
+
private _isScanning;
|
|
39
|
+
private _connectedDevices;
|
|
40
|
+
static instance(): BleNitro;
|
|
41
|
+
/**
|
|
42
|
+
* Converts a 16- oder 32-Bit UUID to a 128-Bit UUID
|
|
43
|
+
*
|
|
44
|
+
* @param uuid 16-, 32- or 128-Bit UUID as string
|
|
45
|
+
* @returns Full 128-Bit UUID
|
|
46
|
+
*/
|
|
47
|
+
static normalizeGattUUID(uuid: string): string;
|
|
48
|
+
static normalizeGattUUIDs(uuids: string[]): string[];
|
|
49
|
+
/**
|
|
50
|
+
* Start scanning for Bluetooth devices
|
|
51
|
+
* @param filter Optional scan filter
|
|
52
|
+
* @param callback Callback function called when a device is found
|
|
53
|
+
* @returns Promise resolving to success state
|
|
54
|
+
*/
|
|
55
|
+
startScan(filter: ScanFilter | undefined, callback: ScanCallback): Promise<boolean>;
|
|
56
|
+
/**
|
|
57
|
+
* Stop scanning for Bluetooth devices
|
|
58
|
+
* @returns Promise resolving to success state
|
|
59
|
+
*/
|
|
60
|
+
stopScan(): Promise<boolean>;
|
|
61
|
+
/**
|
|
62
|
+
* Check if currently scanning for devices
|
|
63
|
+
* @returns Promise resolving to scanning state
|
|
64
|
+
*/
|
|
65
|
+
isScanning(): Promise<boolean>;
|
|
66
|
+
/**
|
|
67
|
+
* Get all currently connected devices
|
|
68
|
+
* @returns Promise resolving to array of connected devices
|
|
69
|
+
*/
|
|
70
|
+
getConnectedDevices(): Promise<BLEDevice[]>;
|
|
71
|
+
/**
|
|
72
|
+
* Connect to a Bluetooth device
|
|
73
|
+
* @param deviceId ID of the device to connect to
|
|
74
|
+
* @param onDisconnect Optional callback for disconnect events
|
|
75
|
+
* @returns Promise resolving when connected
|
|
76
|
+
*/
|
|
77
|
+
connect(deviceId: string, onDisconnect?: DisconnectEventCallback): Promise<string>;
|
|
78
|
+
/**
|
|
79
|
+
* Disconnect from a Bluetooth device
|
|
80
|
+
* @param deviceId ID of the device to disconnect from
|
|
81
|
+
* @returns Promise resolving when disconnected
|
|
82
|
+
*/
|
|
83
|
+
disconnect(deviceId: string): Promise<boolean>;
|
|
84
|
+
/**
|
|
85
|
+
* Check if connected to a device
|
|
86
|
+
* @param deviceId ID of the device to check
|
|
87
|
+
* @returns Promise resolving to connection state
|
|
88
|
+
*/
|
|
89
|
+
isConnected(deviceId: string): Promise<boolean>;
|
|
90
|
+
/**
|
|
91
|
+
* Discover services for a connected device
|
|
92
|
+
* @param deviceId ID of the device
|
|
93
|
+
* @returns Promise resolving when services are discovered
|
|
94
|
+
*/
|
|
95
|
+
discoverServices(deviceId: string): Promise<boolean>;
|
|
96
|
+
/**
|
|
97
|
+
* Get services for a connected device
|
|
98
|
+
* @param deviceId ID of the device
|
|
99
|
+
* @returns Promise resolving to array of service UUIDs
|
|
100
|
+
*/
|
|
101
|
+
getServices(deviceId: string): Promise<string[]>;
|
|
102
|
+
/**
|
|
103
|
+
* Get characteristics for a service
|
|
104
|
+
* @param deviceId ID of the device
|
|
105
|
+
* @param serviceId ID of the service
|
|
106
|
+
* @returns Promise resolving to array of characteristic UUIDs
|
|
107
|
+
*/
|
|
108
|
+
getCharacteristics(deviceId: string, serviceId: string): Promise<string[]>;
|
|
109
|
+
/**
|
|
110
|
+
* Read a characteristic value
|
|
111
|
+
* @param deviceId ID of the device
|
|
112
|
+
* @param serviceId ID of the service
|
|
113
|
+
* @param characteristicId ID of the characteristic
|
|
114
|
+
* @returns Promise resolving to the characteristic data as byte array
|
|
115
|
+
*/
|
|
116
|
+
readCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<number[]>;
|
|
117
|
+
/**
|
|
118
|
+
* Write a value to a characteristic
|
|
119
|
+
* @param deviceId ID of the device
|
|
120
|
+
* @param serviceId ID of the service
|
|
121
|
+
* @param characteristicId ID of the characteristic
|
|
122
|
+
* @param data Data to write as an array of bytes
|
|
123
|
+
* @param withResponse Whether to wait for response
|
|
124
|
+
* @returns Promise resolving when write is complete
|
|
125
|
+
*/
|
|
126
|
+
writeCharacteristic(deviceId: string, serviceId: string, characteristicId: string, data: number[], withResponse?: boolean): Promise<boolean>;
|
|
127
|
+
/**
|
|
128
|
+
* Subscribe to characteristic notifications
|
|
129
|
+
* @param deviceId ID of the device
|
|
130
|
+
* @param serviceId ID of the service
|
|
131
|
+
* @param characteristicId ID of the characteristic
|
|
132
|
+
* @param callback Callback function called when notification is received
|
|
133
|
+
* @returns Promise resolving when subscription is complete
|
|
134
|
+
*/
|
|
135
|
+
subscribeToCharacteristic(deviceId: string, serviceId: string, characteristicId: string, callback: CharacteristicUpdateCallback): Promise<Subscription>;
|
|
136
|
+
/**
|
|
137
|
+
* Unsubscribe from characteristic notifications
|
|
138
|
+
* @param deviceId ID of the device
|
|
139
|
+
* @param serviceId ID of the service
|
|
140
|
+
* @param characteristicId ID of the characteristic
|
|
141
|
+
* @returns Promise resolving when unsubscription is complete
|
|
142
|
+
*/
|
|
143
|
+
unsubscribeFromCharacteristic(deviceId: string, serviceId: string, characteristicId: string): Promise<void>;
|
|
144
|
+
/**
|
|
145
|
+
* Check if Bluetooth is enabled
|
|
146
|
+
* @returns Promise resolving to Bluetooth state
|
|
147
|
+
*/
|
|
148
|
+
isBluetoothEnabled(): Promise<boolean>;
|
|
149
|
+
/**
|
|
150
|
+
* Request to enable Bluetooth
|
|
151
|
+
* @returns Promise resolving when Bluetooth is enabled
|
|
152
|
+
*/
|
|
153
|
+
requestBluetoothEnable(): Promise<boolean>;
|
|
154
|
+
/**
|
|
155
|
+
* Get the current Bluetooth state
|
|
156
|
+
* @returns Promise resolving to Bluetooth state
|
|
157
|
+
* @see BLEState
|
|
158
|
+
*/
|
|
159
|
+
state(): Promise<BLEState>;
|
|
160
|
+
/**
|
|
161
|
+
* Subscribe to Bluetooth state changes
|
|
162
|
+
* @param callback Callback function called when state changes
|
|
163
|
+
* @param emitInitial Whether to emit initial state callback
|
|
164
|
+
* @returns Promise resolving when subscription is complete
|
|
165
|
+
* @see BLEState
|
|
166
|
+
*/
|
|
167
|
+
subscribeToStateChange(callback: (state: BLEState) => void, emitInitial?: boolean): Promise<Subscription>;
|
|
168
|
+
/**
|
|
169
|
+
* Open Bluetooth settings
|
|
170
|
+
* @returns Promise resolving when settings are opened
|
|
171
|
+
*/
|
|
172
|
+
openSettings(): Promise<void>;
|
|
173
|
+
}
|
|
174
|
+
export declare const ble: BleNitro;
|
package/lib/index.js
CHANGED
|
@@ -1,16 +1,456 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
1
|
+
import BleNitroNative from './specs/NativeBleNitro';
|
|
2
|
+
export var BLEState;
|
|
3
|
+
(function (BLEState) {
|
|
4
|
+
BLEState["Unknown"] = "Unknown";
|
|
5
|
+
BLEState["Resetting"] = "Resetting";
|
|
6
|
+
BLEState["Unsupported"] = "Unsupported";
|
|
7
|
+
BLEState["Unauthorized"] = "Unauthorized";
|
|
8
|
+
BLEState["PoweredOff"] = "PoweredOff";
|
|
9
|
+
BLEState["PoweredOn"] = "PoweredOn";
|
|
10
|
+
})(BLEState || (BLEState = {}));
|
|
11
|
+
;
|
|
12
|
+
function mapNativeBLEStateToBLEState(nativeState) {
|
|
13
|
+
const map = {
|
|
14
|
+
0: BLEState.Unknown,
|
|
15
|
+
1: BLEState.Resetting,
|
|
16
|
+
2: BLEState.Unsupported,
|
|
17
|
+
3: BLEState.Unauthorized,
|
|
18
|
+
4: BLEState.PoweredOff,
|
|
19
|
+
5: BLEState.PoweredOn,
|
|
20
|
+
};
|
|
21
|
+
return map[nativeState];
|
|
22
|
+
}
|
|
23
|
+
let _instance;
|
|
24
|
+
export class BleNitro {
|
|
25
|
+
constructor() {
|
|
26
|
+
this._isScanning = false;
|
|
27
|
+
this._connectedDevices = {};
|
|
28
|
+
}
|
|
29
|
+
static instance() {
|
|
30
|
+
if (!_instance) {
|
|
31
|
+
_instance = new BleNitro();
|
|
32
|
+
}
|
|
33
|
+
return _instance;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Converts a 16- oder 32-Bit UUID to a 128-Bit UUID
|
|
37
|
+
*
|
|
38
|
+
* @param uuid 16-, 32- or 128-Bit UUID as string
|
|
39
|
+
* @returns Full 128-Bit UUID
|
|
40
|
+
*/
|
|
41
|
+
static normalizeGattUUID(uuid) {
|
|
42
|
+
const cleanUuid = uuid.toLowerCase();
|
|
43
|
+
// 128-Bit UUID → normalisieren
|
|
44
|
+
if (cleanUuid.length === 36 && cleanUuid.includes("-")) {
|
|
45
|
+
return cleanUuid;
|
|
46
|
+
}
|
|
47
|
+
// GATT-Service UUIDs
|
|
48
|
+
// 16- oder 32-Bit UUID → 128-Bit UUID
|
|
49
|
+
const padded = cleanUuid.padStart(8, "0");
|
|
50
|
+
return `${padded}-0000-1000-8000-00805f9b34fb`;
|
|
51
|
+
}
|
|
52
|
+
static normalizeGattUUIDs(uuids) {
|
|
53
|
+
return uuids.map((uuid) => BleNitro.normalizeGattUUID(uuid));
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Start scanning for Bluetooth devices
|
|
57
|
+
* @param filter Optional scan filter
|
|
58
|
+
* @param callback Callback function called when a device is found
|
|
59
|
+
* @returns Promise resolving to success state
|
|
60
|
+
*/
|
|
61
|
+
startScan(filter = {}, callback) {
|
|
62
|
+
return new Promise((resolve) => {
|
|
63
|
+
// Don't start scanning if already scanning
|
|
64
|
+
if (this._isScanning) {
|
|
65
|
+
resolve(true);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
// Create native scan filter with defaults
|
|
69
|
+
const nativeFilter = {
|
|
70
|
+
serviceUUIDs: filter.serviceUUIDs || [],
|
|
71
|
+
rssiThreshold: filter.rssiThreshold ?? -100,
|
|
72
|
+
allowDuplicates: filter.allowDuplicates ?? false,
|
|
73
|
+
};
|
|
74
|
+
// Create callback wrapper
|
|
75
|
+
const scanCallback = (device) => {
|
|
76
|
+
device.serviceUUIDs = BleNitro.normalizeGattUUIDs(device.serviceUUIDs);
|
|
77
|
+
callback(device);
|
|
78
|
+
};
|
|
79
|
+
// Start scan
|
|
80
|
+
BleNitroNative.startScan(nativeFilter, scanCallback);
|
|
81
|
+
this._isScanning = true;
|
|
82
|
+
resolve(true);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Stop scanning for Bluetooth devices
|
|
87
|
+
* @returns Promise resolving to success state
|
|
88
|
+
*/
|
|
89
|
+
stopScan() {
|
|
90
|
+
return new Promise((resolve, reject) => {
|
|
91
|
+
// Don't stop scanning if not scanning
|
|
92
|
+
if (!this._isScanning) {
|
|
93
|
+
resolve(true);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
BleNitroNative.stopScan((success, error) => {
|
|
97
|
+
if (success) {
|
|
98
|
+
this._isScanning = false;
|
|
99
|
+
resolve(true);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
reject(new Error(error));
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Check if currently scanning for devices
|
|
109
|
+
* @returns Promise resolving to scanning state
|
|
110
|
+
*/
|
|
111
|
+
isScanning() {
|
|
112
|
+
return new Promise((resolve) => {
|
|
113
|
+
BleNitroNative.isScanning((scanning) => {
|
|
114
|
+
this._isScanning = scanning;
|
|
115
|
+
resolve(scanning);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Get all currently connected devices
|
|
121
|
+
* @returns Promise resolving to array of connected devices
|
|
122
|
+
*/
|
|
123
|
+
getConnectedDevices() {
|
|
124
|
+
return new Promise((resolve) => {
|
|
125
|
+
BleNitroNative.getConnectedDevices((devices) => {
|
|
126
|
+
// Normalize service UUIDs for connected devices
|
|
127
|
+
const normalizedDevices = devices.map(device => ({
|
|
128
|
+
...device,
|
|
129
|
+
serviceUUIDs: BleNitro.normalizeGattUUIDs(device.serviceUUIDs)
|
|
130
|
+
}));
|
|
131
|
+
resolve(normalizedDevices);
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Connect to a Bluetooth device
|
|
137
|
+
* @param deviceId ID of the device to connect to
|
|
138
|
+
* @param onDisconnect Optional callback for disconnect events
|
|
139
|
+
* @returns Promise resolving when connected
|
|
140
|
+
*/
|
|
141
|
+
connect(deviceId, onDisconnect) {
|
|
142
|
+
return new Promise((resolve, reject) => {
|
|
143
|
+
// Check if already connected
|
|
144
|
+
if (this._connectedDevices[deviceId]) {
|
|
145
|
+
resolve(deviceId);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
BleNitroNative.connect(deviceId, (success, connectedDeviceId, error) => {
|
|
149
|
+
if (success) {
|
|
150
|
+
this._connectedDevices[deviceId] = true;
|
|
151
|
+
resolve(connectedDeviceId);
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
reject(new Error(error));
|
|
155
|
+
}
|
|
156
|
+
}, onDisconnect ? (deviceId, interrupted, error) => {
|
|
157
|
+
// Remove from connected devices when disconnected
|
|
158
|
+
delete this._connectedDevices[deviceId];
|
|
159
|
+
onDisconnect(deviceId, interrupted, error);
|
|
160
|
+
} : undefined);
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Disconnect from a Bluetooth device
|
|
165
|
+
* @param deviceId ID of the device to disconnect from
|
|
166
|
+
* @returns Promise resolving when disconnected
|
|
167
|
+
*/
|
|
168
|
+
disconnect(deviceId) {
|
|
169
|
+
return new Promise((resolve, reject) => {
|
|
170
|
+
// Check if already disconnected
|
|
171
|
+
if (!this._connectedDevices[deviceId]) {
|
|
172
|
+
resolve(true);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
BleNitroNative.disconnect(deviceId, (success, error) => {
|
|
176
|
+
if (success) {
|
|
177
|
+
delete this._connectedDevices[deviceId];
|
|
178
|
+
resolve(true);
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
reject(new Error(error));
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Check if connected to a device
|
|
188
|
+
* @param deviceId ID of the device to check
|
|
189
|
+
* @returns Promise resolving to connection state
|
|
190
|
+
*/
|
|
191
|
+
isConnected(deviceId) {
|
|
192
|
+
return new Promise((resolve) => {
|
|
193
|
+
BleNitroNative.isConnected(deviceId, (connected) => {
|
|
194
|
+
this._connectedDevices[deviceId] = connected;
|
|
195
|
+
resolve(connected);
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Discover services for a connected device
|
|
201
|
+
* @param deviceId ID of the device
|
|
202
|
+
* @returns Promise resolving when services are discovered
|
|
203
|
+
*/
|
|
204
|
+
discoverServices(deviceId) {
|
|
205
|
+
return new Promise((resolve, reject) => {
|
|
206
|
+
// Check if connected first
|
|
207
|
+
if (!this._connectedDevices[deviceId]) {
|
|
208
|
+
reject(new Error('Device not connected'));
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
BleNitroNative.discoverServices(deviceId, (success, error) => {
|
|
212
|
+
if (success) {
|
|
213
|
+
resolve(true);
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
reject(new Error(error));
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Get services for a connected device
|
|
223
|
+
* @param deviceId ID of the device
|
|
224
|
+
* @returns Promise resolving to array of service UUIDs
|
|
225
|
+
*/
|
|
226
|
+
getServices(deviceId) {
|
|
227
|
+
return new Promise(async (resolve, reject) => {
|
|
228
|
+
// Check if connected first
|
|
229
|
+
if (!this._connectedDevices[deviceId]) {
|
|
230
|
+
reject(new Error('Device not connected'));
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
const success = await this.discoverServices(deviceId);
|
|
234
|
+
if (!success) {
|
|
235
|
+
reject(new Error('Failed to discover services'));
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
BleNitroNative.getServices(deviceId, (services) => {
|
|
239
|
+
resolve(BleNitro.normalizeGattUUIDs(services));
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Get characteristics for a service
|
|
245
|
+
* @param deviceId ID of the device
|
|
246
|
+
* @param serviceId ID of the service
|
|
247
|
+
* @returns Promise resolving to array of characteristic UUIDs
|
|
248
|
+
*/
|
|
249
|
+
getCharacteristics(deviceId, serviceId) {
|
|
250
|
+
return new Promise((resolve, reject) => {
|
|
251
|
+
// Check if connected first
|
|
252
|
+
if (!this._connectedDevices[deviceId]) {
|
|
253
|
+
reject(new Error('Device not connected'));
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
BleNitroNative.getCharacteristics(deviceId, BleNitro.normalizeGattUUID(serviceId), (characteristics) => {
|
|
257
|
+
resolve(BleNitro.normalizeGattUUIDs(characteristics));
|
|
258
|
+
});
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Read a characteristic value
|
|
263
|
+
* @param deviceId ID of the device
|
|
264
|
+
* @param serviceId ID of the service
|
|
265
|
+
* @param characteristicId ID of the characteristic
|
|
266
|
+
* @returns Promise resolving to the characteristic data as byte array
|
|
267
|
+
*/
|
|
268
|
+
readCharacteristic(deviceId, serviceId, characteristicId) {
|
|
269
|
+
return new Promise((resolve, reject) => {
|
|
270
|
+
// Check if connected first
|
|
271
|
+
if (!this._connectedDevices[deviceId]) {
|
|
272
|
+
reject(new Error('Device not connected'));
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
BleNitroNative.readCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), (success, data, error) => {
|
|
276
|
+
if (success) {
|
|
277
|
+
resolve(data);
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
reject(new Error(error));
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Write a value to a characteristic
|
|
287
|
+
* @param deviceId ID of the device
|
|
288
|
+
* @param serviceId ID of the service
|
|
289
|
+
* @param characteristicId ID of the characteristic
|
|
290
|
+
* @param data Data to write as an array of bytes
|
|
291
|
+
* @param withResponse Whether to wait for response
|
|
292
|
+
* @returns Promise resolving when write is complete
|
|
293
|
+
*/
|
|
294
|
+
writeCharacteristic(deviceId, serviceId, characteristicId, data, withResponse = true) {
|
|
295
|
+
return new Promise((resolve, reject) => {
|
|
296
|
+
// Check if connected first
|
|
297
|
+
if (!this._connectedDevices[deviceId]) {
|
|
298
|
+
reject(new Error('Device not connected'));
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
BleNitroNative.writeCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), data, withResponse, (success, error) => {
|
|
302
|
+
if (success) {
|
|
303
|
+
resolve(true);
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
reject(new Error(error));
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Subscribe to characteristic notifications
|
|
313
|
+
* @param deviceId ID of the device
|
|
314
|
+
* @param serviceId ID of the service
|
|
315
|
+
* @param characteristicId ID of the characteristic
|
|
316
|
+
* @param callback Callback function called when notification is received
|
|
317
|
+
* @returns Promise resolving when subscription is complete
|
|
318
|
+
*/
|
|
319
|
+
subscribeToCharacteristic(deviceId, serviceId, characteristicId, callback) {
|
|
320
|
+
return new Promise((resolve, reject) => {
|
|
321
|
+
// Check if connected first
|
|
322
|
+
if (!this._connectedDevices[deviceId]) {
|
|
323
|
+
reject(new Error('Device not connected'));
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
BleNitroNative.subscribeToCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), (charId, data) => {
|
|
327
|
+
callback(charId, data);
|
|
328
|
+
}, (success, error) => {
|
|
329
|
+
if (success) {
|
|
330
|
+
resolve({
|
|
331
|
+
remove: () => {
|
|
332
|
+
return new Promise((resolve, reject) => {
|
|
333
|
+
this.unsubscribeFromCharacteristic(deviceId, serviceId, characteristicId).then(resolve).catch(reject);
|
|
334
|
+
});
|
|
335
|
+
},
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
reject(new Error(error));
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Unsubscribe from characteristic notifications
|
|
346
|
+
* @param deviceId ID of the device
|
|
347
|
+
* @param serviceId ID of the service
|
|
348
|
+
* @param characteristicId ID of the characteristic
|
|
349
|
+
* @returns Promise resolving when unsubscription is complete
|
|
350
|
+
*/
|
|
351
|
+
unsubscribeFromCharacteristic(deviceId, serviceId, characteristicId) {
|
|
352
|
+
return new Promise((resolve, reject) => {
|
|
353
|
+
// Check if connected first
|
|
354
|
+
if (!this._connectedDevices[deviceId]) {
|
|
355
|
+
reject(new Error('Device not connected'));
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
BleNitroNative.unsubscribeFromCharacteristic(deviceId, BleNitro.normalizeGattUUID(serviceId), BleNitro.normalizeGattUUID(characteristicId), (success, error) => {
|
|
359
|
+
if (success) {
|
|
360
|
+
resolve();
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
reject(new Error(error));
|
|
364
|
+
}
|
|
365
|
+
});
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Check if Bluetooth is enabled
|
|
370
|
+
* @returns Promise resolving to Bluetooth state
|
|
371
|
+
*/
|
|
372
|
+
isBluetoothEnabled() {
|
|
373
|
+
return new Promise((resolve) => {
|
|
374
|
+
BleNitroNative.isBluetoothEnabled((enabled) => {
|
|
375
|
+
resolve(enabled);
|
|
376
|
+
});
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Request to enable Bluetooth
|
|
381
|
+
* @returns Promise resolving when Bluetooth is enabled
|
|
382
|
+
*/
|
|
383
|
+
requestBluetoothEnable() {
|
|
384
|
+
return new Promise((resolve, reject) => {
|
|
385
|
+
BleNitroNative.requestBluetoothEnable((success, error) => {
|
|
386
|
+
if (success) {
|
|
387
|
+
resolve(true);
|
|
388
|
+
}
|
|
389
|
+
else {
|
|
390
|
+
reject(new Error(error));
|
|
391
|
+
}
|
|
392
|
+
});
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Get the current Bluetooth state
|
|
397
|
+
* @returns Promise resolving to Bluetooth state
|
|
398
|
+
* @see BLEState
|
|
399
|
+
*/
|
|
400
|
+
state() {
|
|
401
|
+
return new Promise((resolve) => {
|
|
402
|
+
BleNitroNative.state((state) => {
|
|
403
|
+
resolve(mapNativeBLEStateToBLEState(state));
|
|
404
|
+
});
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Subscribe to Bluetooth state changes
|
|
409
|
+
* @param callback Callback function called when state changes
|
|
410
|
+
* @param emitInitial Whether to emit initial state callback
|
|
411
|
+
* @returns Promise resolving when subscription is complete
|
|
412
|
+
* @see BLEState
|
|
413
|
+
*/
|
|
414
|
+
subscribeToStateChange(callback, emitInitial = false) {
|
|
415
|
+
return new Promise(async (resolve, reject) => {
|
|
416
|
+
if (emitInitial) {
|
|
417
|
+
const state = await this.state().catch(() => {
|
|
418
|
+
return BLEState.Unknown;
|
|
419
|
+
});
|
|
420
|
+
callback(state);
|
|
421
|
+
}
|
|
422
|
+
BleNitroNative.subscribeToStateChange((nativeState) => {
|
|
423
|
+
callback(mapNativeBLEStateToBLEState(nativeState));
|
|
424
|
+
}, (success, error) => {
|
|
425
|
+
if (success) {
|
|
426
|
+
resolve({
|
|
427
|
+
remove: () => {
|
|
428
|
+
return new Promise((resolve, reject) => {
|
|
429
|
+
BleNitroNative.unsubscribeFromStateChange((success, error) => {
|
|
430
|
+
if (success) {
|
|
431
|
+
resolve();
|
|
432
|
+
}
|
|
433
|
+
else {
|
|
434
|
+
reject(new Error(error));
|
|
435
|
+
}
|
|
436
|
+
});
|
|
437
|
+
});
|
|
438
|
+
},
|
|
439
|
+
});
|
|
440
|
+
}
|
|
441
|
+
else {
|
|
442
|
+
reject(new Error(error));
|
|
443
|
+
}
|
|
444
|
+
});
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Open Bluetooth settings
|
|
449
|
+
* @returns Promise resolving when settings are opened
|
|
450
|
+
*/
|
|
451
|
+
openSettings() {
|
|
452
|
+
return BleNitroNative.openSettings();
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
// Singleton instance
|
|
456
|
+
export const ble = BleNitro.instance();
|