react-native-ble-nitro 1.0.0-beta.9 → 1.1.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 (349) hide show
  1. package/BleNitro.podspec +39 -0
  2. package/LICENSE +1 -1
  3. package/README.md +277 -77
  4. package/ios/BleNitroBleManager.swift +457 -455
  5. package/ios/BlePeripheralDelegate.swift +174 -0
  6. package/lib/commonjs/index.d.ts +176 -10
  7. package/lib/commonjs/index.d.ts.map +1 -1
  8. package/lib/commonjs/index.js +398 -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 +72 -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 +176 -10
  19. package/lib/index.js +393 -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 +71 -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 +19 -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_std__string.hpp +75 -0
  32. package/nitrogen/generated/android/c++/JFunc_void_bool_std__string_std__string.hpp +75 -0
  33. package/nitrogen/generated/android/c++/JFunc_void_bool_std__vector_double__std__string.hpp +86 -0
  34. package/nitrogen/generated/android/c++/JFunc_void_std__string_bool_std__string.hpp +75 -0
  35. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__vector_double_.hpp +86 -0
  36. package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.cpp +212 -0
  37. package/nitrogen/generated/android/c++/JHybridNativeBleNitroSpec.hpp +82 -0
  38. package/nitrogen/generated/android/c++/JManufacturerData.hpp +73 -0
  39. package/nitrogen/generated/android/c++/JManufacturerDataEntry.hpp +68 -0
  40. package/nitrogen/generated/android/c++/JOperationResult.hpp +58 -0
  41. package/nitrogen/generated/android/c++/JScanFilter.hpp +79 -0
  42. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BLEDevice.kt +44 -0
  43. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{LogLevel.kt → BLEState.kt} +9 -13
  44. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{Func_void_State.kt → Func_void_BLEDevice.kt} +15 -14
  45. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{Func_void.kt → Func_void_BLEState.kt} +15 -14
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{Func_void_std__optional_NativeBleError__std__optional_NativeDevice_.kt → Func_void_bool_std__string.kt} +15 -14
  47. 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_std__string.kt} +15 -14
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_bool_std__vector_double__std__string.kt +81 -0
  49. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__string_bool_std__string.kt +81 -0
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__string_std__vector_double_.kt +81 -0
  51. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridNativeBleNitroSpec.kt +174 -0
  52. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{ServiceDataEntry.kt → ManufacturerData.kt} +7 -5
  53. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{NativeService.kt → ManufacturerDataEntry.kt} +10 -7
  54. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{ConnectionOptions.kt → OperationResult.kt} +10 -6
  55. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/{BleRestoredState.kt → ScanFilter.kt} +13 -4
  56. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.cpp +56 -188
  57. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.hpp +210 -881
  58. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Umbrella.hpp +23 -88
  59. package/nitrogen/generated/ios/BleNitroAutolinking.mm +3 -3
  60. package/nitrogen/generated/ios/BleNitroAutolinking.swift +4 -4
  61. package/nitrogen/generated/ios/c++/{HybridCharacteristicSpecSwift.cpp → HybridNativeBleNitroSpecSwift.cpp} +2 -2
  62. package/nitrogen/generated/ios/c++/HybridNativeBleNitroSpecSwift.hpp +220 -0
  63. package/nitrogen/generated/ios/swift/BLEDevice.swift +102 -0
  64. package/nitrogen/generated/ios/swift/{State.swift → BLEState.swift} +6 -6
  65. package/nitrogen/generated/ios/swift/Func_void.swift +1 -0
  66. package/nitrogen/generated/ios/swift/{Func_void_bool.swift → Func_void_BLEDevice.swift} +12 -11
  67. package/nitrogen/generated/ios/swift/{Func_void_LogLevel.swift → Func_void_BLEState.swift} +12 -11
  68. package/nitrogen/generated/ios/swift/{Func_void_NativeDescriptor.swift → Func_void_bool_std__string.swift} +12 -11
  69. package/nitrogen/generated/ios/swift/{Func_void_std__vector_NativeCharacteristic_.swift → Func_void_bool_std__string_std__string.swift} +12 -11
  70. package/nitrogen/generated/ios/swift/Func_void_bool_std__vector_double__std__string.swift +47 -0
  71. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -0
  72. package/nitrogen/generated/ios/swift/{Func_void_std__vector_NativeDevice_.swift → Func_void_std__string_bool_std__string.swift} +12 -11
  73. package/nitrogen/generated/ios/swift/{Func_void_std__optional_BleRestoredState_.swift → Func_void_std__string_std__vector_double_.swift} +12 -17
  74. package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec.swift +67 -0
  75. package/nitrogen/generated/ios/swift/HybridNativeBleNitroSpec_cxx.swift +433 -0
  76. package/nitrogen/generated/ios/swift/ManufacturerData.swift +47 -0
  77. package/nitrogen/generated/ios/swift/ManufacturerDataEntry.swift +58 -0
  78. package/nitrogen/generated/ios/swift/{BleManagerNitroOptions.swift → OperationResult.swift} +22 -11
  79. package/nitrogen/generated/ios/swift/ScanFilter.swift +69 -0
  80. package/nitrogen/generated/shared/c++/BLEDevice.hpp +90 -0
  81. package/nitrogen/generated/shared/c++/{State.hpp → BLEState.hpp} +13 -15
  82. package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.cpp +39 -0
  83. package/nitrogen/generated/shared/c++/HybridNativeBleNitroSpec.hpp +95 -0
  84. package/nitrogen/generated/shared/c++/ManufacturerData.hpp +69 -0
  85. package/nitrogen/generated/shared/c++/{ServiceDataEntry.hpp → ManufacturerDataEntry.hpp} +19 -20
  86. package/nitrogen/generated/shared/c++/{BleManagerNitroOptions.hpp → OperationResult.hpp} +19 -17
  87. package/nitrogen/generated/shared/c++/ScanFilter.hpp +76 -0
  88. package/package.json +9 -11
  89. package/react-native.config.js +2 -7
  90. package/src/__tests__/index.test.ts +185 -0
  91. package/src/index.ts +548 -45
  92. package/src/specs/NativeBleNitro.nitro.ts +88 -0
  93. package/src/specs/NativeBleNitro.ts +8 -0
  94. package/android/build.gradle +0 -58
  95. package/android/src/main/AndroidManifest.xml +0 -23
  96. package/android/src/main/kotlin/com/margelo/nitro/co/zyke/ble/BleNitroBleManager.kt +0 -760
  97. package/ios/BleNitro.podspec +0 -44
  98. package/ios/BleNitroModule.swift +0 -24
  99. package/lib/BleManagerCompatFactory.d.ts +0 -55
  100. package/lib/BleManagerCompatFactory.js +0 -194
  101. package/lib/BleManagerFactory.d.ts +0 -30
  102. package/lib/BleManagerFactory.js +0 -73
  103. package/lib/commonjs/BleManagerCompatFactory.d.ts +0 -56
  104. package/lib/commonjs/BleManagerCompatFactory.d.ts.map +0 -1
  105. package/lib/commonjs/BleManagerCompatFactory.js +0 -201
  106. package/lib/commonjs/BleManagerCompatFactory.js.map +0 -1
  107. package/lib/commonjs/BleManagerFactory.d.ts +0 -31
  108. package/lib/commonjs/BleManagerFactory.d.ts.map +0 -1
  109. package/lib/commonjs/BleManagerFactory.js +0 -81
  110. package/lib/commonjs/BleManagerFactory.js.map +0 -1
  111. package/lib/commonjs/compatibility/constants.d.ts +0 -50
  112. package/lib/commonjs/compatibility/constants.d.ts.map +0 -1
  113. package/lib/commonjs/compatibility/constants.js +0 -58
  114. package/lib/commonjs/compatibility/constants.js.map +0 -1
  115. package/lib/commonjs/compatibility/deviceWrapper.d.ts +0 -100
  116. package/lib/commonjs/compatibility/deviceWrapper.d.ts.map +0 -1
  117. package/lib/commonjs/compatibility/deviceWrapper.js +0 -268
  118. package/lib/commonjs/compatibility/deviceWrapper.js.map +0 -1
  119. package/lib/commonjs/compatibility/enums.d.ts +0 -39
  120. package/lib/commonjs/compatibility/enums.d.ts.map +0 -1
  121. package/lib/commonjs/compatibility/enums.js +0 -179
  122. package/lib/commonjs/compatibility/enums.js.map +0 -1
  123. package/lib/commonjs/compatibility/index.d.ts +0 -13
  124. package/lib/commonjs/compatibility/index.d.ts.map +0 -1
  125. package/lib/commonjs/compatibility/index.js +0 -41
  126. package/lib/commonjs/compatibility/index.js.map +0 -1
  127. package/lib/commonjs/compatibility/serviceData.d.ts +0 -52
  128. package/lib/commonjs/compatibility/serviceData.d.ts.map +0 -1
  129. package/lib/commonjs/compatibility/serviceData.js +0 -80
  130. package/lib/commonjs/compatibility/serviceData.js.map +0 -1
  131. package/lib/commonjs/errors/BleError.d.ts +0 -60
  132. package/lib/commonjs/errors/BleError.d.ts.map +0 -1
  133. package/lib/commonjs/errors/BleError.js +0 -125
  134. package/lib/commonjs/errors/BleError.js.map +0 -1
  135. package/lib/commonjs/specs/BleManager.nitro.d.ts +0 -45
  136. package/lib/commonjs/specs/BleManager.nitro.d.ts.map +0 -1
  137. package/lib/commonjs/specs/BleManager.nitro.js +0 -3
  138. package/lib/commonjs/specs/BleManager.nitro.js.map +0 -1
  139. package/lib/commonjs/specs/Characteristic.nitro.d.ts +0 -27
  140. package/lib/commonjs/specs/Characteristic.nitro.d.ts.map +0 -1
  141. package/lib/commonjs/specs/Characteristic.nitro.js +0 -3
  142. package/lib/commonjs/specs/Characteristic.nitro.js.map +0 -1
  143. package/lib/commonjs/specs/Descriptor.nitro.d.ts +0 -18
  144. package/lib/commonjs/specs/Descriptor.nitro.d.ts.map +0 -1
  145. package/lib/commonjs/specs/Descriptor.nitro.js +0 -3
  146. package/lib/commonjs/specs/Descriptor.nitro.js.map +0 -1
  147. package/lib/commonjs/specs/Device.nitro.d.ts +0 -38
  148. package/lib/commonjs/specs/Device.nitro.d.ts.map +0 -1
  149. package/lib/commonjs/specs/Device.nitro.js +0 -3
  150. package/lib/commonjs/specs/Device.nitro.js.map +0 -1
  151. package/lib/commonjs/specs/Service.nitro.d.ts +0 -20
  152. package/lib/commonjs/specs/Service.nitro.d.ts.map +0 -1
  153. package/lib/commonjs/specs/Service.nitro.js +0 -3
  154. package/lib/commonjs/specs/Service.nitro.js.map +0 -1
  155. package/lib/commonjs/specs/types.d.ts +0 -229
  156. package/lib/commonjs/specs/types.d.ts.map +0 -1
  157. package/lib/commonjs/specs/types.js +0 -150
  158. package/lib/commonjs/specs/types.js.map +0 -1
  159. package/lib/commonjs/utils/base64.d.ts +0 -26
  160. package/lib/commonjs/utils/base64.d.ts.map +0 -1
  161. package/lib/commonjs/utils/base64.js +0 -88
  162. package/lib/commonjs/utils/base64.js.map +0 -1
  163. package/lib/commonjs/utils/index.d.ts +0 -3
  164. package/lib/commonjs/utils/index.d.ts.map +0 -1
  165. package/lib/commonjs/utils/index.js.map +0 -1
  166. package/lib/commonjs/utils/uuid.d.ts +0 -10
  167. package/lib/commonjs/utils/uuid.d.ts.map +0 -1
  168. package/lib/commonjs/utils/uuid.js +0 -41
  169. package/lib/commonjs/utils/uuid.js.map +0 -1
  170. package/lib/compatibility/constants.d.ts +0 -49
  171. package/lib/compatibility/constants.js +0 -50
  172. package/lib/compatibility/deviceWrapper.d.ts +0 -99
  173. package/lib/compatibility/deviceWrapper.js +0 -259
  174. package/lib/compatibility/enums.d.ts +0 -38
  175. package/lib/compatibility/enums.js +0 -159
  176. package/lib/compatibility/index.d.ts +0 -12
  177. package/lib/compatibility/index.js +0 -12
  178. package/lib/compatibility/serviceData.d.ts +0 -51
  179. package/lib/compatibility/serviceData.js +0 -70
  180. package/lib/errors/BleError.d.ts +0 -59
  181. package/lib/errors/BleError.js +0 -120
  182. package/lib/specs/BleManager.nitro.d.ts +0 -44
  183. package/lib/specs/BleManager.nitro.js +0 -1
  184. package/lib/specs/Characteristic.nitro.d.ts +0 -26
  185. package/lib/specs/Characteristic.nitro.js +0 -1
  186. package/lib/specs/Descriptor.nitro.d.ts +0 -17
  187. package/lib/specs/Descriptor.nitro.js +0 -1
  188. package/lib/specs/Device.nitro.d.ts +0 -37
  189. package/lib/specs/Device.nitro.js +0 -1
  190. package/lib/specs/Service.nitro.d.ts +0 -19
  191. package/lib/specs/Service.nitro.js +0 -1
  192. package/lib/specs/types.d.ts +0 -228
  193. package/lib/specs/types.js +0 -146
  194. package/lib/utils/base64.d.ts +0 -25
  195. package/lib/utils/base64.js +0 -80
  196. package/lib/utils/index.d.ts +0 -2
  197. package/lib/utils/index.js +0 -2
  198. package/lib/utils/uuid.d.ts +0 -9
  199. package/lib/utils/uuid.js +0 -37
  200. package/nitrogen/generated/android/c++/JBleATTErrorCode.hpp +0 -107
  201. package/nitrogen/generated/android/c++/JBleAndroidErrorCode.hpp +0 -101
  202. package/nitrogen/generated/android/c++/JBleErrorCode.hpp +0 -170
  203. package/nitrogen/generated/android/c++/JBleIOSErrorCode.hpp +0 -92
  204. package/nitrogen/generated/android/c++/JBleManagerNitroOptions.hpp +0 -54
  205. package/nitrogen/generated/android/c++/JBleRestoredState.hpp +0 -76
  206. package/nitrogen/generated/android/c++/JCharacteristicSubscriptionType.hpp +0 -59
  207. package/nitrogen/generated/android/c++/JConnectionOptions.hpp +0 -61
  208. package/nitrogen/generated/android/c++/JConnectionPriority.hpp +0 -62
  209. package/nitrogen/generated/android/c++/JFunc_void.hpp +0 -74
  210. package/nitrogen/generated/android/c++/JFunc_void_State.hpp +0 -76
  211. package/nitrogen/generated/android/c++/JFunc_void_std__optional_NativeBleError__std__optional_NativeCharacteristic_.hpp +0 -88
  212. package/nitrogen/generated/android/c++/JFunc_void_std__optional_NativeBleError__std__optional_NativeDevice_.hpp +0 -91
  213. package/nitrogen/generated/android/c++/JHybridBleManagerSpec.cpp +0 -653
  214. package/nitrogen/generated/android/c++/JHybridBleManagerSpec.hpp +0 -92
  215. package/nitrogen/generated/android/c++/JHybridCharacteristicSpec.cpp +0 -253
  216. package/nitrogen/generated/android/c++/JHybridCharacteristicSpec.hpp +0 -79
  217. package/nitrogen/generated/android/c++/JHybridDescriptorSpec.cpp +0 -115
  218. package/nitrogen/generated/android/c++/JHybridDescriptorSpec.hpp +0 -70
  219. package/nitrogen/generated/android/c++/JHybridDeviceSpec.cpp +0 -476
  220. package/nitrogen/generated/android/c++/JHybridDeviceSpec.hpp +0 -90
  221. package/nitrogen/generated/android/c++/JHybridServiceSpec.cpp +0 -232
  222. package/nitrogen/generated/android/c++/JHybridServiceSpec.hpp +0 -72
  223. package/nitrogen/generated/android/c++/JLogLevel.hpp +0 -71
  224. package/nitrogen/generated/android/c++/JNativeBleError.hpp +0 -98
  225. package/nitrogen/generated/android/c++/JNativeCharacteristic.hpp +0 -98
  226. package/nitrogen/generated/android/c++/JNativeDescriptor.hpp +0 -82
  227. package/nitrogen/generated/android/c++/JNativeDevice.hpp +0 -173
  228. package/nitrogen/generated/android/c++/JNativeService.hpp +0 -65
  229. package/nitrogen/generated/android/c++/JScanCallbackType.hpp +0 -62
  230. package/nitrogen/generated/android/c++/JScanMode.hpp +0 -65
  231. package/nitrogen/generated/android/c++/JScanOptions.hpp +0 -69
  232. package/nitrogen/generated/android/c++/JServiceDataEntry.hpp +0 -57
  233. package/nitrogen/generated/android/c++/JSubscription.hpp +0 -64
  234. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleATTErrorCode.kt +0 -41
  235. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleAndroidErrorCode.kt +0 -39
  236. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleErrorCode.kt +0 -62
  237. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleIOSErrorCode.kt +0 -36
  238. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleManagerNitroOptions.kt +0 -26
  239. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/CharacteristicSubscriptionType.kt +0 -25
  240. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ConnectionPriority.kt +0 -26
  241. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridBleManagerSpec.kt +0 -192
  242. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridCharacteristicSpec.kt +0 -127
  243. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridDescriptorSpec.kt +0 -86
  244. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridDeviceSpec.kt +0 -176
  245. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridServiceSpec.kt +0 -99
  246. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeBleError.kt +0 -35
  247. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeCharacteristic.kt +0 -37
  248. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeDescriptor.kt +0 -33
  249. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeDevice.kt +0 -38
  250. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ScanCallbackType.kt +0 -26
  251. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ScanMode.kt +0 -27
  252. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ScanOptions.kt +0 -29
  253. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/State.kt +0 -29
  254. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Subscription.kt +0 -30
  255. package/nitrogen/generated/ios/c++/HybridBleManagerSpecSwift.cpp +0 -11
  256. package/nitrogen/generated/ios/c++/HybridBleManagerSpecSwift.hpp +0 -377
  257. package/nitrogen/generated/ios/c++/HybridCharacteristicSpecSwift.hpp +0 -192
  258. package/nitrogen/generated/ios/c++/HybridDescriptorSpecSwift.cpp +0 -11
  259. package/nitrogen/generated/ios/c++/HybridDescriptorSpecSwift.hpp +0 -112
  260. package/nitrogen/generated/ios/c++/HybridDeviceSpecSwift.cpp +0 -11
  261. package/nitrogen/generated/ios/c++/HybridDeviceSpecSwift.hpp +0 -294
  262. package/nitrogen/generated/ios/c++/HybridServiceSpecSwift.cpp +0 -11
  263. package/nitrogen/generated/ios/c++/HybridServiceSpecSwift.hpp +0 -170
  264. package/nitrogen/generated/ios/swift/BleATTErrorCode.swift +0 -104
  265. package/nitrogen/generated/ios/swift/BleAndroidErrorCode.swift +0 -96
  266. package/nitrogen/generated/ios/swift/BleErrorCode.swift +0 -188
  267. package/nitrogen/generated/ios/swift/BleIOSErrorCode.swift +0 -84
  268. package/nitrogen/generated/ios/swift/BleRestoredState.swift +0 -47
  269. package/nitrogen/generated/ios/swift/CharacteristicSubscriptionType.swift +0 -40
  270. package/nitrogen/generated/ios/swift/ConnectionOptions.swift +0 -57
  271. package/nitrogen/generated/ios/swift/ConnectionPriority.swift +0 -44
  272. package/nitrogen/generated/ios/swift/Func_void_NativeCharacteristic.swift +0 -46
  273. package/nitrogen/generated/ios/swift/Func_void_NativeDevice.swift +0 -46
  274. package/nitrogen/generated/ios/swift/Func_void_State.swift +0 -46
  275. package/nitrogen/generated/ios/swift/Func_void_std__optional_NativeBleError__std__optional_NativeCharacteristic_.swift +0 -58
  276. package/nitrogen/generated/ios/swift/Func_void_std__optional_NativeBleError__std__optional_NativeDevice_.swift +0 -58
  277. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_margelo__nitro__co__zyke__ble__HybridCharacteristicSpec_.swift +0 -50
  278. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_margelo__nitro__co__zyke__ble__HybridDescriptorSpec_.swift +0 -50
  279. package/nitrogen/generated/ios/swift/Func_void_std__vector_NativeDescriptor_.swift +0 -46
  280. package/nitrogen/generated/ios/swift/Func_void_std__vector_NativeService_.swift +0 -46
  281. package/nitrogen/generated/ios/swift/HybridBleManagerSpec.swift +0 -78
  282. package/nitrogen/generated/ios/swift/HybridBleManagerSpec_cxx.swift +0 -852
  283. package/nitrogen/generated/ios/swift/HybridCharacteristicSpec.swift +0 -65
  284. package/nitrogen/generated/ios/swift/HybridCharacteristicSpec_cxx.swift +0 -384
  285. package/nitrogen/generated/ios/swift/HybridDescriptorSpec.swift +0 -56
  286. package/nitrogen/generated/ios/swift/HybridDescriptorSpec_cxx.swift +0 -218
  287. package/nitrogen/generated/ios/swift/HybridDeviceSpec.swift +0 -76
  288. package/nitrogen/generated/ios/swift/HybridDeviceSpec_cxx.swift +0 -702
  289. package/nitrogen/generated/ios/swift/HybridServiceSpec.swift +0 -58
  290. package/nitrogen/generated/ios/swift/HybridServiceSpec_cxx.swift +0 -338
  291. package/nitrogen/generated/ios/swift/LogLevel.swift +0 -56
  292. package/nitrogen/generated/ios/swift/NativeBleError.swift +0 -278
  293. package/nitrogen/generated/ios/swift/NativeCharacteristic.swift +0 -174
  294. package/nitrogen/generated/ios/swift/NativeDescriptor.swift +0 -130
  295. package/nitrogen/generated/ios/swift/NativeDevice.swift +0 -377
  296. package/nitrogen/generated/ios/swift/NativeService.swift +0 -68
  297. package/nitrogen/generated/ios/swift/ScanCallbackType.swift +0 -44
  298. package/nitrogen/generated/ios/swift/ScanMode.swift +0 -48
  299. package/nitrogen/generated/ios/swift/ScanOptions.swift +0 -116
  300. package/nitrogen/generated/ios/swift/ServiceDataEntry.swift +0 -46
  301. package/nitrogen/generated/ios/swift/Subscription.swift +0 -46
  302. package/nitrogen/generated/shared/c++/BleATTErrorCode.hpp +0 -80
  303. package/nitrogen/generated/shared/c++/BleAndroidErrorCode.hpp +0 -78
  304. package/nitrogen/generated/shared/c++/BleErrorCode.hpp +0 -101
  305. package/nitrogen/generated/shared/c++/BleIOSErrorCode.hpp +0 -75
  306. package/nitrogen/generated/shared/c++/BleRestoredState.hpp +0 -71
  307. package/nitrogen/generated/shared/c++/CharacteristicSubscriptionType.hpp +0 -64
  308. package/nitrogen/generated/shared/c++/ConnectionOptions.hpp +0 -77
  309. package/nitrogen/generated/shared/c++/ConnectionPriority.hpp +0 -65
  310. package/nitrogen/generated/shared/c++/HybridBleManagerSpec.cpp +0 -51
  311. package/nitrogen/generated/shared/c++/HybridBleManagerSpec.hpp +0 -137
  312. package/nitrogen/generated/shared/c++/HybridCharacteristicSpec.cpp +0 -39
  313. package/nitrogen/generated/shared/c++/HybridCharacteristicSpec.hpp +0 -101
  314. package/nitrogen/generated/shared/c++/HybridDescriptorSpec.cpp +0 -30
  315. package/nitrogen/generated/shared/c++/HybridDescriptorSpec.hpp +0 -75
  316. package/nitrogen/generated/shared/c++/HybridDeviceSpec.cpp +0 -50
  317. package/nitrogen/generated/shared/c++/HybridDeviceSpec.hpp +0 -123
  318. package/nitrogen/generated/shared/c++/HybridServiceSpec.cpp +0 -32
  319. package/nitrogen/generated/shared/c++/HybridServiceSpec.hpp +0 -90
  320. package/nitrogen/generated/shared/c++/LogLevel.hpp +0 -68
  321. package/nitrogen/generated/shared/c++/NativeBleError.hpp +0 -117
  322. package/nitrogen/generated/shared/c++/NativeCharacteristic.hpp +0 -114
  323. package/nitrogen/generated/shared/c++/NativeDescriptor.hpp +0 -98
  324. package/nitrogen/generated/shared/c++/NativeDevice.hpp +0 -121
  325. package/nitrogen/generated/shared/c++/NativeService.hpp +0 -81
  326. package/nitrogen/generated/shared/c++/ScanCallbackType.hpp +0 -65
  327. package/nitrogen/generated/shared/c++/ScanMode.hpp +0 -66
  328. package/nitrogen/generated/shared/c++/ScanOptions.hpp +0 -86
  329. package/nitrogen/generated/shared/c++/Subscription.hpp +0 -69
  330. package/src/BleManagerCompatFactory.ts +0 -371
  331. package/src/BleManagerFactory.ts +0 -93
  332. package/src/__tests__/BleManager.test.ts +0 -327
  333. package/src/__tests__/compatibility/deviceWrapper.test.ts +0 -563
  334. package/src/__tests__/compatibility/enums.test.ts +0 -264
  335. package/src/compatibility/constants.ts +0 -71
  336. package/src/compatibility/deviceWrapper.ts +0 -427
  337. package/src/compatibility/enums.ts +0 -190
  338. package/src/compatibility/index.ts +0 -32
  339. package/src/compatibility/serviceData.ts +0 -85
  340. package/src/errors/BleError.ts +0 -193
  341. package/src/specs/BleManager.nitro.ts +0 -165
  342. package/src/specs/Characteristic.nitro.ts +0 -61
  343. package/src/specs/Descriptor.nitro.ts +0 -28
  344. package/src/specs/Device.nitro.ts +0 -104
  345. package/src/specs/Service.nitro.ts +0 -64
  346. package/src/specs/types.ts +0 -259
  347. package/src/utils/base64.ts +0 -80
  348. package/src/utils/index.ts +0 -2
  349. package/src/utils/uuid.ts +0 -45
