react-native-iap 14.5.1-rc.1 → 14.6.0-rc.2

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 (81) hide show
  1. package/README.md +1 -0
  2. package/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +198 -36
  3. package/ios/HybridRnIap.swift +32 -2
  4. package/lib/module/hooks/useIAP.js +1 -6
  5. package/lib/module/hooks/useIAP.js.map +1 -1
  6. package/lib/module/index.js +228 -10
  7. package/lib/module/index.js.map +1 -1
  8. package/lib/module/types.js +116 -0
  9. package/lib/module/types.js.map +1 -1
  10. package/lib/typescript/plugin/src/withIAP.d.ts +6 -0
  11. package/lib/typescript/plugin/src/withIAP.d.ts.map +1 -1
  12. package/lib/typescript/src/hooks/useIAP.d.ts +5 -7
  13. package/lib/typescript/src/hooks/useIAP.d.ts.map +1 -1
  14. package/lib/typescript/src/index.d.ts +144 -2
  15. package/lib/typescript/src/index.d.ts.map +1 -1
  16. package/lib/typescript/src/specs/RnIap.nitro.d.ts +90 -8
  17. package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
  18. package/lib/typescript/src/types.d.ts +194 -10
  19. package/lib/typescript/src/types.d.ts.map +1 -1
  20. package/nitrogen/generated/android/c++/JBillingProgramAndroid.hpp +62 -0
  21. package/nitrogen/generated/android/c++/JExternalLinkLaunchModeAndroid.hpp +62 -0
  22. package/nitrogen/generated/android/c++/JExternalLinkTypeAndroid.hpp +62 -0
  23. package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +88 -4
  24. package/nitrogen/generated/android/c++/JHybridRnIapSpec.hpp +4 -0
  25. package/nitrogen/generated/android/c++/JNitroBillingProgramAvailabilityResultAndroid.hpp +62 -0
  26. package/nitrogen/generated/android/c++/JNitroBillingProgramReportingDetailsAndroid.hpp +63 -0
  27. package/nitrogen/generated/android/c++/JNitroLaunchExternalLinkParamsAndroid.hpp +75 -0
  28. package/nitrogen/generated/android/c++/JNitroReceiptValidationAppleOptions.hpp +57 -0
  29. package/nitrogen/generated/android/c++/{JNitroReceiptValidationAndroidOptions.hpp → JNitroReceiptValidationGoogleOptions.hpp} +18 -14
  30. package/nitrogen/generated/android/c++/JNitroReceiptValidationHorizonOptions.hpp +65 -0
  31. package/nitrogen/generated/android/c++/JNitroReceiptValidationParams.hpp +19 -11
  32. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/BillingProgramAndroid.kt +22 -0
  33. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalLinkLaunchModeAndroid.kt +22 -0
  34. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalLinkTypeAndroid.kt +22 -0
  35. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/HybridRnIapSpec.kt +16 -0
  36. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramAvailabilityResultAndroid.kt +39 -0
  37. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramReportingDetailsAndroid.kt +39 -0
  38. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLaunchExternalLinkParamsAndroid.kt +45 -0
  39. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationAppleOptions.kt +36 -0
  40. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/{NitroReceiptValidationAndroidOptions.kt → NitroReceiptValidationGoogleOptions.kt} +9 -6
  41. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationHorizonOptions.kt +42 -0
  42. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationParams.kt +7 -4
  43. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.cpp +16 -0
  44. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +141 -10
  45. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +27 -3
  46. package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +57 -3
  47. package/nitrogen/generated/ios/swift/BillingProgramAndroid.swift +44 -0
  48. package/nitrogen/generated/ios/swift/ExternalLinkLaunchModeAndroid.swift +44 -0
  49. package/nitrogen/generated/ios/swift/ExternalLinkTypeAndroid.swift +44 -0
  50. package/nitrogen/generated/ios/swift/Func_void_NitroBillingProgramAvailabilityResultAndroid.swift +47 -0
  51. package/nitrogen/generated/ios/swift/Func_void_NitroBillingProgramReportingDetailsAndroid.swift +47 -0
  52. package/nitrogen/generated/ios/swift/HybridRnIapSpec.swift +4 -0
  53. package/nitrogen/generated/ios/swift/HybridRnIapSpec_cxx.swift +68 -0
  54. package/nitrogen/generated/ios/swift/NitroBillingProgramAvailabilityResultAndroid.swift +46 -0
  55. package/nitrogen/generated/ios/swift/NitroBillingProgramReportingDetailsAndroid.swift +46 -0
  56. package/nitrogen/generated/ios/swift/NitroLaunchExternalLinkParamsAndroid.swift +68 -0
  57. package/nitrogen/generated/ios/swift/NitroReceiptValidationAppleOptions.swift +35 -0
  58. package/nitrogen/generated/ios/swift/{NitroReceiptValidationAndroidOptions.swift → NitroReceiptValidationGoogleOptions.swift} +21 -10
  59. package/nitrogen/generated/ios/swift/NitroReceiptValidationHorizonOptions.swift +57 -0
  60. package/nitrogen/generated/ios/swift/NitroReceiptValidationParams.swift +46 -11
  61. package/nitrogen/generated/shared/c++/BillingProgramAndroid.hpp +80 -0
  62. package/nitrogen/generated/shared/c++/ExternalLinkLaunchModeAndroid.hpp +80 -0
  63. package/nitrogen/generated/shared/c++/ExternalLinkTypeAndroid.hpp +80 -0
  64. package/nitrogen/generated/shared/c++/HybridRnIapSpec.cpp +4 -0
  65. package/nitrogen/generated/shared/c++/HybridRnIapSpec.hpp +16 -0
  66. package/nitrogen/generated/shared/c++/NitroBillingProgramAvailabilityResultAndroid.hpp +80 -0
  67. package/nitrogen/generated/shared/c++/NitroBillingProgramReportingDetailsAndroid.hpp +81 -0
  68. package/nitrogen/generated/shared/c++/NitroLaunchExternalLinkParamsAndroid.hpp +95 -0
  69. package/nitrogen/generated/shared/c++/NitroReceiptValidationAppleOptions.hpp +75 -0
  70. package/nitrogen/generated/shared/c++/{NitroReceiptValidationAndroidOptions.hpp → NitroReceiptValidationGoogleOptions.hpp} +18 -14
  71. package/nitrogen/generated/shared/c++/NitroReceiptValidationHorizonOptions.hpp +83 -0
  72. package/nitrogen/generated/shared/c++/NitroReceiptValidationParams.hpp +22 -13
  73. package/openiap-versions.json +3 -3
  74. package/package.json +1 -1
  75. package/plugin/build/withIAP.d.ts +6 -0
  76. package/plugin/build/withIAP.js +46 -2
  77. package/plugin/src/withIAP.ts +67 -2
  78. package/src/hooks/useIAP.ts +8 -23
  79. package/src/index.ts +297 -14
  80. package/src/specs/RnIap.nitro.ts +125 -10
  81. package/src/types.ts +207 -10
