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.
Files changed (354) hide show
  1. package/BleNitro.podspec +39 -0
  2. package/LICENSE +1 -1
  3. package/README.md +273 -77
  4. package/ios/BleNitroBleManager.swift +426 -458
  5. package/ios/BlePeripheralDelegate.swift +174 -0
  6. package/lib/commonjs/index.d.ts +174 -10
  7. package/lib/commonjs/index.d.ts.map +1 -1
  8. package/lib/commonjs/index.js +461 -38
  9. package/lib/commonjs/index.js.map +1 -1
  10. package/lib/commonjs/specs/NativeBleNitro.d.ts +5 -0
  11. package/lib/commonjs/specs/NativeBleNitro.d.ts.map +1 -0
  12. package/lib/commonjs/{utils/index.js → specs/NativeBleNitro.js} +6 -3
  13. package/lib/commonjs/specs/NativeBleNitro.js.map +1 -0
  14. package/lib/commonjs/specs/NativeBleNitro.nitro.d.ts +69 -0
  15. package/lib/commonjs/specs/NativeBleNitro.nitro.d.ts.map +1 -0
  16. package/lib/commonjs/specs/NativeBleNitro.nitro.js +14 -0
  17. package/lib/commonjs/specs/NativeBleNitro.nitro.js.map +1 -0
  18. package/lib/index.d.ts +174 -10
  19. package/lib/index.js +456 -16
  20. package/lib/specs/NativeBleNitro.d.ts +4 -0
  21. package/lib/specs/NativeBleNitro.js +5 -0
  22. package/lib/specs/NativeBleNitro.nitro.d.ts +68 -0
  23. package/lib/specs/NativeBleNitro.nitro.js +10 -0
  24. package/nitro.json +1 -1
  25. package/nitrogen/generated/android/BleNitro+autolinking.cmake +2 -10
  26. package/nitrogen/generated/android/BleNitroOnLoad.cpp +25 -22
  27. package/nitrogen/generated/android/c++/JBLEDevice.hpp +95 -0
  28. package/nitrogen/generated/android/c++/{JState.hpp → JBLEState.hpp} +22 -22
  29. package/nitrogen/generated/android/c++/JFunc_void_BLEDevice.hpp +82 -0
  30. package/nitrogen/generated/android/c++/JFunc_void_BLEState.hpp +76 -0
  31. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +74 -0
  32. package/nitrogen/generated/android/c++/JFunc_void_bool_std__string.hpp +75 -0
  33. package/nitrogen/generated/android/c++/JFunc_void_bool_std__string_std__string.hpp +75 -0
  34. package/nitrogen/generated/android/c++/JFunc_void_bool_std__vector_double__std__string.hpp +86 -0
  35. package/nitrogen/generated/android/c++/JFunc_void_std__string_bool_std__string.hpp +75 -0
  36. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__vector_double_.hpp +86 -0
  37. package/nitrogen/generated/android/c++/JFunc_void_std__vector_BLEDevice_.hpp +99 -0
  38. package/nitrogen/generated/android/c++/JFunc_void_std__vector_std__string_.hpp +93 -0
  39. package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.cpp +171 -0
  40. package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.hpp +83 -0
  41. package/nitrogen/generated/android/c++/JManufacturerData.hpp +73 -0
  42. package/nitrogen/generated/android/c++/JManufacturerDataEntry.hpp +68 -0
  43. package/nitrogen/generated/android/c++/JScanFilter.hpp +79 -0
  44. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BLEDevice.kt +44 -0
  45. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{LogLevel.kt → BLEState.kt} +9 -13
  46. 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
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{Func_void.kt → Func_void_BLEState.kt} +15 -14
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{Func_void_State.kt → Func_void_bool.kt} +15 -14
  49. 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
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_bool_std__string_std__string.kt +81 -0
  51. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_bool_std__vector_double__std__string.kt +81 -0
  52. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__string_bool_std__string.kt +81 -0
  53. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__string_std__vector_double_.kt +81 -0
  54. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__vector_BLEDevice_.kt +81 -0
  55. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__vector_std__string_.kt +81 -0
  56. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridNativeBleNitroSpec.kt +223 -0
  57. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{ServiceDataEntry.kt → ManufacturerData.kt} +7 -5
  58. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{ConnectionOptions.kt → ManufacturerDataEntry.kt} +10 -6
  59. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{NativeService.kt → ScanFilter.kt} +13 -7
  60. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.cpp +67 -175
  61. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.hpp +205 -867
  62. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Umbrella.hpp +20 -88
  63. package/nitrogen/generated/ios/BleNitroAutolinking.mm +3 -3
  64. package/nitrogen/generated/ios/BleNitroAutolinking.swift +4 -4
  65. package/nitrogen/generated/ios/c++/{HybridCharacteristicSpecSwift.cpp → HybridNativeBleNitroSpecSwift.cpp} +2 -2
  66. package/nitrogen/generated/ios/c++/HybridNativeBleNitroSpecSwift.hpp +205 -0
  67. package/nitrogen/generated/ios/swift/BLEDevice.swift +102 -0
  68. package/nitrogen/generated/ios/swift/{State.swift → BLEState.swift} +6 -6
  69. package/nitrogen/generated/ios/swift/Func_void.swift +1 -0
  70. package/nitrogen/generated/ios/swift/{Func_void_State.swift → Func_void_BLEDevice.swift} +12 -11
  71. package/nitrogen/generated/ios/swift/{Func_void_LogLevel.swift → Func_void_BLEState.swift} +12 -11
  72. package/nitrogen/generated/ios/swift/Func_void_bool.swift +6 -5
  73. package/nitrogen/generated/ios/swift/{Func_void_NativeDescriptor.swift → Func_void_bool_std__string.swift} +12 -11
  74. package/nitrogen/generated/ios/swift/{Func_void_std__vector_NativeCharacteristic_.swift → Func_void_bool_std__string_std__string.swift} +12 -11
  75. package/nitrogen/generated/ios/swift/Func_void_bool_std__vector_double__std__string.swift +47 -0
  76. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -0
  77. package/nitrogen/generated/ios/swift/{Func_void_NativeDevice.swift → Func_void_std__string_bool_std__string.swift} +12 -11
  78. package/nitrogen/generated/ios/swift/{Func_void_std__optional_BleRestoredState_.swift → Func_void_std__string_std__vector_double_.swift} +12 -17
  79. package/nitrogen/generated/ios/swift/{Func_void_NativeCharacteristic.swift → Func_void_std__vector_BLEDevice_.swift} +12 -11
  80. package/nitrogen/generated/ios/swift/{Func_void_std__vector_NativeDevice_.swift → Func_void_std__vector_std__string_.swift} +12 -11
  81. package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec.swift +68 -0
  82. package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec_cxx.swift +485 -0
  83. package/nitrogen/generated/ios/swift/ManufacturerData.swift +47 -0
  84. package/nitrogen/generated/ios/swift/ManufacturerDataEntry.swift +58 -0
  85. package/nitrogen/generated/ios/swift/ScanFilter.swift +69 -0
  86. package/nitrogen/generated/shared/c++/BLEDevice.hpp +90 -0
  87. package/nitrogen/generated/shared/c++/{State.hpp → BLEState.hpp} +13 -15
  88. package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.cpp +40 -0
  89. package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.hpp +93 -0
  90. package/nitrogen/generated/shared/c++/ManufacturerData.hpp +69 -0
  91. package/nitrogen/generated/shared/c++/{ServiceDataEntry.hpp → ManufacturerDataEntry.hpp} +19 -20
  92. package/nitrogen/generated/shared/c++/ScanFilter.hpp +76 -0
  93. package/package.json +9 -11
  94. package/react-native.config.js +2 -7
  95. package/src/__tests__/index.test.ts +188 -0
  96. package/src/index.ts +604 -45
  97. package/src/specs/NativeBleNitro.nitro.ts +84 -0
  98. package/src/specs/NativeBleNitro.ts +8 -0
  99. package/android/build.gradle +0 -58
  100. package/android/src/main/AndroidManifest.xml +0 -23
  101. package/android/src/main/kotlin/com/margelo/nitro/co/zyke/ble/BleNitroBleManager.kt +0 -760
  102. package/ios/BleNitro.podspec +0 -44
  103. package/ios/BleNitroModule.swift +0 -24
  104. package/lib/BleManagerCompatFactory.d.ts +0 -55
  105. package/lib/BleManagerCompatFactory.js +0 -194
  106. package/lib/BleManagerFactory.d.ts +0 -30
  107. package/lib/BleManagerFactory.js +0 -73
  108. package/lib/commonjs/BleManagerCompatFactory.d.ts +0 -56
  109. package/lib/commonjs/BleManagerCompatFactory.d.ts.map +0 -1
  110. package/lib/commonjs/BleManagerCompatFactory.js +0 -201
  111. package/lib/commonjs/BleManagerCompatFactory.js.map +0 -1
  112. package/lib/commonjs/BleManagerFactory.d.ts +0 -31
  113. package/lib/commonjs/BleManagerFactory.d.ts.map +0 -1
  114. package/lib/commonjs/BleManagerFactory.js +0 -81
  115. package/lib/commonjs/BleManagerFactory.js.map +0 -1
  116. package/lib/commonjs/compatibility/constants.d.ts +0 -50
  117. package/lib/commonjs/compatibility/constants.d.ts.map +0 -1
  118. package/lib/commonjs/compatibility/constants.js +0 -58
  119. package/lib/commonjs/compatibility/constants.js.map +0 -1
  120. package/lib/commonjs/compatibility/deviceWrapper.d.ts +0 -100
  121. package/lib/commonjs/compatibility/deviceWrapper.d.ts.map +0 -1
  122. package/lib/commonjs/compatibility/deviceWrapper.js +0 -268
  123. package/lib/commonjs/compatibility/deviceWrapper.js.map +0 -1
  124. package/lib/commonjs/compatibility/enums.d.ts +0 -39
  125. package/lib/commonjs/compatibility/enums.d.ts.map +0 -1
  126. package/lib/commonjs/compatibility/enums.js +0 -179
  127. package/lib/commonjs/compatibility/enums.js.map +0 -1
  128. package/lib/commonjs/compatibility/index.d.ts +0 -13
  129. package/lib/commonjs/compatibility/index.d.ts.map +0 -1
  130. package/lib/commonjs/compatibility/index.js +0 -41
  131. package/lib/commonjs/compatibility/index.js.map +0 -1
  132. package/lib/commonjs/compatibility/serviceData.d.ts +0 -52
  133. package/lib/commonjs/compatibility/serviceData.d.ts.map +0 -1
  134. package/lib/commonjs/compatibility/serviceData.js +0 -80
  135. package/lib/commonjs/compatibility/serviceData.js.map +0 -1
  136. package/lib/commonjs/errors/BleError.d.ts +0 -60
  137. package/lib/commonjs/errors/BleError.d.ts.map +0 -1
  138. package/lib/commonjs/errors/BleError.js +0 -125
  139. package/lib/commonjs/errors/BleError.js.map +0 -1
  140. package/lib/commonjs/specs/BleManager.nitro.d.ts +0 -45
  141. package/lib/commonjs/specs/BleManager.nitro.d.ts.map +0 -1
  142. package/lib/commonjs/specs/BleManager.nitro.js +0 -3
  143. package/lib/commonjs/specs/BleManager.nitro.js.map +0 -1
  144. package/lib/commonjs/specs/Characteristic.nitro.d.ts +0 -27
  145. package/lib/commonjs/specs/Characteristic.nitro.d.ts.map +0 -1
  146. package/lib/commonjs/specs/Characteristic.nitro.js +0 -3
  147. package/lib/commonjs/specs/Characteristic.nitro.js.map +0 -1
  148. package/lib/commonjs/specs/Descriptor.nitro.d.ts +0 -18
  149. package/lib/commonjs/specs/Descriptor.nitro.d.ts.map +0 -1
  150. package/lib/commonjs/specs/Descriptor.nitro.js +0 -3
  151. package/lib/commonjs/specs/Descriptor.nitro.js.map +0 -1
  152. package/lib/commonjs/specs/Device.nitro.d.ts +0 -38
  153. package/lib/commonjs/specs/Device.nitro.d.ts.map +0 -1
  154. package/lib/commonjs/specs/Device.nitro.js +0 -3
  155. package/lib/commonjs/specs/Device.nitro.js.map +0 -1
  156. package/lib/commonjs/specs/Service.nitro.d.ts +0 -20
  157. package/lib/commonjs/specs/Service.nitro.d.ts.map +0 -1
  158. package/lib/commonjs/specs/Service.nitro.js +0 -3
  159. package/lib/commonjs/specs/Service.nitro.js.map +0 -1
  160. package/lib/commonjs/specs/types.d.ts +0 -229
  161. package/lib/commonjs/specs/types.d.ts.map +0 -1
  162. package/lib/commonjs/specs/types.js +0 -150
  163. package/lib/commonjs/specs/types.js.map +0 -1
  164. package/lib/commonjs/utils/base64.d.ts +0 -26
  165. package/lib/commonjs/utils/base64.d.ts.map +0 -1
  166. package/lib/commonjs/utils/base64.js +0 -88
  167. package/lib/commonjs/utils/base64.js.map +0 -1
  168. package/lib/commonjs/utils/index.d.ts +0 -3
  169. package/lib/commonjs/utils/index.d.ts.map +0 -1
  170. package/lib/commonjs/utils/index.js.map +0 -1
  171. package/lib/commonjs/utils/uuid.d.ts +0 -10
  172. package/lib/commonjs/utils/uuid.d.ts.map +0 -1
  173. package/lib/commonjs/utils/uuid.js +0 -41
  174. package/lib/commonjs/utils/uuid.js.map +0 -1
  175. package/lib/compatibility/constants.d.ts +0 -49
  176. package/lib/compatibility/constants.js +0 -50
  177. package/lib/compatibility/deviceWrapper.d.ts +0 -99
  178. package/lib/compatibility/deviceWrapper.js +0 -259
  179. package/lib/compatibility/enums.d.ts +0 -38
  180. package/lib/compatibility/enums.js +0 -159
  181. package/lib/compatibility/index.d.ts +0 -12
  182. package/lib/compatibility/index.js +0 -12
  183. package/lib/compatibility/serviceData.d.ts +0 -51
  184. package/lib/compatibility/serviceData.js +0 -70
  185. package/lib/errors/BleError.d.ts +0 -59
  186. package/lib/errors/BleError.js +0 -120
  187. package/lib/specs/BleManager.nitro.d.ts +0 -44
  188. package/lib/specs/BleManager.nitro.js +0 -1
  189. package/lib/specs/Characteristic.nitro.d.ts +0 -26
  190. package/lib/specs/Characteristic.nitro.js +0 -1
  191. package/lib/specs/Descriptor.nitro.d.ts +0 -17
  192. package/lib/specs/Descriptor.nitro.js +0 -1
  193. package/lib/specs/Device.nitro.d.ts +0 -37
  194. package/lib/specs/Device.nitro.js +0 -1
  195. package/lib/specs/Service.nitro.d.ts +0 -19
  196. package/lib/specs/Service.nitro.js +0 -1
  197. package/lib/specs/types.d.ts +0 -228
  198. package/lib/specs/types.js +0 -146
  199. package/lib/utils/base64.d.ts +0 -25
  200. package/lib/utils/base64.js +0 -80
  201. package/lib/utils/index.d.ts +0 -2
  202. package/lib/utils/index.js +0 -2
  203. package/lib/utils/uuid.d.ts +0 -9
  204. package/lib/utils/uuid.js +0 -37
  205. package/nitrogen/generated/android/c++/JBleATTErrorCode.hpp +0 -107
  206. package/nitrogen/generated/android/c++/JBleAndroidErrorCode.hpp +0 -101
  207. package/nitrogen/generated/android/c++/JBleErrorCode.hpp +0 -170
  208. package/nitrogen/generated/android/c++/JBleIOSErrorCode.hpp +0 -92
  209. package/nitrogen/generated/android/c++/JBleManagerNitroOptions.hpp +0 -54
  210. package/nitrogen/generated/android/c++/JBleRestoredState.hpp +0 -76
  211. package/nitrogen/generated/android/c++/JCharacteristicSubscriptionType.hpp +0 -59
  212. package/nitrogen/generated/android/c++/JConnectionOptions.hpp +0 -61
  213. package/nitrogen/generated/android/c++/JConnectionPriority.hpp +0 -62
  214. package/nitrogen/generated/android/c++/JFunc_void.hpp +0 -74
  215. package/nitrogen/generated/android/c++/JFunc_void_State.hpp +0 -76
  216. package/nitrogen/generated/android/c++/JFunc_void_std__optional_NativeBleError__std__optional_NativeCharacteristic_.hpp +0 -88
  217. package/nitrogen/generated/android/c++/JFunc_void_std__optional_NativeBleError__std__optional_NativeDevice_.hpp +0 -91
  218. package/nitrogen/generated/android/c++/JHybridBleManagerSpec.cpp +0 -653
  219. package/nitrogen/generated/android/c++/JHybridBleManagerSpec.hpp +0 -92
  220. package/nitrogen/generated/android/c++/JHybridCharacteristicSpec.cpp +0 -253
  221. package/nitrogen/generated/android/c++/JHybridCharacteristicSpec.hpp +0 -79
  222. package/nitrogen/generated/android/c++/JHybridDescriptorSpec.cpp +0 -115
  223. package/nitrogen/generated/android/c++/JHybridDescriptorSpec.hpp +0 -70
  224. package/nitrogen/generated/android/c++/JHybridDeviceSpec.cpp +0 -476
  225. package/nitrogen/generated/android/c++/JHybridDeviceSpec.hpp +0 -90
  226. package/nitrogen/generated/android/c++/JHybridServiceSpec.cpp +0 -232
  227. package/nitrogen/generated/android/c++/JHybridServiceSpec.hpp +0 -72
  228. package/nitrogen/generated/android/c++/JLogLevel.hpp +0 -71
  229. package/nitrogen/generated/android/c++/JNativeBleError.hpp +0 -98
  230. package/nitrogen/generated/android/c++/JNativeCharacteristic.hpp +0 -98
  231. package/nitrogen/generated/android/c++/JNativeDescriptor.hpp +0 -82
  232. package/nitrogen/generated/android/c++/JNativeDevice.hpp +0 -173
  233. package/nitrogen/generated/android/c++/JNativeService.hpp +0 -65
  234. package/nitrogen/generated/android/c++/JScanCallbackType.hpp +0 -62
  235. package/nitrogen/generated/android/c++/JScanMode.hpp +0 -65
  236. package/nitrogen/generated/android/c++/JScanOptions.hpp +0 -69
  237. package/nitrogen/generated/android/c++/JServiceDataEntry.hpp +0 -57
  238. package/nitrogen/generated/android/c++/JSubscription.hpp +0 -64
  239. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleATTErrorCode.kt +0 -41
  240. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleAndroidErrorCode.kt +0 -39
  241. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleErrorCode.kt +0 -62
  242. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleIOSErrorCode.kt +0 -36
  243. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleManagerNitroOptions.kt +0 -26
  244. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleRestoredState.kt +0 -26
  245. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/CharacteristicSubscriptionType.kt +0 -25
  246. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ConnectionPriority.kt +0 -26
  247. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridBleManagerSpec.kt +0 -192
  248. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridCharacteristicSpec.kt +0 -127
  249. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridDescriptorSpec.kt +0 -86
  250. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridDeviceSpec.kt +0 -176
  251. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridServiceSpec.kt +0 -99
  252. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeBleError.kt +0 -35
  253. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeCharacteristic.kt +0 -37
  254. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeDescriptor.kt +0 -33
  255. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeDevice.kt +0 -38
  256. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ScanCallbackType.kt +0 -26
  257. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ScanMode.kt +0 -27
  258. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ScanOptions.kt +0 -29
  259. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/State.kt +0 -29
  260. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Subscription.kt +0 -30
  261. package/nitrogen/generated/ios/c++/HybridBleManagerSpecSwift.cpp +0 -11
  262. package/nitrogen/generated/ios/c++/HybridBleManagerSpecSwift.hpp +0 -377
  263. package/nitrogen/generated/ios/c++/HybridCharacteristicSpecSwift.hpp +0 -192
  264. package/nitrogen/generated/ios/c++/HybridDescriptorSpecSwift.cpp +0 -11
  265. package/nitrogen/generated/ios/c++/HybridDescriptorSpecSwift.hpp +0 -112
  266. package/nitrogen/generated/ios/c++/HybridDeviceSpecSwift.cpp +0 -11
  267. package/nitrogen/generated/ios/c++/HybridDeviceSpecSwift.hpp +0 -294
  268. package/nitrogen/generated/ios/c++/HybridServiceSpecSwift.cpp +0 -11
  269. package/nitrogen/generated/ios/c++/HybridServiceSpecSwift.hpp +0 -170
  270. package/nitrogen/generated/ios/swift/BleATTErrorCode.swift +0 -104
  271. package/nitrogen/generated/ios/swift/BleAndroidErrorCode.swift +0 -96
  272. package/nitrogen/generated/ios/swift/BleErrorCode.swift +0 -188
  273. package/nitrogen/generated/ios/swift/BleIOSErrorCode.swift +0 -84
  274. package/nitrogen/generated/ios/swift/BleManagerNitroOptions.swift +0 -53
  275. package/nitrogen/generated/ios/swift/BleRestoredState.swift +0 -47
  276. package/nitrogen/generated/ios/swift/CharacteristicSubscriptionType.swift +0 -40
  277. package/nitrogen/generated/ios/swift/ConnectionOptions.swift +0 -57
  278. package/nitrogen/generated/ios/swift/ConnectionPriority.swift +0 -44
  279. package/nitrogen/generated/ios/swift/Func_void_std__optional_NativeBleError__std__optional_NativeCharacteristic_.swift +0 -58
  280. package/nitrogen/generated/ios/swift/Func_void_std__optional_NativeBleError__std__optional_NativeDevice_.swift +0 -58
  281. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_margelo__nitro__co__zyke__ble__HybridCharacteristicSpec_.swift +0 -50
  282. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_margelo__nitro__co__zyke__ble__HybridDescriptorSpec_.swift +0 -50
  283. package/nitrogen/generated/ios/swift/Func_void_std__vector_NativeDescriptor_.swift +0 -46
  284. package/nitrogen/generated/ios/swift/Func_void_std__vector_NativeService_.swift +0 -46
  285. package/nitrogen/generated/ios/swift/HybridBleManagerSpec.swift +0 -78
  286. package/nitrogen/generated/ios/swift/HybridBleManagerSpec_cxx.swift +0 -852
  287. package/nitrogen/generated/ios/swift/HybridCharacteristicSpec.swift +0 -65
  288. package/nitrogen/generated/ios/swift/HybridCharacteristicSpec_cxx.swift +0 -384
  289. package/nitrogen/generated/ios/swift/HybridDescriptorSpec.swift +0 -56
  290. package/nitrogen/generated/ios/swift/HybridDescriptorSpec_cxx.swift +0 -218
  291. package/nitrogen/generated/ios/swift/HybridDeviceSpec.swift +0 -76
  292. package/nitrogen/generated/ios/swift/HybridDeviceSpec_cxx.swift +0 -702
  293. package/nitrogen/generated/ios/swift/HybridServiceSpec.swift +0 -58
  294. package/nitrogen/generated/ios/swift/HybridServiceSpec_cxx.swift +0 -338
  295. package/nitrogen/generated/ios/swift/LogLevel.swift +0 -56
  296. package/nitrogen/generated/ios/swift/NativeBleError.swift +0 -278
  297. package/nitrogen/generated/ios/swift/NativeCharacteristic.swift +0 -174
  298. package/nitrogen/generated/ios/swift/NativeDescriptor.swift +0 -130
  299. package/nitrogen/generated/ios/swift/NativeDevice.swift +0 -377
  300. package/nitrogen/generated/ios/swift/NativeService.swift +0 -68
  301. package/nitrogen/generated/ios/swift/ScanCallbackType.swift +0 -44
  302. package/nitrogen/generated/ios/swift/ScanMode.swift +0 -48
  303. package/nitrogen/generated/ios/swift/ScanOptions.swift +0 -116
  304. package/nitrogen/generated/ios/swift/ServiceDataEntry.swift +0 -46
  305. package/nitrogen/generated/ios/swift/Subscription.swift +0 -46
  306. package/nitrogen/generated/shared/c++/BleATTErrorCode.hpp +0 -80
  307. package/nitrogen/generated/shared/c++/BleAndroidErrorCode.hpp +0 -78
  308. package/nitrogen/generated/shared/c++/BleErrorCode.hpp +0 -101
  309. package/nitrogen/generated/shared/c++/BleIOSErrorCode.hpp +0 -75
  310. package/nitrogen/generated/shared/c++/BleManagerNitroOptions.hpp +0 -70
  311. package/nitrogen/generated/shared/c++/BleRestoredState.hpp +0 -71
  312. package/nitrogen/generated/shared/c++/CharacteristicSubscriptionType.hpp +0 -64
  313. package/nitrogen/generated/shared/c++/ConnectionOptions.hpp +0 -77
  314. package/nitrogen/generated/shared/c++/ConnectionPriority.hpp +0 -65
  315. package/nitrogen/generated/shared/c++/HybridBleManagerSpec.cpp +0 -51
  316. package/nitrogen/generated/shared/c++/HybridBleManagerSpec.hpp +0 -137
  317. package/nitrogen/generated/shared/c++/HybridCharacteristicSpec.cpp +0 -39
  318. package/nitrogen/generated/shared/c++/HybridCharacteristicSpec.hpp +0 -101
  319. package/nitrogen/generated/shared/c++/HybridDescriptorSpec.cpp +0 -30
  320. package/nitrogen/generated/shared/c++/HybridDescriptorSpec.hpp +0 -75
  321. package/nitrogen/generated/shared/c++/HybridDeviceSpec.cpp +0 -50
  322. package/nitrogen/generated/shared/c++/HybridDeviceSpec.hpp +0 -123
  323. package/nitrogen/generated/shared/c++/HybridServiceSpec.cpp +0 -32
  324. package/nitrogen/generated/shared/c++/HybridServiceSpec.hpp +0 -90
  325. package/nitrogen/generated/shared/c++/LogLevel.hpp +0 -68
  326. package/nitrogen/generated/shared/c++/NativeBleError.hpp +0 -117
  327. package/nitrogen/generated/shared/c++/NativeCharacteristic.hpp +0 -114
  328. package/nitrogen/generated/shared/c++/NativeDescriptor.hpp +0 -98
  329. package/nitrogen/generated/shared/c++/NativeDevice.hpp +0 -121
  330. package/nitrogen/generated/shared/c++/NativeService.hpp +0 -81
  331. package/nitrogen/generated/shared/c++/ScanCallbackType.hpp +0 -65
  332. package/nitrogen/generated/shared/c++/ScanMode.hpp +0 -66
  333. package/nitrogen/generated/shared/c++/ScanOptions.hpp +0 -86
  334. package/nitrogen/generated/shared/c++/Subscription.hpp +0 -69
  335. package/src/BleManagerCompatFactory.ts +0 -371
  336. package/src/BleManagerFactory.ts +0 -93
  337. package/src/__tests__/BleManager.test.ts +0 -327
  338. package/src/__tests__/compatibility/deviceWrapper.test.ts +0 -563
  339. package/src/__tests__/compatibility/enums.test.ts +0 -264
  340. package/src/compatibility/constants.ts +0 -71
  341. package/src/compatibility/deviceWrapper.ts +0 -427
  342. package/src/compatibility/enums.ts +0 -190
  343. package/src/compatibility/index.ts +0 -32
  344. package/src/compatibility/serviceData.ts +0 -85
  345. package/src/errors/BleError.ts +0 -193
  346. package/src/specs/BleManager.nitro.ts +0 -165
  347. package/src/specs/Characteristic.nitro.ts +0 -61
  348. package/src/specs/Descriptor.nitro.ts +0 -28
  349. package/src/specs/Device.nitro.ts +0 -104
  350. package/src/specs/Service.nitro.ts +0 -64
  351. package/src/specs/types.ts +0 -259
  352. package/src/utils/base64.ts +0 -80
  353. package/src/utils/index.ts +0 -2
  354. package/src/utils/uuid.ts +0 -45