@@ -0,0 +1,90 @@
1
+ ///
2
+ /// BLEDevice.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+
21
+ // Forward declaration of `ManufacturerData` to properly resolve imports.
22
+ namespace margelo::nitro::co::zyke::ble { struct ManufacturerData; }
23
+
24
+ #include <string>
25
+ #include "ManufacturerData.hpp"
26
+ #include <vector>
27
+
28
+ namespace margelo::nitro::co::zyke::ble {
29
+
30
+ /**
31
+ * A struct which can be represented as a JavaScript object (BLEDevice).
32
+ */
33
+ struct BLEDevice {
34
+ public:
35
+ std::string id SWIFT_PRIVATE;
36
+ std::string name SWIFT_PRIVATE;
37
+ double rssi SWIFT_PRIVATE;
38
+ ManufacturerData manufacturerData SWIFT_PRIVATE;
39
+ std::vector<std::string> serviceUUIDs SWIFT_PRIVATE;
40
+ bool isConnectable SWIFT_PRIVATE;
41
+
42
+ public:
43
+ BLEDevice() = default;
44
+ explicit BLEDevice(std::string id, std::string name, double rssi, ManufacturerData manufacturerData, std::vector<std::string> serviceUUIDs, bool isConnectable): id(id), name(name), rssi(rssi), manufacturerData(manufacturerData), serviceUUIDs(serviceUUIDs), isConnectable(isConnectable) {}
45
+ };
46
+
47
+ } // namespace margelo::nitro::co::zyke::ble
48
+
49
+ namespace margelo::nitro {
50
+
51
+ // C++ BLEDevice <> JS BLEDevice (object)
52
+ template <>
53
+ struct JSIConverter<margelo::nitro::co::zyke::ble::BLEDevice> final {
54
+ static inline margelo::nitro::co::zyke::ble::BLEDevice fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
55
+ jsi::Object obj = arg.asObject(runtime);
56
+ return margelo::nitro::co::zyke::ble::BLEDevice(
57
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "id")),
58
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "name")),
59
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "rssi")),
60
+ JSIConverter<margelo::nitro::co::zyke::ble::ManufacturerData>::fromJSI(runtime, obj.getProperty(runtime, "manufacturerData")),
61
+ JSIConverter<std::vector<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "serviceUUIDs")),
62
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "isConnectable"))
63
+ );
64
+ }
65
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::co::zyke::ble::BLEDevice& arg) {
66
+ jsi::Object obj(runtime);
67
+ obj.setProperty(runtime, "id", JSIConverter<std::string>::toJSI(runtime, arg.id));
68
+ obj.setProperty(runtime, "name", JSIConverter<std::string>::toJSI(runtime, arg.name));
69
+ obj.setProperty(runtime, "rssi", JSIConverter<double>::toJSI(runtime, arg.rssi));
70
+ obj.setProperty(runtime, "manufacturerData", JSIConverter<margelo::nitro::co::zyke::ble::ManufacturerData>::toJSI(runtime, arg.manufacturerData));
71
+ obj.setProperty(runtime, "serviceUUIDs", JSIConverter<std::vector<std::string>>::toJSI(runtime, arg.serviceUUIDs));
72
+ obj.setProperty(runtime, "isConnectable", JSIConverter<bool>::toJSI(runtime, arg.isConnectable));
73
+ return obj;
74
+ }
75
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
76
+ if (!value.isObject()) {
77
+ return false;
78
+ }
79
+ jsi::Object obj = value.getObject(runtime);
80
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "id"))) return false;
81
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "name"))) return false;
82
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "rssi"))) return false;
83
+ if (!JSIConverter<margelo::nitro::co::zyke::ble::ManufacturerData>::canConvert(runtime, obj.getProperty(runtime, "manufacturerData"))) return false;
84
+ if (!JSIConverter<std::vector<std::string>>::canConvert(runtime, obj.getProperty(runtime, "serviceUUIDs"))) return false;
85
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "isConnectable"))) return false;
86
+ return true;
87
+ }
88
+ };
89
+
90
+ } // namespace margelo::nitro
@@ -1,5 +1,5 @@
1
1
  ///