@@ -0,0 +1,62 @@
1
+ ///
2
+ /// JBillingProgramAndroid.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 "BillingProgramAndroid.hpp"
12
+
13
+ namespace margelo::nitro::iap {
14
+
15
+ using namespace facebook;
16
+
17
+ /**
18
+ * The C++ JNI bridge between the C++ enum "BillingProgramAndroid" and the the Kotlin enum "BillingProgramAndroid".
19
+ */
20
+ struct JBillingProgramAndroid final: public jni::JavaClass<JBillingProgramAndroid> {
21
+ public:
22
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/BillingProgramAndroid;";
23
+
24
+ public:
25
+ /**
26
+ * Convert this Java/Kotlin-based enum to the C++ enum BillingProgramAndroid.
27
+ */
28
+ [[maybe_unused]]
29
+ [[nodiscard]]
30
+ BillingProgramAndroid toCpp() const {
31
+ static const auto clazz = javaClassStatic();
32
+ static const auto fieldOrdinal = clazz->getField<int>("value");
33
+ int ordinal = this->getFieldValue(fieldOrdinal);
34
+ return static_cast<BillingProgramAndroid>(ordinal);
35
+ }
36
+
37
+ public:
38
+ /**
39
+ * Create a Java/Kotlin-based enum with the given C++ enum's value.
40
+ */
41
+ [[maybe_unused]]
42
+ static jni::alias_ref<JBillingProgramAndroid> fromCpp(BillingProgramAndroid value) {
43
+ static const auto clazz = javaClassStatic();
44
+ static const auto fieldUNSPECIFIED = clazz->getStaticField<JBillingProgramAndroid>("UNSPECIFIED");
45
+ static const auto fieldEXTERNAL_CONTENT_LINK = clazz->getStaticField<JBillingProgramAndroid>("EXTERNAL_CONTENT_LINK");
46
+ static const auto fieldEXTERNAL_OFFER = clazz->getStaticField<JBillingProgramAndroid>("EXTERNAL_OFFER");
47
+
48
+ switch (value) {
49
+ case BillingProgramAndroid::UNSPECIFIED:
50
+ return clazz->getStaticFieldValue(fieldUNSPECIFIED);
51
+ case BillingProgramAndroid::EXTERNAL_CONTENT_LINK:
52
+ return clazz->getStaticFieldValue(fieldEXTERNAL_CONTENT_LINK);
53
+ case BillingProgramAndroid::EXTERNAL_OFFER:
54
+ return clazz->getStaticFieldValue(fieldEXTERNAL_OFFER);
55
+ default:
56
+ std::string stringValue = std::to_string(static_cast<int>(value));
57
+ throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
58
+ }
59
+ }
60
+ };
61
+
62
+ } // namespace margelo::nitro::iap
@@ -0,0 +1,62 @@
1
+ ///
2
+ /// JExternalLinkLaunchModeAndroid.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 "ExternalLinkLaunchModeAndroid.hpp"
12
+
13
+ namespace margelo::nitro::iap {
14
+
15
+ using namespace facebook;
16
+
17
+ /**
18
+ * The C++ JNI bridge between the C++ enum "ExternalLinkLaunchModeAndroid" and the the Kotlin enum "ExternalLinkLaunchModeAndroid".
19
+ */
20
+ struct JExternalLinkLaunchModeAndroid final: public jni::JavaClass<JExternalLinkLaunchModeAndroid> {
21
+ public:
22
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/ExternalLinkLaunchModeAndroid;";
23
+
24
+ public:
25
+ /**
26
+ * Convert this Java/Kotlin-based enum to the C++ enum ExternalLinkLaunchModeAndroid.
27
+ */
28
+ [[maybe_unused]]
29
+ [[nodiscard]]
30
+ ExternalLinkLaunchModeAndroid toCpp() const {
31
+ static const auto clazz = javaClassStatic();
32
+ static const auto fieldOrdinal = clazz->getField<int>("value");
33
+ int ordinal = this->getFieldValue(fieldOrdinal);
34
+ return static_cast<ExternalLinkLaunchModeAndroid>(ordinal);
35
+ }
36
+
37
+ public:
38
+ /**
39
+ * Create a Java/Kotlin-based enum with the given C++ enum's value.
40
+ */
41
+ [[maybe_unused]]
42
+ static jni::alias_ref<JExternalLinkLaunchModeAndroid> fromCpp(ExternalLinkLaunchModeAndroid value) {
43
+ static const auto clazz = javaClassStatic();
44
+ static const auto fieldUNSPECIFIED = clazz->getStaticField<JExternalLinkLaunchModeAndroid>("UNSPECIFIED");
45
+ static const auto fieldLAUNCH_IN_EXTERNAL_BROWSER_OR_APP = clazz->getStaticField<JExternalLinkLaunchModeAndroid>("LAUNCH_IN_EXTERNAL_BROWSER_OR_APP");
46
+ static const auto fieldCALLER_WILL_LAUNCH_LINK = clazz->getStaticField<JExternalLinkLaunchModeAndroid>("CALLER_WILL_LAUNCH_LINK");
47
+
48
+ switch (value) {
49
+ case ExternalLinkLaunchModeAndroid::UNSPECIFIED:
50
+ return clazz->getStaticFieldValue(fieldUNSPECIFIED);
51
+ case ExternalLinkLaunchModeAndroid::LAUNCH_IN_EXTERNAL_BROWSER_OR_APP:
52
+ return clazz->getStaticFieldValue(fieldLAUNCH_IN_EXTERNAL_BROWSER_OR_APP);
53
+ case ExternalLinkLaunchModeAndroid::CALLER_WILL_LAUNCH_LINK:
54
+ return clazz->getStaticFieldValue(fieldCALLER_WILL_LAUNCH_LINK);
55
+ default:
56
+ std::string stringValue = std::to_string(static_cast<int>(value));
57
+ throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
58
+ }
59
+ }
60
+ };
61
+
62
+ } // namespace margelo::nitro::iap
@@ -0,0 +1,62 @@
1
+ ///
2
+ /// JExternalLinkTypeAndroid.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 "ExternalLinkTypeAndroid.hpp"
12
+
13
+ namespace margelo::nitro::iap {
14
+
15
+ using namespace facebook;
16
+
17
+ /**
18
+ * The C++ JNI bridge between the C++ enum "ExternalLinkTypeAndroid" and the the Kotlin enum "ExternalLinkTypeAndroid".
19
+ */
20
+ struct JExternalLinkTypeAndroid final: public jni::JavaClass<JExternalLinkTypeAndroid> {
21
+ public:
22
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/ExternalLinkTypeAndroid;";
23
+
24
+ public:
25
+ /**
26
+ * Convert this Java/Kotlin-based enum to the C++ enum ExternalLinkTypeAndroid.
27
+ */
28
+ [[maybe_unused]]
29
+ [[nodiscard]]
30
+ ExternalLinkTypeAndroid toCpp() const {
31
+ static const auto clazz = javaClassStatic();
32
+ static const auto fieldOrdinal = clazz->getField<int>("value");
33
+ int ordinal = this->getFieldValue(fieldOrdinal);
34
+ return static_cast<ExternalLinkTypeAndroid>(ordinal);
35
+ }
36
+
37
+ public:
38
+ /**
39
+ * Create a Java/Kotlin-based enum with the given C++ enum's value.
40
+ */
41
+ [[maybe_unused]]
42
+ static jni::alias_ref<JExternalLinkTypeAndroid> fromCpp(ExternalLinkTypeAndroid value) {
43
+ static const auto clazz = javaClassStatic();
44
+ static const auto fieldUNSPECIFIED = clazz->getStaticField<JExternalLinkTypeAndroid>("UNSPECIFIED");
45
+ static const auto fieldLINK_TO_DIGITAL_CONTENT_OFFER = clazz->getStaticField<JExternalLinkTypeAndroid>("LINK_TO_DIGITAL_CONTENT_OFFER");
46
+ static const auto fieldLINK_TO_APP_DOWNLOAD = clazz->getStaticField<JExternalLinkTypeAndroid>("LINK_TO_APP_DOWNLOAD");
47
+
48
+ switch (value) {
49
+ case ExternalLinkTypeAndroid::UNSPECIFIED:
50
+ return clazz->getStaticFieldValue(fieldUNSPECIFIED);
51
+ case ExternalLinkTypeAndroid::LINK_TO_DIGITAL_CONTENT_OFFER:
52
+ return clazz->getStaticFieldValue(fieldLINK_TO_DIGITAL_CONTENT_OFFER);
53
+ case ExternalLinkTypeAndroid::LINK_TO_APP_DOWNLOAD:
54
+ return clazz->getStaticFieldValue(fieldLINK_TO_APP_DOWNLOAD);
55
+ default:
56
+ std::string stringValue = std::to_string(static_cast<int>(value));
57
+ throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
58
+ }
59
+ }
60
+ };
61
+
62
+ } // namespace margelo::nitro::iap
@@ -65,6 +65,12 @@ namespace margelo::nitro::iap { enum class IapkitPurchaseState; }
65
65
  namespace margelo::nitro::iap { struct NitroVerifyPurchaseWithProviderError; }
