react-native-ble-nitro 1.0.0-beta.5 → 1.0.0-beta.7

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 (264) hide show
  1. package/android/src/main/kotlin/co/zyke/ble/BleNitroBleManager.kt +1 -1
  2. package/android/src/main/kotlin/co/zyke/ble/BleNitroPackage.kt +4 -4
  3. package/ios/BleNitro.podspec +1 -1
  4. package/ios/BleNitroModule.swift +11 -9
  5. package/lib/BleManagerCompatFactory.d.ts +3 -3
  6. package/lib/BleManagerCompatFactory.js +3 -3
  7. package/lib/BleManagerFactory.d.ts +2 -2
  8. package/lib/commonjs/BleManagerCompatFactory.d.ts +3 -3
  9. package/lib/commonjs/BleManagerCompatFactory.d.ts.map +1 -1
  10. package/lib/commonjs/BleManagerCompatFactory.js +20 -20
  11. package/lib/commonjs/BleManagerCompatFactory.js.map +1 -1
  12. package/lib/commonjs/BleManagerFactory.d.ts +2 -2
  13. package/lib/commonjs/BleManagerFactory.d.ts.map +1 -1
  14. package/lib/commonjs/compatibility/constants.d.ts +1 -1
  15. package/lib/commonjs/compatibility/constants.d.ts.map +1 -1
  16. package/lib/commonjs/compatibility/constants.js +5 -5
  17. package/lib/commonjs/compatibility/constants.js.map +1 -1
  18. package/lib/commonjs/compatibility/deviceWrapper.d.ts +2 -2
  19. package/lib/commonjs/compatibility/deviceWrapper.d.ts.map +1 -1
  20. package/lib/commonjs/compatibility/deviceWrapper.js +4 -4
  21. package/lib/commonjs/compatibility/deviceWrapper.js.map +1 -1
  22. package/lib/commonjs/compatibility/enums.d.ts +1 -1
  23. package/lib/commonjs/compatibility/enums.d.ts.map +1 -1
  24. package/lib/commonjs/compatibility/enums.js +34 -34
  25. package/lib/commonjs/compatibility/enums.js.map +1 -1
  26. package/lib/commonjs/compatibility/index.d.ts +5 -5
  27. package/lib/commonjs/compatibility/index.d.ts.map +1 -1
  28. package/lib/commonjs/compatibility/index.js +15 -15
  29. package/lib/commonjs/compatibility/index.js.map +1 -1
  30. package/lib/commonjs/compatibility/serviceData.d.ts +1 -1
  31. package/lib/commonjs/compatibility/serviceData.d.ts.map +1 -1
  32. package/lib/commonjs/errors/BleError.d.ts +2 -2
  33. package/lib/commonjs/errors/BleError.d.ts.map +1 -1
  34. package/lib/commonjs/errors/BleError.js +41 -41
  35. package/lib/commonjs/errors/BleError.js.map +1 -1
  36. package/lib/commonjs/index.d.ts +10 -10
  37. package/lib/commonjs/index.d.ts.map +1 -1
  38. package/lib/commonjs/index.js +16 -16
  39. package/lib/commonjs/index.js.map +1 -1
  40. package/lib/commonjs/specs/BleManager.nitro.d.ts +1 -1
  41. package/lib/commonjs/specs/BleManager.nitro.d.ts.map +1 -1
  42. package/lib/commonjs/specs/Characteristic.nitro.d.ts +1 -1
  43. package/lib/commonjs/specs/Characteristic.nitro.d.ts.map +1 -1
  44. package/lib/commonjs/specs/Descriptor.nitro.d.ts +1 -1
  45. package/lib/commonjs/specs/Descriptor.nitro.d.ts.map +1 -1
  46. package/lib/commonjs/specs/Device.nitro.d.ts +1 -1
  47. package/lib/commonjs/specs/Device.nitro.d.ts.map +1 -1
  48. package/lib/commonjs/specs/Service.nitro.d.ts +1 -1
  49. package/lib/commonjs/specs/Service.nitro.d.ts.map +1 -1
  50. package/lib/commonjs/utils/base64.d.ts +1 -1
  51. package/lib/commonjs/utils/base64.d.ts.map +1 -1
  52. package/lib/commonjs/utils/index.d.ts +2 -2
  53. package/lib/commonjs/utils/index.d.ts.map +1 -1
  54. package/lib/commonjs/utils/index.js +2 -2
  55. package/lib/commonjs/utils/index.js.map +1 -1
  56. package/lib/commonjs/utils/uuid.d.ts +1 -1
  57. package/lib/commonjs/utils/uuid.d.ts.map +1 -1
  58. package/lib/compatibility/constants.d.ts +1 -1
  59. package/lib/compatibility/constants.js +1 -1
  60. package/lib/compatibility/deviceWrapper.d.ts +2 -2
  61. package/lib/compatibility/deviceWrapper.js +2 -2
  62. package/lib/compatibility/enums.d.ts +1 -1
  63. package/lib/compatibility/enums.js +1 -1
  64. package/lib/compatibility/index.d.ts +5 -5
  65. package/lib/compatibility/index.js +4 -4
  66. package/lib/compatibility/serviceData.d.ts +1 -1
  67. package/lib/errors/BleError.d.ts +2 -2
  68. package/lib/errors/BleError.js +1 -1
  69. package/lib/index.d.ts +10 -10
  70. package/lib/index.js +8 -8
  71. package/lib/specs/BleManager.nitro.d.ts +1 -1
  72. package/lib/specs/Characteristic.nitro.d.ts +1 -1
  73. package/lib/specs/Descriptor.nitro.d.ts +1 -1
  74. package/lib/specs/Device.nitro.d.ts +1 -1
  75. package/lib/specs/Service.nitro.d.ts +1 -1
  76. package/lib/utils/base64.d.ts +1 -1
  77. package/lib/utils/index.d.ts +2 -2
  78. package/lib/utils/index.js +2 -2
  79. package/lib/utils/uuid.d.ts +1 -1
  80. package/nitrogen/generated/.gitattributes +1 -0
  81. package/nitrogen/generated/android/BleNitro+autolinking.cmake +86 -0
  82. package/nitrogen/generated/android/BleNitro+autolinking.gradle +27 -0
  83. package/nitrogen/generated/android/BleNitroOnLoad.cpp +52 -0
  84. package/nitrogen/generated/android/BleNitroOnLoad.hpp +25 -0
  85. package/nitrogen/generated/android/c++/JBleATTErrorCode.hpp +107 -0
  86. package/nitrogen/generated/android/c++/JBleAndroidErrorCode.hpp +101 -0
  87. package/nitrogen/generated/android/c++/JBleErrorCode.hpp +170 -0
  88. package/nitrogen/generated/android/c++/JBleIOSErrorCode.hpp +92 -0
  89. package/nitrogen/generated/android/c++/JBleManagerNitroOptions.hpp +54 -0
  90. package/nitrogen/generated/android/c++/JBleRestoredState.hpp +76 -0
  91. package/nitrogen/generated/android/c++/JCharacteristicSubscriptionType.hpp +59 -0
  92. package/nitrogen/generated/android/c++/JConnectionOptions.hpp +61 -0
  93. package/nitrogen/generated/android/c++/JConnectionPriority.hpp +62 -0
  94. package/nitrogen/generated/android/c++/JFunc_void.hpp +74 -0
  95. package/nitrogen/generated/android/c++/JFunc_void_State.hpp +76 -0
  96. package/nitrogen/generated/android/c++/JFunc_void_std__optional_NativeBleError__std__optional_NativeCharacteristic_.hpp +88 -0
  97. package/nitrogen/generated/android/c++/JFunc_void_std__optional_NativeBleError__std__optional_NativeDevice_.hpp +91 -0
  98. package/nitrogen/generated/android/c++/JHybridBleManagerSpec.cpp +653 -0
  99. package/nitrogen/generated/android/c++/JHybridBleManagerSpec.hpp +92 -0
  100. package/nitrogen/generated/android/c++/JHybridCharacteristicSpec.cpp +253 -0
  101. package/nitrogen/generated/android/c++/JHybridCharacteristicSpec.hpp +79 -0
  102. package/nitrogen/generated/android/c++/JHybridDescriptorSpec.cpp +115 -0
  103. package/nitrogen/generated/android/c++/JHybridDescriptorSpec.hpp +70 -0
  104. package/nitrogen/generated/android/c++/JHybridDeviceSpec.cpp +476 -0
  105. package/nitrogen/generated/android/c++/JHybridDeviceSpec.hpp +90 -0
  106. package/nitrogen/generated/android/c++/JHybridServiceSpec.cpp +232 -0
  107. package/nitrogen/generated/android/c++/JHybridServiceSpec.hpp +72 -0
  108. package/nitrogen/generated/android/c++/JLogLevel.hpp +71 -0
  109. package/nitrogen/generated/android/c++/JNativeBleError.hpp +98 -0
  110. package/nitrogen/generated/android/c++/JNativeCharacteristic.hpp +98 -0
  111. package/nitrogen/generated/android/c++/JNativeDescriptor.hpp +82 -0
  112. package/nitrogen/generated/android/c++/JNativeDevice.hpp +173 -0
  113. package/nitrogen/generated/android/c++/JNativeService.hpp +65 -0
  114. package/nitrogen/generated/android/c++/JScanCallbackType.hpp +62 -0
  115. package/nitrogen/generated/android/c++/JScanMode.hpp +65 -0
  116. package/nitrogen/generated/android/c++/JScanOptions.hpp +69 -0
  117. package/nitrogen/generated/android/c++/JServiceDataEntry.hpp +57 -0
  118. package/nitrogen/generated/android/c++/JState.hpp +71 -0
  119. package/nitrogen/generated/android/c++/JSubscription.hpp +64 -0
  120. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleATTErrorCode.kt +41 -0
  121. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleAndroidErrorCode.kt +39 -0
  122. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleErrorCode.kt +62 -0
  123. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleIOSErrorCode.kt +36 -0
  124. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleManagerNitroOptions.kt +26 -0
  125. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleNitroOnLoad.kt +35 -0
  126. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleRestoredState.kt +26 -0
  127. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/CharacteristicSubscriptionType.kt +25 -0
  128. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ConnectionOptions.kt +28 -0
  129. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ConnectionPriority.kt +26 -0
  130. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void.kt +80 -0
  131. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_State.kt +80 -0
  132. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__optional_NativeBleError__std__optional_NativeCharacteristic_.kt +80 -0
  133. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__optional_NativeBleError__std__optional_NativeDevice_.kt +80 -0
  134. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridBleManagerSpec.kt +192 -0
  135. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridCharacteristicSpec.kt +127 -0
  136. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridDescriptorSpec.kt +86 -0
  137. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridDeviceSpec.kt +176 -0
  138. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridServiceSpec.kt +99 -0
  139. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/LogLevel.kt +29 -0
  140. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeBleError.kt +35 -0
  141. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeCharacteristic.kt +37 -0
  142. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeDescriptor.kt +33 -0
  143. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeDevice.kt +38 -0
  144. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeService.kt +29 -0
  145. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ScanCallbackType.kt +26 -0
  146. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ScanMode.kt +27 -0
  147. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ScanOptions.kt +29 -0
  148. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ServiceDataEntry.kt +27 -0
  149. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/State.kt +29 -0
  150. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Subscription.kt +30 -0
  151. package/nitrogen/generated/ios/BleNitro+autolinking.rb +60 -0
  152. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.cpp +236 -0
  153. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.hpp +1069 -0
  154. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Umbrella.hpp +131 -0
  155. package/nitrogen/generated/ios/c++/HybridBleManagerSpecSwift.cpp +11 -0
  156. package/nitrogen/generated/ios/c++/HybridBleManagerSpecSwift.hpp +377 -0
  157. package/nitrogen/generated/ios/c++/HybridCharacteristicSpecSwift.cpp +11 -0
  158. package/nitrogen/generated/ios/c++/HybridCharacteristicSpecSwift.hpp +192 -0
  159. package/nitrogen/generated/ios/c++/HybridDescriptorSpecSwift.cpp +11 -0
  160. package/nitrogen/generated/ios/c++/HybridDescriptorSpecSwift.hpp +112 -0
  161. package/nitrogen/generated/ios/c++/HybridDeviceSpecSwift.cpp +11 -0
  162. package/nitrogen/generated/ios/c++/HybridDeviceSpecSwift.hpp +294 -0
  163. package/nitrogen/generated/ios/c++/HybridServiceSpecSwift.cpp +11 -0
  164. package/nitrogen/generated/ios/c++/HybridServiceSpecSwift.hpp +170 -0
  165. package/nitrogen/generated/ios/swift/BleATTErrorCode.swift +104 -0
  166. package/nitrogen/generated/ios/swift/BleAndroidErrorCode.swift +96 -0
  167. package/nitrogen/generated/ios/swift/BleErrorCode.swift +188 -0
  168. package/nitrogen/generated/ios/swift/BleIOSErrorCode.swift +84 -0
  169. package/nitrogen/generated/ios/swift/BleManagerNitroOptions.swift +53 -0
  170. package/nitrogen/generated/ios/swift/BleRestoredState.swift +47 -0
  171. package/nitrogen/generated/ios/swift/CharacteristicSubscriptionType.swift +40 -0
  172. package/nitrogen/generated/ios/swift/ConnectionOptions.swift +57 -0
  173. package/nitrogen/generated/ios/swift/ConnectionPriority.swift +44 -0
  174. package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
  175. package/nitrogen/generated/ios/swift/Func_void_LogLevel.swift +46 -0
  176. package/nitrogen/generated/ios/swift/Func_void_NativeCharacteristic.swift +46 -0
  177. package/nitrogen/generated/ios/swift/Func_void_NativeDescriptor.swift +46 -0
  178. package/nitrogen/generated/ios/swift/Func_void_NativeDevice.swift +46 -0
  179. package/nitrogen/generated/ios/swift/Func_void_State.swift +46 -0
  180. package/nitrogen/generated/ios/swift/Func_void_bool.swift +46 -0
  181. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
  182. package/nitrogen/generated/ios/swift/Func_void_std__optional_BleRestoredState_.swift +52 -0
  183. package/nitrogen/generated/ios/swift/Func_void_std__optional_NativeBleError__std__optional_NativeCharacteristic_.swift +58 -0
  184. package/nitrogen/generated/ios/swift/Func_void_std__optional_NativeBleError__std__optional_NativeDevice_.swift +58 -0
  185. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_margelo__nitro__co__zyke__ble__HybridCharacteristicSpec_.swift +50 -0
  186. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_margelo__nitro__co__zyke__ble__HybridDescriptorSpec_.swift +50 -0
  187. package/nitrogen/generated/ios/swift/Func_void_std__vector_NativeCharacteristic_.swift +46 -0
  188. package/nitrogen/generated/ios/swift/Func_void_std__vector_NativeDescriptor_.swift +46 -0
  189. package/nitrogen/generated/ios/swift/Func_void_std__vector_NativeDevice_.swift +46 -0
  190. package/nitrogen/generated/ios/swift/Func_void_std__vector_NativeService_.swift +46 -0
  191. package/nitrogen/generated/ios/swift/HybridBleManagerSpec.swift +78 -0
  192. package/nitrogen/generated/ios/swift/HybridBleManagerSpec_cxx.swift +852 -0
  193. package/nitrogen/generated/ios/swift/HybridCharacteristicSpec.swift +65 -0
  194. package/nitrogen/generated/ios/swift/HybridCharacteristicSpec_cxx.swift +384 -0
  195. package/nitrogen/generated/ios/swift/HybridDescriptorSpec.swift +56 -0
  196. package/nitrogen/generated/ios/swift/HybridDescriptorSpec_cxx.swift +218 -0
  197. package/nitrogen/generated/ios/swift/HybridDeviceSpec.swift +76 -0
  198. package/nitrogen/generated/ios/swift/HybridDeviceSpec_cxx.swift +702 -0
  199. package/nitrogen/generated/ios/swift/HybridServiceSpec.swift +58 -0
  200. package/nitrogen/generated/ios/swift/HybridServiceSpec_cxx.swift +338 -0
  201. package/nitrogen/generated/ios/swift/LogLevel.swift +56 -0
  202. package/nitrogen/generated/ios/swift/NativeBleError.swift +278 -0
  203. package/nitrogen/generated/ios/swift/NativeCharacteristic.swift +174 -0
  204. package/nitrogen/generated/ios/swift/NativeDescriptor.swift +130 -0
  205. package/nitrogen/generated/ios/swift/NativeDevice.swift +377 -0
  206. package/nitrogen/generated/ios/swift/NativeService.swift +68 -0
  207. package/nitrogen/generated/ios/swift/ScanCallbackType.swift +44 -0
  208. package/nitrogen/generated/ios/swift/ScanMode.swift +48 -0
  209. package/nitrogen/generated/ios/swift/ScanOptions.swift +116 -0
  210. package/nitrogen/generated/ios/swift/ServiceDataEntry.swift +46 -0
  211. package/nitrogen/generated/ios/swift/State.swift +56 -0
  212. package/nitrogen/generated/ios/swift/Subscription.swift +46 -0
  213. package/nitrogen/generated/shared/c++/BleATTErrorCode.hpp +80 -0
  214. package/nitrogen/generated/shared/c++/BleAndroidErrorCode.hpp +78 -0
  215. package/nitrogen/generated/shared/c++/BleErrorCode.hpp +101 -0
  216. package/nitrogen/generated/shared/c++/BleIOSErrorCode.hpp +75 -0
  217. package/nitrogen/generated/shared/c++/BleManagerNitroOptions.hpp +70 -0
  218. package/nitrogen/generated/shared/c++/BleRestoredState.hpp +71 -0
  219. package/nitrogen/generated/shared/c++/CharacteristicSubscriptionType.hpp +64 -0
  220. package/nitrogen/generated/shared/c++/ConnectionOptions.hpp +77 -0
  221. package/nitrogen/generated/shared/c++/ConnectionPriority.hpp +65 -0
  222. package/nitrogen/generated/shared/c++/HybridBleManagerSpec.cpp +51 -0
  223. package/nitrogen/generated/shared/c++/HybridBleManagerSpec.hpp +137 -0
  224. package/nitrogen/generated/shared/c++/HybridCharacteristicSpec.cpp +39 -0
  225. package/nitrogen/generated/shared/c++/HybridCharacteristicSpec.hpp +101 -0
  226. package/nitrogen/generated/shared/c++/HybridDescriptorSpec.cpp +30 -0
  227. package/nitrogen/generated/shared/c++/HybridDescriptorSpec.hpp +75 -0
  228. package/nitrogen/generated/shared/c++/HybridDeviceSpec.cpp +50 -0
  229. package/nitrogen/generated/shared/c++/HybridDeviceSpec.hpp +123 -0
  230. package/nitrogen/generated/shared/c++/HybridServiceSpec.cpp +32 -0
  231. package/nitrogen/generated/shared/c++/HybridServiceSpec.hpp +90 -0
  232. package/nitrogen/generated/shared/c++/LogLevel.hpp +68 -0
  233. package/nitrogen/generated/shared/c++/NativeBleError.hpp +117 -0
  234. package/nitrogen/generated/shared/c++/NativeCharacteristic.hpp +114 -0
  235. package/nitrogen/generated/shared/c++/NativeDescriptor.hpp +98 -0
  236. package/nitrogen/generated/shared/c++/NativeDevice.hpp +121 -0
  237. package/nitrogen/generated/shared/c++/NativeService.hpp +81 -0
  238. package/nitrogen/generated/shared/c++/ScanCallbackType.hpp +65 -0
  239. package/nitrogen/generated/shared/c++/ScanMode.hpp +66 -0
  240. package/nitrogen/generated/shared/c++/ScanOptions.hpp +86 -0
  241. package/nitrogen/generated/shared/c++/ServiceDataEntry.hpp +73 -0
  242. package/nitrogen/generated/shared/c++/State.hpp +68 -0
  243. package/nitrogen/generated/shared/c++/Subscription.hpp +69 -0
  244. package/package.json +7 -6
  245. package/plugin/build/index.d.ts +1 -1
  246. package/plugin/build/index.js +5 -5
  247. package/src/BleManagerCompatFactory.ts +6 -6
  248. package/src/BleManagerFactory.ts +2 -2
  249. package/src/__tests__/BleManager.test.ts +2 -2
  250. package/src/compatibility/constants.ts +1 -1
  251. package/src/compatibility/deviceWrapper.ts +4 -4
  252. package/src/compatibility/enums.ts +1 -1
  253. package/src/compatibility/index.ts +5 -5
  254. package/src/compatibility/serviceData.ts +1 -1
  255. package/src/errors/BleError.ts +2 -2
  256. package/src/index.ts +10 -10
  257. package/src/specs/BleManager.nitro.ts +1 -1
  258. package/src/specs/Characteristic.nitro.ts +1 -1
  259. package/src/specs/Descriptor.nitro.ts +1 -1
  260. package/src/specs/Device.nitro.ts +1 -1
  261. package/src/specs/Service.nitro.ts +1 -1
  262. package/src/utils/base64.ts +1 -1
  263. package/src/utils/index.ts +2 -2
  264. package/src/utils/uuid.ts +1 -1