2
- /// State.hpp
2
+ /// BLEState.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
@@ -7,7 +7,6 @@
7
7
 
8
8
  #pragma once
9
9
 
10
- #include <cmath>
11
10
  #if __has_include(<NitroModules/JSIConverter.hpp>)
12
11
  #include <NitroModules/JSIConverter.hpp>
13
12
  #else
@@ -22,9 +21,9 @@
22
21
  namespace margelo::nitro::co::zyke::ble {
23
22
 
24
23
  /**
25
- * An enum which can be represented as a JavaScript enum (State).
24
+ * An enum which can be represented as a JavaScript enum (BLEState).
26
25
  */
27
- enum class State {
26
+ enum class BLEState {
28
27
  UNKNOWN SWIFT_NAME(unknown) = 0,
29
28
  RESETTING SWIFT_NAME(resetting) = 1,
30
29
  UNSUPPORTED SWIFT_NAME(unsupported) = 2,
@@ -37,16 +36,14 @@ namespace margelo::nitro::co::zyke::ble {
37
36
 
38
37
  namespace margelo::nitro {
39
38
 
40
- using namespace margelo::nitro::co::zyke::ble;
41
-
42
- // C++ State <> JS State (enum)
39
+ // C++ BLEState <> JS BLEState (enum)
43
40
  template <>
44
- struct JSIConverter<State> final {
45
- static inline State fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
41
+ struct JSIConverter<margelo::nitro::co::zyke::ble::BLEState> final {
42
+ static inline margelo::nitro::co::zyke::ble::BLEState fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
46
43
  int enumValue = JSIConverter<int>::fromJSI(runtime, arg);
47
- return static_cast<State>(enumValue);
44
+ return static_cast<margelo::nitro::co::zyke::ble::BLEState>(enumValue);
48
45
  }
49
- static inline jsi::Value toJSI(jsi::Runtime& runtime, State arg) {
46
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::co::zyke::ble::BLEState arg) {
50
47
  int enumValue = static_cast<int>(arg);
51
48
  return JSIConverter<int>::toJSI(runtime, enumValue);
52
49
  }
@@ -54,10 +51,11 @@ namespace margelo::nitro {
54
51
  if (!value.isNumber()) {
55
52
  return false;
56
53
  }
57
- double integer;
58
- double fraction = modf(value.getNumber(), &integer);
59
- if (fraction != 0.0) {
60
- // It is some kind of floating point number - our enums are ints.
54
+ double number = value.getNumber();
55
+ int integer = static_cast<int>(number);
56
+ if (number != integer) {
57
+ // The integer is not the same value as the double - we truncated floating points.
58
+ // Enums are all integers, so the input floating point number is obviously invalid.
61
59
  return false;
62
60
  }
63
61
  // Check if we are within the bounds of the enum.
@@ -0,0 +1,39 @@
1
+ ///
2
+ /// HybridNativeBleNitroSpec.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "HybridNativeBleNitroSpec.hpp"
9
+
10
+ namespace margelo::nitro::co::zyke::ble {
11
+
12
+ void HybridNativeBleNitroSpec::loadHybridMethods() {
13
+ // load base methods/properties
14
+ HybridObject::loadHybridMethods();
15
+ // load custom methods/properties
16
+ registerHybrids(this, [](Prototype& prototype) {
17
+ prototype.registerHybridMethod("startScan", &HybridNativeBleNitroSpec::startScan);
18
+ prototype.registerHybridMethod("stopScan", &HybridNativeBleNitroSpec::stopScan);
19
+ prototype.registerHybridMethod("isScanning", &HybridNativeBleNitroSpec::isScanning);
20
+ prototype.registerHybridMethod("getConnectedDevices", &HybridNativeBleNitroSpec::getConnectedDevices);
21
+ prototype.registerHybridMethod("connect", &HybridNativeBleNitroSpec::connect);
22
+ prototype.registerHybridMethod("disconnect", &HybridNativeBleNitroSpec::disconnect);
23
+ prototype.registerHybridMethod("isConnected", &HybridNativeBleNitroSpec::isConnected);
24
+ prototype.registerHybridMethod("discoverServices", &HybridNativeBleNitroSpec::discoverServices);
25
+ prototype.registerHybridMethod("getServices", &HybridNativeBleNitroSpec::getServices);
26
+ prototype.registerHybridMethod("getCharacteristics", &HybridNativeBleNitroSpec::getCharacteristics);
27
+ prototype.registerHybridMethod("readCharacteristic", &HybridNativeBleNitroSpec::readCharacteristic);
28
+ prototype.registerHybridMethod("writeCharacteristic", &HybridNativeBleNitroSpec::writeCharacteristic);
29
+ prototype.registerHybridMethod("subscribeToCharacteristic", &HybridNativeBleNitroSpec::subscribeToCharacteristic);
30
+ prototype.registerHybridMethod("unsubscribeFromCharacteristic", &HybridNativeBleNitroSpec::unsubscribeFromCharacteristic);
31
+ prototype.registerHybridMethod("requestBluetoothEnable", &HybridNativeBleNitroSpec::requestBluetoothEnable);
32
+ prototype.registerHybridMethod("state", &HybridNativeBleNitroSpec::state);
33
+ prototype.registerHybridMethod("subscribeToStateChange", &HybridNativeBleNitroSpec::subscribeToStateChange);
34
+ prototype.registerHybridMethod("unsubscribeFromStateChange", &HybridNativeBleNitroSpec::unsubscribeFromStateChange);
35
+ prototype.registerHybridMethod("openSettings", &HybridNativeBleNitroSpec::openSettings);
36
+ });
37
+ }
38
+
39
+ } // namespace margelo::nitro::co::zyke::ble
@@ -0,0 +1,95 @@
1
+ ///
2
+ /// HybridNativeBleNitroSpec.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/HybridObject.hpp>)
11
+ #include <NitroModules/HybridObject.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+
16
+ // Forward declaration of `ScanFilter` to properly resolve imports.
17
+ namespace margelo::nitro::co::zyke::ble { struct ScanFilter; }
18
+ // Forward declaration of `BLEDevice` to properly resolve imports.
19
+ namespace margelo::nitro::co::zyke::ble { struct BLEDevice; }
20
+ // Forward declaration of `BLEState` to properly resolve imports.
21
+ namespace margelo::nitro::co::zyke::ble { enum class BLEState; }
22
+ // Forward declaration of `OperationResult` to properly resolve imports.
23
+ namespace margelo::nitro::co::zyke::ble { struct OperationResult; }
24
+
25
+ #include "ScanFilter.hpp"
26
+ #include "BLEDevice.hpp"
27
+ #include <functional>
28
+ #include <vector>
29
+ #include <string>
30
+ #include <optional>
31
+ #include "BLEState.hpp"
32
+ #include "OperationResult.hpp"
33
+ #include <NitroModules/Promise.hpp>
34
+
35
+ namespace margelo::nitro::co::zyke::ble {
36
+
37
+ using namespace margelo::nitro;
38
+
39
+ /**
40
+ * An abstract base class for `NativeBleNitro`
41
+ * Inherit this class to create instances of `HybridNativeBleNitroSpec` in C++.
42
+ * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
43
+ * @example
44
+ * ```cpp
45
+ * class HybridNativeBleNitro: public HybridNativeBleNitroSpec {
46
+ * public:
47
+ * HybridNativeBleNitro(...): HybridObject(TAG) { ... }
48
+ * // ...
49
+ * };
50
+ * ```
51
+ */
52
+ class HybridNativeBleNitroSpec: public virtual HybridObject {
53
+ public:
54
+ // Constructor
55
+ explicit HybridNativeBleNitroSpec(): HybridObject(TAG) { }
56
+
57
+ // Destructor
58
+ ~HybridNativeBleNitroSpec() override = default;
59
+
60
+ public:
61
+ // Properties
62
+
63
+
64
+ public:
65
+ // Methods
66
+ virtual void startScan(const ScanFilter& filter, const std::function<void(const BLEDevice& /* device */)>& callback) = 0;
67
+ virtual bool stopScan() = 0;
68
+ virtual bool isScanning() = 0;
69
+ virtual std::vector<BLEDevice> getConnectedDevices(const std::vector<std::string>& services) = 0;
70
+ virtual void connect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* deviceId */, const std::string& /* error */)>& callback, const std::optional<std::function<void(const std::string& /* deviceId */, bool /* interrupted */, const std::string& /* error */)>>& disconnectCallback) = 0;
71
+ virtual void disconnect(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) = 0;
72
+ virtual bool isConnected(const std::string& deviceId) = 0;
73
+ virtual void discoverServices(const std::string& deviceId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) = 0;
74
+ virtual std::vector<std::string> getServices(const std::string& deviceId) = 0;
75
+ virtual std::vector<std::string> getCharacteristics(const std::string& deviceId, const std::string& serviceId) = 0;
76
+ virtual void readCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(bool /* success */, const std::vector<double>& /* data */, const std::string& /* error */)>& callback) = 0;
77
+ virtual void writeCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::vector<double>& data, bool withResponse, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) = 0;
78
+ virtual void subscribeToCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(const std::string& /* characteristicId */, const std::vector<double>& /* data */)>& updateCallback, const std::function<void(bool /* success */, const std::string& /* error */)>& resultCallback) = 0;
79
+ virtual void unsubscribeFromCharacteristic(const std::string& deviceId, const std::string& serviceId, const std::string& characteristicId, const std::function<void(bool /* success */, const std::string& /* error */)>& callback) = 0;
80
+ virtual void requestBluetoothEnable(const std::function<void(bool /* success */, const std::string& /* error */)>& callback) = 0;
81
+ virtual BLEState state() = 0;
82
+ virtual OperationResult subscribeToStateChange(const std::function<void(BLEState /* state */)>& stateCallback) = 0;
83
+ virtual OperationResult unsubscribeFromStateChange() = 0;
84
+ virtual std::shared_ptr<Promise<void>> openSettings() = 0;
85
+
86
+ protected:
87
+ // Hybrid Setup
88
+ void loadHybridMethods() override;
89
+
90
+ protected:
91
+ // Tag for logging
92
+ static constexpr auto TAG = "NativeBleNitro";
93
+ };
94
+
95
+ } // namespace margelo::nitro::co::zyke::ble
@@ -0,0 +1,69 @@
1
+ ///
2
+ /// ManufacturerData.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+
21
+ // Forward declaration of `ManufacturerDataEntry` to properly resolve imports.
22
+ namespace margelo::nitro::co::zyke::ble { struct ManufacturerDataEntry; }
23
+
24
+ #include "ManufacturerDataEntry.hpp"
25
+ #include <vector>
26
+
27
+ namespace margelo::nitro::co::zyke::ble {
28
+
29
+ /**
30
+ * A struct which can be represented as a JavaScript object (ManufacturerData).
31
+ */
32
+ struct ManufacturerData {
33
+ public:
34
+ std::vector<ManufacturerDataEntry> companyIdentifiers SWIFT_PRIVATE;
35
+
36
+ public:
37
+ ManufacturerData() = default;
38
+ explicit ManufacturerData(std::vector<ManufacturerDataEntry> companyIdentifiers): companyIdentifiers(companyIdentifiers) {}
39
+ };
40
+
41
+ } // namespace margelo::nitro::co::zyke::ble
42
+
43
+ namespace margelo::nitro {
44
+
45
+ // C++ ManufacturerData <> JS ManufacturerData (object)
46
+ template <>
47
+ struct JSIConverter<margelo::nitro::co::zyke::ble::ManufacturerData> final {
48
+ static inline margelo::nitro::co::zyke::ble::ManufacturerData fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
49
+ jsi::Object obj = arg.asObject(runtime);
50
+ return margelo::nitro::co::zyke::ble::ManufacturerData(
51
+ JSIConverter<std::vector<margelo::nitro::co::zyke::ble::ManufacturerDataEntry>>::fromJSI(runtime, obj.getProperty(runtime, "companyIdentifiers"))
52
+ );
53
+ }
54
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::co::zyke::ble::ManufacturerData& arg) {
55
+ jsi::Object obj(runtime);
56
+ obj.setProperty(runtime, "companyIdentifiers", JSIConverter<std::vector<margelo::nitro::co::zyke::ble::ManufacturerDataEntry>>::toJSI(runtime, arg.companyIdentifiers));
57
+ return obj;
58
+ }
59
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
60
+ if (!value.isObject()) {
61
+ return false;
62
+ }
63
+ jsi::Object obj = value.getObject(runtime);
64
+ if (!JSIConverter<std::vector<margelo::nitro::co::zyke::ble::ManufacturerDataEntry>>::canConvert(runtime, obj.getProperty(runtime, "companyIdentifiers"))) return false;
65
+ return true;
66
+ }
67
+ };
68
+
69
+ } // namespace margelo::nitro
@@ -1,5 +1,5 @@
1
1
  ///
