react-native-iap 14.4.47 → 14.5.1-rc.1

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 (101) hide show
  1. package/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +76 -16
  2. package/ios/HybridRnIap.swift +17 -5
  3. package/ios/RnIapHelper.swift +8 -0
  4. package/ios/reactnativeiap.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  5. package/ios/reactnativeiap.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  6. package/lib/module/index.js +6 -5
  7. package/lib/module/index.js.map +1 -1
  8. package/lib/module/types.js +35 -0
  9. package/lib/module/types.js.map +1 -1
  10. package/lib/module/utils/type-bridge.js +21 -1
  11. package/lib/module/utils/type-bridge.js.map +1 -1
  12. package/lib/typescript/src/index.d.ts.map +1 -1
  13. package/lib/typescript/src/specs/RnIap.nitro.d.ts +71 -4
  14. package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
  15. package/lib/typescript/src/types.d.ts +155 -10
  16. package/lib/typescript/src/types.d.ts.map +1 -1
  17. package/lib/typescript/src/utils/type-bridge.d.ts.map +1 -1
  18. package/nitrogen/generated/android/c++/JFunc_void_NitroProduct.hpp +13 -0
  19. package/nitrogen/generated/android/c++/JFunc_void_NitroPurchase.hpp +2 -0
  20. package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +32 -4
  21. package/nitrogen/generated/android/c++/{JIapkitStore.hpp → JIapStore.hpp} +19 -13
  22. package/nitrogen/generated/android/c++/JNitroDiscountAmountAndroid.hpp +61 -0
  23. package/nitrogen/generated/android/c++/JNitroDiscountDisplayInfoAndroid.hpp +64 -0
  24. package/nitrogen/generated/android/c++/JNitroLimitedQuantityInfoAndroid.hpp +61 -0
  25. package/nitrogen/generated/android/c++/JNitroOneTimePurchaseOfferDetail.hpp +70 -3
  26. package/nitrogen/generated/android/c++/JNitroPreorderDetailsAndroid.hpp +61 -0
  27. package/nitrogen/generated/android/c++/JNitroProduct.hpp +35 -5
  28. package/nitrogen/generated/android/c++/JNitroPurchase.hpp +13 -3
  29. package/nitrogen/generated/android/c++/JNitroPurchaseRequest.hpp +11 -3
  30. package/nitrogen/generated/android/c++/JNitroReceiptValidationResultIOS.hpp +2 -0
  31. package/nitrogen/generated/android/c++/JNitroRentalDetailsAndroid.hpp +62 -0
  32. package/nitrogen/generated/android/c++/JNitroValidTimeWindowAndroid.hpp +61 -0
  33. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitResult.hpp +6 -6
  34. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithProviderError.hpp +62 -0
  35. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithProviderResult.hpp +24 -16
  36. package/nitrogen/generated/android/c++/JPurchase.hpp +2 -0
  37. package/nitrogen/generated/android/c++/JPurchaseAndroid.hpp +11 -1
  38. package/nitrogen/generated/android/c++/JPurchaseIOS.hpp +7 -1
  39. package/nitrogen/generated/android/c++/JRequestPurchaseResult.hpp +2 -0
  40. package/nitrogen/generated/android/c++/JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.hpp +2 -0
  41. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/{IapkitStore.kt → IapStore.kt} +7 -5
  42. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountAmountAndroid.kt +39 -0
  43. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountDisplayInfoAndroid.kt +39 -0
  44. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLimitedQuantityInfoAndroid.kt +39 -0
  45. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroOneTimePurchaseOfferDetail.kt +30 -3
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPreorderDetailsAndroid.kt +39 -0
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroProduct.kt +2 -2
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchase.kt +9 -3
  49. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchaseRequest.kt +9 -3
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRentalDetailsAndroid.kt +39 -0
  51. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroValidTimeWindowAndroid.kt +39 -0
  52. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitResult.kt +2 -2
  53. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithProviderError.kt +39 -0
  54. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithProviderResult.kt +6 -3
  55. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseAndroid.kt +8 -2
  56. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseIOS.kt +5 -2
  57. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +178 -26
  58. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +24 -3
  59. package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +24 -3
  60. package/nitrogen/generated/ios/swift/{IapkitStore.swift → IapStore.swift} +14 -6
  61. package/nitrogen/generated/ios/swift/NitroDiscountAmountAndroid.swift +46 -0
  62. package/nitrogen/generated/ios/swift/NitroDiscountDisplayInfoAndroid.swift +70 -0
  63. package/nitrogen/generated/ios/swift/NitroLimitedQuantityInfoAndroid.swift +46 -0
  64. package/nitrogen/generated/ios/swift/NitroOneTimePurchaseOfferDetail.swift +211 -2
  65. package/nitrogen/generated/ios/swift/NitroPreorderDetailsAndroid.swift +46 -0
  66. package/nitrogen/generated/ios/swift/NitroProduct.swift +26 -7
  67. package/nitrogen/generated/ios/swift/NitroPurchase.swift +43 -2
  68. package/nitrogen/generated/ios/swift/NitroPurchaseRequest.swift +47 -1
  69. package/nitrogen/generated/ios/swift/NitroRentalDetailsAndroid.swift +65 -0
  70. package/nitrogen/generated/ios/swift/NitroValidTimeWindowAndroid.swift +46 -0
  71. package/nitrogen/generated/ios/swift/NitroVerifyPurchaseWithIapkitResult.swift +2 -2
  72. package/nitrogen/generated/ios/swift/NitroVerifyPurchaseWithProviderError.swift +65 -0
  73. package/nitrogen/generated/ios/swift/NitroVerifyPurchaseWithProviderResult.swift +55 -13
  74. package/nitrogen/generated/ios/swift/PurchaseAndroid.swift +44 -3
  75. package/nitrogen/generated/ios/swift/PurchaseIOS.swift +13 -2
  76. package/nitrogen/generated/shared/c++/{IapkitStore.hpp → IapStore.hpp} +23 -15
  77. package/nitrogen/generated/shared/c++/NitroDiscountAmountAndroid.hpp +79 -0
  78. package/nitrogen/generated/shared/c++/NitroDiscountDisplayInfoAndroid.hpp +81 -0
  79. package/nitrogen/generated/shared/c++/NitroLimitedQuantityInfoAndroid.hpp +79 -0
  80. package/nitrogen/generated/shared/c++/NitroOneTimePurchaseOfferDetail.hpp +55 -3
  81. package/nitrogen/generated/shared/c++/NitroPreorderDetailsAndroid.hpp +79 -0
  82. package/nitrogen/generated/shared/c++/NitroProduct.hpp +6 -5
  83. package/nitrogen/generated/shared/c++/NitroPurchase.hpp +13 -2
  84. package/nitrogen/generated/shared/c++/NitroPurchaseRequest.hpp +10 -2
  85. package/nitrogen/generated/shared/c++/NitroRentalDetailsAndroid.hpp +80 -0
  86. package/nitrogen/generated/shared/c++/NitroValidTimeWindowAndroid.hpp +79 -0
  87. package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithIapkitResult.hpp +8 -8
  88. package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithProviderError.hpp +80 -0
  89. package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithProviderResult.hpp +13 -5
  90. package/nitrogen/generated/shared/c++/PurchaseAndroid.hpp +12 -1
  91. package/nitrogen/generated/shared/c++/PurchaseIOS.hpp +8 -1
  92. package/openiap-versions.json +3 -3
  93. package/package.json +1 -1
  94. package/plugin/build/src/withIAP.d.ts +3 -0
  95. package/plugin/build/src/withIAP.js +81 -0
  96. package/plugin/build/tsconfig.tsbuildinfo +1 -0
  97. package/plugin/tsconfig.tsbuildinfo +1 -1
  98. package/src/index.ts +8 -5
  99. package/src/specs/RnIap.nitro.ts +79 -4
  100. package/src/types.ts +163 -11
  101. package/src/utils/type-bridge.ts +23 -0