@@ -0,0 +1,123 @@
1
+ ///
2
+ /// HybridDeviceSpec.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 `ServiceDataEntry` to properly resolve imports.
17
+ namespace margelo::nitro::co::zyke::ble { struct ServiceDataEntry; }
18
+ // Forward declaration of `NativeDevice` to properly resolve imports.
19
+ namespace margelo::nitro::co::zyke::ble { struct NativeDevice; }
20
+ // Forward declaration of `ConnectionPriority` to properly resolve imports.
21
+ namespace margelo::nitro::co::zyke::ble { enum class ConnectionPriority; }
22
+ // Forward declaration of `ConnectionOptions` to properly resolve imports.
23
+ namespace margelo::nitro::co::zyke::ble { struct ConnectionOptions; }
24
+ // Forward declaration of `Subscription` to properly resolve imports.
25
+ namespace margelo::nitro::co::zyke::ble { struct Subscription; }
26
+ // Forward declaration of `NativeBleError` to properly resolve imports.
27
+ namespace margelo::nitro::co::zyke::ble { struct NativeBleError; }
28
+ // Forward declaration of `NativeService` to properly resolve imports.
29
+ namespace margelo::nitro::co::zyke::ble { struct NativeService; }
30
+ // Forward declaration of `NativeCharacteristic` to properly resolve imports.
31
+ namespace margelo::nitro::co::zyke::ble { struct NativeCharacteristic; }
32
+ // Forward declaration of `CharacteristicSubscriptionType` to properly resolve imports.
33
+ namespace margelo::nitro::co::zyke::ble { enum class CharacteristicSubscriptionType; }
34
+ // Forward declaration of `NativeDescriptor` to properly resolve imports.
35
+ namespace margelo::nitro::co::zyke::ble { struct NativeDescriptor; }
36
+
37
+ #include <string>
38
+ #include <optional>
39
+ #include <vector>
40
+ #include "ServiceDataEntry.hpp"
41
+ #include <NitroModules/Promise.hpp>
42
+ #include "NativeDevice.hpp"
43
+ #include "ConnectionPriority.hpp"
44
+ #include "ConnectionOptions.hpp"
45
+ #include "Subscription.hpp"
46
+ #include <functional>
47
+ #include "NativeBleError.hpp"
48
+ #include "NativeService.hpp"
49
+ #include "NativeCharacteristic.hpp"
50
+ #include "CharacteristicSubscriptionType.hpp"
51
+ #include "NativeDescriptor.hpp"
52
+
53
+ namespace margelo::nitro::co::zyke::ble {
54
+
55
+ using namespace margelo::nitro;
56
+
57
+ /**
58
+ * An abstract base class for `Device`
59
+ * Inherit this class to create instances of `HybridDeviceSpec` in C++.
60
+ * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
61
+ * @example
62
+ * ```cpp
63
+ * class HybridDevice: public HybridDeviceSpec {
64
+ * public:
65
+ * HybridDevice(...): HybridObject(TAG) { ... }
66
+ * // ...
67
+ * };
68
+ * ```
69
+ */
70
+ class HybridDeviceSpec: public virtual HybridObject {
71
+ public:
72
+ // Constructor
73
+ explicit HybridDeviceSpec(): HybridObject(TAG) { }
74
+
75
+ // Destructor
76
+ ~HybridDeviceSpec() override = default;
77
+
78
+ public:
79
+ // Properties
80
+ virtual std::string getId() = 0;
81
+ virtual std::optional<std::string> getDeviceName() = 0;
82
+ virtual std::optional<double> getRssi() = 0;
83
+ virtual double getMtu() = 0;
84
+ virtual std::optional<std::string> getManufacturerData() = 0;
85
+ virtual std::string getRawScanRecord() = 0;
86
+ virtual std::optional<std::vector<ServiceDataEntry>> getServiceData() = 0;
87
+ virtual std::optional<std::vector<std::string>> getServiceUUIDs() = 0;
88
+ virtual std::optional<std::string> getLocalName() = 0;
89
+ virtual std::optional<double> getTxPowerLevel() = 0;
90
+ virtual std::optional<std::vector<std::string>> getSolicitedServiceUUIDs() = 0;
91
+ virtual std::optional<bool> getIsConnectable() = 0;
92
+ virtual std::optional<std::vector<std::string>> getOverflowServiceUUIDs() = 0;
93
+
94
+ public:
95
+ // Methods
96
+ virtual std::shared_ptr<Promise<NativeDevice>> requestConnectionPriority(ConnectionPriority connectionPriority, const std::optional<std::string>& transactionId) = 0;
97
+ virtual std::shared_ptr<Promise<NativeDevice>> readRSSI(const std::optional<std::string>& transactionId) = 0;
98
+ virtual std::shared_ptr<Promise<NativeDevice>> requestMTU(double mtu, const std::optional<std::string>& transactionId) = 0;
99
+ virtual std::shared_ptr<Promise<NativeDevice>> connect(const std::optional<ConnectionOptions>& options) = 0;
100
+ virtual std::shared_ptr<Promise<NativeDevice>> cancelConnection() = 0;
101
+ virtual std::shared_ptr<Promise<bool>> isConnected() = 0;
102
+ virtual Subscription onDisconnected(const std::function<void(const std::optional<NativeBleError>& /* error */, const std::optional<NativeDevice>& /* device */)>& listener) = 0;
103
+ virtual std::shared_ptr<Promise<NativeDevice>> discoverAllServicesAndCharacteristics(const std::optional<std::string>& transactionId) = 0;
104
+ virtual std::shared_ptr<Promise<std::vector<NativeService>>> services() = 0;
105
+ virtual std::shared_ptr<Promise<std::vector<NativeCharacteristic>>> characteristicsForService(const std::string& serviceUUID) = 0;
106
+ virtual std::shared_ptr<Promise<NativeCharacteristic>> readCharacteristicForService(const std::string& serviceUUID, const std::string& characteristicUUID, const std::optional<std::string>& transactionId) = 0;
107
+ virtual std::shared_ptr<Promise<NativeCharacteristic>> writeCharacteristicWithResponseForService(const std::string& serviceUUID, const std::string& characteristicUUID, const std::string& valueBase64, const std::optional<std::string>& transactionId) = 0;
108
+ virtual std::shared_ptr<Promise<NativeCharacteristic>> writeCharacteristicWithoutResponseForService(const std::string& serviceUUID, const std::string& characteristicUUID, const std::string& valueBase64, const std::optional<std::string>& transactionId) = 0;
109
+ virtual Subscription monitorCharacteristicForService(const std::string& serviceUUID, const std::string& characteristicUUID, const std::function<void(const std::optional<NativeBleError>& /* error */, const std::optional<NativeCharacteristic>& /* characteristic */)>& listener, const std::optional<std::string>& transactionId, std::optional<CharacteristicSubscriptionType> subscriptionType) = 0;
110
+ virtual std::shared_ptr<Promise<std::vector<NativeDescriptor>>> descriptorsForService(const std::string& serviceUUID, const std::string& characteristicUUID) = 0;
111
+ virtual std::shared_ptr<Promise<NativeDescriptor>> readDescriptorForService(const std::string& serviceUUID, const std::string& characteristicUUID, const std::string& descriptorUUID, const std::optional<std::string>& transactionId) = 0;
112
+ virtual std::shared_ptr<Promise<NativeDescriptor>> writeDescriptorForService(const std::string& serviceUUID, const std::string& characteristicUUID, const std::string& descriptorUUID, const std::string& valueBase64, const std::optional<std::string>& transactionId) = 0;
113
+
114
+ protected:
115
+ // Hybrid Setup
116
+ void loadHybridMethods() override;
117
+
118
+ protected:
119
+ // Tag for logging
120
+ static constexpr auto TAG = "Device";
121
+ };
122
+
123
+ } // namespace margelo::nitro::co::zyke::ble
@@ -0,0 +1,32 @@
1
+ ///
2
+ /// HybridServiceSpec.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 "HybridServiceSpec.hpp"
9
+
10
+ namespace margelo::nitro::co::zyke::ble {
11
+
12
+ void HybridServiceSpec::loadHybridMethods() {
13
+ // load base methods/properties
14
+ HybridObject::loadHybridMethods();
15
+ // load custom methods/properties
16
+ registerHybrids(this, [](Prototype& prototype) {
17
+ prototype.registerHybridGetter("id", &HybridServiceSpec::getId);
18
+ prototype.registerHybridGetter("uuid", &HybridServiceSpec::getUuid);
19
+ prototype.registerHybridGetter("deviceID", &HybridServiceSpec::getDeviceID);
20
+ prototype.registerHybridGetter("isPrimary", &HybridServiceSpec::getIsPrimary);
21
+ prototype.registerHybridMethod("characteristics", &HybridServiceSpec::characteristics);
22
+ prototype.registerHybridMethod("readCharacteristic", &HybridServiceSpec::readCharacteristic);
23
+ prototype.registerHybridMethod("writeCharacteristicWithResponse", &HybridServiceSpec::writeCharacteristicWithResponse);
24
+ prototype.registerHybridMethod("writeCharacteristicWithoutResponse", &HybridServiceSpec::writeCharacteristicWithoutResponse);
25
+ prototype.registerHybridMethod("monitorCharacteristic", &HybridServiceSpec::monitorCharacteristic);
26
+ prototype.registerHybridMethod("descriptorsForCharacteristic", &HybridServiceSpec::descriptorsForCharacteristic);
27
+ prototype.registerHybridMethod("readDescriptorForCharacteristic", &HybridServiceSpec::readDescriptorForCharacteristic);
28
+ prototype.registerHybridMethod("writeDescriptorForCharacteristic", &HybridServiceSpec::writeDescriptorForCharacteristic);
29
+ });
30
+ }
31
+
32
+ } // namespace margelo::nitro::co::zyke::ble
@@ -0,0 +1,90 @@
1
+ ///
2
+ /// HybridServiceSpec.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 `NativeCharacteristic` to properly resolve imports.
17
+ namespace margelo::nitro::co::zyke::ble { struct NativeCharacteristic; }
18
+ // Forward declaration of `Subscription` to properly resolve imports.
19
+ namespace margelo::nitro::co::zyke::ble { struct Subscription; }
20
+ // Forward declaration of `NativeBleError` to properly resolve imports.
21
+ namespace margelo::nitro::co::zyke::ble { struct NativeBleError; }
22
+ // Forward declaration of `CharacteristicSubscriptionType` to properly resolve imports.
23
+ namespace margelo::nitro::co::zyke::ble { enum class CharacteristicSubscriptionType; }
24
+ // Forward declaration of `NativeDescriptor` to properly resolve imports.
25
+ namespace margelo::nitro::co::zyke::ble { struct NativeDescriptor; }
26
+
27
+ #include <string>
28
+ #include <NitroModules/Promise.hpp>
29
+ #include <vector>
30
+ #include "NativeCharacteristic.hpp"
31
+ #include <optional>
32
+ #include "Subscription.hpp"
33
+ #include <functional>
34
+ #include "NativeBleError.hpp"
35
+ #include "CharacteristicSubscriptionType.hpp"
36
+ #include "NativeDescriptor.hpp"
37
+
38
+ namespace margelo::nitro::co::zyke::ble {
39
+
40
+ using namespace margelo::nitro;
41
+
42
+ /**
43
+ * An abstract base class for `Service`
44
+ * Inherit this class to create instances of `HybridServiceSpec` in C++.
45
+ * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
46
+ * @example
47
+ * ```cpp
48
+ * class HybridService: public HybridServiceSpec {
49
+ * public:
50
+ * HybridService(...): HybridObject(TAG) { ... }
51
+ * // ...
52
+ * };
53
+ * ```
54
+ */
55
+ class HybridServiceSpec: public virtual HybridObject {
56
+ public:
57
+ // Constructor
58
+ explicit HybridServiceSpec(): HybridObject(TAG) { }
59
+
60
+ // Destructor
61
+ ~HybridServiceSpec() override = default;
62
+
63
+ public:
64
+ // Properties
65
+ virtual double getId() = 0;
66
+ virtual std::string getUuid() = 0;
67
+ virtual std::string getDeviceID() = 0;
68
+ virtual bool getIsPrimary() = 0;
69
+
70
+ public:
71
+ // Methods
72
+ virtual std::shared_ptr<Promise<std::vector<NativeCharacteristic>>> characteristics() = 0;
73
+ virtual std::shared_ptr<Promise<NativeCharacteristic>> readCharacteristic(const std::string& characteristicUUID, const std::optional<std::string>& transactionId) = 0;
74
+ virtual std::shared_ptr<Promise<NativeCharacteristic>> writeCharacteristicWithResponse(const std::string& characteristicUUID, const std::string& valueBase64, const std::optional<std::string>& transactionId) = 0;
75
+ virtual std::shared_ptr<Promise<NativeCharacteristic>> writeCharacteristicWithoutResponse(const std::string& characteristicUUID, const std::string& valueBase64, const std::optional<std::string>& transactionId) = 0;
76
+ virtual Subscription monitorCharacteristic(const std::string& characteristicUUID, const std::function<void(const std::optional<NativeBleError>& /* error */, const std::optional<NativeCharacteristic>& /* characteristic */)>& listener, const std::optional<std::string>& transactionId, std::optional<CharacteristicSubscriptionType> subscriptionType) = 0;
77
+ virtual std::shared_ptr<Promise<std::vector<NativeDescriptor>>> descriptorsForCharacteristic(const std::string& characteristicUUID) = 0;
78
+ virtual std::shared_ptr<Promise<NativeDescriptor>> readDescriptorForCharacteristic(const std::string& characteristicUUID, const std::string& descriptorUUID, const std::optional<std::string>& transactionId) = 0;
79
+ virtual std::shared_ptr<Promise<NativeDescriptor>> writeDescriptorForCharacteristic(const std::string& characteristicUUID, const std::string& descriptorUUID, const std::string& valueBase64, const std::optional<std::string>& transactionId) = 0;
80
+
81
+ protected:
82
+ // Hybrid Setup
83
+ void loadHybridMethods() override;
84
+
85
+ protected:
86
+ // Tag for logging
87
+ static constexpr auto TAG = "Service";
88
+ };
89
+
90
+ } // namespace margelo::nitro::co::zyke::ble
@@ -0,0 +1,68 @@
1
+ ///
2
+ /// LogLevel.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
+ #include <cmath>
11
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
12
+ #include <NitroModules/JSIConverter.hpp>
13
+ #else
14
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
15
+ #endif
16
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
17
+ #include <NitroModules/NitroDefines.hpp>
18
+ #else
19
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
20
+ #endif
21
+
22
+ namespace margelo::nitro::co::zyke::ble {
23
+
24
+ /**
25
+ * An enum which can be represented as a JavaScript enum (LogLevel).
26
+ */
27
+ enum class LogLevel {
28
+ NONE SWIFT_NAME(none) = 0,
29
+ VERBOSE SWIFT_NAME(verbose) = 1,
30
+ DEBUG SWIFT_NAME(debug) = 2,
31
+ INFO SWIFT_NAME(info) = 3,
32
+ WARNING SWIFT_NAME(warning) = 4,
33
+ ERROR SWIFT_NAME(error) = 5,
34
+ } CLOSED_ENUM;
35
+
36
+ } // namespace margelo::nitro::co::zyke::ble
37
+
38
+ namespace margelo::nitro {
39
+
40
+ using namespace margelo::nitro::co::zyke::ble;
41
+
42
+ // C++ LogLevel <> JS LogLevel (enum)
43
+ template <>
44
+ struct JSIConverter<LogLevel> final {
45
+ static inline LogLevel fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
46
+ int enumValue = JSIConverter<int>::fromJSI(runtime, arg);
47
+ return static_cast<LogLevel>(enumValue);
48
+ }
49
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, LogLevel arg) {
50
+ int enumValue = static_cast<int>(arg);
51
+ return JSIConverter<int>::toJSI(runtime, enumValue);
52
+ }
53
+ static inline bool canConvert(jsi::Runtime&, const jsi::Value& value) {
54
+ if (!value.isNumber()) {
55
+ return false;
56
+ }
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.
61
+ return false;
62
+ }
63
+ // Check if we are within the bounds of the enum.
64
+ return integer >= 0 && integer <= 5;
65
+ }
66
+ };
67
+
68
+ } // namespace margelo::nitro
@@ -0,0 +1,117 @@
1
+ ///
2
+ /// NativeBleError.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 `BleErrorCode` to properly resolve imports.
22
+ namespace margelo::nitro::co::zyke::ble { enum class BleErrorCode; }
23
+ // Forward declaration of `BleATTErrorCode` to properly resolve imports.
24
+ namespace margelo::nitro::co::zyke::ble { enum class BleATTErrorCode; }
25
+ // Forward declaration of `BleIOSErrorCode` to properly resolve imports.
26
+ namespace margelo::nitro::co::zyke::ble { enum class BleIOSErrorCode; }
27
+ // Forward declaration of `BleAndroidErrorCode` to properly resolve imports.
28
+ namespace margelo::nitro::co::zyke::ble { enum class BleAndroidErrorCode; }
29
+
30
+ #include "BleErrorCode.hpp"
31
+ #include <optional>
32
+ #include "BleATTErrorCode.hpp"
33
+ #include "BleIOSErrorCode.hpp"
34
+ #include "BleAndroidErrorCode.hpp"
35
+ #include <string>
36
+
37
+ namespace margelo::nitro::co::zyke::ble {
38
+
39
+ /**
40
+ * A struct which can be represented as a JavaScript object (NativeBleError).
41
+ */
42
+ struct NativeBleError {
43
+ public:
44
+ BleErrorCode errorCode SWIFT_PRIVATE;
45
+ std::optional<BleATTErrorCode> attErrorCode SWIFT_PRIVATE;
46
+ std::optional<BleIOSErrorCode> iosErrorCode SWIFT_PRIVATE;
47
+ std::optional<BleAndroidErrorCode> androidErrorCode SWIFT_PRIVATE;
48
+ std::optional<std::string> reason SWIFT_PRIVATE;
49
+ std::optional<std::string> deviceID SWIFT_PRIVATE;
50
+ std::optional<std::string> serviceUUID SWIFT_PRIVATE;
51
+ std::optional<std::string> characteristicUUID SWIFT_PRIVATE;
52
+ std::optional<std::string> descriptorUUID SWIFT_PRIVATE;
53
+ std::optional<std::string> internalMessage SWIFT_PRIVATE;
54
+
55
+ public:
56
+ NativeBleError() = default;
57
+ explicit NativeBleError(BleErrorCode errorCode, std::optional<BleATTErrorCode> attErrorCode, std::optional<BleIOSErrorCode> iosErrorCode, std::optional<BleAndroidErrorCode> androidErrorCode, std::optional<std::string> reason, std::optional<std::string> deviceID, std::optional<std::string> serviceUUID, std::optional<std::string> characteristicUUID, std::optional<std::string> descriptorUUID, std::optional<std::string> internalMessage): errorCode(errorCode), attErrorCode(attErrorCode), iosErrorCode(iosErrorCode), androidErrorCode(androidErrorCode), reason(reason), deviceID(deviceID), serviceUUID(serviceUUID), characteristicUUID(characteristicUUID), descriptorUUID(descriptorUUID), internalMessage(internalMessage) {}
58
+ };
59
+
60
+ } // namespace margelo::nitro::co::zyke::ble
61
+
62
+ namespace margelo::nitro {
63
+
64
+ using namespace margelo::nitro::co::zyke::ble;
65
+
66
+ // C++ NativeBleError <> JS NativeBleError (object)
67
+ template <>
68
+ struct JSIConverter<NativeBleError> final {
69
+ static inline NativeBleError fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
70
+ jsi::Object obj = arg.asObject(runtime);
71
+ return NativeBleError(
72
+ JSIConverter<BleErrorCode>::fromJSI(runtime, obj.getProperty(runtime, "errorCode")),
73
+ JSIConverter<std::optional<BleATTErrorCode>>::fromJSI(runtime, obj.getProperty(runtime, "attErrorCode")),
74
+ JSIConverter<std::optional<BleIOSErrorCode>>::fromJSI(runtime, obj.getProperty(runtime, "iosErrorCode")),
75
+ JSIConverter<std::optional<BleAndroidErrorCode>>::fromJSI(runtime, obj.getProperty(runtime, "androidErrorCode")),
76
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "reason")),
77
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "deviceID")),
78
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "serviceUUID")),
79
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "characteristicUUID")),
80
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "descriptorUUID")),
81
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "internalMessage"))
82
+ );
83
+ }
84
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const NativeBleError& arg) {
85
+ jsi::Object obj(runtime);
86
+ obj.setProperty(runtime, "errorCode", JSIConverter<BleErrorCode>::toJSI(runtime, arg.errorCode));
87
+ obj.setProperty(runtime, "attErrorCode", JSIConverter<std::optional<BleATTErrorCode>>::toJSI(runtime, arg.attErrorCode));
88
+ obj.setProperty(runtime, "iosErrorCode", JSIConverter<std::optional<BleIOSErrorCode>>::toJSI(runtime, arg.iosErrorCode));
89
+ obj.setProperty(runtime, "androidErrorCode", JSIConverter<std::optional<BleAndroidErrorCode>>::toJSI(runtime, arg.androidErrorCode));
90
+ obj.setProperty(runtime, "reason", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.reason));
91
+ obj.setProperty(runtime, "deviceID", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.deviceID));
92
+ obj.setProperty(runtime, "serviceUUID", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.serviceUUID));
93
+ obj.setProperty(runtime, "characteristicUUID", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.characteristicUUID));
94
+ obj.setProperty(runtime, "descriptorUUID", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.descriptorUUID));
95
+ obj.setProperty(runtime, "internalMessage", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.internalMessage));
96
+ return obj;
97
+ }
98
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
99
+ if (!value.isObject()) {
100
+ return false;
101
+ }
102
+ jsi::Object obj = value.getObject(runtime);
103
+ if (!JSIConverter<BleErrorCode>::canConvert(runtime, obj.getProperty(runtime, "errorCode"))) return false;
104
+ if (!JSIConverter<std::optional<BleATTErrorCode>>::canConvert(runtime, obj.getProperty(runtime, "attErrorCode"))) return false;
105
+ if (!JSIConverter<std::optional<BleIOSErrorCode>>::canConvert(runtime, obj.getProperty(runtime, "iosErrorCode"))) return false;
106
+ if (!JSIConverter<std::optional<BleAndroidErrorCode>>::canConvert(runtime, obj.getProperty(runtime, "androidErrorCode"))) return false;
107
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "reason"))) return false;
108
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "deviceID"))) return false;
109
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "serviceUUID"))) return false;
110
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "characteristicUUID"))) return false;
111
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "descriptorUUID"))) return false;
112
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "internalMessage"))) return false;
113
+ return true;
114
+ }
115
+ };
116
+
117
+ } // namespace margelo::nitro
@@ -0,0 +1,114 @@
1
+ ///
2
+ /// NativeCharacteristic.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 <optional>
25
+
26
+ namespace margelo::nitro::co::zyke::ble {
27
+
28
+ /**
29
+ * A struct which can be represented as a JavaScript object (NativeCharacteristic).
30
+ */
31
+ struct NativeCharacteristic {
32
+ public:
33
+ double id SWIFT_PRIVATE;
34
+ std::string uuid SWIFT_PRIVATE;
35
+ double serviceID SWIFT_PRIVATE;
36
+ std::string serviceUUID SWIFT_PRIVATE;
37
+ std::string deviceID SWIFT_PRIVATE;
38
+ bool isReadable SWIFT_PRIVATE;
39
+ bool isWritableWithResponse SWIFT_PRIVATE;
40
+ bool isWritableWithoutResponse SWIFT_PRIVATE;
41
+ bool isNotifiable SWIFT_PRIVATE;
42
+ bool isNotifying SWIFT_PRIVATE;
43
+ bool isIndicatable SWIFT_PRIVATE;
44
+ std::optional<std::string> value SWIFT_PRIVATE;
45
+
46
+ public:
47
+ NativeCharacteristic() = default;
48
+ explicit NativeCharacteristic(double id, std::string uuid, double serviceID, std::string serviceUUID, std::string deviceID, bool isReadable, bool isWritableWithResponse, bool isWritableWithoutResponse, bool isNotifiable, bool isNotifying, bool isIndicatable, std::optional<std::string> value): id(id), uuid(uuid), serviceID(serviceID), serviceUUID(serviceUUID), deviceID(deviceID), isReadable(isReadable), isWritableWithResponse(isWritableWithResponse), isWritableWithoutResponse(isWritableWithoutResponse), isNotifiable(isNotifiable), isNotifying(isNotifying), isIndicatable(isIndicatable), value(value) {}
49
+ };
50
+
51
+ } // namespace margelo::nitro::co::zyke::ble
52
+
53
+ namespace margelo::nitro {
54
+
55
+ using namespace margelo::nitro::co::zyke::ble;
56
+
57
+ // C++ NativeCharacteristic <> JS NativeCharacteristic (object)
58
+ template <>
59
+ struct JSIConverter<NativeCharacteristic> final {
60
+ static inline NativeCharacteristic fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
61
+ jsi::Object obj = arg.asObject(runtime);
62
+ return NativeCharacteristic(
63
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "id")),
64
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "uuid")),
65
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "serviceID")),
66
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "serviceUUID")),
67
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "deviceID")),
68
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "isReadable")),
69
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "isWritableWithResponse")),
70
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "isWritableWithoutResponse")),
71
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "isNotifiable")),
72
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "isNotifying")),
73
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "isIndicatable")),
74
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "value"))
75
+ );
76
+ }
77
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const NativeCharacteristic& arg) {
78
+ jsi::Object obj(runtime);
79
+ obj.setProperty(runtime, "id", JSIConverter<double>::toJSI(runtime, arg.id));
80
+ obj.setProperty(runtime, "uuid", JSIConverter<std::string>::toJSI(runtime, arg.uuid));
81
+ obj.setProperty(runtime, "serviceID", JSIConverter<double>::toJSI(runtime, arg.serviceID));
82
+ obj.setProperty(runtime, "serviceUUID", JSIConverter<std::string>::toJSI(runtime, arg.serviceUUID));
83
+ obj.setProperty(runtime, "deviceID", JSIConverter<std::string>::toJSI(runtime, arg.deviceID));
84
+ obj.setProperty(runtime, "isReadable", JSIConverter<bool>::toJSI(runtime, arg.isReadable));
85
+ obj.setProperty(runtime, "isWritableWithResponse", JSIConverter<bool>::toJSI(runtime, arg.isWritableWithResponse));
86
+ obj.setProperty(runtime, "isWritableWithoutResponse", JSIConverter<bool>::toJSI(runtime, arg.isWritableWithoutResponse));
87
+ obj.setProperty(runtime, "isNotifiable", JSIConverter<bool>::toJSI(runtime, arg.isNotifiable));
88
+ obj.setProperty(runtime, "isNotifying", JSIConverter<bool>::toJSI(runtime, arg.isNotifying));
89
+ obj.setProperty(runtime, "isIndicatable", JSIConverter<bool>::toJSI(runtime, arg.isIndicatable));
90
+ obj.setProperty(runtime, "value", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.value));
91
+ return obj;
92
+ }
93
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
94
+ if (!value.isObject()) {
95
+ return false;
96
+ }
97
+ jsi::Object obj = value.getObject(runtime);
98
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "id"))) return false;
99
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "uuid"))) return false;
100
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "serviceID"))) return false;
101
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "serviceUUID"))) return false;
102
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "deviceID"))) return false;
103
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "isReadable"))) return false;
104
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "isWritableWithResponse"))) return false;
105
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "isWritableWithoutResponse"))) return false;
106
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "isNotifiable"))) return false;
107
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "isNotifying"))) return false;
108
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "isIndicatable"))) return false;
109
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "value"))) return false;
110
+ return true;
111
+ }
112
+ };
113
+
114
+ } // namespace margelo::nitro
@@ -0,0 +1,98 @@
1
+ ///
2
+ /// NativeDescriptor.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 <optional>
25
+
26
+ namespace margelo::nitro::co::zyke::ble {
27
+
28
+ /**
29
+ * A struct which can be represented as a JavaScript object (NativeDescriptor).
30
+ */
31
+ struct NativeDescriptor {
32
+ public:
33
+ double id SWIFT_PRIVATE;
34
+ std::string uuid SWIFT_PRIVATE;
35
+ double characteristicID SWIFT_PRIVATE;
36
+ std::string characteristicUUID SWIFT_PRIVATE;
37
+ double serviceID SWIFT_PRIVATE;
38
+ std::string serviceUUID SWIFT_PRIVATE;
39
+ std::string deviceID SWIFT_PRIVATE;
40
+ std::optional<std::string> value SWIFT_PRIVATE;
41
+
42
+ public:
43
+ NativeDescriptor() = default;
44
+ explicit NativeDescriptor(double id, std::string uuid, double characteristicID, std::string characteristicUUID, double serviceID, std::string serviceUUID, std::string deviceID, std::optional<std::string> value): id(id), uuid(uuid), characteristicID(characteristicID), characteristicUUID(characteristicUUID), serviceID(serviceID), serviceUUID(serviceUUID), deviceID(deviceID), value(value) {}
45
+ };
46
+
47
+ } // namespace margelo::nitro::co::zyke::ble
48
+
49
+ namespace margelo::nitro {
50
+
51
+ using namespace margelo::nitro::co::zyke::ble;
52
+
53
+ // C++ NativeDescriptor <> JS NativeDescriptor (object)
54
+ template <>
55
+ struct JSIConverter<NativeDescriptor> final {
56
+ static inline NativeDescriptor fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
57
+ jsi::Object obj = arg.asObject(runtime);
58
+ return NativeDescriptor(
59
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "id")),
60
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "uuid")),
61
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "characteristicID")),
62
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "characteristicUUID")),
63
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "serviceID")),
64
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "serviceUUID")),
65
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "deviceID")),
66
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "value"))
67
+ );
68
+ }
69
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const NativeDescriptor& arg) {
70
+ jsi::Object obj(runtime);
71
+ obj.setProperty(runtime, "id", JSIConverter<double>::toJSI(runtime, arg.id));
72
+ obj.setProperty(runtime, "uuid", JSIConverter<std::string>::toJSI(runtime, arg.uuid));
73
+ obj.setProperty(runtime, "characteristicID", JSIConverter<double>::toJSI(runtime, arg.characteristicID));
74
+ obj.setProperty(runtime, "characteristicUUID", JSIConverter<std::string>::toJSI(runtime, arg.characteristicUUID));
75
+ obj.setProperty(runtime, "serviceID", JSIConverter<double>::toJSI(runtime, arg.serviceID));
76
+ obj.setProperty(runtime, "serviceUUID", JSIConverter<std::string>::toJSI(runtime, arg.serviceUUID));
77
+ obj.setProperty(runtime, "deviceID", JSIConverter<std::string>::toJSI(runtime, arg.deviceID));
78
+ obj.setProperty(runtime, "value", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.value));
79
+ return obj;
80
+ }
81
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
82
+ if (!value.isObject()) {
83
+ return false;
84
+ }
85
+ jsi::Object obj = value.getObject(runtime);
86
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "id"))) return false;
87
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "uuid"))) return false;
88
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "characteristicID"))) return false;
89
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "characteristicUUID"))) return false;
90
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "serviceID"))) return false;
91
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "serviceUUID"))) return false;
92
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "deviceID"))) return false;
93
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "value"))) return false;
94
+ return true;
95
+ }
96
+ };
97
+
98
+ } // namespace margelo::nitro