securiti-consent-sdk 1.141.0-11rc → 1.141.0-13rc

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 (94) hide show
  1. package/NitroSecuritiConsentSdk.podspec +1 -1
  2. package/README.md +508 -2
  3. package/android/build.gradle +2 -2
  4. package/android/src/main/java/com/margelo/nitro/securiticonsentsdk/HybridConsentSDK.kt +168 -34
  5. package/android/src/main/java/com/margelo/nitro/securiticonsentsdk/NullTypeCompat.kt +19 -0
  6. package/ios/HybridConsentSDK.swift +78 -32
  7. package/lib/ConsentSDK.nitro.d.ts +8 -0
  8. package/lib/ConsentSDK.nitro.js +6 -0
  9. package/lib/index.js +8 -1
  10. package/nitrogen/generated/.gitattributes +1 -1
  11. package/nitrogen/generated/android/NitroSecuritiConsentSdk+autolinking.cmake +10 -4
  12. package/nitrogen/generated/android/NitroSecuritiConsentSdkOnLoad.cpp +1 -3
  13. package/nitrogen/generated/android/c++/JAppPermission.hpp +5 -1
  14. package/nitrogen/generated/android/c++/JBannerConfig.hpp +5 -1
  15. package/nitrogen/generated/android/c++/JCmpSDKOptions.hpp +5 -1
  16. package/nitrogen/generated/android/c++/JCustomColors.hpp +5 -1
  17. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +2 -1
  18. package/nitrogen/generated/android/c++/JHybridConsentSDKSpec.cpp +55 -14
  19. package/nitrogen/generated/android/c++/JHybridConsentSDKSpec.hpp +7 -3
  20. package/nitrogen/generated/android/c++/JPermissionConsent.hpp +5 -1
  21. package/nitrogen/generated/android/c++/JPostConsentsRequest.hpp +9 -3
  22. package/nitrogen/generated/android/c++/JPurpose.hpp +7 -2
  23. package/nitrogen/generated/android/c++/JPurposeConsent.hpp +5 -1
  24. package/nitrogen/generated/android/c++/JSDK.hpp +7 -2
  25. package/nitrogen/generated/android/c++/JSettingsPrompt.hpp +7 -2
  26. package/nitrogen/generated/android/c++/JVariant_NullType_BannerConfig.cpp +26 -0
  27. package/nitrogen/generated/android/c++/JVariant_NullType_BannerConfig.hpp +76 -0
  28. package/nitrogen/generated/android/c++/JVariant_NullType_CmpSDKOptions.cpp +26 -0
  29. package/nitrogen/generated/android/c++/JVariant_NullType_CmpSDKOptions.hpp +73 -0
  30. package/nitrogen/generated/android/c++/JVariant_NullType_SettingsPrompt.cpp +26 -0
  31. package/nitrogen/generated/android/c++/JVariant_NullType_SettingsPrompt.hpp +74 -0
  32. package/nitrogen/generated/android/kotlin/com/margelo/nitro/securiticonsentsdk/AppPermission.kt +44 -16
  33. package/nitrogen/generated/android/kotlin/com/margelo/nitro/securiticonsentsdk/BannerConfig.kt +113 -39
  34. package/nitrogen/generated/android/kotlin/com/margelo/nitro/securiticonsentsdk/CmpSDKOptions.kt +50 -18
  35. package/nitrogen/generated/android/kotlin/com/margelo/nitro/securiticonsentsdk/CustomColors.kt +41 -15
  36. package/nitrogen/generated/android/kotlin/com/margelo/nitro/securiticonsentsdk/Func_void_bool.kt +1 -1
  37. package/nitrogen/generated/android/kotlin/com/margelo/nitro/securiticonsentsdk/HybridConsentSDKSpec.kt +16 -5
  38. package/nitrogen/generated/android/kotlin/com/margelo/nitro/securiticonsentsdk/PermissionConsent.kt +24 -8
  39. package/nitrogen/generated/android/kotlin/com/margelo/nitro/securiticonsentsdk/PostConsentsRequest.kt +53 -19
  40. package/nitrogen/generated/android/kotlin/com/margelo/nitro/securiticonsentsdk/Purpose.kt +53 -19
  41. package/nitrogen/generated/android/kotlin/com/margelo/nitro/securiticonsentsdk/PurposeConsent.kt +27 -9
  42. package/nitrogen/generated/android/kotlin/com/margelo/nitro/securiticonsentsdk/SDK.kt +44 -16
  43. package/nitrogen/generated/android/kotlin/com/margelo/nitro/securiticonsentsdk/SettingsPrompt.kt +30 -10
  44. package/nitrogen/generated/android/kotlin/com/margelo/nitro/securiticonsentsdk/Variant_NullType_BannerConfig.kt +59 -0
  45. package/nitrogen/generated/android/kotlin/com/margelo/nitro/securiticonsentsdk/Variant_NullType_CmpSDKOptions.kt +59 -0
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/securiticonsentsdk/Variant_NullType_SettingsPrompt.kt +59 -0
  47. package/nitrogen/generated/ios/NitroSecuritiConsentSdk-Swift-Cxx-Bridge.cpp +28 -19
  48. package/nitrogen/generated/ios/NitroSecuritiConsentSdk-Swift-Cxx-Bridge.hpp +313 -163
  49. package/nitrogen/generated/ios/NitroSecuritiConsentSdk-Swift-Cxx-Umbrella.hpp +4 -1
  50. package/nitrogen/generated/ios/NitroSecuritiConsentSdkAutolinking.mm +1 -1
  51. package/nitrogen/generated/ios/NitroSecuritiConsentSdkAutolinking.swift +2 -2
  52. package/nitrogen/generated/ios/c++/HybridConsentSDKSpecSwift.hpp +25 -10
  53. package/nitrogen/generated/ios/swift/AppPermission.swift +21 -7
  54. package/nitrogen/generated/ios/swift/BannerConfig.swift +111 -38
  55. package/nitrogen/generated/ios/swift/CmpSDKOptions.swift +9 -4
  56. package/nitrogen/generated/ios/swift/CustomColors.swift +17 -8
  57. package/nitrogen/generated/ios/swift/Func_void_bool.swift +6 -5
  58. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -0
  59. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +1 -0
  60. package/nitrogen/generated/ios/swift/Func_void_std__unordered_map_std__string__std__string_.swift +55 -0
  61. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__BannerConfig_.swift +59 -0
  62. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__SettingsPrompt_.swift +59 -0
  63. package/nitrogen/generated/ios/swift/Func_void_std__vector_AppPermission_.swift +1 -0
  64. package/nitrogen/generated/ios/swift/Func_void_std__vector_Purpose_.swift +1 -0
  65. package/nitrogen/generated/ios/swift/Func_void_std__vector_SDK_.swift +1 -0
  66. package/nitrogen/generated/ios/swift/HybridConsentSDKSpec.swift +13 -4
  67. package/nitrogen/generated/ios/swift/HybridConsentSDKSpec_cxx.swift +85 -40
  68. package/nitrogen/generated/ios/swift/PermissionConsent.swift +1 -0
  69. package/nitrogen/generated/ios/swift/PostConsentsRequest.swift +5 -2
  70. package/nitrogen/generated/ios/swift/Purpose.swift +47 -11
  71. package/nitrogen/generated/ios/swift/PurposeConsent.swift +1 -0
  72. package/nitrogen/generated/ios/swift/SDK.swift +23 -8
  73. package/nitrogen/generated/ios/swift/SettingsPrompt.swift +11 -5
  74. package/nitrogen/generated/ios/swift/Variant_NullType_BannerConfig.swift +18 -0
  75. package/nitrogen/generated/ios/swift/Variant_NullType_CmpSDKOptions.swift +18 -0
  76. package/nitrogen/generated/ios/swift/Variant_NullType_SettingsPrompt.swift +18 -0
  77. package/nitrogen/generated/shared/c++/AppPermission.hpp +12 -6
  78. package/nitrogen/generated/shared/c++/BannerConfig.hpp +15 -9
  79. package/nitrogen/generated/shared/c++/CmpSDKOptions.hpp +12 -6
  80. package/nitrogen/generated/shared/c++/CustomColors.hpp +13 -7
  81. package/nitrogen/generated/shared/c++/HybridConsentSDKSpec.cpp +1 -0
  82. package/nitrogen/generated/shared/c++/HybridConsentSDKSpec.hpp +9 -6
  83. package/nitrogen/generated/shared/c++/PermissionConsent.hpp +12 -6
  84. package/nitrogen/generated/shared/c++/PostConsentsRequest.hpp +19 -13
  85. package/nitrogen/generated/shared/c++/Purpose.hpp +16 -10
  86. package/nitrogen/generated/shared/c++/PurposeConsent.hpp +12 -6
  87. package/nitrogen/generated/shared/c++/SDK.hpp +12 -6
  88. package/nitrogen/generated/shared/c++/SettingsPrompt.hpp +13 -7
  89. package/package.json +1 -1
  90. package/src/ConsentSDK.nitro.ts +11 -0
  91. package/src/index.ts +11 -0
  92. package/lib/index.d.ts +0 -20
  93. package/nitrogen/generated/ios/swift/Func_void_std__optional_BannerConfig_.swift +0 -52
  94. package/nitrogen/generated/ios/swift/Func_void_std__optional_SettingsPrompt_.swift +0 -52