2
- /// ServiceDataEntry.hpp
2
+ /// ManufacturerDataEntry.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
@@ -21,42 +21,41 @@
21
21
 
22
22
 
23
23
  #include <string>
24
+ #include <vector>
24
25
 
25
26
  namespace margelo::nitro::co::zyke::ble {
26
27
 
27
28
  /**
28
- * A struct which can be represented as a JavaScript object (ServiceDataEntry).
29
+ * A struct which can be represented as a JavaScript object (ManufacturerDataEntry).
29
30
  */
30
- struct ServiceDataEntry {
31
+ struct ManufacturerDataEntry {
31
32
  public:
32
- std::string uuid SWIFT_PRIVATE;
33
- std::string data SWIFT_PRIVATE;
33
+ std::string id SWIFT_PRIVATE;
34
+ std::vector<double> data SWIFT_PRIVATE;
34
35
 
35
36
  public:
36
- ServiceDataEntry() = default;
37
- explicit ServiceDataEntry(std::string uuid, std::string data): uuid(uuid), data(data) {}
37
+ ManufacturerDataEntry() = default;
38
+ explicit ManufacturerDataEntry(std::string id, std::vector<double> data): id(id), data(data) {}
38
39
  };
39
40
 
40
41
  } // namespace margelo::nitro::co::zyke::ble
41
42
 
42
43
  namespace margelo::nitro {
43
44
 
44
- using namespace margelo::nitro::co::zyke::ble;
45
-
46
- // C++ ServiceDataEntry <> JS ServiceDataEntry (object)
45
+ // C++ ManufacturerDataEntry <> JS ManufacturerDataEntry (object)
47
46
  template <>
48
- struct JSIConverter<ServiceDataEntry> final {
49
- static inline ServiceDataEntry fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
47
+ struct JSIConverter<margelo::nitro::co::zyke::ble::ManufacturerDataEntry> final {
48
+ static inline margelo::nitro::co::zyke::ble::ManufacturerDataEntry fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
50
49
  jsi::Object obj = arg.asObject(runtime);
51
- return ServiceDataEntry(
52
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "uuid")),
53
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "data"))
50
+ return margelo::nitro::co::zyke::ble::ManufacturerDataEntry(
51
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "id")),
52
+ JSIConverter<std::vector<double>>::fromJSI(runtime, obj.getProperty(runtime, "data"))
54
53
  );
