react-native-ble-nitro 1.0.0-beta.8 → 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 +425 -464
  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
@@ -0,0 +1,39 @@
1
+ require "json"
2
+
3
+ package = JSON.parse(File.read(File.join(__dir__, "package.json")))
4
+
5
+ Pod::Spec.new do |s|
6
+ s.name = "BleNitro"
7
+ s.version = package["version"]
8
+ s.summary = package["description"]
9
+ s.homepage = package["homepage"]
10
+ s.license = package["license"]
11
+ s.authors = package["author"]
12
+
13
+ s.platforms = { :ios => min_ios_version_supported, :visionos => 1.0 }
14
+ s.source = { :git => "https://github.com/zykeco/react-native-ble-nitro.git", :tag => "#{s.version}" }
15
+
16
+ s.source_files = [
17
+ # Implementation (Swift)
18
+ "ios/**/*.{swift}",
19
+ # Autolinking/Registration (Objective-C++)
20
+ "ios/**/*.{m,mm}",
21
+ # Implementation (C++ objects)
22
+ "cpp/**/*.{hpp,cpp}",
23
+ ]
24
+
25
+ # iOS frameworks
26
+ s.frameworks = "CoreBluetooth"
27
+
28
+ s.user_target_xcconfig = {
29
+ 'OTHER_LDFLAGS' => '-lc++'
30
+ }
31
+
32
+ # Apply Nitro autolinking
33
+ load 'nitrogen/generated/ios/BleNitro+autolinking.rb'
34
+ add_nitrogen_files(s)
35
+
36
+ s.dependency 'React-jsi'
37
+ s.dependency 'React-callinvoker'
38
+ install_modules_dependencies(s)
39
+ end
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 Zyke (https://zyke.co)
3
+ Copyright (c) 2025 Zyke (https://zyke.co) presented by Phil Schaffarzyk
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -3,20 +3,20 @@
3
3
  [![npm version](https://badge.fury.io/js/react-native-ble-nitro.svg)](https://badge.fury.io/js/react-native-ble-nitro)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
5
 
6
- A high-performance React Native BLE library built on [Nitro Modules](https://nitro.margelo.com/) - **drop-in replacement** for `react-native-ble-plx` with significantly better performance and stability.
6
+ A high-performance React Native BLE library built on [Nitro Modules](https://nitro.margelo.com/).
7
7
 
8
8
  Originally developed for [Zyke Band](https://zykeband.com) - a fitness and health tracker created by a small team.
9
9
 
10
10
  ## ✨ Features
11
11
 
12
12
  - 🚀 **High Performance**: Built on Nitro Modules with JSI for zero-overhead native communication
13
- - 🔄 **100% Compatible**: Drop-in replacement for `react-native-ble-plx@3.5.0`
14
- - 📱 **Cross-Platform**: iOS and Android support with platform-specific optimizations
13
+ - 📱 **iOS Support**: Complete iOS implementation with Swift and Core Bluetooth
14
+ - 🤖 **Android Support**: Currently in development - iOS fully functional
15
15
  - 🎯 **Type-Safe**: Full TypeScript support with comprehensive type definitions
16
16
  - 🔧 **Expo Ready**: Built-in Expo config plugin for easy setup
17
17
  - 🏗️ **New Architecture**: Full support for React Native's new architecture
18
18
  - ⚡ **Zero Bridge**: Direct JSI communication eliminates bridge bottlenecks
19
- - 🛡️ **Reliable**: Swift/Kotlin native implementations for maximum stability
19
+ - 🛡️ **Reliable**: Swift native implementation for maximum stability
20
20
 
21
21
  ## 🚀 Quick Start
22
22
 
@@ -66,55 +66,286 @@ npx pod-install # iOS only
66
66
 
67
67
  ## 📖 Usage
68
68
 
69
- The API is 100% identical to `react-native-ble-plx`:
69
+ > **📱 Platform Support**: Currently iOS only. Android implementation is in development.
70
+
71
+ ### Basic Setup
70
72
 
71
73
  ```typescript
72
- import { BleManager, State } from 'react-native-ble-nitro';
74
+ import { BleNitro, BLEState, type BLEDevice } from 'react-native-ble-nitro';
73
75
 
74
- const manager = new BleManager();
76
+ // Get the singleton instance
77
+ const ble = BleNitro.instance();
78
+ ```
75
79
 
76
- // Check Bluetooth state
77
- const state = await manager.state();
78
- if (state === State.PoweredOn) {
79
- console.log('Bluetooth is ready!');
80
- }
80
+ ### Complete API Reference
81
81
 
82
- // Scan for devices
83
- manager.startDeviceScan(null, null, (error, device) => {
84
- if (error) {
85
- console.error(error);
86
- return;
87
- }
88
-
89
- console.log('Found device:', device.name || 'Unknown');
90
-
91
- if (device.name === 'MyDevice') {
92
- manager.stopDeviceScan();
93
-
94
- // Connect to device
95
- device.connect()
96
- .then(() => device.discoverAllServicesAndCharacteristics())
97
- .then(() => {
98
- // Your BLE operations here
99
- console.log('Connected and ready!');
100
- })
101
- .catch(console.error);
82
+ #### 🔌 Bluetooth State Management
83
+
84
+ ```typescript
85
+ // Check if Bluetooth is enabled
86
+ const isEnabled = await ble.isBluetoothEnabled();
87
+
88
+ // Get current Bluetooth state
89
+ const state = await ble.state();
90
+ // Returns: BLEState.PoweredOn, BLEState.PoweredOff, etc.
91
+
92
+ // Request to enable Bluetooth (Android only)
93
+ await ble.requestBluetoothEnable();
94
+
95
+ // Subscribe to state changes
96
+ const subscription = await ble.subscribeToStateChange((state) => {
97
+ console.log('Bluetooth state changed:', state);
98
+ }, true); // true = emit initial state
99
+
100
+ // Unsubscribe from state changes
101
+ await subscription.remove();
102
+
103
+ // Open Bluetooth settings
104
+ await ble.openSettings();
105
+ ```
106
+
107
+ #### 🔍 Device Scanning
108
+
109
+ ```typescript
110
+ // Start scanning for devices
111
+ await ble.startScan({
112
+ serviceUUIDs: ['180d'], // Optional: filter by service UUIDs
113
+ rssiThreshold: -80, // Optional: minimum signal strength
114
+ allowDuplicates: false // Optional: allow duplicate discoveries
115
+ }, (device) => {
116
+ console.log('Found device:', device.name, device.id);
117
+ });
118
+
119
+ // Stop scanning
120
+ await ble.stopScan();
121
+
122
+ // Check if currently scanning
123
+ const isScanning = await ble.isScanning();
124
+
125
+ // Get already connected devices
126
+ const connectedDevices = await ble.getConnectedDevices();
127
+ ```
128
+
129
+ #### 🔗 Device Connection
130
+
131
+ ```typescript
132
+ // Connect to a device with disconnect event handling
133
+ const deviceId = await ble.connect(deviceId, (deviceId, interrupted, error) => {
134
+ if (interrupted) {
135
+ console.log('Connection interrupted:', error);
136
+ // Handle unexpected disconnection (out of range, etc.)
137
+ } else {
138
+ console.log('Disconnected intentionally');
139
+ // Handle normal disconnection
102
140
  }
103
141
  });
142
+
143
+ // Connect without disconnect callback
144
+ const deviceId = await ble.connect(deviceId);
145
+
146
+ // Disconnect from a device
147
+ await ble.disconnect(deviceId);
148
+
149
+ // Check connection status
150
+ const isConnected = await ble.isConnected(deviceId);
151
+ ```
152
+
153
+ #### 🔧 Service Discovery
154
+
155
+ ```typescript
156
+ // Discover all services for a device
157
+ await ble.discoverServices(deviceId);
158
+
159
+ // Get discovered services
160
+ const services = await ble.getServices(deviceId);
161
+ // Returns: ['0000180d-0000-1000-8000-00805f9b34fb', '0000180f-0000-1000-8000-00805f9b34fb', ...]
162
+ // Always returns full 128-bit UUIDs
163
+
164
+ // Get characteristics for a service
165
+ const characteristics = await ble.getCharacteristics(deviceId, serviceUUID);
166
+ // Returns: ['00002a37-0000-1000-8000-00805f9b34fb', '00002a38-0000-1000-8000-00805f9b34fb', ...]
167
+ // Always returns full 128-bit UUIDs
168
+
169
+ // Note: You can use either short or long form UUIDs as input:
170
+ const characteristics1 = await ble.getCharacteristics(deviceId, '180d'); // Short form
171
+ const characteristics2 = await ble.getCharacteristics(deviceId, '0000180d-0000-1000-8000-00805f9b34fb'); // Long form
172
+ // Both work identically - conversion handled automatically
173
+ ```
174
+
175
+ #### 📖 Reading Characteristics
176
+
177
+ ```typescript
178
+ // Read a characteristic value
179
+ const data = await ble.readCharacteristic(deviceId, serviceUUID, characteristicUUID);
180
+ // Returns: number[] - array of bytes
181
+
182
+ // Example: Reading battery level
183
+ const batteryData = await ble.readCharacteristic(deviceId, '180f', '2a19');
184
+ const batteryLevel = batteryData[0]; // First byte is battery percentage
185
+ console.log('Battery level:', batteryLevel + '%');
186
+ ```
187
+
188
+ #### ✍️ Writing Characteristics
189
+
190
+ ```typescript
191
+ // Write to a characteristic with response
192
+ await ble.writeCharacteristic(
193
+ deviceId,
194
+ serviceUUID,
195
+ characteristicUUID,
196
+ [0x01, 0x02, 0x03], // Data as byte array
197
+ true // withResponse = true (default)
198
+ );
199
+
200
+ // Write without response (faster, no confirmation)
201
+ await ble.writeCharacteristic(
202
+ deviceId,
203
+ serviceUUID,
204
+ characteristicUUID,
205
+ [0x01, 0x02, 0x03],
206
+ false // withResponse = false
207
+ );
208
+ ```
209
+
210
+ #### 📡 Characteristic Notifications
211
+
212
+ ```typescript
213
+ // Subscribe to characteristic notifications
214
+ const subscription = await ble.subscribeToCharacteristic(
215
+ deviceId,
216
+ serviceUUID,
217
+ characteristicUUID,
218
+ (characteristicId, data) => {
219
+ console.log('Received notification:', data);
220
+ // Handle incoming data
221
+ }
222
+ );
223
+
224
+ // Unsubscribe from notifications
225
+ await subscription.remove();
226
+
227
+ // Or unsubscribe directly
228
+ await ble.unsubscribeFromCharacteristic(deviceId, serviceUUID, characteristicUUID);
229
+ ```
230
+
231
+ ### Real-World Examples
232
+
233
+ #### Heart Rate Monitor
234
+
235
+ ```typescript
236
+ const HEART_RATE_SERVICE = '180d';
237
+ const HEART_RATE_MEASUREMENT = '2a37';
238
+
239
+ // Connect and subscribe to heart rate
240
+ const deviceId = await ble.connect(heartRateDeviceId);
241
+ await ble.discoverServices(deviceId);
242
+
243
+ const subscription = await ble.subscribeToCharacteristic(
244
+ deviceId,
245
+ HEART_RATE_SERVICE,
246
+ HEART_RATE_MEASUREMENT,
247
+ (_, data) => {
248
+ const heartRate = data[1]; // Second byte contains BPM
249
+ console.log('Heart rate:', heartRate, 'BPM');
250
+ }
251
+ );
252
+ ```
253
+
254
+ #### Battery Level Reading
255
+
256
+ ```typescript
257
+ const BATTERY_SERVICE = '180f';
258
+ const BATTERY_LEVEL_CHARACTERISTIC = '2a19';
259
+
260
+ const batteryData = await ble.readCharacteristic(
261
+ deviceId,
262
+ BATTERY_SERVICE,
263
+ BATTERY_LEVEL_CHARACTERISTIC
264
+ );
265
+ const batteryPercentage = batteryData[0];
266
+ console.log('Battery:', batteryPercentage + '%');
267
+ ```
268
+
269
+ #### Custom Device Control
270
+
271
+ ```typescript
272
+ const CUSTOM_SERVICE = 'your-custom-service-uuid';
273
+ const COMMAND_CHARACTERISTIC = 'your-command-characteristic-uuid';
274
+
275
+ // Send a custom command
276
+ const enableLedCommand = [0x01, 0x1f, 0x01]; // Your protocol
277
+ await ble.writeCharacteristic(
278
+ deviceId,
279
+ CUSTOM_SERVICE,
280
+ COMMAND_CHARACTERISTIC,
281
+ enableLedCommand
282
+ );
104
283
  ```
105
284
 
106
- ## 🔄 Migration from react-native-ble-plx
285
+ ### UUID Handling
286
+
287
+ **🔧 Automatic UUID Conversion**
107
288
 
108
- **Zero code changes required!** Simply replace the import:
289
+ This library automatically handles UUID conversion between 16-bit, 32-bit, and 128-bit formats:
109
290
 
110
291
  ```typescript
111
- // Before
112
- import { BleManager, Device, State } from 'react-native-ble-plx';
292
+ // All input methods accept both short and long form UUIDs:
293
+ await ble.readCharacteristic(deviceId, '180d', '2a19'); // Short form
294
+ await ble.readCharacteristic(deviceId, '0000180d-0000-1000-8000-00805f9b34fb', '00002a19-0000-1000-8000-00805f9b34fb'); // Long form ✅
113
295
 
114
- // After
115
- import { BleManager, Device, State } from 'react-native-ble-nitro';
296
+ // All output methods return full 128-bit UUIDs:
297
+ const services = await ble.getServices(deviceId);
298
+ // Always returns: ['0000180d-0000-1000-8000-00805f9b34fb', ...]
299
+
300
+ // Conversion happens automatically on the native side for maximum performance
301
+ ```
302
+
303
+ ### Utility Functions
304
+
305
+ ```typescript
306
+ // Manually normalize UUIDs to full 128-bit format (rarely needed)
307
+ const fullUUID = BleNitro.normalizeGattUUID('180d');
308
+ // Returns: '0000180d-0000-1000-8000-00805f9b34fb'
116
309
 
117
- // Everything else stays exactly the same!
310
+ // Normalize multiple UUIDs
311
+ const fullUUIDs = BleNitro.normalizeGattUUIDs(['180d', '180f']);
312
+ // Returns: ['0000180d-0000-1000-8000-00805f9b34fb', '0000180f-0000-1000-8000-00805f9b34fb']
313
+ ```
314
+
315
+ ### TypeScript Types
316
+
317
+ ```typescript
318
+ interface BLEDevice {
319
+ id: string;
320
+ name: string;
321
+ rssi: number;
322
+ manufacturerData: ManufacturerData;
323
+ serviceUUIDs: string[];
324
+ isConnectable: boolean;
325
+ }
326
+
327
+ interface ScanFilter {
328
+ serviceUUIDs?: string[];
329
+ rssiThreshold?: number;
330
+ allowDuplicates?: boolean;
331
+ }
332
+
333
+ interface Subscription {
334
+ remove: () => Promise<void>;
335
+ }
336
+
337
+ enum BLEState {
338
+ Unknown = 'Unknown',
339
+ Resetting = 'Resetting',
340
+ Unsupported = 'Unsupported',
341
+ Unauthorized = 'Unauthorized',
342
+ PoweredOff = 'PoweredOff',
343
+ PoweredOn = 'PoweredOn'
344
+ }
345
+
346
+ // Callback types
347
+ type DisconnectEventCallback = (deviceId: string, interrupted: boolean, error: string) => void;
348
+ type CharacteristicUpdateCallback = (characteristicId: string, data: number[]) => void;
118
349
  ```
119
350
 
120
351
  ## 🏗️ Architecture
@@ -130,9 +361,9 @@ Built on [Nitro Modules](https://nitro.margelo.com/) for:
130
361
 
131
362
  ### Platform Implementation
132
363
 
133
- - **iOS**: Native Swift implementation using Core Bluetooth
134
- - **Android**: Native Kotlin implementation using Android BLE APIs
135
- - **Shared C++**: Common logic and type definitions
364
+ - **iOS**: Complete Swift implementation using Core Bluetooth
365
+ - **Android**: 🚧 Kotlin implementation in development using Android BLE APIs
366
+ - **Shared C++**: Common logic and type definitions via Nitro Modules
136
367
 
137
368
  ### Compatibility Layer
138
369
 
@@ -144,29 +375,6 @@ While maintaining 100% API compatibility, some internal changes were needed for
144
375
 
145
376
  See [API_DIFFERENCES.md](./API_DIFFERENCES.md) for technical details.
146
377
 
147
- ## 📋 API Reference
148
-
149
- The API is identical to `react-native-ble-plx`. Key classes and methods:
150
-
151
- ### BleManager
152
-
153
- - `new BleManager(options?)`: Create manager instance
154
- - `state()`: Get current Bluetooth state
155
- - `startDeviceScan()`: Start scanning for devices
156
- - `connectToDevice()`: Connect to a BLE device
157
- - `readCharacteristicForDevice()`: Read characteristic value
158
- - `writeCharacteristicWithResponseForDevice()`: Write with response
159
- - `monitorCharacteristicForDevice()`: Monitor value changes
160
-
161
- ### Device
162
-
163
- - `connect()`: Connect to this device
164
- - `discoverAllServicesAndCharacteristics()`: Discover GATT structure
165
- - `readCharacteristicForService()`: Read characteristic
166
- - `monitorCharacteristicForService()`: Monitor characteristic
167
-
168
- For complete API documentation, see the [react-native-ble-plx docs](https://github.com/dotintent/react-native-ble-plx) - everything applies to this library too!
169
-
170
378
  ## ⚙️ Configuration
171
379
 
172
380
  ### Expo Plugin Options
@@ -241,7 +449,6 @@ npm run lint
241
449
  react-native-ble-nitro/
242
450
  ├── src/
243
451
  │ ├── specs/ # Nitro module TypeScript specs
244
- │ ├── compatibility/ # react-native-ble-plx compatibility layer
245
452
  │ ├── utils/ # Utility functions (UUID, Base64)
246
453
  │ └── errors/ # BLE error handling
247
454
  ├── nitrogen/generated/ # Generated native code (Nitro)
@@ -269,20 +476,9 @@ We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for gu
269
476
 
270
477
  MIT License - see [LICENSE](./LICENSE) file.
271
478
 
272
- ## Comparison with react-native-ble-plx
273
-
274
- | Feature | react-native-ble-plx | react-native-ble-nitro |
275
- |---------|---------------------|------------------------|
276
- | **Performance** | React Native Bridge | Direct JSI ⚡ |
277
- | **Type Safety** | TypeScript definitions | Compile-time validation ✅ |
278
- | **Memory Usage** | Higher overhead | Optimized 🎯 |
279
- | **New Architecture** | Limited support | Full support ✅ |
280
- | **API Compatibility** | Original | 100% Compatible ✅ |
281
-
282
479
  ## 🙏 Acknowledgments
283
480
 
284
481
  - [Zyke Band](https://zykeband.com) - The fitness tracker project that inspired this library
285
- - [react-native-ble-plx](https://github.com/dotintent/react-native-ble-plx) - Original library and API design
286
482
  - [Marc Rousavy](https://github.com/mrousavy) - Creator of Nitro Modules and CEO of Margelo
287
483
  - [Nitro Modules](https://nitro.margelo.com/) - High-performance native module framework
288
484
  - [Margelo](https://margelo.com/) - Nitro Modules creators