66
66
  // Forward declaration of `PurchaseVerificationProvider` to properly resolve imports.
67
67
  namespace margelo::nitro::iap { enum class PurchaseVerificationProvider; }
68
+ // Forward declaration of `NitroBillingProgramAvailabilityResultAndroid` to properly resolve imports.
69
+ namespace margelo::nitro::iap { struct NitroBillingProgramAvailabilityResultAndroid; }
70
+ // Forward declaration of `BillingProgramAndroid` to properly resolve imports.
71
+ namespace margelo::nitro::iap { enum class BillingProgramAndroid; }
72
+ // Forward declaration of `NitroBillingProgramReportingDetailsAndroid` to properly resolve imports.
73
+ namespace margelo::nitro::iap { struct NitroBillingProgramReportingDetailsAndroid; }
68
74
  // Forward declaration of `ExternalPurchaseNoticeResultIOS` to properly resolve imports.
69
75
  namespace margelo::nitro::iap { struct ExternalPurchaseNoticeResultIOS; }
70
76
  // Forward declaration of `ExternalPurchaseNoticeAction` to properly resolve imports.
@@ -99,8 +105,12 @@ namespace margelo::nitro::iap { struct NitroFinishTransactionIosParams; }
99
105
  namespace margelo::nitro::iap { struct NitroFinishTransactionAndroidParams; }