@@ -0,0 +1,61 @@
1
+ ///
2
+ /// JNitroPreorderDetailsAndroid.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 "NitroPreorderDetailsAndroid.hpp"
12
+
13
+ #include <string>
14
+
15
+ namespace margelo::nitro::iap {
16
+
17
+ using namespace facebook;
18
+
19
+ /**
20
+ * The C++ JNI bridge between the C++ struct "NitroPreorderDetailsAndroid" and the the Kotlin data class "NitroPreorderDetailsAndroid".
21
+ */
22
+ struct JNitroPreorderDetailsAndroid final: public jni::JavaClass<JNitroPreorderDetailsAndroid> {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroPreorderDetailsAndroid;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct NitroPreorderDetailsAndroid by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ NitroPreorderDetailsAndroid toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldPreorderPresaleEndTimeMillis = clazz->getField<jni::JString>("preorderPresaleEndTimeMillis");
35
+ jni::local_ref<jni::JString> preorderPresaleEndTimeMillis = this->getFieldValue(fieldPreorderPresaleEndTimeMillis);
36
+ static const auto fieldPreorderReleaseTimeMillis = clazz->getField<jni::JString>("preorderReleaseTimeMillis");
37
+ jni::local_ref<jni::JString> preorderReleaseTimeMillis = this->getFieldValue(fieldPreorderReleaseTimeMillis);
38
+ return NitroPreorderDetailsAndroid(
39
+ preorderPresaleEndTimeMillis->toStdString(),
40
+ preorderReleaseTimeMillis->toStdString()
41
+ );
42
+ }
43
+
44
+ public:
45
+ /**
46
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
47
+ */
48
+ [[maybe_unused]]
49
+ static jni::local_ref<JNitroPreorderDetailsAndroid::javaobject> fromCpp(const NitroPreorderDetailsAndroid& value) {
50
+ using JSignature = JNitroPreorderDetailsAndroid(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>);
51
+ static const auto clazz = javaClassStatic();
52
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
53
+ return create(
54
+ clazz,
55
+ jni::make_jstring(value.preorderPresaleEndTimeMillis),
56
+ jni::make_jstring(value.preorderReleaseTimeMillis)
57
+ );
58
+ }
59
+ };
60
+
61
+ } // namespace margelo::nitro::iap
@@ -12,12 +12,25 @@
12
12
 
13
13
  #include "IapPlatform.hpp"
14
14
  #include "JIapPlatform.hpp"
15
+ #include "JNitroDiscountAmountAndroid.hpp"
16
+ #include "JNitroDiscountDisplayInfoAndroid.hpp"
17
+ #include "JNitroLimitedQuantityInfoAndroid.hpp"
15
18
  #include "JNitroOneTimePurchaseOfferDetail.hpp"