@@ -1 +1 @@
1
- * linguist-generated
1
+ ** linguist-generated=true
@@ -13,6 +13,12 @@
13
13
  # include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/NitroSecuritiConsentSdk+autolinking.cmake)
14
14
  # ```
15
15
 
16
+ # Define a flag to check if we are building properly
17
+ add_definitions(-DBUILDING_NITROSECURITICONSENTSDK_WITH_GENERATED_CMAKE_PROJECT)
18
+
19
+ # Enable Raw Props parsing in react-native (for Nitro Views)
20
+ add_definitions(-DRN_SERIALIZABLE_STATE)
21
+
16
22
  # Add all headers that were generated by Nitrogen
17
23
  include_directories(
18
24
  "../nitrogen/generated/shared/c++"
@@ -30,14 +36,14 @@ target_sources(
30
36
  ../nitrogen/generated/shared/c++/HybridConsentSDKSpec.cpp
31
37
  # Android-specific Nitrogen C++ sources
32
38
  ../nitrogen/generated/android/c++/JHybridConsentSDKSpec.cpp
39
+ ../nitrogen/generated/android/c++/JVariant_NullType_BannerConfig.cpp
40
+ ../nitrogen/generated/android/c++/JVariant_NullType_CmpSDKOptions.cpp
41
+ ../nitrogen/generated/android/c++/JVariant_NullType_SettingsPrompt.cpp
33
42
  )
34
43
 
35
- # Define a flag to check if we are building properly
36
- add_definitions(-DBUILDING_NITROSECURITICONSENTSDK_WITH_GENERATED_CMAKE_PROJECT)
37
-
38
44
  # From node_modules/react-native/ReactAndroid/cmake-utils/folly-flags.cmake
39
45
  # Used in node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake
40
- target_compile_definitions(
46
+ target_compile_definitions(
41
47
  NitroSecuritiConsentSdk PRIVATE
42
48
  -DFOLLY_NO_CONFIG=1
43
49
  -DFOLLY_HAVE_CLOCK_GETTIME=1
@@ -17,7 +17,6 @@
17
17
 
18
18
  #include "JHybridConsentSDKSpec.hpp"
19
19
  #include "JFunc_void_bool.hpp"
20
- #include <NitroModules/JNISharedPtr.hpp>
21
20
  #include <NitroModules/DefaultConstructableObject.hpp>
22
21
 
23
22
  namespace margelo::nitro::securiticonsentsdk {
@@ -38,8 +37,7 @@ int initialize(JavaVM* vm) {
38
37
  []() -> std::shared_ptr<HybridObject> {
39
38
  static DefaultConstructableObject<JHybridConsentSDKSpec::javaobject> object("com/margelo/nitro/securiticonsentsdk/HybridConsentSDK");
40
39
  auto instance = object.create();
41
- auto globalRef = jni::make_global(instance);
42
- return JNISharedPtr::make_shared_from_jni<JHybridConsentSDKSpec>(globalRef);
40
+ return instance->cthis()->shared();
43
41
  }
44
42
  );
45
43
  });
@@ -69,7 +69,11 @@ namespace margelo::nitro::securiticonsentsdk {
69
69
  */
70
70
  [[maybe_unused]]
71
71
  static jni::local_ref<JAppPermission::javaobject> fromCpp(const AppPermission& value) {
72
- return newInstance(
72
+ using JSignature = JAppPermission(jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JBoolean>);
73
+ static const auto clazz = javaClassStatic();
74
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
75
+ return create(
76
+ clazz,
73
77
  value.id.has_value() ? jni::JDouble::valueOf(value.id.value()) : nullptr,
74
78
  value.name.has_value() ? jni::make_jstring(value.name.value()) : nullptr,
75
79
  value.permissionId.has_value() ? jni::make_jstring(value.permissionId.value()) : nullptr,
@@ -148,7 +148,11 @@ namespace margelo::nitro::securiticonsentsdk {
148
148
  */
149
149
  [[maybe_unused]]
150
150
  static jni::local_ref<JBannerConfig::javaobject> fromCpp(const BannerConfig& value) {
151
- return newInstance(
151
+ using JSignature = JBannerConfig(jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JCustomColors>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JMap<jni::JString, jni::JString>>);
152
+ static const auto clazz = javaClassStatic();
153
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
154
+ return create(
155
+ clazz,
152
156
  value.hideCloseButton.has_value() ? jni::JBoolean::valueOf(value.hideCloseButton.value()) : nullptr,
153
157
  value.hideAcceptButton.has_value() ? jni::JBoolean::valueOf(value.hideAcceptButton.value()) : nullptr,
154
158
  value.embedDSRPortalLink.has_value() ? jni::JBoolean::valueOf(value.embedDSRPortalLink.value()) : nullptr,
@@ -75,7 +75,11 @@ namespace margelo::nitro::securiticonsentsdk {
75
75
  */
76
76
  [[maybe_unused]]
77
77
  static jni::local_ref<JCmpSDKOptions::javaobject> fromCpp(const CmpSDKOptions& value) {
78
- return newInstance(
78
+ using JSignature = JCmpSDKOptions(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jboolean, jni::alias_ref<jni::JString>, double, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>);
79
+ static const auto clazz = javaClassStatic();
80
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
81
+ return create(
82
+ clazz,
79
83
  jni::make_jstring(value.appURL),
80
84
  jni::make_jstring(value.cdnURL),
81
85
  jni::make_jstring(value.tenantID),
@@ -66,7 +66,11 @@ namespace margelo::nitro::securiticonsentsdk {
66
66
  */
67
67
  [[maybe_unused]]
68
68
  static jni::local_ref<JCustomColors::javaobject> fromCpp(const CustomColors& value) {
69
- return newInstance(
69
+ using JSignature = JCustomColors(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>);
70
+ static const auto clazz = javaClassStatic();
71
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
72
+ return create(
73
+ clazz,
70
74
  value.buttonBackground.has_value() ? jni::make_jstring(value.buttonBackground.value()) : nullptr,
71
75
  value.buttonText.has_value() ? jni::make_jstring(value.buttonText.value()) : nullptr,
72
76
  value.buttonBorder.has_value() ? jni::make_jstring(value.buttonBorder.value()) : nullptr,
@@ -11,6 +11,7 @@
11
11
  #include <functional>
12
12
 
13
13
  #include <functional>
14
+ #include <NitroModules/JNICallable.hpp>
14
15
 
15
16
  namespace margelo::nitro::securiticonsentsdk {
16
17
 
@@ -37,7 +38,7 @@ namespace margelo::nitro::securiticonsentsdk {
37
38
  /**
38
39
  * An implementation of Func_void_bool that is backed by a C++ implementation (using `std::function<...>`)
39
40
  */
40
- struct JFunc_void_bool_cxx final: public jni::HybridClass<JFunc_void_bool_cxx, JFunc_void_bool> {
41
+ class JFunc_void_bool_cxx final: public jni::HybridClass<JFunc_void_bool_cxx, JFunc_void_bool> {
41
42
  public:
42
43
  static jni::local_ref<JFunc_void_bool::javaobject> fromCpp(const std::function<void(bool /* isReady */)>& func) {
43
44
  return JFunc_void_bool_cxx::newObjectCxxArgs(func);
@@ -28,28 +28,35 @@ namespace margelo::nitro::securiticonsentsdk { struct PurposeConsent; }
28
28
  // Forward declaration of `PermissionConsent` to properly resolve imports.
29
29
  namespace margelo::nitro::securiticonsentsdk { struct PermissionConsent; }
30
30
 
31
- #include <NitroModules/Promise.hpp>
32
31
  #include <string>
32
+ #include <NitroModules/Promise.hpp>
33
33
  #include <NitroModules/JPromise.hpp>
34
- #include <vector>
35
34
  #include "AppPermission.hpp"
35
+ #include <vector>
36
36
  #include "JAppPermission.hpp"
37
37
  #include <optional>
38
38
  #include "Purpose.hpp"
39
39
  #include "JPurpose.hpp"
40
40
  #include "SDK.hpp"
41
41
  #include "JSDK.hpp"
42
+ #include <unordered_map>
43
+ #include <NitroModules/Null.hpp>
42
44
  #include "BannerConfig.hpp"
45
+ #include <variant>
46
+ #include "JVariant_NullType_BannerConfig.hpp"
47
+ #include <NitroModules/JNull.hpp>
43
48
  #include "JBannerConfig.hpp"
44
49
  #include "CustomColors.hpp"
45
50
  #include "JCustomColors.hpp"
46
- #include <unordered_map>
47
51
  #include "CmpSDKOptions.hpp"
52
+ #include "JVariant_NullType_CmpSDKOptions.hpp"
48
53
  #include "JCmpSDKOptions.hpp"
49
54
  #include "SettingsPrompt.hpp"
55
+ #include "JVariant_NullType_SettingsPrompt.hpp"
50
56
  #include "JSettingsPrompt.hpp"
51
57
  #include <functional>
52
58
  #include "JFunc_void_bool.hpp"
59
+ #include <NitroModules/JNICallable.hpp>
53
60
  #include "PostConsentsRequest.hpp"
54
61
  #include "JPostConsentsRequest.hpp"
55
62
  #include "PurposeConsent.hpp"
@@ -74,6 +81,17 @@ namespace margelo::nitro::securiticonsentsdk {
74
81
  return method(_javaPart);
75
82
  }
76
83
 
84
+ void JHybridConsentSDKSpec::dispose() noexcept {
85
+ static const auto method = javaClassStatic()->getMethod<void()>("dispose");
86
+ method(_javaPart);
87
+ }
88
+
89
+ std::string JHybridConsentSDKSpec::toString() {
90
+ static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
91
+ auto javaString = method(_javaPart);
92
+ return javaString->toStdString();
93
+ }
94
+
77
95
  // Properties
78
96
 
79
97
 
@@ -220,14 +238,37 @@ namespace margelo::nitro::securiticonsentsdk {
220
238
  auto __result = method(_javaPart, JAppPermission::fromCpp(permission), jni::make_jstring(consent));
221
239
  return static_cast<bool>(__result);
222
240
  }
223
- std::shared_ptr<Promise<std::optional<BannerConfig>>> JHybridConsentSDKSpec::getBannerConfig() {
241
+ std::shared_ptr<Promise<std::unordered_map<std::string, std::string>>> JHybridConsentSDKSpec::getGCMConsents() {
242
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getGCMConsents");
243
+ auto __result = method(_javaPart);
244
+ return [&]() {
245
+ auto __promise = Promise<std::unordered_map<std::string, std::string>>::create();
246
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
247
+ auto __result = jni::static_ref_cast<jni::JMap<jni::JString, jni::JString>>(__boxedResult);
248
+ __promise->resolve([&]() {
249
+ std::unordered_map<std::string, std::string> __map;
250
+ __map.reserve(__result->size());
251
+ for (const auto& __entry : *__result) {
252
+ __map.emplace(__entry.first->toStdString(), __entry.second->toStdString());
253
+ }
254
+ return __map;
255
+ }());
256
+ });
257
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
258
+ jni::JniException __jniError(__throwable);
259
+ __promise->reject(std::make_exception_ptr(__jniError));
260
+ });
261
+ return __promise;
262
+ }();
263
+ }
264
+ std::shared_ptr<Promise<std::variant<nitro::NullType, BannerConfig>>> JHybridConsentSDKSpec::getBannerConfig() {
224
265
  static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getBannerConfig");
225
266
  auto __result = method(_javaPart);
226
267
  return [&]() {
227
- auto __promise = Promise<std::optional<BannerConfig>>::create();
268
+ auto __promise = Promise<std::variant<nitro::NullType, BannerConfig>>::create();
228
269
  __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
229
- auto __result = jni::static_ref_cast<JBannerConfig>(__boxedResult);
230
- __promise->resolve(__result != nullptr ? std::make_optional(__result->toCpp()) : std::nullopt);
270
+ auto __result = jni::static_ref_cast<JVariant_NullType_BannerConfig>(__boxedResult);
271
+ __promise->resolve(__result->toCpp());
231
272
  });
232
273
  __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
233
274
  jni::JniException __jniError(__throwable);
@@ -236,19 +277,19 @@ namespace margelo::nitro::securiticonsentsdk {
236
277
  return __promise;
237
278
  }();
238
279
  }
239
- std::optional<CmpSDKOptions> JHybridConsentSDKSpec::options() {
240
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JCmpSDKOptions>()>("options");
280
+ std::variant<nitro::NullType, CmpSDKOptions> JHybridConsentSDKSpec::options() {
281
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JVariant_NullType_CmpSDKOptions>()>("options");
241
282
  auto __result = method(_javaPart);
242
- return __result != nullptr ? std::make_optional(__result->toCpp()) : std::nullopt;
283
+ return __result->toCpp();
243
284
  }
244
- std::shared_ptr<Promise<std::optional<SettingsPrompt>>> JHybridConsentSDKSpec::getSettingsPrompt() {
285
+ std::shared_ptr<Promise<std::variant<nitro::NullType, SettingsPrompt>>> JHybridConsentSDKSpec::getSettingsPrompt() {
245
286
  static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getSettingsPrompt");
246
287
  auto __result = method(_javaPart);
247
288
  return [&]() {
248
- auto __promise = Promise<std::optional<SettingsPrompt>>::create();
289
+ auto __promise = Promise<std::variant<nitro::NullType, SettingsPrompt>>::create();
249
290
  __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
250
- auto __result = jni::static_ref_cast<JSettingsPrompt>(__boxedResult);
251
- __promise->resolve(__result != nullptr ? std::make_optional(__result->toCpp()) : std::nullopt);
291
+ auto __result = jni::static_ref_cast<JVariant_NullType_SettingsPrompt>(__boxedResult);
292
+ __promise->resolve(__result->toCpp());
252
293
  });
253
294
  __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
254
295
  jni::JniException __jniError(__throwable);
@@ -29,6 +29,7 @@ namespace margelo::nitro::securiticonsentsdk {
29
29
  // C++ constructor (called from Java via `initHybrid()`)
30
30
  explicit JHybridConsentSDKSpec(jni::alias_ref<jhybridobject> jThis) :
31
31
  HybridObject(HybridConsentSDKSpec::TAG),
32
+ HybridBase(jThis),
32
33
  _javaPart(jni::make_global(jThis)) {}
33
34
 
34
35
  public:
@@ -39,6 +40,8 @@ namespace margelo::nitro::securiticonsentsdk {
39
40
 
40
41
  public:
41
42
  size_t getExternalMemorySize() noexcept override;
43
+ void dispose() noexcept override;
44
+ std::string toString() override;
42
45
 
43
46
  public:
44
47
  inline const jni::global_ref<JHybridConsentSDKSpec::javaobject>& getJavaPart() const noexcept {
@@ -64,9 +67,10 @@ namespace margelo::nitro::securiticonsentsdk {
64
67
  std::shared_ptr<Promise<std::vector<SDK>>> getSdksInPurpose(double purposeId) override;
65
68
  bool setPurposeConsent(const Purpose& purpose, const std::string& consent) override;
66
69
  bool setPermissionConsent(const AppPermission& permission, const std::string& consent) override;
67
- std::shared_ptr<Promise<std::optional<BannerConfig>>> getBannerConfig() override;
68
- std::optional<CmpSDKOptions> options() override;
69
- std::shared_ptr<Promise<std::optional<SettingsPrompt>>> getSettingsPrompt() override;
70
+ std::shared_ptr<Promise<std::unordered_map<std::string, std::string>>> getGCMConsents() override;
71
+ std::shared_ptr<Promise<std::variant<nitro::NullType, BannerConfig>>> getBannerConfig() override;
72
+ std::variant<nitro::NullType, CmpSDKOptions> options() override;
73
+ std::shared_ptr<Promise<std::variant<nitro::NullType, SettingsPrompt>>> getSettingsPrompt() override;
70
74
  std::shared_ptr<Promise<bool>> uploadConsents(const PostConsentsRequest& request) override;
71
75
 
72
76
  private:
@@ -50,7 +50,11 @@ namespace margelo::nitro::securiticonsentsdk {
50
50
  */
51
51
  [[maybe_unused]]
52
52
  static jni::local_ref<JPermissionConsent::javaobject> fromCpp(const PermissionConsent& value) {
53
- return newInstance(
53
+ using JSignature = JPermissionConsent(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, double);
54
+ static const auto clazz = javaClassStatic();
55
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
56
+ return create(
57
+ clazz,
54
58
  jni::make_jstring(value.permission),
55
59
  jni::make_jstring(value.consentStatus),
56
60
  value.timestamp
@@ -101,7 +101,11 @@ namespace margelo::nitro::securiticonsentsdk {
101
101
  */
102
102
  [[maybe_unused]]
103
103
  static jni::local_ref<JPostConsentsRequest::javaobject> fromCpp(const PostConsentsRequest& value) {
104
- return newInstance(
104
+ using JSignature = JPostConsentsRequest(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jboolean, double, jni::alias_ref<jni::JArrayClass<JPurposeConsent>>, jni::alias_ref<jni::JArrayClass<JPermissionConsent>>, jboolean, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>);
105
+ static const auto clazz = javaClassStatic();
106
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
107
+ return create(
108
+ clazz,
105
109
  jni::make_jstring(value.uuid),
106
110
  jni::make_jstring(value.appUUID),
107
111
  jni::make_jstring(value.device),
@@ -112,7 +116,8 @@ namespace margelo::nitro::securiticonsentsdk {
112
116
  jni::local_ref<jni::JArrayClass<JPurposeConsent>> __array = jni::JArrayClass<JPurposeConsent>::newArray(__size);
113
117
  for (size_t __i = 0; __i < __size; __i++) {
114
118
  const auto& __element = value.purposeConsents[__i];
115
- __array->setElement(__i, *JPurposeConsent::fromCpp(__element));
119
+ auto __elementJni = JPurposeConsent::fromCpp(__element);
120
+ __array->setElement(__i, *__elementJni);
116
121
  }
117
122
  return __array;
118
123
  }(),
@@ -121,7 +126,8 @@ namespace margelo::nitro::securiticonsentsdk {
121
126
  jni::local_ref<jni::JArrayClass<JPermissionConsent>> __array = jni::JArrayClass<JPermissionConsent>::newArray(__size);
122
127
  for (size_t __i = 0; __i < __size; __i++) {
123
128
  const auto& __element = value.permissions[__i];
124
- __array->setElement(__i, *JPermissionConsent::fromCpp(__element));
129
+ auto __elementJni = JPermissionConsent::fromCpp(__element);
130
+ __array->setElement(__i, *__elementJni);
125
131
  }
126
132
  return __array;
127
133
  }(),
@@ -90,7 +90,11 @@ namespace margelo::nitro::securiticonsentsdk {
90
90
  */
91
91
  [[maybe_unused]]
92
92
  static jni::local_ref<JPurpose::javaobject> fromCpp(const Purpose& value) {
93
- return newInstance(
93
+ using JSignature = JPurpose(jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JArrayClass<JSDK>>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JString>);
94
+ static const auto clazz = javaClassStatic();
95
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
96
+ return create(
97
+ clazz,
94
98
  value.purposeId.has_value() ? jni::JDouble::valueOf(value.purposeId.value()) : nullptr,
95
99
  value.purposeName.has_value() ? jni::make_jstring(value.purposeName.value()) : nullptr,
96
100
  value.purposeDescription.has_value() ? jni::make_jstring(value.purposeDescription.value()) : nullptr,
@@ -99,7 +103,8 @@ namespace margelo::nitro::securiticonsentsdk {
99
103
  jni::local_ref<jni::JArrayClass<JSDK>> __array = jni::JArrayClass<JSDK>::newArray(__size);
100
104
  for (size_t __i = 0; __i < __size; __i++) {
101
105
  const auto& __element = value.sdks.value()[__i];
102
- __array->setElement(__i, *JSDK::fromCpp(__element));
106
+ auto __elementJni = JSDK::fromCpp(__element);
107
+ __array->setElement(__i, *__elementJni);
103
108
  }
104
109
  return __array;
105
110
  }() : nullptr,
@@ -53,7 +53,11 @@ namespace margelo::nitro::securiticonsentsdk {
53
53
  */
54
54
  [[maybe_unused]]
55
55
  static jni::local_ref<JPurposeConsent::javaobject> fromCpp(const PurposeConsent& value) {
56
- return newInstance(
56
+ using JSignature = JPurposeConsent(double, jni::alias_ref<jni::JString>, double, jboolean);
57
+ static const auto clazz = javaClassStatic();
58
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
59
+ return create(
60
+ clazz,
57
61
  value.purposeID,
58
62
  jni::make_jstring(value.consentStatus),
59
63
  value.timestamp,
@@ -79,7 +79,11 @@ namespace margelo::nitro::securiticonsentsdk {
79
79
  */
80
80
  [[maybe_unused]]
81
81
  static jni::local_ref<JSDK::javaobject> fromCpp(const SDK& value) {
82
- return newInstance(
82
+ using JSignature = JSDK(jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JArrayClass<jni::JString>>, jni::alias_ref<jni::JBoolean>);
83
+ static const auto clazz = javaClassStatic();
84
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
85
+ return create(
86
+ clazz,
83
87
  value.sdkId.has_value() ? jni::JDouble::valueOf(value.sdkId.value()) : nullptr,
84
88
  value.namespaceId.has_value() ? jni::make_jstring(value.namespaceId.value()) : nullptr,
85
89
  value.sdkName.has_value() ? jni::make_jstring(value.sdkName.value()) : nullptr,
@@ -92,7 +96,8 @@ namespace margelo::nitro::securiticonsentsdk {
92
96
  jni::local_ref<jni::JArrayClass<jni::JString>> __array = jni::JArrayClass<jni::JString>::newArray(__size);
93
97
  for (size_t __i = 0; __i < __size; __i++) {
94
98
  const auto& __element = value.matchedBy.value()[__i];
95
- __array->setElement(__i, *jni::make_jstring(__element));
99
+ auto __elementJni = jni::make_jstring(__element);
100
+ __array->setElement(__i, *__elementJni);
96
101
  }
97
102
  return __array;
98
103
  }() : nullptr,
@@ -67,7 +67,11 @@ namespace margelo::nitro::securiticonsentsdk {
67
67
  */
68
68
  [[maybe_unused]]
69
69
  static jni::local_ref<JSettingsPrompt::javaobject> fromCpp(const SettingsPrompt& value) {
70
- return newInstance(
70
+ using JSignature = JSettingsPrompt(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JArrayClass<jni::JString>>);
71
+ static const auto clazz = javaClassStatic();
72
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
73
+ return create(
74
+ clazz,
71
75
  value.promptHeading.has_value() ? jni::make_jstring(value.promptHeading.value()) : nullptr,
72
76
  value.promptMessage.has_value() ? jni::make_jstring(value.promptMessage.value()) : nullptr,
73
77
  value.settingsButtonText.has_value() ? jni::make_jstring(value.settingsButtonText.value()) : nullptr,
@@ -77,7 +81,8 @@ namespace margelo::nitro::securiticonsentsdk {
77
81
  jni::local_ref<jni::JArrayClass<jni::JString>> __array = jni::JArrayClass<jni::JString>::newArray(__size);
78
82
  for (size_t __i = 0; __i < __size; __i++) {
79
83
  const auto& __element = value.permissions.value()[__i];
80
- __array->setElement(__i, *jni::make_jstring(__element));
84
+ auto __elementJni = jni::make_jstring(__element);
85
+ __array->setElement(__i, *__elementJni);
81
86
  }
82
87
  return __array;
83
88
  }() : nullptr
@@ -0,0 +1,26 @@
1
+ ///
2
+ /// JVariant_NullType_BannerConfig.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 "JVariant_NullType_BannerConfig.hpp"
9
+
10
+ namespace margelo::nitro::securiticonsentsdk {
11
+ /**
12
+ * Converts JVariant_NullType_BannerConfig to std::variant<nitro::NullType, BannerConfig>
13
+ */
14
+ std::variant<nitro::NullType, BannerConfig> JVariant_NullType_BannerConfig::toCpp() const {
15
+ if (isInstanceOf(JVariant_NullType_BannerConfig_impl::First::javaClassStatic())) {
16
+ // It's a `nitro::NullType`
17
+ auto jniValue = static_cast<const JVariant_NullType_BannerConfig_impl::First*>(this)->getValue();
18
+ return nitro::null;
19
+ } else if (isInstanceOf(JVariant_NullType_BannerConfig_impl::Second::javaClassStatic())) {
20
+ // It's a `BannerConfig`
21
+ auto jniValue = static_cast<const JVariant_NullType_BannerConfig_impl::Second*>(this)->getValue();
22
+ return jniValue->toCpp();
23
+ }
24
+ throw std::invalid_argument("Variant is unknown Kotlin instance!");
25
+ }
26
+ } // namespace margelo::nitro::securiticonsentsdk
@@ -0,0 +1,76 @@
1
+ ///
2
+ /// JVariant_NullType_BannerConfig.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 <fbjni/fbjni.h>
11
+ #include <variant>
12
+
13
+ #include <NitroModules/Null.hpp>
14
+ #include "BannerConfig.hpp"
15
+ #include <variant>
16
+ #include <NitroModules/JNull.hpp>
17
+ #include "JBannerConfig.hpp"
18
+ #include <optional>
19
+ #include <string>
20
+ #include "CustomColors.hpp"
21
+ #include "JCustomColors.hpp"
22
+ #include <unordered_map>
23
+
24
+ namespace margelo::nitro::securiticonsentsdk {
25
+
26
+ using namespace facebook;
27
+
28
+ /**
29
+ * The C++ JNI bridge between the C++ std::variant and the Java class "Variant_NullType_BannerConfig".
30
+ */
31
+ class JVariant_NullType_BannerConfig: public jni::JavaClass<JVariant_NullType_BannerConfig> {
32
+ public:
33
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/securiticonsentsdk/Variant_NullType_BannerConfig;";
34
+
35
+ static jni::local_ref<JVariant_NullType_BannerConfig> create_0(jni::alias_ref<JNull> value) {
36
+ static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_BannerConfig(jni::alias_ref<JNull>)>("create");
37
+ return method(javaClassStatic(), value);
38
+ }
39
+ static jni::local_ref<JVariant_NullType_BannerConfig> create_1(jni::alias_ref<JBannerConfig> value) {
40
+ static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_BannerConfig(jni::alias_ref<JBannerConfig>)>("create");
41
+ return method(javaClassStatic(), value);
42
+ }
43
+
44
+ static jni::local_ref<JVariant_NullType_BannerConfig> fromCpp(const std::variant<nitro::NullType, BannerConfig>& variant) {
45
+ switch (variant.index()) {
46
+ case 0: return create_0(JNull::null());
47
+ case 1: return create_1(JBannerConfig::fromCpp(std::get<1>(variant)));
48
+ default: throw std::invalid_argument("Variant holds unknown index! (" + std::to_string(variant.index()) + ")");
49
+ }
50
+ }
51
+
52
+ [[nodiscard]] std::variant<nitro::NullType, BannerConfig> toCpp() const;
53
+ };
54
+
55
+ namespace JVariant_NullType_BannerConfig_impl {
56
+ class First: public jni::JavaClass<First, JVariant_NullType_BannerConfig> {
57
+ public:
58
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/securiticonsentsdk/Variant_NullType_BannerConfig$First;";
59
+
60
+ [[nodiscard]] jni::local_ref<JNull> getValue() const {
61
+ static const auto field = javaClassStatic()->getField<JNull>("value");
62
+ return getFieldValue(field);
63
+ }
64
+ };
65
+
66
+ class Second: public jni::JavaClass<Second, JVariant_NullType_BannerConfig> {
67
+ public:
68
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/securiticonsentsdk/Variant_NullType_BannerConfig$Second;";
69
+
70
+ [[nodiscard]] jni::local_ref<JBannerConfig> getValue() const {
71
+ static const auto field = javaClassStatic()->getField<JBannerConfig>("value");
72
+ return getFieldValue(field);
73
+ }
74
+ };
75
+ } // namespace JVariant_NullType_BannerConfig_impl
76
+ } // namespace margelo::nitro::securiticonsentsdk
@@ -0,0 +1,26 @@
1
+ ///
2
+ /// JVariant_NullType_CmpSDKOptions.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 "JVariant_NullType_CmpSDKOptions.hpp"
9
+
10
+ namespace margelo::nitro::securiticonsentsdk {
11
+ /**
12
+ * Converts JVariant_NullType_CmpSDKOptions to std::variant<nitro::NullType, CmpSDKOptions>
13
+ */
14
+ std::variant<nitro::NullType, CmpSDKOptions> JVariant_NullType_CmpSDKOptions::toCpp() const {
15
+ if (isInstanceOf(JVariant_NullType_CmpSDKOptions_impl::First::javaClassStatic())) {
16
+ // It's a `nitro::NullType`
17
+ auto jniValue = static_cast<const JVariant_NullType_CmpSDKOptions_impl::First*>(this)->getValue();
18
+ return nitro::null;
19
+ } else if (isInstanceOf(JVariant_NullType_CmpSDKOptions_impl::Second::javaClassStatic())) {
20
+ // It's a `CmpSDKOptions`
21
+ auto jniValue = static_cast<const JVariant_NullType_CmpSDKOptions_impl::Second*>(this)->getValue();
22
+ return jniValue->toCpp();
23
+ }
24
+ throw std::invalid_argument("Variant is unknown Kotlin instance!");
25
+ }
26
+ } // namespace margelo::nitro::securiticonsentsdk
@@ -0,0 +1,73 @@
1
+ ///
2
+ /// JVariant_NullType_CmpSDKOptions.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 <fbjni/fbjni.h>
11
+ #include <variant>
12
+
13
+ #include <NitroModules/Null.hpp>
14
+ #include "CmpSDKOptions.hpp"
15
+ #include <variant>
16
+ #include <NitroModules/JNull.hpp>
17
+ #include "JCmpSDKOptions.hpp"
18
+ #include <string>
19
+ #include <optional>
20
+
21
+ namespace margelo::nitro::securiticonsentsdk {
22
+
23
+ using namespace facebook;
24
+
25
+ /**
26
+ * The C++ JNI bridge between the C++ std::variant and the Java class "Variant_NullType_CmpSDKOptions".
27
+ */
28
+ class JVariant_NullType_CmpSDKOptions: public jni::JavaClass<JVariant_NullType_CmpSDKOptions> {
29
+ public:
30
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/securiticonsentsdk/Variant_NullType_CmpSDKOptions;";
31
+
32
+ static jni::local_ref<JVariant_NullType_CmpSDKOptions> create_0(jni::alias_ref<JNull> value) {
33
+ static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_CmpSDKOptions(jni::alias_ref<JNull>)>("create");
34
+ return method(javaClassStatic(), value);
35
+ }
36
+ static jni::local_ref<JVariant_NullType_CmpSDKOptions> create_1(jni::alias_ref<JCmpSDKOptions> value) {
37
+ static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_CmpSDKOptions(jni::alias_ref<JCmpSDKOptions>)>("create");
38
+ return method(javaClassStatic(), value);
39
+ }
40
+
41
+ static jni::local_ref<JVariant_NullType_CmpSDKOptions> fromCpp(const std::variant<nitro::NullType, CmpSDKOptions>& variant) {
42
+ switch (variant.index()) {
43
+ case 0: return create_0(JNull::null());
44
+ case 1: return create_1(JCmpSDKOptions::fromCpp(std::get<1>(variant)));
45
+ default: throw std::invalid_argument("Variant holds unknown index! (" + std::to_string(variant.index()) + ")");
46
+ }
47
+ }
48
+
49
+ [[nodiscard]] std::variant<nitro::NullType, CmpSDKOptions> toCpp() const;
50
+ };
51
+
52
+ namespace JVariant_NullType_CmpSDKOptions_impl {
53
+ class First: public jni::JavaClass<First, JVariant_NullType_CmpSDKOptions> {
54
+ public:
55
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/securiticonsentsdk/Variant_NullType_CmpSDKOptions$First;";
56
+
57
+ [[nodiscard]] jni::local_ref<JNull> getValue() const {
58
+ static const auto field = javaClassStatic()->getField<JNull>("value");
59
+ return getFieldValue(field);
60
+ }
61
+ };
62
+
63
+ class Second: public jni::JavaClass<Second, JVariant_NullType_CmpSDKOptions> {
64
+ public:
65
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/securiticonsentsdk/Variant_NullType_CmpSDKOptions$Second;";
66
+
67
+ [[nodiscard]] jni::local_ref<JCmpSDKOptions> getValue() const {
68
+ static const auto field = javaClassStatic()->getField<JCmpSDKOptions>("value");
69
+ return getFieldValue(field);
70
+ }
71
+ };
72
+ } // namespace JVariant_NullType_CmpSDKOptions_impl
73
+ } // namespace margelo::nitro::securiticonsentsdk