55
54
  }
56
- static inline jsi::Value toJSI(jsi::Runtime& runtime, const ServiceDataEntry& arg) {
55
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::co::zyke::ble::ManufacturerDataEntry& arg) {
57
56
  jsi::Object obj(runtime);
58
- obj.setProperty(runtime, "uuid", JSIConverter<std::string>::toJSI(runtime, arg.uuid));
59
- obj.setProperty(runtime, "data", JSIConverter<std::string>::toJSI(runtime, arg.data));
57
+ obj.setProperty(runtime, "id", JSIConverter<std::string>::toJSI(runtime, arg.id));
58
+ obj.setProperty(runtime, "data", JSIConverter<std::vector<double>>::toJSI(runtime, arg.data));
60
59
  return obj;
61
60
  }
62
61
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -64,8 +63,8 @@ namespace margelo::nitro {
64
63
  return false;
65
64
  }
66
65
  jsi::Object obj = value.getObject(runtime);
67
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "uuid"))) return false;
68
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "data"))) return false;
66
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "id"))) return false;
67
+ if (!JSIConverter<std::vector<double>>::canConvert(runtime, obj.getProperty(runtime, "data"))) return false;
69
68
  return true;
70
69
  }
71
70
  };
@@ -1,5 +1,5 @@
1
1
  ///