100
106
  // Forward declaration of `NitroReceiptValidationParams` to properly resolve imports.
101
107
  namespace margelo::nitro::iap { struct NitroReceiptValidationParams; }
102
- // Forward declaration of `NitroReceiptValidationAndroidOptions` to properly resolve imports.
103
- namespace margelo::nitro::iap { struct NitroReceiptValidationAndroidOptions; }
108
+ // Forward declaration of `NitroReceiptValidationAppleOptions` to properly resolve imports.
109
+ namespace margelo::nitro::iap { struct NitroReceiptValidationAppleOptions; }
110
+ // Forward declaration of `NitroReceiptValidationGoogleOptions` to properly resolve imports.
111
+ namespace margelo::nitro::iap { struct NitroReceiptValidationGoogleOptions; }
112
+ // Forward declaration of `NitroReceiptValidationHorizonOptions` to properly resolve imports.
113
+ namespace margelo::nitro::iap { struct NitroReceiptValidationHorizonOptions; }
104
114
  // Forward declaration of `NitroVerifyPurchaseWithProviderProps` to properly resolve imports.
105
115
  namespace margelo::nitro::iap { struct NitroVerifyPurchaseWithProviderProps; }
106
116
  // Forward declaration of `NitroVerifyPurchaseWithIapkitProps` to properly resolve imports.