package/lib/index.d.ts CHANGED
@@ -1,10 +1,174 @@
1
- export * from './compatibility/constants';
2
- export * from './utils/index';
3
- export { BleManagerCompat as BleManager, createBleManagerCompat as createBleManager } from './BleManagerCompatFactory';
4
- export { getCustomErrorMessage, getStoredCallbacks } from './BleManagerFactory';
5
- export * from './errors/BleError';
6
- export { DeviceWrapper as Device } from './compatibility/deviceWrapper';
7
- export type { BleManagerOptions, ScanOptions, ConnectionOptions, NativeBleError, NativeDevice, NativeService, NativeCharacteristic, NativeDescriptor, Subscription } from './specs/types';
8
- export { State, LogLevel } from './compatibility/enums';
9
- export type { CharacteristicSubscriptionType, RefreshGattMoment } from './compatibility/enums';
10
- export { fullUUID } from './utils/uuid';
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
- // Export compatibility layer types and constants
2
- export * from './compatibility/constants';
3
- // Export utility functions
4
- export * from './utils/index';
5
- // Export the main BleManager instance with compatibility wrapper
6
- export { BleManagerCompat as BleManager, createBleManagerCompat as createBleManager } from './BleManagerCompatFactory';
7
- // Export BleManager factory utilities (for internal use by error handling)
8
- export { getCustomErrorMessage, getStoredCallbacks } from './BleManagerFactory';
9
- // Export error handling utilities
10
- export * from './errors/BleError';
11
- // Export device wrapper for compatibility
12
- export { DeviceWrapper as Device } from './compatibility/deviceWrapper';
13
- // Export react-native-ble-plx compatible enum types (drop-in replacement)
14
- export { State, LogLevel } from './compatibility/enums';
15
- // Re-export react-native-ble-plx compatible API
16
- export { fullUUID } from './utils/uuid';
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();
@@ -0,0 +1,4 @@
1
+ import type { NativeBleNitro } from './NativeBleNitro.nitro';
2
+ declare const NativeBleNitroImpl: NativeBleNitro;
3
+ export default NativeBleNitroImpl;
4
+ export * from './NativeBleNitro.nitro';
@@ -0,0 +1,5 @@
1
+ import { NitroModules } from 'react-native-nitro-modules';
2
+ // Export the native implementation
3
+ const NativeBleNitroImpl = NitroModules.createHybridObject('NativeBleNitro');
4
+ export default NativeBleNitroImpl;
5
+ export * from './NativeBleNitro.nitro';