19
+ #include "JNitroPreorderDetailsAndroid.hpp"
20
+ #include "JNitroRentalDetailsAndroid.hpp"
21
+ #include "JNitroValidTimeWindowAndroid.hpp"
16
22
  #include "JPaymentModeIOS.hpp"
23
+ #include "NitroDiscountAmountAndroid.hpp"
24
+ #include "NitroDiscountDisplayInfoAndroid.hpp"
25
+ #include "NitroLimitedQuantityInfoAndroid.hpp"
17
26
  #include "NitroOneTimePurchaseOfferDetail.hpp"
27
+ #include "NitroPreorderDetailsAndroid.hpp"
28
+ #include "NitroRentalDetailsAndroid.hpp"
29
+ #include "NitroValidTimeWindowAndroid.hpp"
18
30
  #include "PaymentModeIOS.hpp"
19
31
  #include <optional>
20
32
  #include <string>
33
+ #include <vector>
21
34
 
22
35
  namespace margelo::nitro::iap {
23
36
 
@@ -96,8 +109,8 @@ namespace margelo::nitro::iap {
96
109
  jni::local_ref<jni::JString> freeTrialPeriodAndroid = this->getFieldValue(fieldFreeTrialPeriodAndroid);
97
110
  static const auto fieldSubscriptionOfferDetailsAndroid = clazz->getField<jni::JString>("subscriptionOfferDetailsAndroid");
98
111
  jni::local_ref<jni::JString> subscriptionOfferDetailsAndroid = this->getFieldValue(fieldSubscriptionOfferDetailsAndroid);
99
- static const auto fieldOneTimePurchaseOfferDetailsAndroid = clazz->getField<JNitroOneTimePurchaseOfferDetail>("oneTimePurchaseOfferDetailsAndroid");
100
- jni::local_ref<JNitroOneTimePurchaseOfferDetail> oneTimePurchaseOfferDetailsAndroid = this->getFieldValue(fieldOneTimePurchaseOfferDetailsAndroid);
112
+ static const auto fieldOneTimePurchaseOfferDetailsAndroid = clazz->getField<jni::JArrayClass<JNitroOneTimePurchaseOfferDetail>>("oneTimePurchaseOfferDetailsAndroid");
113
+ jni::local_ref<jni::JArrayClass<JNitroOneTimePurchaseOfferDetail>> oneTimePurchaseOfferDetailsAndroid = this->getFieldValue(fieldOneTimePurchaseOfferDetailsAndroid);
101
114
  return NitroProduct(
102
115
  id->toStdString(),
103
116
  title->toStdString(),
@@ -128,7 +141,16 @@ namespace margelo::nitro::iap {
128
141
  subscriptionPeriodAndroid != nullptr ? std::make_optional(subscriptionPeriodAndroid->toStdString()) : std::nullopt,
129
142
  freeTrialPeriodAndroid != nullptr ? std::make_optional(freeTrialPeriodAndroid->toStdString()) : std::nullopt,
130
143
  subscriptionOfferDetailsAndroid != nullptr ? std::make_optional(subscriptionOfferDetailsAndroid->toStdString()) : std::nullopt,
131
- oneTimePurchaseOfferDetailsAndroid != nullptr ? std::make_optional(oneTimePurchaseOfferDetailsAndroid->toCpp()) : std::nullopt
144
+ oneTimePurchaseOfferDetailsAndroid != nullptr ? std::make_optional([&]() {
145
+ size_t __size = oneTimePurchaseOfferDetailsAndroid->size();
146
+ std::vector<NitroOneTimePurchaseOfferDetail> __vector;
147
+ __vector.reserve(__size);
148
+ for (size_t __i = 0; __i < __size; __i++) {
149
+ auto __element = oneTimePurchaseOfferDetailsAndroid->getElement(__i);
150
+ __vector.push_back(__element->toCpp());
151
+ }
152
+ return __vector;
153
+ }()) : std::nullopt
132
154
  );
133
155
  }
134
156
 
@@ -138,7 +160,7 @@ namespace margelo::nitro::iap {
138
160
  */
139
161
  [[maybe_unused]]
140
162
  static jni::local_ref<JNitroProduct::javaobject> fromCpp(const NitroProduct& value) {
141
- using JSignature = JNitroProduct(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::JDouble>, jni::alias_ref<JIapPlatform>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<JPaymentModeIOS>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JNitroOneTimePurchaseOfferDetail>);
163
+ using JSignature = JNitroProduct(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::JDouble>, jni::alias_ref<JIapPlatform>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<JPaymentModeIOS>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JArrayClass<JNitroOneTimePurchaseOfferDetail>>);
142
164
  static const auto clazz = javaClassStatic();
143
165
  static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
144
166
  return create(
@@ -172,7 +194,15 @@ namespace margelo::nitro::iap {
172
194
  value.subscriptionPeriodAndroid.has_value() ? jni::make_jstring(value.subscriptionPeriodAndroid.value()) : nullptr,
173
195
  value.freeTrialPeriodAndroid.has_value() ? jni::make_jstring(value.freeTrialPeriodAndroid.value()) : nullptr,
174
196
  value.subscriptionOfferDetailsAndroid.has_value() ? jni::make_jstring(value.subscriptionOfferDetailsAndroid.value()) : nullptr,
175
- value.oneTimePurchaseOfferDetailsAndroid.has_value() ? JNitroOneTimePurchaseOfferDetail::fromCpp(value.oneTimePurchaseOfferDetailsAndroid.value()) : nullptr
197
+ value.oneTimePurchaseOfferDetailsAndroid.has_value() ? [&]() {
198
+ size_t __size = value.oneTimePurchaseOfferDetailsAndroid.value().size();
199
+ jni::local_ref<jni::JArrayClass<JNitroOneTimePurchaseOfferDetail>> __array = jni::JArrayClass<JNitroOneTimePurchaseOfferDetail>::newArray(__size);
200
+ for (size_t __i = 0; __i < __size; __i++) {
201
+ const auto& __element = value.oneTimePurchaseOfferDetailsAndroid.value()[__i];
202
+ __array->setElement(__i, *JNitroOneTimePurchaseOfferDetail::fromCpp(__element));
203
+ }
204
+ return __array;
205
+ }() : nullptr
176
206
  );
177
207
  }
178
208
  };
@@ -11,7 +11,9 @@
11
11
  #include "NitroPurchase.hpp"
12
12
 
13
13
  #include "IapPlatform.hpp"
14
+ #include "IapStore.hpp"
14
15
  #include "JIapPlatform.hpp"
16
+ #include "JIapStore.hpp"
15
17
  #include "JNitroRenewalInfoIOS.hpp"
16
18
  #include "JPurchaseState.hpp"
17
19
  #include "NitroRenewalInfoIOS.hpp"
@@ -48,6 +50,8 @@ namespace margelo::nitro::iap {
48
50
  jni::local_ref<jni::JString> purchaseToken = this->getFieldValue(fieldPurchaseToken);
49
51
  static const auto fieldPlatform = clazz->getField<JIapPlatform>("platform");
50
52
  jni::local_ref<JIapPlatform> platform = this->getFieldValue(fieldPlatform);
53
+ static const auto fieldStore = clazz->getField<JIapStore>("store");
54
+ jni::local_ref<JIapStore> store = this->getFieldValue(fieldStore);
51
55
  static const auto fieldQuantity = clazz->getField<double>("quantity");
52
56
  double quantity = this->getFieldValue(fieldQuantity);
53
57
  static const auto fieldPurchaseState = clazz->getField<JPurchaseState>("purchaseState");
@@ -118,12 +122,15 @@ namespace margelo::nitro::iap {
118
122
  jni::local_ref<jni::JString> obfuscatedProfileIdAndroid = this->getFieldValue(fieldObfuscatedProfileIdAndroid);
119
123
  static const auto fieldDeveloperPayloadAndroid = clazz->getField<jni::JString>("developerPayloadAndroid");
120
124
  jni::local_ref<jni::JString> developerPayloadAndroid = this->getFieldValue(fieldDeveloperPayloadAndroid);
125
+ static const auto fieldIsSuspendedAndroid = clazz->getField<jni::JBoolean>("isSuspendedAndroid");
126
+ jni::local_ref<jni::JBoolean> isSuspendedAndroid = this->getFieldValue(fieldIsSuspendedAndroid);
121
127
  return NitroPurchase(
122
128
  id->toStdString(),
123
129
  productId->toStdString(),
124
130
  transactionDate,
125
131
  purchaseToken != nullptr ? std::make_optional(purchaseToken->toStdString()) : std::nullopt,
126
132
  platform->toCpp(),
133
+ store->toCpp(),
127
134
  quantity,
128
135
  purchaseState->toCpp(),
129
136
  static_cast<bool>(isAutoRenewing),
@@ -158,7 +165,8 @@ namespace margelo::nitro::iap {
158
165
  packageNameAndroid != nullptr ? std::make_optional(packageNameAndroid->toStdString()) : std::nullopt,
159
166
  obfuscatedAccountIdAndroid != nullptr ? std::make_optional(obfuscatedAccountIdAndroid->toStdString()) : std::nullopt,
160
167
  obfuscatedProfileIdAndroid != nullptr ? std::make_optional(obfuscatedProfileIdAndroid->toStdString()) : std::nullopt,
161
- developerPayloadAndroid != nullptr ? std::make_optional(developerPayloadAndroid->toStdString()) : std::nullopt
168
+ developerPayloadAndroid != nullptr ? std::make_optional(developerPayloadAndroid->toStdString()) : std::nullopt,
169
+ isSuspendedAndroid != nullptr ? std::make_optional(static_cast<bool>(isSuspendedAndroid->value())) : std::nullopt
162
170
  );
163
171
  }
164
172
 
@@ -168,7 +176,7 @@ namespace margelo::nitro::iap {
168
176
  */
169
177
  [[maybe_unused]]
170
178
  static jni::local_ref<JNitroPurchase::javaobject> fromCpp(const NitroPurchase& value) {
171
- using JSignature = JNitroPurchase(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, double, jni::alias_ref<jni::JString>, jni::alias_ref<JIapPlatform>, double, jni::alias_ref<JPurchaseState>, jboolean, jni::alias_ref<jni::JDouble>, 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::JString>, jni::alias_ref<jni::JDouble>, 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::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<JNitroRenewalInfoIOS>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JDouble>, 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>);
179
+ using JSignature = JNitroPurchase(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, double, jni::alias_ref<jni::JString>, jni::alias_ref<JIapPlatform>, jni::alias_ref<JIapStore>, double, jni::alias_ref<JPurchaseState>, jboolean, jni::alias_ref<jni::JDouble>, 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::JString>, jni::alias_ref<jni::JDouble>, 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::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<JNitroRenewalInfoIOS>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JDouble>, 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::JBoolean>);
172
180
  static const auto clazz = javaClassStatic();
173
181
  static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
174
182
  return create(
@@ -178,6 +186,7 @@ namespace margelo::nitro::iap {
178
186
  value.transactionDate,
179
187
  value.purchaseToken.has_value() ? jni::make_jstring(value.purchaseToken.value()) : nullptr,
180
188
  JIapPlatform::fromCpp(value.platform),
189
+ JIapStore::fromCpp(value.store),
181
190
  value.quantity,
182
191
  JPurchaseState::fromCpp(value.purchaseState),
183
192
  value.isAutoRenewing,
@@ -212,7 +221,8 @@ namespace margelo::nitro::iap {
212
221
  value.packageNameAndroid.has_value() ? jni::make_jstring(value.packageNameAndroid.value()) : nullptr,
213
222
  value.obfuscatedAccountIdAndroid.has_value() ? jni::make_jstring(value.obfuscatedAccountIdAndroid.value()) : nullptr,
214
223
  value.obfuscatedProfileIdAndroid.has_value() ? jni::make_jstring(value.obfuscatedProfileIdAndroid.value()) : nullptr,
215
- value.developerPayloadAndroid.has_value() ? jni::make_jstring(value.developerPayloadAndroid.value()) : nullptr
224
+ value.developerPayloadAndroid.has_value() ? jni::make_jstring(value.developerPayloadAndroid.value()) : nullptr,
225
+ value.isSuspendedAndroid.has_value() ? jni::JBoolean::valueOf(value.isSuspendedAndroid.value()) : nullptr
216
226
  );
217
227
  }
218
228
  };
@@ -44,9 +44,15 @@ namespace margelo::nitro::iap {
44
44
  jni::local_ref<JNitroRequestPurchaseIos> ios = this->getFieldValue(fieldIos);
45
45
  static const auto fieldAndroid = clazz->getField<JNitroRequestPurchaseAndroid>("android");
46
46
  jni::local_ref<JNitroRequestPurchaseAndroid> android = this->getFieldValue(fieldAndroid);
47
+ static const auto fieldApple = clazz->getField<JNitroRequestPurchaseIos>("apple");
48
+ jni::local_ref<JNitroRequestPurchaseIos> apple = this->getFieldValue(fieldApple);
49
+ static const auto fieldGoogle = clazz->getField<JNitroRequestPurchaseAndroid>("google");
50
+ jni::local_ref<JNitroRequestPurchaseAndroid> google = this->getFieldValue(fieldGoogle);
47
51
  return NitroPurchaseRequest(
48
52
  ios != nullptr ? std::make_optional(ios->toCpp()) : std::nullopt,
49
- android != nullptr ? std::make_optional(android->toCpp()) : std::nullopt
53
+ android != nullptr ? std::make_optional(android->toCpp()) : std::nullopt,
54
+ apple != nullptr ? std::make_optional(apple->toCpp()) : std::nullopt,
55
+ google != nullptr ? std::make_optional(google->toCpp()) : std::nullopt
50
56
  );
51
57
  }
52
58
 
@@ -56,13 +62,15 @@ namespace margelo::nitro::iap {
56
62
  */
57
63
  [[maybe_unused]]
58
64
  static jni::local_ref<JNitroPurchaseRequest::javaobject> fromCpp(const NitroPurchaseRequest& value) {
59
- using JSignature = JNitroPurchaseRequest(jni::alias_ref<JNitroRequestPurchaseIos>, jni::alias_ref<JNitroRequestPurchaseAndroid>);
65
+ using JSignature = JNitroPurchaseRequest(jni::alias_ref<JNitroRequestPurchaseIos>, jni::alias_ref<JNitroRequestPurchaseAndroid>, jni::alias_ref<JNitroRequestPurchaseIos>, jni::alias_ref<JNitroRequestPurchaseAndroid>);
60
66
  static const auto clazz = javaClassStatic();
61
67
  static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
62
68
  return create(
63
69
  clazz,
64
70
  value.ios.has_value() ? JNitroRequestPurchaseIos::fromCpp(value.ios.value()) : nullptr,
65
- value.android.has_value() ? JNitroRequestPurchaseAndroid::fromCpp(value.android.value()) : nullptr
71
+ value.android.has_value() ? JNitroRequestPurchaseAndroid::fromCpp(value.android.value()) : nullptr,
72
+ value.apple.has_value() ? JNitroRequestPurchaseIos::fromCpp(value.apple.value()) : nullptr,
73
+ value.google.has_value() ? JNitroRequestPurchaseAndroid::fromCpp(value.google.value()) : nullptr
66
74
  );
67
75
  }
68
76
  };
@@ -11,7 +11,9 @@
11
11
  #include "NitroReceiptValidationResultIOS.hpp"
12
12
 
13
13
  #include "IapPlatform.hpp"
14
+ #include "IapStore.hpp"
14
15
  #include "JIapPlatform.hpp"
16
+ #include "JIapStore.hpp"
15
17
  #include "JNitroPurchase.hpp"
16
18
  #include "JNitroRenewalInfoIOS.hpp"
17
19
  #include "JPurchaseState.hpp"
@@ -0,0 +1,62 @@
1
+ ///
2
+ /// JNitroRentalDetailsAndroid.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 "NitroRentalDetailsAndroid.hpp"
12
+
13
+ #include <optional>
14
+ #include <string>
15
+
16
+ namespace margelo::nitro::iap {
17
+
18
+ using namespace facebook;
19
+
20
+ /**
21
+ * The C++ JNI bridge between the C++ struct "NitroRentalDetailsAndroid" and the the Kotlin data class "NitroRentalDetailsAndroid".
22
+ */
23
+ struct JNitroRentalDetailsAndroid final: public jni::JavaClass<JNitroRentalDetailsAndroid> {
24
+ public:
25
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroRentalDetailsAndroid;";
26
+
27
+ public:
28
+ /**
29
+ * Convert this Java/Kotlin-based struct to the C++ struct NitroRentalDetailsAndroid by copying all values to C++.
30
+ */
31
+ [[maybe_unused]]
32
+ [[nodiscard]]
33
+ NitroRentalDetailsAndroid toCpp() const {
34
+ static const auto clazz = javaClassStatic();
35
+ static const auto fieldRentalExpirationPeriod = clazz->getField<jni::JString>("rentalExpirationPeriod");
36
+ jni::local_ref<jni::JString> rentalExpirationPeriod = this->getFieldValue(fieldRentalExpirationPeriod);
37
+ static const auto fieldRentalPeriod = clazz->getField<jni::JString>("rentalPeriod");
38
+ jni::local_ref<jni::JString> rentalPeriod = this->getFieldValue(fieldRentalPeriod);
39
+ return NitroRentalDetailsAndroid(
40
+ rentalExpirationPeriod != nullptr ? std::make_optional(rentalExpirationPeriod->toStdString()) : std::nullopt,
41
+ rentalPeriod->toStdString()
42
+ );
43
+ }
44
+
45
+ public:
46
+ /**
47
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
48
+ */
49
+ [[maybe_unused]]
50
+ static jni::local_ref<JNitroRentalDetailsAndroid::javaobject> fromCpp(const NitroRentalDetailsAndroid& value) {
51
+ using JSignature = JNitroRentalDetailsAndroid(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>);
52
+ static const auto clazz = javaClassStatic();
53
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
54
+ return create(
55
+ clazz,
56
+ value.rentalExpirationPeriod.has_value() ? jni::make_jstring(value.rentalExpirationPeriod.value()) : nullptr,
57
+ jni::make_jstring(value.rentalPeriod)
58
+ );
59
+ }
60
+ };
61
+
62
+ } // namespace margelo::nitro::iap
@@ -0,0 +1,61 @@
1
+ ///
2
+ /// JNitroValidTimeWindowAndroid.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 "NitroValidTimeWindowAndroid.hpp"
12
+
13
+ #include <string>
14
+
15
+ namespace margelo::nitro::iap {
16
+
17
+ using namespace facebook;
18
+
19
+ /**
20
+ * The C++ JNI bridge between the C++ struct "NitroValidTimeWindowAndroid" and the the Kotlin data class "NitroValidTimeWindowAndroid".
21
+ */
22
+ struct JNitroValidTimeWindowAndroid final: public jni::JavaClass<JNitroValidTimeWindowAndroid> {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroValidTimeWindowAndroid;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct NitroValidTimeWindowAndroid by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ NitroValidTimeWindowAndroid toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldEndTimeMillis = clazz->getField<jni::JString>("endTimeMillis");
35
+ jni::local_ref<jni::JString> endTimeMillis = this->getFieldValue(fieldEndTimeMillis);
36
+ static const auto fieldStartTimeMillis = clazz->getField<jni::JString>("startTimeMillis");
37
+ jni::local_ref<jni::JString> startTimeMillis = this->getFieldValue(fieldStartTimeMillis);
38
+ return NitroValidTimeWindowAndroid(
39
+ endTimeMillis->toStdString(),
40
+ startTimeMillis->toStdString()
41
+ );
42
+ }
43
+
44
+ public:
45
+ /**
46
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
47
+ */
48
+ [[maybe_unused]]
49
+ static jni::local_ref<JNitroValidTimeWindowAndroid::javaobject> fromCpp(const NitroValidTimeWindowAndroid& value) {
50
+ using JSignature = JNitroValidTimeWindowAndroid(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>);
51
+ static const auto clazz = javaClassStatic();
52
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
53
+ return create(
54
+ clazz,
55
+ jni::make_jstring(value.endTimeMillis),
56
+ jni::make_jstring(value.startTimeMillis)
57
+ );
58
+ }
59
+ };
60
+
61
+ } // namespace margelo::nitro::iap
@@ -10,10 +10,10 @@
10
10
  #include <fbjni/fbjni.h>
11
11
  #include "NitroVerifyPurchaseWithIapkitResult.hpp"
12
12
 
13
+ #include "IapStore.hpp"
13
14
  #include "IapkitPurchaseState.hpp"
14
- #include "IapkitStore.hpp"
15
+ #include "JIapStore.hpp"
15
16
  #include "JIapkitPurchaseState.hpp"
16
- #include "JIapkitStore.hpp"
17
17
 
18
18
  namespace margelo::nitro::iap {
19
19
 
@@ -38,8 +38,8 @@ namespace margelo::nitro::iap {
38
38
  jboolean isValid = this->getFieldValue(fieldIsValid);
39
39
  static const auto fieldState = clazz->getField<JIapkitPurchaseState>("state");
40
40
  jni::local_ref<JIapkitPurchaseState> state = this->getFieldValue(fieldState);
41
- static const auto fieldStore = clazz->getField<JIapkitStore>("store");
42
- jni::local_ref<JIapkitStore> store = this->getFieldValue(fieldStore);
41
+ static const auto fieldStore = clazz->getField<JIapStore>("store");
42
+ jni::local_ref<JIapStore> store = this->getFieldValue(fieldStore);
43
43
  return NitroVerifyPurchaseWithIapkitResult(
44
44
  static_cast<bool>(isValid),
45
45
  state->toCpp(),
@@ -53,14 +53,14 @@ namespace margelo::nitro::iap {
53
53
  */
54
54
  [[maybe_unused]]
55
55
  static jni::local_ref<JNitroVerifyPurchaseWithIapkitResult::javaobject> fromCpp(const NitroVerifyPurchaseWithIapkitResult& value) {
56
- using JSignature = JNitroVerifyPurchaseWithIapkitResult(jboolean, jni::alias_ref<JIapkitPurchaseState>, jni::alias_ref<JIapkitStore>);
56
+ using JSignature = JNitroVerifyPurchaseWithIapkitResult(jboolean, jni::alias_ref<JIapkitPurchaseState>, jni::alias_ref<JIapStore>);
57
57
  static const auto clazz = javaClassStatic();
58
58
  static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
59
59
  return create(
60
60
  clazz,
61
61
  value.isValid,
62
62
  JIapkitPurchaseState::fromCpp(value.state),
63
- JIapkitStore::fromCpp(value.store)
63
+ JIapStore::fromCpp(value.store)
64
64
  );
65
65
  }
66
66
  };
@@ -0,0 +1,62 @@
1
+ ///
2
+ /// JNitroVerifyPurchaseWithProviderError.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 "NitroVerifyPurchaseWithProviderError.hpp"
12
+
13
+ #include <optional>
14
+ #include <string>
15
+
16
+ namespace margelo::nitro::iap {
17
+
18
+ using namespace facebook;
19
+
20
+ /**
21
+ * The C++ JNI bridge between the C++ struct "NitroVerifyPurchaseWithProviderError" and the the Kotlin data class "NitroVerifyPurchaseWithProviderError".
22
+ */
23
+ struct JNitroVerifyPurchaseWithProviderError final: public jni::JavaClass<JNitroVerifyPurchaseWithProviderError> {
24
+ public:
25
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroVerifyPurchaseWithProviderError;";
26
+
27
+ public:
28
+ /**
29
+ * Convert this Java/Kotlin-based struct to the C++ struct NitroVerifyPurchaseWithProviderError by copying all values to C++.
30
+ */
31
+ [[maybe_unused]]
32
+ [[nodiscard]]
33
+ NitroVerifyPurchaseWithProviderError toCpp() const {
34
+ static const auto clazz = javaClassStatic();
35
+ static const auto fieldCode = clazz->getField<jni::JString>("code");
36
+ jni::local_ref<jni::JString> code = this->getFieldValue(fieldCode);
37
+ static const auto fieldMessage = clazz->getField<jni::JString>("message");
38
+ jni::local_ref<jni::JString> message = this->getFieldValue(fieldMessage);
39
+ return NitroVerifyPurchaseWithProviderError(
40
+ code != nullptr ? std::make_optional(code->toStdString()) : std::nullopt,
41
+ message->toStdString()
42
+ );
43
+ }
44
+
45
+ public:
46
+ /**
47
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
48
+ */
49
+ [[maybe_unused]]
50
+ static jni::local_ref<JNitroVerifyPurchaseWithProviderError::javaobject> fromCpp(const NitroVerifyPurchaseWithProviderError& value) {
51
+ using JSignature = JNitroVerifyPurchaseWithProviderError(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>);
52
+ static const auto clazz = javaClassStatic();
53
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
54
+ return create(
55
+ clazz,
56
+ value.code.has_value() ? jni::make_jstring(value.code.value()) : nullptr,
57
+ jni::make_jstring(value.message)
58
+ );
59
+ }
60
+ };
61
+
62
+ } // namespace margelo::nitro::iap
@@ -10,14 +10,18 @@
10
10
  #include <fbjni/fbjni.h>
11
11
  #include "NitroVerifyPurchaseWithProviderResult.hpp"
12
12
 
13
+ #include "IapStore.hpp"
13
14
  #include "IapkitPurchaseState.hpp"
14
- #include "IapkitStore.hpp"
15
+ #include "JIapStore.hpp"
15
16
  #include "JIapkitPurchaseState.hpp"
16
- #include "JIapkitStore.hpp"
17
17
  #include "JNitroVerifyPurchaseWithIapkitResult.hpp"
18
+ #include "JNitroVerifyPurchaseWithProviderError.hpp"
18
19
  #include "JPurchaseVerificationProvider.hpp"
19
20
  #include "NitroVerifyPurchaseWithIapkitResult.hpp"
21
+ #include "NitroVerifyPurchaseWithProviderError.hpp"
20
22
  #include "PurchaseVerificationProvider.hpp"
23
+ #include <optional>
24
+ #include <string>
21
25
  #include <vector>
22
26
 
23
27
  namespace margelo::nitro::iap {
@@ -39,21 +43,24 @@ namespace margelo::nitro::iap {
39
43
  [[nodiscard]]
40
44
  NitroVerifyPurchaseWithProviderResult toCpp() const {
41
45
  static const auto clazz = javaClassStatic();
42
- static const auto fieldIapkit = clazz->getField<jni::JArrayClass<JNitroVerifyPurchaseWithIapkitResult>>("iapkit");
43
- jni::local_ref<jni::JArrayClass<JNitroVerifyPurchaseWithIapkitResult>> iapkit = this->getFieldValue(fieldIapkit);
46
+ static const auto fieldIapkit = clazz->getField<JNitroVerifyPurchaseWithIapkitResult>("iapkit");
47
+ jni::local_ref<JNitroVerifyPurchaseWithIapkitResult> iapkit = this->getFieldValue(fieldIapkit);
48
+ static const auto fieldErrors = clazz->getField<jni::JArrayClass<JNitroVerifyPurchaseWithProviderError>>("errors");
49
+ jni::local_ref<jni::JArrayClass<JNitroVerifyPurchaseWithProviderError>> errors = this->getFieldValue(fieldErrors);
44
50
  static const auto fieldProvider = clazz->getField<JPurchaseVerificationProvider>("provider");
45
51
  jni::local_ref<JPurchaseVerificationProvider> provider = this->getFieldValue(fieldProvider);
46
52
  return NitroVerifyPurchaseWithProviderResult(
47
- [&]() {
48
- size_t __size = iapkit->size();
49
- std::vector<NitroVerifyPurchaseWithIapkitResult> __vector;
53
+ iapkit != nullptr ? std::make_optional(iapkit->toCpp()) : std::nullopt,
54
+ errors != nullptr ? std::make_optional([&]() {
55
+ size_t __size = errors->size();
56
+ std::vector<NitroVerifyPurchaseWithProviderError> __vector;
50
57
  __vector.reserve(__size);
51
58
  for (size_t __i = 0; __i < __size; __i++) {
52
- auto __element = iapkit->getElement(__i);
59
+ auto __element = errors->getElement(__i);
53
60
  __vector.push_back(__element->toCpp());
54
61
  }
55
62
  return __vector;
56
- }(),
63
+ }()) : std::nullopt,
57
64
  provider->toCpp()
58
65
  );
59
66
  }
@@ -64,20 +71,21 @@ namespace margelo::nitro::iap {
64
71
  */
65
72
  [[maybe_unused]]
66
73
  static jni::local_ref<JNitroVerifyPurchaseWithProviderResult::javaobject> fromCpp(const NitroVerifyPurchaseWithProviderResult& value) {
67
- using JSignature = JNitroVerifyPurchaseWithProviderResult(jni::alias_ref<jni::JArrayClass<JNitroVerifyPurchaseWithIapkitResult>>, jni::alias_ref<JPurchaseVerificationProvider>);
74
+ using JSignature = JNitroVerifyPurchaseWithProviderResult(jni::alias_ref<JNitroVerifyPurchaseWithIapkitResult>, jni::alias_ref<jni::JArrayClass<JNitroVerifyPurchaseWithProviderError>>, jni::alias_ref<JPurchaseVerificationProvider>);
68
75
  static const auto clazz = javaClassStatic();
69
76
  static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
70
77
  return create(
71
78
  clazz,
72
- [&]() {
73
- size_t __size = value.iapkit.size();
74
- jni::local_ref<jni::JArrayClass<JNitroVerifyPurchaseWithIapkitResult>> __array = jni::JArrayClass<JNitroVerifyPurchaseWithIapkitResult>::newArray(__size);
79
+ value.iapkit.has_value() ? JNitroVerifyPurchaseWithIapkitResult::fromCpp(value.iapkit.value()) : nullptr,
80
+ value.errors.has_value() ? [&]() {
81
+ size_t __size = value.errors.value().size();
82
+ jni::local_ref<jni::JArrayClass<JNitroVerifyPurchaseWithProviderError>> __array = jni::JArrayClass<JNitroVerifyPurchaseWithProviderError>::newArray(__size);
75
83
  for (size_t __i = 0; __i < __size; __i++) {
76
- const auto& __element = value.iapkit[__i];
77
- __array->setElement(__i, *JNitroVerifyPurchaseWithIapkitResult::fromCpp(__element));
84
+ const auto& __element = value.errors.value()[__i];
85
+ __array->setElement(__i, *JNitroVerifyPurchaseWithProviderError::fromCpp(__element));
78
86
  }
79
87
  return __array;
80
- }(),
88
+ }() : nullptr,
81
89
  JPurchaseVerificationProvider::fromCpp(value.provider)
82
90
  );
83
91
  }
@@ -21,6 +21,8 @@
21
21
  #include "JIapPlatform.hpp"
22
22
  #include "PurchaseState.hpp"
23
23
  #include "JPurchaseState.hpp"
24
+ #include "IapStore.hpp"
25
+ #include "JIapStore.hpp"
24
26
  #include "JPurchaseIOS.hpp"
25
27
  #include "PurchaseOfferIOS.hpp"
26
28
  #include "JPurchaseOfferIOS.hpp"