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,77 @@
1
+ ///
2
+ /// ConnectionOptions.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
+
24
+
25
+ namespace margelo::nitro::co::zyke::ble {
26
+
27
+ /**
28
+ * A struct which can be represented as a JavaScript object (ConnectionOptions).
29
+ */
30
+ struct ConnectionOptions {
31
+ public:
32
+ bool autoConnect SWIFT_PRIVATE;
33
+ double requestMTU SWIFT_PRIVATE;
34
+ double timeout SWIFT_PRIVATE;
35
+
36
+ public:
37
+ ConnectionOptions() = default;
38
+ explicit ConnectionOptions(bool autoConnect, double requestMTU, double timeout): autoConnect(autoConnect), requestMTU(requestMTU), timeout(timeout) {}
39
+ };
40
+
41
+ } // namespace margelo::nitro::co::zyke::ble
42
+
43
+ namespace margelo::nitro {
44
+
45
+ using namespace margelo::nitro::co::zyke::ble;
46
+
47
+ // C++ ConnectionOptions <> JS ConnectionOptions (object)
48
+ template <>
49
+ struct JSIConverter<ConnectionOptions> final {
50
+ static inline ConnectionOptions fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
51
+ jsi::Object obj = arg.asObject(runtime);
52
+ return ConnectionOptions(
53
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "autoConnect")),
54
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "requestMTU")),
55
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "timeout"))
56
+ );
57
+ }
58
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const ConnectionOptions& arg) {
59
+ jsi::Object obj(runtime);
60
+ obj.setProperty(runtime, "autoConnect", JSIConverter<bool>::toJSI(runtime, arg.autoConnect));
61
+ obj.setProperty(runtime, "requestMTU", JSIConverter<double>::toJSI(runtime, arg.requestMTU));
62
+ obj.setProperty(runtime, "timeout", JSIConverter<double>::toJSI(runtime, arg.timeout));
63
+ return obj;
64
+ }
65
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
66
+ if (!value.isObject()) {
67
+ return false;
68
+ }
69
+ jsi::Object obj = value.getObject(runtime);
70
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "autoConnect"))) return false;
71
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "requestMTU"))) return false;
72
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "timeout"))) return false;
73
+ return true;
74
+ }
75
+ };
76
+
77
+ } // namespace margelo::nitro
@@ -0,0 +1,65 @@
1
+ ///
2
+ /// ConnectionPriority.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 (ConnectionPriority).
26
+ */
27
+ enum class ConnectionPriority {
28
+ BALANCED SWIFT_NAME(balanced) = 0,
29
+ HIGH SWIFT_NAME(high) = 1,
30
+ LOWPOWER SWIFT_NAME(lowpower) = 2,
31
+ } CLOSED_ENUM;
32
+
33
+ } // namespace margelo::nitro::co::zyke::ble
34
+
35
+ namespace margelo::nitro {
36
+
37
+ using namespace margelo::nitro::co::zyke::ble;
38
+
39
+ // C++ ConnectionPriority <> JS ConnectionPriority (enum)
40
+ template <>
41
+ struct JSIConverter<ConnectionPriority> final {
42
+ static inline ConnectionPriority fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
43
+ int enumValue = JSIConverter<int>::fromJSI(runtime, arg);
44
+ return static_cast<ConnectionPriority>(enumValue);
45
+ }
46
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, ConnectionPriority arg) {
47
+ int enumValue = static_cast<int>(arg);
48
+ return JSIConverter<int>::toJSI(runtime, enumValue);
49
+ }
50
+ static inline bool canConvert(jsi::Runtime&, const jsi::Value& value) {
51
+ if (!value.isNumber()) {
52
+ return false;
53
+ }
54
+ double integer;
55
+ double fraction = modf(value.getNumber(), &integer);
56
+ if (fraction != 0.0) {
57
+ // It is some kind of floating point number - our enums are ints.
58
+ return false;
59
+ }
60
+ // Check if we are within the bounds of the enum.
61
+ return integer >= 0 && integer <= 2;
62
+ }
63
+ };
64
+
65
+ } // namespace margelo::nitro
@@ -0,0 +1,51 @@
1
+ ///
2
+ /// HybridBleManagerSpec.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 "HybridBleManagerSpec.hpp"
9
+
10
+ namespace margelo::nitro::co::zyke::ble {
11
+
12
+ void HybridBleManagerSpec::loadHybridMethods() {
13
+ // load base methods/properties
14
+ HybridObject::loadHybridMethods();
15
+ // load custom methods/properties
16
+ registerHybrids(this, [](Prototype& prototype) {
17
+ prototype.registerHybridMethod("destroy", &HybridBleManagerSpec::destroy);
18
+ prototype.registerHybridMethod("initialize", &HybridBleManagerSpec::initialize);
19
+ prototype.registerHybridMethod("getRestoredState", &HybridBleManagerSpec::getRestoredState);
20
+ prototype.registerHybridMethod("setLogLevel", &HybridBleManagerSpec::setLogLevel);
21
+ prototype.registerHybridMethod("logLevel", &HybridBleManagerSpec::logLevel);
22
+ prototype.registerHybridMethod("cancelTransaction", &HybridBleManagerSpec::cancelTransaction);
23
+ prototype.registerHybridMethod("enable", &HybridBleManagerSpec::enable);
24
+ prototype.registerHybridMethod("disable", &HybridBleManagerSpec::disable);
25
+ prototype.registerHybridMethod("state", &HybridBleManagerSpec::state);
26
+ prototype.registerHybridMethod("onStateChange", &HybridBleManagerSpec::onStateChange);
27
+ prototype.registerHybridMethod("startDeviceScan", &HybridBleManagerSpec::startDeviceScan);
28
+ prototype.registerHybridMethod("stopDeviceScan", &HybridBleManagerSpec::stopDeviceScan);
29
+ prototype.registerHybridMethod("requestConnectionPriorityForDevice", &HybridBleManagerSpec::requestConnectionPriorityForDevice);
30
+ prototype.registerHybridMethod("readRSSIForDevice", &HybridBleManagerSpec::readRSSIForDevice);
31
+ prototype.registerHybridMethod("requestMTUForDevice", &HybridBleManagerSpec::requestMTUForDevice);
32
+ prototype.registerHybridMethod("devices", &HybridBleManagerSpec::devices);
33
+ prototype.registerHybridMethod("connectedDevices", &HybridBleManagerSpec::connectedDevices);
34
+ prototype.registerHybridMethod("connectToDevice", &HybridBleManagerSpec::connectToDevice);
35
+ prototype.registerHybridMethod("cancelDeviceConnection", &HybridBleManagerSpec::cancelDeviceConnection);
36
+ prototype.registerHybridMethod("onDeviceDisconnected", &HybridBleManagerSpec::onDeviceDisconnected);
37
+ prototype.registerHybridMethod("isDeviceConnected", &HybridBleManagerSpec::isDeviceConnected);
38
+ prototype.registerHybridMethod("discoverAllServicesAndCharacteristicsForDevice", &HybridBleManagerSpec::discoverAllServicesAndCharacteristicsForDevice);
39
+ prototype.registerHybridMethod("servicesForDevice", &HybridBleManagerSpec::servicesForDevice);
40
+ prototype.registerHybridMethod("characteristicsForDevice", &HybridBleManagerSpec::characteristicsForDevice);
41
+ prototype.registerHybridMethod("readCharacteristicForDevice", &HybridBleManagerSpec::readCharacteristicForDevice);
42
+ prototype.registerHybridMethod("writeCharacteristicWithResponseForDevice", &HybridBleManagerSpec::writeCharacteristicWithResponseForDevice);
43
+ prototype.registerHybridMethod("writeCharacteristicWithoutResponseForDevice", &HybridBleManagerSpec::writeCharacteristicWithoutResponseForDevice);
44
+ prototype.registerHybridMethod("monitorCharacteristicForDevice", &HybridBleManagerSpec::monitorCharacteristicForDevice);
45
+ prototype.registerHybridMethod("descriptorsForDevice", &HybridBleManagerSpec::descriptorsForDevice);
46
+ prototype.registerHybridMethod("readDescriptorForDevice", &HybridBleManagerSpec::readDescriptorForDevice);
47
+ prototype.registerHybridMethod("writeDescriptorForDevice", &HybridBleManagerSpec::writeDescriptorForDevice);
48
+ });
49
+ }
50
+
51
+ } // namespace margelo::nitro::co::zyke::ble
@@ -0,0 +1,137 @@
1
+ ///
2
+ /// HybridBleManagerSpec.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 `BleManagerNitroOptions` to properly resolve imports.
17
+ namespace margelo::nitro::co::zyke::ble { struct BleManagerNitroOptions; }
18
+ // Forward declaration of `BleRestoredState` to properly resolve imports.
19
+ namespace margelo::nitro::co::zyke::ble { struct BleRestoredState; }
20
+ // Forward declaration of `LogLevel` to properly resolve imports.
21
+ namespace margelo::nitro::co::zyke::ble { enum class LogLevel; }
22
+ // Forward declaration of `State` to properly resolve imports.
23
+ namespace margelo::nitro::co::zyke::ble { enum class State; }
24
+ // Forward declaration of `Subscription` to properly resolve imports.
25
+ namespace margelo::nitro::co::zyke::ble { struct Subscription; }
26
+ // Forward declaration of `ScanOptions` to properly resolve imports.
27
+ namespace margelo::nitro::co::zyke::ble { struct ScanOptions; }
28
+ // Forward declaration of `NativeBleError` to properly resolve imports.
29
+ namespace margelo::nitro::co::zyke::ble { struct NativeBleError; }
30
+ // Forward declaration of `NativeDevice` to properly resolve imports.
31
+ namespace margelo::nitro::co::zyke::ble { struct NativeDevice; }
32
+ // Forward declaration of `ConnectionPriority` to properly resolve imports.
33
+ namespace margelo::nitro::co::zyke::ble { enum class ConnectionPriority; }
34
+ // Forward declaration of `ConnectionOptions` to properly resolve imports.
35
+ namespace margelo::nitro::co::zyke::ble { struct ConnectionOptions; }
36
+ // Forward declaration of `NativeService` to properly resolve imports.
37
+ namespace margelo::nitro::co::zyke::ble { struct NativeService; }
38
+ // Forward declaration of `NativeCharacteristic` to properly resolve imports.
39
+ namespace margelo::nitro::co::zyke::ble { struct NativeCharacteristic; }
40
+ // Forward declaration of `CharacteristicSubscriptionType` to properly resolve imports.
41
+ namespace margelo::nitro::co::zyke::ble { enum class CharacteristicSubscriptionType; }
42
+ // Forward declaration of `NativeDescriptor` to properly resolve imports.
43
+ namespace margelo::nitro::co::zyke::ble { struct NativeDescriptor; }
44
+
45
+ #include <NitroModules/Promise.hpp>
46
+ #include "BleManagerNitroOptions.hpp"
47
+ #include <optional>
48
+ #include "BleRestoredState.hpp"
49
+ #include "LogLevel.hpp"
50
+ #include <string>
51
+ #include "State.hpp"
52
+ #include "Subscription.hpp"
53
+ #include <functional>
54
+ #include <vector>
55
+ #include "ScanOptions.hpp"
56
+ #include "NativeBleError.hpp"
57
+ #include "NativeDevice.hpp"
58
+ #include "ConnectionPriority.hpp"
59
+ #include "ConnectionOptions.hpp"
60
+ #include "NativeService.hpp"
61
+ #include "NativeCharacteristic.hpp"
62
+ #include "CharacteristicSubscriptionType.hpp"
63
+ #include "NativeDescriptor.hpp"
64
+
65
+ namespace margelo::nitro::co::zyke::ble {
66
+
67
+ using namespace margelo::nitro;
68
+
69
+ /**
70
+ * An abstract base class for `BleManager`
71
+ * Inherit this class to create instances of `HybridBleManagerSpec` in C++.
72
+ * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
73
+ * @example
74
+ * ```cpp
75
+ * class HybridBleManager: public HybridBleManagerSpec {
76
+ * public:
77
+ * HybridBleManager(...): HybridObject(TAG) { ... }
78
+ * // ...
79
+ * };
80
+ * ```
81
+ */
82
+ class HybridBleManagerSpec: public virtual HybridObject {
83
+ public:
84
+ // Constructor
85
+ explicit HybridBleManagerSpec(): HybridObject(TAG) { }
86
+
87
+ // Destructor
88
+ ~HybridBleManagerSpec() override = default;
89
+
90
+ public:
91
+ // Properties
92
+
93
+
94
+ public:
95
+ // Methods
96
+ virtual std::shared_ptr<Promise<void>> destroy() = 0;
97
+ virtual std::shared_ptr<Promise<void>> initialize(const BleManagerNitroOptions& options) = 0;
98
+ virtual std::shared_ptr<Promise<std::optional<BleRestoredState>>> getRestoredState() = 0;
99
+ virtual std::shared_ptr<Promise<LogLevel>> setLogLevel(LogLevel logLevel) = 0;
100
+ virtual std::shared_ptr<Promise<LogLevel>> logLevel() = 0;
101
+ virtual std::shared_ptr<Promise<void>> cancelTransaction(const std::string& transactionId) = 0;
102
+ virtual std::shared_ptr<Promise<void>> enable(const std::optional<std::string>& transactionId) = 0;
103
+ virtual std::shared_ptr<Promise<void>> disable(const std::optional<std::string>& transactionId) = 0;
104
+ virtual std::shared_ptr<Promise<State>> state() = 0;
105
+ virtual Subscription onStateChange(const std::function<void(State /* newState */)>& listener, std::optional<bool> emitCurrentState) = 0;
106
+ virtual std::shared_ptr<Promise<void>> startDeviceScan(const std::optional<std::vector<std::string>>& uuids, const std::optional<ScanOptions>& options, const std::function<void(const std::optional<NativeBleError>& /* error */, const std::optional<NativeDevice>& /* scannedDevice */)>& listener) = 0;
107
+ virtual std::shared_ptr<Promise<void>> stopDeviceScan() = 0;
108
+ virtual std::shared_ptr<Promise<NativeDevice>> requestConnectionPriorityForDevice(const std::string& deviceIdentifier, ConnectionPriority connectionPriority, const std::optional<std::string>& transactionId) = 0;
109
+ virtual std::shared_ptr<Promise<NativeDevice>> readRSSIForDevice(const std::string& deviceIdentifier, const std::optional<std::string>& transactionId) = 0;
110
+ virtual std::shared_ptr<Promise<NativeDevice>> requestMTUForDevice(const std::string& deviceIdentifier, double mtu, const std::optional<std::string>& transactionId) = 0;
111
+ virtual std::shared_ptr<Promise<std::vector<NativeDevice>>> devices(const std::vector<std::string>& deviceIdentifiers) = 0;
112
+ virtual std::shared_ptr<Promise<std::vector<NativeDevice>>> connectedDevices(const std::vector<std::string>& serviceUUIDs) = 0;
113
+ virtual std::shared_ptr<Promise<NativeDevice>> connectToDevice(const std::string& deviceIdentifier, const std::optional<ConnectionOptions>& options) = 0;
114
+ virtual std::shared_ptr<Promise<NativeDevice>> cancelDeviceConnection(const std::string& deviceIdentifier) = 0;
115
+ virtual Subscription onDeviceDisconnected(const std::string& deviceIdentifier, const std::function<void(const std::optional<NativeBleError>& /* error */, const std::optional<NativeDevice>& /* device */)>& listener) = 0;
116
+ virtual std::shared_ptr<Promise<bool>> isDeviceConnected(const std::string& deviceIdentifier) = 0;
117
+ virtual std::shared_ptr<Promise<NativeDevice>> discoverAllServicesAndCharacteristicsForDevice(const std::string& deviceIdentifier, const std::optional<std::string>& transactionId) = 0;
118
+ virtual std::shared_ptr<Promise<std::vector<NativeService>>> servicesForDevice(const std::string& deviceIdentifier) = 0;
119
+ virtual std::shared_ptr<Promise<std::vector<NativeCharacteristic>>> characteristicsForDevice(const std::string& deviceIdentifier, const std::string& serviceUUID) = 0;
120
+ virtual std::shared_ptr<Promise<NativeCharacteristic>> readCharacteristicForDevice(const std::string& deviceIdentifier, const std::string& serviceUUID, const std::string& characteristicUUID, const std::optional<std::string>& transactionId) = 0;
121
+ virtual std::shared_ptr<Promise<NativeCharacteristic>> writeCharacteristicWithResponseForDevice(const std::string& deviceIdentifier, const std::string& serviceUUID, const std::string& characteristicUUID, const std::string& base64Value, const std::optional<std::string>& transactionId) = 0;
122
+ virtual std::shared_ptr<Promise<NativeCharacteristic>> writeCharacteristicWithoutResponseForDevice(const std::string& deviceIdentifier, const std::string& serviceUUID, const std::string& characteristicUUID, const std::string& base64Value, const std::optional<std::string>& transactionId) = 0;
123
+ virtual Subscription monitorCharacteristicForDevice(const std::string& deviceIdentifier, 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;
124
+ virtual std::shared_ptr<Promise<std::vector<NativeDescriptor>>> descriptorsForDevice(const std::string& deviceIdentifier, const std::string& serviceUUID, const std::string& characteristicUUID) = 0;
125
+ virtual std::shared_ptr<Promise<NativeDescriptor>> readDescriptorForDevice(const std::string& deviceIdentifier, const std::string& serviceUUID, const std::string& characteristicUUID, const std::string& descriptorUUID, const std::optional<std::string>& transactionId) = 0;
126
+ virtual std::shared_ptr<Promise<NativeDescriptor>> writeDescriptorForDevice(const std::string& deviceIdentifier, const std::string& serviceUUID, const std::string& characteristicUUID, const std::string& descriptorUUID, const std::string& valueBase64, const std::optional<std::string>& transactionId) = 0;
127
+
128
+ protected:
129
+ // Hybrid Setup
130
+ void loadHybridMethods() override;
131
+
132
+ protected:
133
+ // Tag for logging
134
+ static constexpr auto TAG = "BleManager";
135
+ };
136
+
137
+ } // namespace margelo::nitro::co::zyke::ble
@@ -0,0 +1,39 @@
1
+ ///
2
+ /// HybridCharacteristicSpec.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 "HybridCharacteristicSpec.hpp"
9
+
10
+ namespace margelo::nitro::co::zyke::ble {
11
+
12
+ void HybridCharacteristicSpec::loadHybridMethods() {
13
+ // load base methods/properties
14
+ HybridObject::loadHybridMethods();
15
+ // load custom methods/properties
16
+ registerHybrids(this, [](Prototype& prototype) {
17
+ prototype.registerHybridGetter("id", &HybridCharacteristicSpec::getId);
18
+ prototype.registerHybridGetter("uuid", &HybridCharacteristicSpec::getUuid);
19
+ prototype.registerHybridGetter("serviceID", &HybridCharacteristicSpec::getServiceID);
20
+ prototype.registerHybridGetter("serviceUUID", &HybridCharacteristicSpec::getServiceUUID);
21
+ prototype.registerHybridGetter("deviceID", &HybridCharacteristicSpec::getDeviceID);
22
+ prototype.registerHybridGetter("isReadable", &HybridCharacteristicSpec::getIsReadable);
23
+ prototype.registerHybridGetter("isWritableWithResponse", &HybridCharacteristicSpec::getIsWritableWithResponse);
24
+ prototype.registerHybridGetter("isWritableWithoutResponse", &HybridCharacteristicSpec::getIsWritableWithoutResponse);
25
+ prototype.registerHybridGetter("isNotifiable", &HybridCharacteristicSpec::getIsNotifiable);
26
+ prototype.registerHybridGetter("isNotifying", &HybridCharacteristicSpec::getIsNotifying);
27
+ prototype.registerHybridGetter("isIndicatable", &HybridCharacteristicSpec::getIsIndicatable);
28
+ prototype.registerHybridGetter("value", &HybridCharacteristicSpec::getValue);
29
+ prototype.registerHybridMethod("read", &HybridCharacteristicSpec::read);
30
+ prototype.registerHybridMethod("writeWithResponse", &HybridCharacteristicSpec::writeWithResponse);
31
+ prototype.registerHybridMethod("writeWithoutResponse", &HybridCharacteristicSpec::writeWithoutResponse);
32
+ prototype.registerHybridMethod("monitor", &HybridCharacteristicSpec::monitor);
33
+ prototype.registerHybridMethod("descriptors", &HybridCharacteristicSpec::descriptors);
34
+ prototype.registerHybridMethod("readDescriptor", &HybridCharacteristicSpec::readDescriptor);
35
+ prototype.registerHybridMethod("writeDescriptor", &HybridCharacteristicSpec::writeDescriptor);
36
+ });
37
+ }
38
+
39
+ } // namespace margelo::nitro::co::zyke::ble
@@ -0,0 +1,101 @@
1
+ ///
2
+ /// HybridCharacteristicSpec.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 `HybridCharacteristicSpec` to properly resolve imports.
17
+ namespace margelo::nitro::co::zyke::ble { class HybridCharacteristicSpec; }
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 `NativeCharacteristic` to properly resolve imports.
23
+ namespace margelo::nitro::co::zyke::ble { struct NativeCharacteristic; }
24
+ // Forward declaration of `CharacteristicSubscriptionType` to properly resolve imports.
25
+ namespace margelo::nitro::co::zyke::ble { enum class CharacteristicSubscriptionType; }
26
+ // Forward declaration of `NativeDescriptor` to properly resolve imports.
27
+ namespace margelo::nitro::co::zyke::ble { struct NativeDescriptor; }
28
+
29
+ #include <string>
30
+ #include <optional>
31
+ #include <NitroModules/Promise.hpp>
32
+ #include <memory>
33
+ #include "HybridCharacteristicSpec.hpp"
34
+ #include "Subscription.hpp"
35
+ #include <functional>
36
+ #include "NativeBleError.hpp"
37
+ #include "NativeCharacteristic.hpp"
38
+ #include "CharacteristicSubscriptionType.hpp"
39
+ #include <vector>
40
+ #include "NativeDescriptor.hpp"
41
+
42
+ namespace margelo::nitro::co::zyke::ble {
43
+
44
+ using namespace margelo::nitro;
45
+
46
+ /**
47
+ * An abstract base class for `Characteristic`
48
+ * Inherit this class to create instances of `HybridCharacteristicSpec` in C++.
49
+ * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
50
+ * @example
51
+ * ```cpp
52
+ * class HybridCharacteristic: public HybridCharacteristicSpec {
53
+ * public:
54
+ * HybridCharacteristic(...): HybridObject(TAG) { ... }
55
+ * // ...
56
+ * };
57
+ * ```
58
+ */
59
+ class HybridCharacteristicSpec: public virtual HybridObject {
60
+ public:
61
+ // Constructor
62
+ explicit HybridCharacteristicSpec(): HybridObject(TAG) { }
63
+
64
+ // Destructor
65
+ ~HybridCharacteristicSpec() override = default;
66
+
67
+ public:
68
+ // Properties
69
+ virtual double getId() = 0;
70
+ virtual std::string getUuid() = 0;
71
+ virtual double getServiceID() = 0;
72
+ virtual std::string getServiceUUID() = 0;
73
+ virtual std::string getDeviceID() = 0;
74
+ virtual bool getIsReadable() = 0;
75
+ virtual bool getIsWritableWithResponse() = 0;
76
+ virtual bool getIsWritableWithoutResponse() = 0;
77
+ virtual bool getIsNotifiable() = 0;
78
+ virtual bool getIsNotifying() = 0;
79
+ virtual bool getIsIndicatable() = 0;
80
+ virtual std::optional<std::string> getValue() = 0;
81
+
82
+ public:
83
+ // Methods
84
+ virtual std::shared_ptr<Promise<std::shared_ptr<margelo::nitro::co::zyke::ble::HybridCharacteristicSpec>>> read(const std::optional<std::string>& transactionId) = 0;
85
+ virtual std::shared_ptr<Promise<std::shared_ptr<margelo::nitro::co::zyke::ble::HybridCharacteristicSpec>>> writeWithResponse(const std::string& valueBase64, const std::optional<std::string>& transactionId) = 0;
86
+ virtual std::shared_ptr<Promise<std::shared_ptr<margelo::nitro::co::zyke::ble::HybridCharacteristicSpec>>> writeWithoutResponse(const std::string& valueBase64, const std::optional<std::string>& transactionId) = 0;
87
+ virtual Subscription monitor(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;
88
+ virtual std::shared_ptr<Promise<std::vector<NativeDescriptor>>> descriptors() = 0;
89
+ virtual std::shared_ptr<Promise<NativeDescriptor>> readDescriptor(const std::string& descriptorUUID, const std::optional<std::string>& transactionId) = 0;
90
+ virtual std::shared_ptr<Promise<NativeDescriptor>> writeDescriptor(const std::string& descriptorUUID, const std::string& valueBase64, const std::optional<std::string>& transactionId) = 0;
91
+
92
+ protected:
93
+ // Hybrid Setup
94
+ void loadHybridMethods() override;
95
+
96
+ protected:
97
+ // Tag for logging
98
+ static constexpr auto TAG = "Characteristic";
99
+ };
100
+
101
+ } // namespace margelo::nitro::co::zyke::ble
@@ -0,0 +1,30 @@
1
+ ///
2
+ /// HybridDescriptorSpec.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 "HybridDescriptorSpec.hpp"
9
+
10
+ namespace margelo::nitro::co::zyke::ble {
11
+
12
+ void HybridDescriptorSpec::loadHybridMethods() {
13
+ // load base methods/properties
14
+ HybridObject::loadHybridMethods();
15
+ // load custom methods/properties
16
+ registerHybrids(this, [](Prototype& prototype) {
17
+ prototype.registerHybridGetter("id", &HybridDescriptorSpec::getId);
18
+ prototype.registerHybridGetter("uuid", &HybridDescriptorSpec::getUuid);
19
+ prototype.registerHybridGetter("characteristicID", &HybridDescriptorSpec::getCharacteristicID);
20
+ prototype.registerHybridGetter("characteristicUUID", &HybridDescriptorSpec::getCharacteristicUUID);
21
+ prototype.registerHybridGetter("serviceID", &HybridDescriptorSpec::getServiceID);
22
+ prototype.registerHybridGetter("serviceUUID", &HybridDescriptorSpec::getServiceUUID);
23
+ prototype.registerHybridGetter("deviceID", &HybridDescriptorSpec::getDeviceID);
24
+ prototype.registerHybridGetter("value", &HybridDescriptorSpec::getValue);
25
+ prototype.registerHybridMethod("read", &HybridDescriptorSpec::read);
26
+ prototype.registerHybridMethod("write", &HybridDescriptorSpec::write);
27
+ });
28
+ }
29
+
30
+ } // namespace margelo::nitro::co::zyke::ble
@@ -0,0 +1,75 @@
1
+ ///
2
+ /// HybridDescriptorSpec.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 `HybridDescriptorSpec` to properly resolve imports.
17
+ namespace margelo::nitro::co::zyke::ble { class HybridDescriptorSpec; }
18
+
19
+ #include <string>
20
+ #include <optional>
21
+ #include <NitroModules/Promise.hpp>
22
+ #include <memory>
23
+ #include "HybridDescriptorSpec.hpp"
24
+
25
+ namespace margelo::nitro::co::zyke::ble {
26
+
27
+ using namespace margelo::nitro;
28
+
29
+ /**
30
+ * An abstract base class for `Descriptor`
31
+ * Inherit this class to create instances of `HybridDescriptorSpec` in C++.
32
+ * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
33
+ * @example
34
+ * ```cpp
35
+ * class HybridDescriptor: public HybridDescriptorSpec {
36
+ * public:
37
+ * HybridDescriptor(...): HybridObject(TAG) { ... }
38
+ * // ...
39
+ * };
40
+ * ```
41
+ */
42
+ class HybridDescriptorSpec: public virtual HybridObject {
43
+ public:
44
+ // Constructor
45
+ explicit HybridDescriptorSpec(): HybridObject(TAG) { }
46
+
47
+ // Destructor
48
+ ~HybridDescriptorSpec() override = default;
49
+
50
+ public:
51
+ // Properties
52
+ virtual double getId() = 0;
53
+ virtual std::string getUuid() = 0;
54
+ virtual double getCharacteristicID() = 0;
55
+ virtual std::string getCharacteristicUUID() = 0;
56
+ virtual double getServiceID() = 0;
57
+ virtual std::string getServiceUUID() = 0;
58
+ virtual std::string getDeviceID() = 0;
59
+ virtual std::optional<std::string> getValue() = 0;
60
+
61
+ public:
62
+ // Methods
63
+ virtual std::shared_ptr<Promise<std::shared_ptr<margelo::nitro::co::zyke::ble::HybridDescriptorSpec>>> read(const std::optional<std::string>& transactionId) = 0;
64
+ virtual std::shared_ptr<Promise<std::shared_ptr<margelo::nitro::co::zyke::ble::HybridDescriptorSpec>>> write(const std::string& valueBase64, const std::optional<std::string>& transactionId) = 0;
65
+
66
+ protected:
67
+ // Hybrid Setup
68
+ void loadHybridMethods() override;
69
+
70
+ protected:
71
+ // Tag for logging
72
+ static constexpr auto TAG = "Descriptor";
73
+ };
74
+
75
+ } // namespace margelo::nitro::co::zyke::ble
@@ -0,0 +1,50 @@
1
+ ///
2
+ /// HybridDeviceSpec.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 "HybridDeviceSpec.hpp"
9
+
10
+ namespace margelo::nitro::co::zyke::ble {
11
+
12
+ void HybridDeviceSpec::loadHybridMethods() {
13
+ // load base methods/properties
14
+ HybridObject::loadHybridMethods();
15
+ // load custom methods/properties
16
+ registerHybrids(this, [](Prototype& prototype) {
17
+ prototype.registerHybridGetter("id", &HybridDeviceSpec::getId);
18
+ prototype.registerHybridGetter("deviceName", &HybridDeviceSpec::getDeviceName);
19
+ prototype.registerHybridGetter("rssi", &HybridDeviceSpec::getRssi);
20
+ prototype.registerHybridGetter("mtu", &HybridDeviceSpec::getMtu);
21
+ prototype.registerHybridGetter("manufacturerData", &HybridDeviceSpec::getManufacturerData);
22
+ prototype.registerHybridGetter("rawScanRecord", &HybridDeviceSpec::getRawScanRecord);
23
+ prototype.registerHybridGetter("serviceData", &HybridDeviceSpec::getServiceData);
24
+ prototype.registerHybridGetter("serviceUUIDs", &HybridDeviceSpec::getServiceUUIDs);
25
+ prototype.registerHybridGetter("localName", &HybridDeviceSpec::getLocalName);
26
+ prototype.registerHybridGetter("txPowerLevel", &HybridDeviceSpec::getTxPowerLevel);
27
+ prototype.registerHybridGetter("solicitedServiceUUIDs", &HybridDeviceSpec::getSolicitedServiceUUIDs);
28
+ prototype.registerHybridGetter("isConnectable", &HybridDeviceSpec::getIsConnectable);
29
+ prototype.registerHybridGetter("overflowServiceUUIDs", &HybridDeviceSpec::getOverflowServiceUUIDs);
30
+ prototype.registerHybridMethod("requestConnectionPriority", &HybridDeviceSpec::requestConnectionPriority);
31
+ prototype.registerHybridMethod("readRSSI", &HybridDeviceSpec::readRSSI);
32
+ prototype.registerHybridMethod("requestMTU", &HybridDeviceSpec::requestMTU);
33
+ prototype.registerHybridMethod("connect", &HybridDeviceSpec::connect);
34
+ prototype.registerHybridMethod("cancelConnection", &HybridDeviceSpec::cancelConnection);
35
+ prototype.registerHybridMethod("isConnected", &HybridDeviceSpec::isConnected);
36
+ prototype.registerHybridMethod("onDisconnected", &HybridDeviceSpec::onDisconnected);
37
+ prototype.registerHybridMethod("discoverAllServicesAndCharacteristics", &HybridDeviceSpec::discoverAllServicesAndCharacteristics);
38
+ prototype.registerHybridMethod("services", &HybridDeviceSpec::services);
39
+ prototype.registerHybridMethod("characteristicsForService", &HybridDeviceSpec::characteristicsForService);
40
+ prototype.registerHybridMethod("readCharacteristicForService", &HybridDeviceSpec::readCharacteristicForService);
41
+ prototype.registerHybridMethod("writeCharacteristicWithResponseForService", &HybridDeviceSpec::writeCharacteristicWithResponseForService);
42
+ prototype.registerHybridMethod("writeCharacteristicWithoutResponseForService", &HybridDeviceSpec::writeCharacteristicWithoutResponseForService);
43
+ prototype.registerHybridMethod("monitorCharacteristicForService", &HybridDeviceSpec::monitorCharacteristicForService);
44
+ prototype.registerHybridMethod("descriptorsForService", &HybridDeviceSpec::descriptorsForService);
45
+ prototype.registerHybridMethod("readDescriptorForService", &HybridDeviceSpec::readDescriptorForService);
46
+ prototype.registerHybridMethod("writeDescriptorForService", &HybridDeviceSpec::writeDescriptorForService);
47
+ });
48
+ }
49
+
50
+ } // namespace margelo::nitro::co::zyke::ble