@@ -113,6 +123,12 @@ namespace margelo::nitro::iap { struct NitroVerifyPurchaseWithIapkitGoogleProps;
113
123
  namespace margelo::nitro::iap { struct NitroDeepLinkOptionsAndroid; }
114
124
  // Forward declaration of `UserChoiceBillingDetails` to properly resolve imports.
115
125
  namespace margelo::nitro::iap { struct UserChoiceBillingDetails; }
126
+ // Forward declaration of `NitroLaunchExternalLinkParamsAndroid` to properly resolve imports.
127
+ namespace margelo::nitro::iap { struct NitroLaunchExternalLinkParamsAndroid; }
128
+ // Forward declaration of `ExternalLinkLaunchModeAndroid` to properly resolve imports.
129
+ namespace margelo::nitro::iap { enum class ExternalLinkLaunchModeAndroid; }
130
+ // Forward declaration of `ExternalLinkTypeAndroid` to properly resolve imports.
131
+ namespace margelo::nitro::iap { enum class ExternalLinkTypeAndroid; }
116
132
 
117
133
  #include <NitroModules/Promise.hpp>
118
134
  #include <NitroModules/JPromise.hpp>
@@ -182,6 +198,12 @@ namespace margelo::nitro::iap { struct UserChoiceBillingDetails; }
182
198
  #include "JNitroVerifyPurchaseWithProviderError.hpp"
183
199
  #include "PurchaseVerificationProvider.hpp"
184
200
  #include "JPurchaseVerificationProvider.hpp"
201
+ #include "NitroBillingProgramAvailabilityResultAndroid.hpp"
202
+ #include "JNitroBillingProgramAvailabilityResultAndroid.hpp"
203
+ #include "BillingProgramAndroid.hpp"
204
+ #include "JBillingProgramAndroid.hpp"
205
+ #include "NitroBillingProgramReportingDetailsAndroid.hpp"
206
+ #include "JNitroBillingProgramReportingDetailsAndroid.hpp"
185
207
  #include "ExternalPurchaseNoticeResultIOS.hpp"
186
208
  #include "JExternalPurchaseNoticeResultIOS.hpp"
187
209
  #include "ExternalPurchaseNoticeAction.hpp"
@@ -221,8 +243,12 @@ namespace margelo::nitro::iap { struct UserChoiceBillingDetails; }
221
243
  #include "JFunc_void_NitroProduct.hpp"
222
244
  #include "NitroReceiptValidationParams.hpp"
223
245
  #include "JNitroReceiptValidationParams.hpp"
224
- #include "NitroReceiptValidationAndroidOptions.hpp"
225
- #include "JNitroReceiptValidationAndroidOptions.hpp"
246
+ #include "NitroReceiptValidationAppleOptions.hpp"
247
+ #include "JNitroReceiptValidationAppleOptions.hpp"
248
+ #include "NitroReceiptValidationGoogleOptions.hpp"
249
+ #include "JNitroReceiptValidationGoogleOptions.hpp"
250
+ #include "NitroReceiptValidationHorizonOptions.hpp"
251
+ #include "JNitroReceiptValidationHorizonOptions.hpp"
226
252
  #include "NitroVerifyPurchaseWithProviderProps.hpp"
227
253
  #include "JNitroVerifyPurchaseWithProviderProps.hpp"
228
254
  #include "NitroVerifyPurchaseWithIapkitProps.hpp"
@@ -236,6 +262,12 @@ namespace margelo::nitro::iap { struct UserChoiceBillingDetails; }
236
262
  #include "UserChoiceBillingDetails.hpp"
237
263
  #include "JFunc_void_UserChoiceBillingDetails.hpp"
238
264
  #include "JUserChoiceBillingDetails.hpp"
265
+ #include "NitroLaunchExternalLinkParamsAndroid.hpp"
266
+ #include "JNitroLaunchExternalLinkParamsAndroid.hpp"
267
+ #include "ExternalLinkLaunchModeAndroid.hpp"
268
+ #include "JExternalLinkLaunchModeAndroid.hpp"
269
+ #include "ExternalLinkTypeAndroid.hpp"
270
+ #include "JExternalLinkTypeAndroid.hpp"
239
271
 
240
272
  namespace margelo::nitro::iap {
241
273
 
@@ -946,6 +978,58 @@ namespace margelo::nitro::iap {
946
978
  static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_UserChoiceBillingDetails::javaobject> /* listener */)>("removeUserChoiceBillingListenerAndroid_cxx");
947
979
  method(_javaPart, JFunc_void_UserChoiceBillingDetails_cxx::fromCpp(listener));
948
980
  }
981
+ void JHybridRnIapSpec::enableBillingProgramAndroid(BillingProgramAndroid program) {
982
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JBillingProgramAndroid> /* program */)>("enableBillingProgramAndroid");
983
+ method(_javaPart, JBillingProgramAndroid::fromCpp(program));
984
+ }
985
+ std::shared_ptr<Promise<NitroBillingProgramAvailabilityResultAndroid>> JHybridRnIapSpec::isBillingProgramAvailableAndroid(BillingProgramAndroid program) {
986
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<JBillingProgramAndroid> /* program */)>("isBillingProgramAvailableAndroid");
987
+ auto __result = method(_javaPart, JBillingProgramAndroid::fromCpp(program));
988
+ return [&]() {
989
+ auto __promise = Promise<NitroBillingProgramAvailabilityResultAndroid>::create();
990
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
991
+ auto __result = jni::static_ref_cast<JNitroBillingProgramAvailabilityResultAndroid>(__boxedResult);
992
+ __promise->resolve(__result->toCpp());
993
+ });
994
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
995
+ jni::JniException __jniError(__throwable);
996
+ __promise->reject(std::make_exception_ptr(__jniError));
997
+ });
998
+ return __promise;
999
+ }();
1000
+ }
1001
+ std::shared_ptr<Promise<NitroBillingProgramReportingDetailsAndroid>> JHybridRnIapSpec::createBillingProgramReportingDetailsAndroid(BillingProgramAndroid program) {
1002
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<JBillingProgramAndroid> /* program */)>("createBillingProgramReportingDetailsAndroid");
1003
+ auto __result = method(_javaPart, JBillingProgramAndroid::fromCpp(program));
1004
+ return [&]() {
1005
+ auto __promise = Promise<NitroBillingProgramReportingDetailsAndroid>::create();
1006
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
1007
+ auto __result = jni::static_ref_cast<JNitroBillingProgramReportingDetailsAndroid>(__boxedResult);
1008
+ __promise->resolve(__result->toCpp());
1009
+ });
1010
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
1011
+ jni::JniException __jniError(__throwable);
1012
+ __promise->reject(std::make_exception_ptr(__jniError));
1013
+ });
1014
+ return __promise;
1015
+ }();
1016
+ }
1017
+ std::shared_ptr<Promise<bool>> JHybridRnIapSpec::launchExternalLinkAndroid(const NitroLaunchExternalLinkParamsAndroid& params) {
1018
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<JNitroLaunchExternalLinkParamsAndroid> /* params */)>("launchExternalLinkAndroid");
1019
+ auto __result = method(_javaPart, JNitroLaunchExternalLinkParamsAndroid::fromCpp(params));
1020
+ return [&]() {
1021
+ auto __promise = Promise<bool>::create();
1022
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
1023
+ auto __result = jni::static_ref_cast<jni::JBoolean>(__boxedResult);
1024
+ __promise->resolve(static_cast<bool>(__result->value()));
1025
+ });
1026
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
1027
+ jni::JniException __jniError(__throwable);
1028
+ __promise->reject(std::make_exception_ptr(__jniError));
1029
+ });
1030
+ return __promise;
1031
+ }();
1032
+ }
949
1033
  std::shared_ptr<Promise<bool>> JHybridRnIapSpec::canPresentExternalPurchaseNoticeIOS() {
950
1034
  static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("canPresentExternalPurchaseNoticeIOS");
951
1035
  auto __result = method(_javaPart);
@@ -97,6 +97,10 @@ namespace margelo::nitro::iap {
97
97
  std::shared_ptr<Promise<std::optional<std::string>>> createAlternativeBillingTokenAndroid(const std::optional<std::string>& sku) override;
98
98
  void addUserChoiceBillingListenerAndroid(const std::function<void(const UserChoiceBillingDetails& /* details */)>& listener) override;
99
99
  void removeUserChoiceBillingListenerAndroid(const std::function<void(const UserChoiceBillingDetails& /* details */)>& listener) override;
100
+ void enableBillingProgramAndroid(BillingProgramAndroid program) override;
101
+ std::shared_ptr<Promise<NitroBillingProgramAvailabilityResultAndroid>> isBillingProgramAvailableAndroid(BillingProgramAndroid program) override;
102
+ std::shared_ptr<Promise<NitroBillingProgramReportingDetailsAndroid>> createBillingProgramReportingDetailsAndroid(BillingProgramAndroid program) override;
103
+ std::shared_ptr<Promise<bool>> launchExternalLinkAndroid(const NitroLaunchExternalLinkParamsAndroid& params) override;
100
104
  std::shared_ptr<Promise<bool>> canPresentExternalPurchaseNoticeIOS() override;
101
105
  std::shared_ptr<Promise<ExternalPurchaseNoticeResultIOS>> presentExternalPurchaseNoticeSheetIOS() override;
102
106
  std::shared_ptr<Promise<ExternalPurchaseLinkResultIOS>> presentExternalPurchaseLinkIOS(const std::string& url) override;
@@ -0,0 +1,62 @@
1
+ ///
2
+ /// JNitroBillingProgramAvailabilityResultAndroid.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 "NitroBillingProgramAvailabilityResultAndroid.hpp"
12
+
13
+ #include "BillingProgramAndroid.hpp"
14
+ #include "JBillingProgramAndroid.hpp"
15
+
16
+ namespace margelo::nitro::iap {
17
+
18
+ using namespace facebook;
19
+
20
+ /**
21
+ * The C++ JNI bridge between the C++ struct "NitroBillingProgramAvailabilityResultAndroid" and the the Kotlin data class "NitroBillingProgramAvailabilityResultAndroid".
22
+ */
23
+ struct JNitroBillingProgramAvailabilityResultAndroid final: public jni::JavaClass<JNitroBillingProgramAvailabilityResultAndroid> {
24
+ public:
25
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroBillingProgramAvailabilityResultAndroid;";
26
+
27
+ public:
28
+ /**
29
+ * Convert this Java/Kotlin-based struct to the C++ struct NitroBillingProgramAvailabilityResultAndroid by copying all values to C++.
30
+ */
31
+ [[maybe_unused]]
32
+ [[nodiscard]]
33
+ NitroBillingProgramAvailabilityResultAndroid toCpp() const {
34
+ static const auto clazz = javaClassStatic();
35
+ static const auto fieldBillingProgram = clazz->getField<JBillingProgramAndroid>("billingProgram");
36
+ jni::local_ref<JBillingProgramAndroid> billingProgram = this->getFieldValue(fieldBillingProgram);
37
+ static const auto fieldIsAvailable = clazz->getField<jboolean>("isAvailable");
38
+ jboolean isAvailable = this->getFieldValue(fieldIsAvailable);
39
+ return NitroBillingProgramAvailabilityResultAndroid(
40
+ billingProgram->toCpp(),
41
+ static_cast<bool>(isAvailable)
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<JNitroBillingProgramAvailabilityResultAndroid::javaobject> fromCpp(const NitroBillingProgramAvailabilityResultAndroid& value) {
51
+ using JSignature = JNitroBillingProgramAvailabilityResultAndroid(jni::alias_ref<JBillingProgramAndroid>, jboolean);
52
+ static const auto clazz = javaClassStatic();
53
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
54
+ return create(
55
+ clazz,
56
+ JBillingProgramAndroid::fromCpp(value.billingProgram),
57
+ value.isAvailable
58
+ );
59
+ }
60
+ };
61
+
62
+ } // namespace margelo::nitro::iap
@@ -0,0 +1,63 @@
1
+ ///
2
+ /// JNitroBillingProgramReportingDetailsAndroid.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 "NitroBillingProgramReportingDetailsAndroid.hpp"
12
+
13
+ #include "BillingProgramAndroid.hpp"
14
+ #include "JBillingProgramAndroid.hpp"
15
+ #include <string>
16
+
17
+ namespace margelo::nitro::iap {
18
+
19
+ using namespace facebook;
20
+
21
+ /**
22
+ * The C++ JNI bridge between the C++ struct "NitroBillingProgramReportingDetailsAndroid" and the the Kotlin data class "NitroBillingProgramReportingDetailsAndroid".
23
+ */
24
+ struct JNitroBillingProgramReportingDetailsAndroid final: public jni::JavaClass<JNitroBillingProgramReportingDetailsAndroid> {
25
+ public:
26
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroBillingProgramReportingDetailsAndroid;";
27
+
28
+ public:
29
+ /**
30
+ * Convert this Java/Kotlin-based struct to the C++ struct NitroBillingProgramReportingDetailsAndroid by copying all values to C++.
31
+ */
32
+ [[maybe_unused]]
33
+ [[nodiscard]]
34
+ NitroBillingProgramReportingDetailsAndroid toCpp() const {
35
+ static const auto clazz = javaClassStatic();
36
+ static const auto fieldBillingProgram = clazz->getField<JBillingProgramAndroid>("billingProgram");
37
+ jni::local_ref<JBillingProgramAndroid> billingProgram = this->getFieldValue(fieldBillingProgram);
38
+ static const auto fieldExternalTransactionToken = clazz->getField<jni::JString>("externalTransactionToken");
39
+ jni::local_ref<jni::JString> externalTransactionToken = this->getFieldValue(fieldExternalTransactionToken);
40
+ return NitroBillingProgramReportingDetailsAndroid(
41
+ billingProgram->toCpp(),
42
+ externalTransactionToken->toStdString()
43
+ );
44
+ }
45
+
46
+ public:
47
+ /**
48
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
49
+ */
50
+ [[maybe_unused]]
51
+ static jni::local_ref<JNitroBillingProgramReportingDetailsAndroid::javaobject> fromCpp(const NitroBillingProgramReportingDetailsAndroid& value) {
52
+ using JSignature = JNitroBillingProgramReportingDetailsAndroid(jni::alias_ref<JBillingProgramAndroid>, jni::alias_ref<jni::JString>);
53
+ static const auto clazz = javaClassStatic();
54
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
55
+ return create(
56
+ clazz,
57
+ JBillingProgramAndroid::fromCpp(value.billingProgram),
58
+ jni::make_jstring(value.externalTransactionToken)
59
+ );
60
+ }
61
+ };
62
+
63
+ } // namespace margelo::nitro::iap
@@ -0,0 +1,75 @@
1
+ ///
2
+ /// JNitroLaunchExternalLinkParamsAndroid.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 "NitroLaunchExternalLinkParamsAndroid.hpp"
12
+
13
+ #include "BillingProgramAndroid.hpp"
14
+ #include "ExternalLinkLaunchModeAndroid.hpp"
15
+ #include "ExternalLinkTypeAndroid.hpp"
16
+ #include "JBillingProgramAndroid.hpp"
17
+ #include "JExternalLinkLaunchModeAndroid.hpp"
18
+ #include "JExternalLinkTypeAndroid.hpp"
19
+ #include <string>
20
+
21
+ namespace margelo::nitro::iap {
22
+
23
+ using namespace facebook;
24
+
25
+ /**
26
+ * The C++ JNI bridge between the C++ struct "NitroLaunchExternalLinkParamsAndroid" and the the Kotlin data class "NitroLaunchExternalLinkParamsAndroid".
27
+ */
28
+ struct JNitroLaunchExternalLinkParamsAndroid final: public jni::JavaClass<JNitroLaunchExternalLinkParamsAndroid> {
29
+ public:
30
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroLaunchExternalLinkParamsAndroid;";
31
+
32
+ public:
33
+ /**
34
+ * Convert this Java/Kotlin-based struct to the C++ struct NitroLaunchExternalLinkParamsAndroid by copying all values to C++.
35
+ */
36
+ [[maybe_unused]]
37
+ [[nodiscard]]
38
+ NitroLaunchExternalLinkParamsAndroid toCpp() const {
39
+ static const auto clazz = javaClassStatic();
40
+ static const auto fieldBillingProgram = clazz->getField<JBillingProgramAndroid>("billingProgram");
41
+ jni::local_ref<JBillingProgramAndroid> billingProgram = this->getFieldValue(fieldBillingProgram);
42
+ static const auto fieldLaunchMode = clazz->getField<JExternalLinkLaunchModeAndroid>("launchMode");
43
+ jni::local_ref<JExternalLinkLaunchModeAndroid> launchMode = this->getFieldValue(fieldLaunchMode);
44
+ static const auto fieldLinkType = clazz->getField<JExternalLinkTypeAndroid>("linkType");
45
+ jni::local_ref<JExternalLinkTypeAndroid> linkType = this->getFieldValue(fieldLinkType);
46
+ static const auto fieldLinkUri = clazz->getField<jni::JString>("linkUri");
47
+ jni::local_ref<jni::JString> linkUri = this->getFieldValue(fieldLinkUri);
48
+ return NitroLaunchExternalLinkParamsAndroid(
49
+ billingProgram->toCpp(),
50
+ launchMode->toCpp(),
51
+ linkType->toCpp(),
52
+ linkUri->toStdString()
53
+ );
54
+ }
55
+
56
+ public:
57
+ /**
58
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
59
+ */
60
+ [[maybe_unused]]
61
+ static jni::local_ref<JNitroLaunchExternalLinkParamsAndroid::javaobject> fromCpp(const NitroLaunchExternalLinkParamsAndroid& value) {
62
+ using JSignature = JNitroLaunchExternalLinkParamsAndroid(jni::alias_ref<JBillingProgramAndroid>, jni::alias_ref<JExternalLinkLaunchModeAndroid>, jni::alias_ref<JExternalLinkTypeAndroid>, jni::alias_ref<jni::JString>);
63
+ static const auto clazz = javaClassStatic();
64
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
65
+ return create(
66
+ clazz,
67
+ JBillingProgramAndroid::fromCpp(value.billingProgram),
68
+ JExternalLinkLaunchModeAndroid::fromCpp(value.launchMode),
69
+ JExternalLinkTypeAndroid::fromCpp(value.linkType),
70
+ jni::make_jstring(value.linkUri)
71
+ );
72
+ }
73
+ };
74
+
75
+ } // namespace margelo::nitro::iap
@@ -0,0 +1,57 @@
1
+ ///
2
+ /// JNitroReceiptValidationAppleOptions.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 "NitroReceiptValidationAppleOptions.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 "NitroReceiptValidationAppleOptions" and the the Kotlin data class "NitroReceiptValidationAppleOptions".
21
+ */
22
+ struct JNitroReceiptValidationAppleOptions final: public jni::JavaClass<JNitroReceiptValidationAppleOptions> {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroReceiptValidationAppleOptions;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct NitroReceiptValidationAppleOptions by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ NitroReceiptValidationAppleOptions toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldSku = clazz->getField<jni::JString>("sku");
35
+ jni::local_ref<jni::JString> sku = this->getFieldValue(fieldSku);
36
+ return NitroReceiptValidationAppleOptions(
37
+ sku->toStdString()
38
+ );
39
+ }
40
+
41
+ public:
42
+ /**
43
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
44
+ */
45
+ [[maybe_unused]]
46
+ static jni::local_ref<JNitroReceiptValidationAppleOptions::javaobject> fromCpp(const NitroReceiptValidationAppleOptions& value) {
47
+ using JSignature = JNitroReceiptValidationAppleOptions(jni::alias_ref<jni::JString>);
48
+ static const auto clazz = javaClassStatic();
49
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
50
+ return create(
51
+ clazz,
52
+ jni::make_jstring(value.sku)
53
+ );
54
+ }
55
+ };
56
+
57
+ } // namespace margelo::nitro::iap