2
- /// BleManagerNitroOptions.hpp
2
+ /// OperationResult.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
@@ -20,41 +20,42 @@
20
20
 
21
21
 
22
22
 
23
- #include <optional>
24
23
  #include <string>
24
+ #include <optional>
25
25
 
26
26
  namespace margelo::nitro::co::zyke::ble {
27
27
 
28
28
  /**
29
- * A struct which can be represented as a JavaScript object (BleManagerNitroOptions).
29
+ * A struct which can be represented as a JavaScript object (OperationResult).
30
30
  */
31
- struct BleManagerNitroOptions {
31
+ struct OperationResult {
32
32
  public:
33
- std::optional<std::string> restoreStateIdentifier SWIFT_PRIVATE;
33
+ bool success SWIFT_PRIVATE;
34
+ std::optional<std::string> error SWIFT_PRIVATE;
34
35
 
35
36
  public:
36
- BleManagerNitroOptions() = default;
37
- explicit BleManagerNitroOptions(std::optional<std::string> restoreStateIdentifier): restoreStateIdentifier(restoreStateIdentifier) {}
37
+ OperationResult() = default;
38
+ explicit OperationResult(bool success, std::optional<std::string> error): success(success), error(error) {}
38
39
  };
39
40
 
40
41
  } // namespace margelo::nitro::co::zyke::ble
41
42
 
42
43
  namespace margelo::nitro {
43
44
 
44
- using namespace margelo::nitro::co::zyke::ble;
45
-
46
- // C++ BleManagerNitroOptions <> JS BleManagerNitroOptions (object)
45
+ // C++ OperationResult <> JS OperationResult (object)
47
46
  template <>
48
- struct JSIConverter<BleManagerNitroOptions> final {
49
- static inline BleManagerNitroOptions fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
47
+ struct JSIConverter<margelo::nitro::co::zyke::ble::OperationResult> final {
48
+ static inline margelo::nitro::co::zyke::ble::OperationResult fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
50
49
  jsi::Object obj = arg.asObject(runtime);
51
- return BleManagerNitroOptions(
52
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "restoreStateIdentifier"))
50
+ return margelo::nitro::co::zyke::ble::OperationResult(
51
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "success")),
52
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "error"))
53
53
  );
54
54
  }
55
- static inline jsi::Value toJSI(jsi::Runtime& runtime, const BleManagerNitroOptions& arg) {
55
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::co::zyke::ble::OperationResult& arg) {
56
56
  jsi::Object obj(runtime);
57
- obj.setProperty(runtime, "restoreStateIdentifier", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.restoreStateIdentifier));
57
+ obj.setProperty(runtime, "success", JSIConverter<bool>::toJSI(runtime, arg.success));
58
+ obj.setProperty(runtime, "error", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.error));
58
59
  return obj;
59
60
  }
60
61
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -62,7 +63,8 @@ namespace margelo::nitro {
62
63
  return false;
63
64
  }
64
65
  jsi::Object obj = value.getObject(runtime);
65
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "restoreStateIdentifier"))) return false;
66
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "success"))) return false;
67
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "error"))) return false;
66
68
  return true;
67
69
  }
68
70
  };
@@ -0,0 +1,76 @@
1
+ ///
2
+ /// ScanFilter.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+
21
+
22
+
23
+ #include <string>
24
+ #include <vector>
25
+
26
+ namespace margelo::nitro::co::zyke::ble {
27
+
28
+ /**
29
+ * A struct which can be represented as a JavaScript object (ScanFilter).
30
+ */
31
+ struct ScanFilter {
32
+ public:
33
+ std::vector<std::string> serviceUUIDs SWIFT_PRIVATE;
34
+ double rssiThreshold SWIFT_PRIVATE;
35
+ bool allowDuplicates SWIFT_PRIVATE;
36
+
37
+ public:
38
+ ScanFilter() = default;
39
+ explicit ScanFilter(std::vector<std::string> serviceUUIDs, double rssiThreshold, bool allowDuplicates): serviceUUIDs(serviceUUIDs), rssiThreshold(rssiThreshold), allowDuplicates(allowDuplicates) {}
40
+ };
41
+
42
+ } // namespace margelo::nitro::co::zyke::ble
43
+
44
+ namespace margelo::nitro {
45
+
46
+ // C++ ScanFilter <> JS ScanFilter (object)
47
+ template <>
48
+ struct JSIConverter<margelo::nitro::co::zyke::ble::ScanFilter> final {
49
+ static inline margelo::nitro::co::zyke::ble::ScanFilter fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
50
+ jsi::Object obj = arg.asObject(runtime);
51
+ return margelo::nitro::co::zyke::ble::ScanFilter(
52
+ JSIConverter<std::vector<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "serviceUUIDs")),
53
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "rssiThreshold")),
54
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "allowDuplicates"))
55
+ );
56
+ }
57
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::co::zyke::ble::ScanFilter& arg) {
58
+ jsi::Object obj(runtime);
59
+ obj.setProperty(runtime, "serviceUUIDs", JSIConverter<std::vector<std::string>>::toJSI(runtime, arg.serviceUUIDs));
60
+ obj.setProperty(runtime, "rssiThreshold", JSIConverter<double>::toJSI(runtime, arg.rssiThreshold));
61
+ obj.setProperty(runtime, "allowDuplicates", JSIConverter<bool>::toJSI(runtime, arg.allowDuplicates));
62
+ return obj;
63
+ }
64
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
65
+ if (!value.isObject()) {
66
+ return false;
67
+ }
68
+ jsi::Object obj = value.getObject(runtime);
69
+ if (!JSIConverter<std::vector<std::string>>::canConvert(runtime, obj.getProperty(runtime, "serviceUUIDs"))) return false;
70
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "rssiThreshold"))) return false;
71
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "allowDuplicates"))) return false;
72
+ return true;
73
+ }
74
+ };
75
+
76
+ } // namespace margelo::nitro
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-native-ble-nitro",
3
- "version": "1.0.0-beta.9",
4
- "description": "High-performance React Native BLE library built on Nitro Modules - drop-in replacement for react-native-ble-plx",
3
+ "version": "1.1.0",
4
+ "description": "High-performance React Native BLE library built on Nitro Modules",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
7
7
  "react-native": "src/index.ts",
@@ -35,6 +35,7 @@
35
35
  "test": "jest",
36
36
  "lint": "eslint src/ --ext .ts,.tsx",
37
37
  "typecheck": "tsc --noEmit",
38
+ "prepack": "npm run build",
38
39
  "version": "npm run build",
39
40
  "postversion": "git push && git push --tags"
40
41
  },
@@ -70,14 +71,15 @@
70
71
  "@expo/config-plugins": "^10.1.2",
71
72
  "@types/jest": "^29.5.0",
72
73
  "@types/node": "^20.0.0",
73
- "@types/react": "^18.2.0",
74
+ "@types/react": "^19.1.0",
74
75
  "@typescript-eslint/eslint-plugin": "^6.21.0",
75
76
  "@typescript-eslint/parser": "^6.21.0",
76
77
  "eslint": "^8.0.0",
77
78
  "expo-module-scripts": "^4.1.9",
78
79
  "jest": "^29.0.0",
79
- "nitro-codegen": "^0.26.4",
80
- "react-native": "^0.76.0",
80
+ "nitro-codegen": "^0.28.0",
81
+ "react-native": "^0.81.0",
82
+ "react-native-nitro-modules": "^0.28.0",
81
83
  "rimraf": "^6.0.1",
82
84
  "ts-jest": "^29.4.0",
83
85
  "typescript": "^5.8.3"
@@ -93,17 +95,13 @@
93
95
  "nitro.json",
94
96
  "react-native.config.js",
95
97
  "README.md",
96
- "LICENSE"
98
+ "LICENSE",
99
+ "BleNitro.podspec"
97
100
  ],
98
101
  "expo": {
99
102
  "platforms": [
100
103
  "ios",
101
104
  "android"
102
105
  ]
103
- },
104
- "codegenConfig": {
105
- "name": "BleNitroSpec",
106
- "type": "modules",
107
- "jsSrcsDir": "src"
108
106
  }
109
107
  }
@@ -1,13 +1,8 @@
1
1
  module.exports = {
2
2
  dependency: {
3
3
  platforms: {
4
- android: {
5
- sourceDir: './android',
6
- // No packageImportPath needed - autolinking handles registration
7
- },
8
- ios: {
9
- project: './ios/BleNitro.xcodeproj',
10
- },
4
+ android: {},
5
+ ios: {},
11
6
  },
12
7
  },
13
8
  };