react-native-iap 14.5.0 → 14.6.0-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 (105) hide show
  1. package/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +173 -7
  2. package/ios/HybridRnIap.swift +24 -0
  3. package/ios/reactnativeiap.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  4. package/ios/reactnativeiap.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  5. package/lib/module/index.js +166 -0
  6. package/lib/module/index.js.map +1 -1
  7. package/lib/module/types.js +93 -0
  8. package/lib/module/types.js.map +1 -1
  9. package/lib/module/utils/type-bridge.js +2 -1
  10. package/lib/module/utils/type-bridge.js.map +1 -1
  11. package/lib/typescript/src/index.d.ts +124 -0
  12. package/lib/typescript/src/index.d.ts.map +1 -1
  13. package/lib/typescript/src/specs/RnIap.nitro.d.ts +125 -1
  14. package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
  15. package/lib/typescript/src/types.d.ts +227 -15
  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++/JBillingProgramAndroid.hpp +62 -0
  19. package/nitrogen/generated/android/c++/JExternalLinkLaunchModeAndroid.hpp +62 -0
  20. package/nitrogen/generated/android/c++/JExternalLinkTypeAndroid.hpp +62 -0
  21. package/nitrogen/generated/android/c++/JFunc_void_NitroProduct.hpp +13 -0
  22. package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +100 -0
  23. package/nitrogen/generated/android/c++/JHybridRnIapSpec.hpp +4 -0
  24. package/nitrogen/generated/android/c++/JNitroBillingProgramAvailabilityResultAndroid.hpp +62 -0
  25. package/nitrogen/generated/android/c++/JNitroBillingProgramReportingDetailsAndroid.hpp +63 -0
  26. package/nitrogen/generated/android/c++/JNitroDiscountAmountAndroid.hpp +61 -0
  27. package/nitrogen/generated/android/c++/JNitroDiscountDisplayInfoAndroid.hpp +64 -0
  28. package/nitrogen/generated/android/c++/JNitroLaunchExternalLinkParamsAndroid.hpp +75 -0
  29. package/nitrogen/generated/android/c++/JNitroLimitedQuantityInfoAndroid.hpp +61 -0
  30. package/nitrogen/generated/android/c++/JNitroOneTimePurchaseOfferDetail.hpp +70 -3
  31. package/nitrogen/generated/android/c++/JNitroPreorderDetailsAndroid.hpp +61 -0
  32. package/nitrogen/generated/android/c++/JNitroProduct.hpp +35 -5
  33. package/nitrogen/generated/android/c++/JNitroPurchase.hpp +7 -3
  34. package/nitrogen/generated/android/c++/JNitroRentalDetailsAndroid.hpp +62 -0
  35. package/nitrogen/generated/android/c++/JNitroValidTimeWindowAndroid.hpp +61 -0
  36. package/nitrogen/generated/android/c++/JPurchaseAndroid.hpp +5 -1
  37. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/BillingProgramAndroid.kt +22 -0
  38. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalLinkLaunchModeAndroid.kt +22 -0
  39. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalLinkTypeAndroid.kt +22 -0
  40. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/HybridRnIapSpec.kt +16 -0
  41. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramAvailabilityResultAndroid.kt +39 -0
  42. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramReportingDetailsAndroid.kt +39 -0
  43. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountAmountAndroid.kt +39 -0
  44. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountDisplayInfoAndroid.kt +39 -0
  45. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLaunchExternalLinkParamsAndroid.kt +45 -0
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLimitedQuantityInfoAndroid.kt +39 -0
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroOneTimePurchaseOfferDetail.kt +30 -3
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPreorderDetailsAndroid.kt +39 -0
  49. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroProduct.kt +2 -2
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchase.kt +6 -3
  51. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRentalDetailsAndroid.kt +39 -0
  52. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroValidTimeWindowAndroid.kt +39 -0
  53. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseAndroid.kt +5 -2
  54. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.cpp +16 -0
  55. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +232 -18
  56. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +36 -0
  57. package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +66 -0
  58. package/nitrogen/generated/ios/swift/BillingProgramAndroid.swift +44 -0
  59. package/nitrogen/generated/ios/swift/ExternalLinkLaunchModeAndroid.swift +44 -0
  60. package/nitrogen/generated/ios/swift/ExternalLinkTypeAndroid.swift +44 -0
  61. package/nitrogen/generated/ios/swift/Func_void_NitroBillingProgramAvailabilityResultAndroid.swift +47 -0
  62. package/nitrogen/generated/ios/swift/Func_void_NitroBillingProgramReportingDetailsAndroid.swift +47 -0
  63. package/nitrogen/generated/ios/swift/HybridRnIapSpec.swift +4 -0
  64. package/nitrogen/generated/ios/swift/HybridRnIapSpec_cxx.swift +68 -0
  65. package/nitrogen/generated/ios/swift/NitroBillingProgramAvailabilityResultAndroid.swift +46 -0
  66. package/nitrogen/generated/ios/swift/NitroBillingProgramReportingDetailsAndroid.swift +46 -0
  67. package/nitrogen/generated/ios/swift/NitroDiscountAmountAndroid.swift +46 -0
  68. package/nitrogen/generated/ios/swift/NitroDiscountDisplayInfoAndroid.swift +70 -0
  69. package/nitrogen/generated/ios/swift/NitroLaunchExternalLinkParamsAndroid.swift +68 -0
  70. package/nitrogen/generated/ios/swift/NitroLimitedQuantityInfoAndroid.swift +46 -0
  71. package/nitrogen/generated/ios/swift/NitroOneTimePurchaseOfferDetail.swift +211 -2
  72. package/nitrogen/generated/ios/swift/NitroPreorderDetailsAndroid.swift +46 -0
  73. package/nitrogen/generated/ios/swift/NitroProduct.swift +26 -7
  74. package/nitrogen/generated/ios/swift/NitroPurchase.swift +31 -1
  75. package/nitrogen/generated/ios/swift/NitroRentalDetailsAndroid.swift +65 -0
  76. package/nitrogen/generated/ios/swift/NitroValidTimeWindowAndroid.swift +46 -0
  77. package/nitrogen/generated/ios/swift/PurchaseAndroid.swift +32 -2
  78. package/nitrogen/generated/shared/c++/BillingProgramAndroid.hpp +80 -0
  79. package/nitrogen/generated/shared/c++/ExternalLinkLaunchModeAndroid.hpp +80 -0
  80. package/nitrogen/generated/shared/c++/ExternalLinkTypeAndroid.hpp +80 -0
  81. package/nitrogen/generated/shared/c++/HybridRnIapSpec.cpp +4 -0
  82. package/nitrogen/generated/shared/c++/HybridRnIapSpec.hpp +16 -0
  83. package/nitrogen/generated/shared/c++/NitroBillingProgramAvailabilityResultAndroid.hpp +80 -0
  84. package/nitrogen/generated/shared/c++/NitroBillingProgramReportingDetailsAndroid.hpp +81 -0
  85. package/nitrogen/generated/shared/c++/NitroDiscountAmountAndroid.hpp +79 -0
  86. package/nitrogen/generated/shared/c++/NitroDiscountDisplayInfoAndroid.hpp +81 -0
  87. package/nitrogen/generated/shared/c++/NitroLaunchExternalLinkParamsAndroid.hpp +95 -0
  88. package/nitrogen/generated/shared/c++/NitroLimitedQuantityInfoAndroid.hpp +79 -0
  89. package/nitrogen/generated/shared/c++/NitroOneTimePurchaseOfferDetail.hpp +55 -3
  90. package/nitrogen/generated/shared/c++/NitroPreorderDetailsAndroid.hpp +79 -0
  91. package/nitrogen/generated/shared/c++/NitroProduct.hpp +6 -5
  92. package/nitrogen/generated/shared/c++/NitroPurchase.hpp +6 -2
  93. package/nitrogen/generated/shared/c++/NitroRentalDetailsAndroid.hpp +80 -0
  94. package/nitrogen/generated/shared/c++/NitroValidTimeWindowAndroid.hpp +79 -0
  95. package/nitrogen/generated/shared/c++/PurchaseAndroid.hpp +5 -1
  96. package/openiap-versions.json +2 -2
  97. package/package.json +1 -1
  98. package/plugin/build/src/withIAP.d.ts +3 -0
  99. package/plugin/build/src/withIAP.js +81 -0
  100. package/plugin/build/tsconfig.tsbuildinfo +1 -0
  101. package/plugin/tsconfig.tsbuildinfo +1 -1
  102. package/src/index.ts +218 -0
  103. package/src/specs/RnIap.nitro.ts +161 -1
  104. package/src/types.ts +243 -15
  105. package/src/utils/type-bridge.ts +1 -0
@@ -0,0 +1,79 @@
1
+ ///
2
+ /// NitroLimitedQuantityInfoAndroid.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/JSIHelpers.hpp>)
21
+ #include <NitroModules/JSIHelpers.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+
27
+
28
+
29
+
30
+ namespace margelo::nitro::iap {
31
+
32
+ /**
33
+ * A struct which can be represented as a JavaScript object (NitroLimitedQuantityInfoAndroid).
34
+ */
35
+ struct NitroLimitedQuantityInfoAndroid {
36
+ public:
37
+ double maximumQuantity SWIFT_PRIVATE;
38
+ double remainingQuantity SWIFT_PRIVATE;
39
+
40
+ public:
41
+ NitroLimitedQuantityInfoAndroid() = default;
42
+ explicit NitroLimitedQuantityInfoAndroid(double maximumQuantity, double remainingQuantity): maximumQuantity(maximumQuantity), remainingQuantity(remainingQuantity) {}
43
+ };
44
+
45
+ } // namespace margelo::nitro::iap
46
+
47
+ namespace margelo::nitro {
48
+
49
+ // C++ NitroLimitedQuantityInfoAndroid <> JS NitroLimitedQuantityInfoAndroid (object)
50
+ template <>
51
+ struct JSIConverter<margelo::nitro::iap::NitroLimitedQuantityInfoAndroid> final {
52
+ static inline margelo::nitro::iap::NitroLimitedQuantityInfoAndroid fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
53
+ jsi::Object obj = arg.asObject(runtime);
54
+ return margelo::nitro::iap::NitroLimitedQuantityInfoAndroid(
55
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "maximumQuantity")),
56
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "remainingQuantity"))
57
+ );
58
+ }
59
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::iap::NitroLimitedQuantityInfoAndroid& arg) {
60
+ jsi::Object obj(runtime);
61
+ obj.setProperty(runtime, "maximumQuantity", JSIConverter<double>::toJSI(runtime, arg.maximumQuantity));
62
+ obj.setProperty(runtime, "remainingQuantity", JSIConverter<double>::toJSI(runtime, arg.remainingQuantity));
63
+ return obj;
64
+ }
65
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
66
+ if (!value.isObject()) {
67
+ return false;
68
+ }
69
+ jsi::Object obj = value.getObject(runtime);
70
+ if (!nitro::isPlainObject(runtime, obj)) {
71
+ return false;
72
+ }
73
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "maximumQuantity"))) return false;
74
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "remainingQuantity"))) return false;
75
+ return true;
76
+ }
77
+ };
78
+
79
+ } // namespace margelo::nitro
@@ -23,9 +23,25 @@
23
23
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
24
  #endif
25
25
 
26
+ // Forward declaration of `NitroDiscountDisplayInfoAndroid` to properly resolve imports.
27
+ namespace margelo::nitro::iap { struct NitroDiscountDisplayInfoAndroid; }
28
+ // Forward declaration of `NitroLimitedQuantityInfoAndroid` to properly resolve imports.
29
+ namespace margelo::nitro::iap { struct NitroLimitedQuantityInfoAndroid; }
30
+ // Forward declaration of `NitroPreorderDetailsAndroid` to properly resolve imports.
31
+ namespace margelo::nitro::iap { struct NitroPreorderDetailsAndroid; }
32
+ // Forward declaration of `NitroRentalDetailsAndroid` to properly resolve imports.
33
+ namespace margelo::nitro::iap { struct NitroRentalDetailsAndroid; }
34
+ // Forward declaration of `NitroValidTimeWindowAndroid` to properly resolve imports.
35
+ namespace margelo::nitro::iap { struct NitroValidTimeWindowAndroid; }
26
36
 
27
-
37
+ #include "NitroDiscountDisplayInfoAndroid.hpp"
38
+ #include <optional>
28
39
  #include <string>
40
+ #include "NitroLimitedQuantityInfoAndroid.hpp"
41
+ #include <vector>
42
+ #include "NitroPreorderDetailsAndroid.hpp"
43
+ #include "NitroRentalDetailsAndroid.hpp"
44
+ #include "NitroValidTimeWindowAndroid.hpp"
29
45
 
30
46
  namespace margelo::nitro::iap {
31
47
 
@@ -34,13 +50,22 @@ namespace margelo::nitro::iap {
34
50
  */
35
51
  struct NitroOneTimePurchaseOfferDetail {
36
52
  public:
53
+ std::optional<NitroDiscountDisplayInfoAndroid> discountDisplayInfo SWIFT_PRIVATE;
37
54
  std::string formattedPrice SWIFT_PRIVATE;
55
+ std::optional<std::string> fullPriceMicros SWIFT_PRIVATE;
56
+ std::optional<NitroLimitedQuantityInfoAndroid> limitedQuantityInfo SWIFT_PRIVATE;
57
+ std::optional<std::string> offerId SWIFT_PRIVATE;
58
+ std::vector<std::string> offerTags SWIFT_PRIVATE;
59
+ std::string offerToken SWIFT_PRIVATE;
60
+ std::optional<NitroPreorderDetailsAndroid> preorderDetailsAndroid SWIFT_PRIVATE;
38
61
  std::string priceAmountMicros SWIFT_PRIVATE;
39
62
  std::string priceCurrencyCode SWIFT_PRIVATE;
63
+ std::optional<NitroRentalDetailsAndroid> rentalDetailsAndroid SWIFT_PRIVATE;
64
+ std::optional<NitroValidTimeWindowAndroid> validTimeWindow SWIFT_PRIVATE;
40
65
 
41
66
  public:
42
67
  NitroOneTimePurchaseOfferDetail() = default;
43
- explicit NitroOneTimePurchaseOfferDetail(std::string formattedPrice, std::string priceAmountMicros, std::string priceCurrencyCode): formattedPrice(formattedPrice), priceAmountMicros(priceAmountMicros), priceCurrencyCode(priceCurrencyCode) {}
68
+ explicit NitroOneTimePurchaseOfferDetail(std::optional<NitroDiscountDisplayInfoAndroid> discountDisplayInfo, std::string formattedPrice, std::optional<std::string> fullPriceMicros, std::optional<NitroLimitedQuantityInfoAndroid> limitedQuantityInfo, std::optional<std::string> offerId, std::vector<std::string> offerTags, std::string offerToken, std::optional<NitroPreorderDetailsAndroid> preorderDetailsAndroid, std::string priceAmountMicros, std::string priceCurrencyCode, std::optional<NitroRentalDetailsAndroid> rentalDetailsAndroid, std::optional<NitroValidTimeWindowAndroid> validTimeWindow): discountDisplayInfo(discountDisplayInfo), formattedPrice(formattedPrice), fullPriceMicros(fullPriceMicros), limitedQuantityInfo(limitedQuantityInfo), offerId(offerId), offerTags(offerTags), offerToken(offerToken), preorderDetailsAndroid(preorderDetailsAndroid), priceAmountMicros(priceAmountMicros), priceCurrencyCode(priceCurrencyCode), rentalDetailsAndroid(rentalDetailsAndroid), validTimeWindow(validTimeWindow) {}
44
69
  };
45
70
 
46
71
  } // namespace margelo::nitro::iap
@@ -53,16 +78,34 @@ namespace margelo::nitro {
53
78
  static inline margelo::nitro::iap::NitroOneTimePurchaseOfferDetail fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
54
79
  jsi::Object obj = arg.asObject(runtime);
55
80
  return margelo::nitro::iap::NitroOneTimePurchaseOfferDetail(
81
+ JSIConverter<std::optional<margelo::nitro::iap::NitroDiscountDisplayInfoAndroid>>::fromJSI(runtime, obj.getProperty(runtime, "discountDisplayInfo")),
56
82
  JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "formattedPrice")),
83
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "fullPriceMicros")),
84
+ JSIConverter<std::optional<margelo::nitro::iap::NitroLimitedQuantityInfoAndroid>>::fromJSI(runtime, obj.getProperty(runtime, "limitedQuantityInfo")),
85
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "offerId")),
86
+ JSIConverter<std::vector<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "offerTags")),
87
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "offerToken")),
88
+ JSIConverter<std::optional<margelo::nitro::iap::NitroPreorderDetailsAndroid>>::fromJSI(runtime, obj.getProperty(runtime, "preorderDetailsAndroid")),
57
89
  JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "priceAmountMicros")),
58
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "priceCurrencyCode"))
90
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "priceCurrencyCode")),
91
+ JSIConverter<std::optional<margelo::nitro::iap::NitroRentalDetailsAndroid>>::fromJSI(runtime, obj.getProperty(runtime, "rentalDetailsAndroid")),
92
+ JSIConverter<std::optional<margelo::nitro::iap::NitroValidTimeWindowAndroid>>::fromJSI(runtime, obj.getProperty(runtime, "validTimeWindow"))
59
93
  );
60
94
  }
61
95
  static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::iap::NitroOneTimePurchaseOfferDetail& arg) {
62
96
  jsi::Object obj(runtime);
97
+ obj.setProperty(runtime, "discountDisplayInfo", JSIConverter<std::optional<margelo::nitro::iap::NitroDiscountDisplayInfoAndroid>>::toJSI(runtime, arg.discountDisplayInfo));
63
98
  obj.setProperty(runtime, "formattedPrice", JSIConverter<std::string>::toJSI(runtime, arg.formattedPrice));
99
+ obj.setProperty(runtime, "fullPriceMicros", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.fullPriceMicros));
100
+ obj.setProperty(runtime, "limitedQuantityInfo", JSIConverter<std::optional<margelo::nitro::iap::NitroLimitedQuantityInfoAndroid>>::toJSI(runtime, arg.limitedQuantityInfo));
101
+ obj.setProperty(runtime, "offerId", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.offerId));
102
+ obj.setProperty(runtime, "offerTags", JSIConverter<std::vector<std::string>>::toJSI(runtime, arg.offerTags));
103
+ obj.setProperty(runtime, "offerToken", JSIConverter<std::string>::toJSI(runtime, arg.offerToken));
104
+ obj.setProperty(runtime, "preorderDetailsAndroid", JSIConverter<std::optional<margelo::nitro::iap::NitroPreorderDetailsAndroid>>::toJSI(runtime, arg.preorderDetailsAndroid));
64
105
  obj.setProperty(runtime, "priceAmountMicros", JSIConverter<std::string>::toJSI(runtime, arg.priceAmountMicros));
65
106
  obj.setProperty(runtime, "priceCurrencyCode", JSIConverter<std::string>::toJSI(runtime, arg.priceCurrencyCode));
107
+ obj.setProperty(runtime, "rentalDetailsAndroid", JSIConverter<std::optional<margelo::nitro::iap::NitroRentalDetailsAndroid>>::toJSI(runtime, arg.rentalDetailsAndroid));
108
+ obj.setProperty(runtime, "validTimeWindow", JSIConverter<std::optional<margelo::nitro::iap::NitroValidTimeWindowAndroid>>::toJSI(runtime, arg.validTimeWindow));
66
109
  return obj;
67
110
  }
68
111
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -73,9 +116,18 @@ namespace margelo::nitro {
73
116
  if (!nitro::isPlainObject(runtime, obj)) {
74
117
  return false;
75
118
  }
119
+ if (!JSIConverter<std::optional<margelo::nitro::iap::NitroDiscountDisplayInfoAndroid>>::canConvert(runtime, obj.getProperty(runtime, "discountDisplayInfo"))) return false;
76
120
  if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "formattedPrice"))) return false;
121
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "fullPriceMicros"))) return false;
122
+ if (!JSIConverter<std::optional<margelo::nitro::iap::NitroLimitedQuantityInfoAndroid>>::canConvert(runtime, obj.getProperty(runtime, "limitedQuantityInfo"))) return false;
123
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "offerId"))) return false;
124
+ if (!JSIConverter<std::vector<std::string>>::canConvert(runtime, obj.getProperty(runtime, "offerTags"))) return false;
125
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "offerToken"))) return false;
126
+ if (!JSIConverter<std::optional<margelo::nitro::iap::NitroPreorderDetailsAndroid>>::canConvert(runtime, obj.getProperty(runtime, "preorderDetailsAndroid"))) return false;
77
127
  if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "priceAmountMicros"))) return false;
78
128
  if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "priceCurrencyCode"))) return false;
129
+ if (!JSIConverter<std::optional<margelo::nitro::iap::NitroRentalDetailsAndroid>>::canConvert(runtime, obj.getProperty(runtime, "rentalDetailsAndroid"))) return false;
130
+ if (!JSIConverter<std::optional<margelo::nitro::iap::NitroValidTimeWindowAndroid>>::canConvert(runtime, obj.getProperty(runtime, "validTimeWindow"))) return false;
79
131
  return true;
80
132
  }
81
133
  };
@@ -0,0 +1,79 @@
1
+ ///
2
+ /// NitroPreorderDetailsAndroid.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/JSIHelpers.hpp>)
21
+ #include <NitroModules/JSIHelpers.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+
27
+
28
+ #include <string>
29
+
30
+ namespace margelo::nitro::iap {
31
+
32
+ /**
33
+ * A struct which can be represented as a JavaScript object (NitroPreorderDetailsAndroid).
34
+ */
35
+ struct NitroPreorderDetailsAndroid {
36
+ public:
37
+ std::string preorderPresaleEndTimeMillis SWIFT_PRIVATE;
38
+ std::string preorderReleaseTimeMillis SWIFT_PRIVATE;
39
+
40
+ public:
41
+ NitroPreorderDetailsAndroid() = default;
42
+ explicit NitroPreorderDetailsAndroid(std::string preorderPresaleEndTimeMillis, std::string preorderReleaseTimeMillis): preorderPresaleEndTimeMillis(preorderPresaleEndTimeMillis), preorderReleaseTimeMillis(preorderReleaseTimeMillis) {}
43
+ };
44
+
45
+ } // namespace margelo::nitro::iap
46
+
47
+ namespace margelo::nitro {
48
+
49
+ // C++ NitroPreorderDetailsAndroid <> JS NitroPreorderDetailsAndroid (object)
50
+ template <>
51
+ struct JSIConverter<margelo::nitro::iap::NitroPreorderDetailsAndroid> final {
52
+ static inline margelo::nitro::iap::NitroPreorderDetailsAndroid fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
53
+ jsi::Object obj = arg.asObject(runtime);
54
+ return margelo::nitro::iap::NitroPreorderDetailsAndroid(
55
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "preorderPresaleEndTimeMillis")),
56
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "preorderReleaseTimeMillis"))
57
+ );
58
+ }
59
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::iap::NitroPreorderDetailsAndroid& arg) {
60
+ jsi::Object obj(runtime);
61
+ obj.setProperty(runtime, "preorderPresaleEndTimeMillis", JSIConverter<std::string>::toJSI(runtime, arg.preorderPresaleEndTimeMillis));
62
+ obj.setProperty(runtime, "preorderReleaseTimeMillis", JSIConverter<std::string>::toJSI(runtime, arg.preorderReleaseTimeMillis));
63
+ return obj;
64
+ }
65
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
66
+ if (!value.isObject()) {
67
+ return false;
68
+ }
69
+ jsi::Object obj = value.getObject(runtime);
70
+ if (!nitro::isPlainObject(runtime, obj)) {
71
+ return false;
72
+ }
73
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "preorderPresaleEndTimeMillis"))) return false;
74
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "preorderReleaseTimeMillis"))) return false;
75
+ return true;
76
+ }
77
+ };
78
+
79
+ } // namespace margelo::nitro
@@ -35,6 +35,7 @@ namespace margelo::nitro::iap { struct NitroOneTimePurchaseOfferDetail; }
35
35
  #include "IapPlatform.hpp"
36
36
  #include "PaymentModeIOS.hpp"
37
37
  #include "NitroOneTimePurchaseOfferDetail.hpp"
38
+ #include <vector>
38
39
 
39
40
  namespace margelo::nitro::iap {
40
41
 
@@ -72,11 +73,11 @@ namespace margelo::nitro::iap {
72
73
  std::optional<std::string> subscriptionPeriodAndroid SWIFT_PRIVATE;
73
74
  std::optional<std::string> freeTrialPeriodAndroid SWIFT_PRIVATE;
74
75
  std::optional<std::string> subscriptionOfferDetailsAndroid SWIFT_PRIVATE;
75
- std::optional<NitroOneTimePurchaseOfferDetail> oneTimePurchaseOfferDetailsAndroid SWIFT_PRIVATE;
76
+ std::optional<std::vector<NitroOneTimePurchaseOfferDetail>> oneTimePurchaseOfferDetailsAndroid SWIFT_PRIVATE;
76
77
 
77
78
  public:
78
79
  NitroProduct() = default;
79
- explicit NitroProduct(std::string id, std::string title, std::string description, std::string type, std::optional<std::string> displayName, std::optional<std::string> displayPrice, std::optional<std::string> currency, std::optional<double> price, IapPlatform platform, std::optional<std::string> typeIOS, std::optional<bool> isFamilyShareableIOS, std::optional<std::string> jsonRepresentationIOS, std::optional<std::string> discountsIOS, std::optional<std::string> introductoryPriceIOS, std::optional<double> introductoryPriceAsAmountIOS, std::optional<double> introductoryPriceNumberOfPeriodsIOS, PaymentModeIOS introductoryPricePaymentModeIOS, std::optional<std::string> introductoryPriceSubscriptionPeriodIOS, std::optional<double> subscriptionPeriodNumberIOS, std::optional<std::string> subscriptionPeriodUnitIOS, std::optional<std::string> nameAndroid, std::optional<std::string> originalPriceAndroid, std::optional<double> originalPriceAmountMicrosAndroid, std::optional<double> introductoryPriceCyclesAndroid, std::optional<std::string> introductoryPricePeriodAndroid, std::optional<double> introductoryPriceValueAndroid, std::optional<std::string> subscriptionPeriodAndroid, std::optional<std::string> freeTrialPeriodAndroid, std::optional<std::string> subscriptionOfferDetailsAndroid, std::optional<NitroOneTimePurchaseOfferDetail> oneTimePurchaseOfferDetailsAndroid): id(id), title(title), description(description), type(type), displayName(displayName), displayPrice(displayPrice), currency(currency), price(price), platform(platform), typeIOS(typeIOS), isFamilyShareableIOS(isFamilyShareableIOS), jsonRepresentationIOS(jsonRepresentationIOS), discountsIOS(discountsIOS), introductoryPriceIOS(introductoryPriceIOS), introductoryPriceAsAmountIOS(introductoryPriceAsAmountIOS), introductoryPriceNumberOfPeriodsIOS(introductoryPriceNumberOfPeriodsIOS), introductoryPricePaymentModeIOS(introductoryPricePaymentModeIOS), introductoryPriceSubscriptionPeriodIOS(introductoryPriceSubscriptionPeriodIOS), subscriptionPeriodNumberIOS(subscriptionPeriodNumberIOS), subscriptionPeriodUnitIOS(subscriptionPeriodUnitIOS), nameAndroid(nameAndroid), originalPriceAndroid(originalPriceAndroid), originalPriceAmountMicrosAndroid(originalPriceAmountMicrosAndroid), introductoryPriceCyclesAndroid(introductoryPriceCyclesAndroid), introductoryPricePeriodAndroid(introductoryPricePeriodAndroid), introductoryPriceValueAndroid(introductoryPriceValueAndroid), subscriptionPeriodAndroid(subscriptionPeriodAndroid), freeTrialPeriodAndroid(freeTrialPeriodAndroid), subscriptionOfferDetailsAndroid(subscriptionOfferDetailsAndroid), oneTimePurchaseOfferDetailsAndroid(oneTimePurchaseOfferDetailsAndroid) {}
80
+ explicit NitroProduct(std::string id, std::string title, std::string description, std::string type, std::optional<std::string> displayName, std::optional<std::string> displayPrice, std::optional<std::string> currency, std::optional<double> price, IapPlatform platform, std::optional<std::string> typeIOS, std::optional<bool> isFamilyShareableIOS, std::optional<std::string> jsonRepresentationIOS, std::optional<std::string> discountsIOS, std::optional<std::string> introductoryPriceIOS, std::optional<double> introductoryPriceAsAmountIOS, std::optional<double> introductoryPriceNumberOfPeriodsIOS, PaymentModeIOS introductoryPricePaymentModeIOS, std::optional<std::string> introductoryPriceSubscriptionPeriodIOS, std::optional<double> subscriptionPeriodNumberIOS, std::optional<std::string> subscriptionPeriodUnitIOS, std::optional<std::string> nameAndroid, std::optional<std::string> originalPriceAndroid, std::optional<double> originalPriceAmountMicrosAndroid, std::optional<double> introductoryPriceCyclesAndroid, std::optional<std::string> introductoryPricePeriodAndroid, std::optional<double> introductoryPriceValueAndroid, std::optional<std::string> subscriptionPeriodAndroid, std::optional<std::string> freeTrialPeriodAndroid, std::optional<std::string> subscriptionOfferDetailsAndroid, std::optional<std::vector<NitroOneTimePurchaseOfferDetail>> oneTimePurchaseOfferDetailsAndroid): id(id), title(title), description(description), type(type), displayName(displayName), displayPrice(displayPrice), currency(currency), price(price), platform(platform), typeIOS(typeIOS), isFamilyShareableIOS(isFamilyShareableIOS), jsonRepresentationIOS(jsonRepresentationIOS), discountsIOS(discountsIOS), introductoryPriceIOS(introductoryPriceIOS), introductoryPriceAsAmountIOS(introductoryPriceAsAmountIOS), introductoryPriceNumberOfPeriodsIOS(introductoryPriceNumberOfPeriodsIOS), introductoryPricePaymentModeIOS(introductoryPricePaymentModeIOS), introductoryPriceSubscriptionPeriodIOS(introductoryPriceSubscriptionPeriodIOS), subscriptionPeriodNumberIOS(subscriptionPeriodNumberIOS), subscriptionPeriodUnitIOS(subscriptionPeriodUnitIOS), nameAndroid(nameAndroid), originalPriceAndroid(originalPriceAndroid), originalPriceAmountMicrosAndroid(originalPriceAmountMicrosAndroid), introductoryPriceCyclesAndroid(introductoryPriceCyclesAndroid), introductoryPricePeriodAndroid(introductoryPricePeriodAndroid), introductoryPriceValueAndroid(introductoryPriceValueAndroid), subscriptionPeriodAndroid(subscriptionPeriodAndroid), freeTrialPeriodAndroid(freeTrialPeriodAndroid), subscriptionOfferDetailsAndroid(subscriptionOfferDetailsAndroid), oneTimePurchaseOfferDetailsAndroid(oneTimePurchaseOfferDetailsAndroid) {}
80
81
  };
81
82
 
82
83
  } // namespace margelo::nitro::iap
@@ -118,7 +119,7 @@ namespace margelo::nitro {
118
119
  JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "subscriptionPeriodAndroid")),
119
120
  JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "freeTrialPeriodAndroid")),
120
121
  JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "subscriptionOfferDetailsAndroid")),
121
- JSIConverter<std::optional<margelo::nitro::iap::NitroOneTimePurchaseOfferDetail>>::fromJSI(runtime, obj.getProperty(runtime, "oneTimePurchaseOfferDetailsAndroid"))
122
+ JSIConverter<std::optional<std::vector<margelo::nitro::iap::NitroOneTimePurchaseOfferDetail>>>::fromJSI(runtime, obj.getProperty(runtime, "oneTimePurchaseOfferDetailsAndroid"))
122
123
  );
123
124
  }
124
125
  static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::iap::NitroProduct& arg) {
@@ -152,7 +153,7 @@ namespace margelo::nitro {
152
153
  obj.setProperty(runtime, "subscriptionPeriodAndroid", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.subscriptionPeriodAndroid));
153
154
  obj.setProperty(runtime, "freeTrialPeriodAndroid", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.freeTrialPeriodAndroid));
154
155
  obj.setProperty(runtime, "subscriptionOfferDetailsAndroid", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.subscriptionOfferDetailsAndroid));
155
- obj.setProperty(runtime, "oneTimePurchaseOfferDetailsAndroid", JSIConverter<std::optional<margelo::nitro::iap::NitroOneTimePurchaseOfferDetail>>::toJSI(runtime, arg.oneTimePurchaseOfferDetailsAndroid));
156
+ obj.setProperty(runtime, "oneTimePurchaseOfferDetailsAndroid", JSIConverter<std::optional<std::vector<margelo::nitro::iap::NitroOneTimePurchaseOfferDetail>>>::toJSI(runtime, arg.oneTimePurchaseOfferDetailsAndroid));
156
157
  return obj;
157
158
  }
158
159
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -192,7 +193,7 @@ namespace margelo::nitro {
192
193
  if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "subscriptionPeriodAndroid"))) return false;
193
194
  if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "freeTrialPeriodAndroid"))) return false;
194
195
  if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "subscriptionOfferDetailsAndroid"))) return false;
195
- if (!JSIConverter<std::optional<margelo::nitro::iap::NitroOneTimePurchaseOfferDetail>>::canConvert(runtime, obj.getProperty(runtime, "oneTimePurchaseOfferDetailsAndroid"))) return false;
196
+ if (!JSIConverter<std::optional<std::vector<margelo::nitro::iap::NitroOneTimePurchaseOfferDetail>>>::canConvert(runtime, obj.getProperty(runtime, "oneTimePurchaseOfferDetailsAndroid"))) return false;
196
197
  return true;
197
198
  }
198
199
  };
@@ -87,10 +87,11 @@ namespace margelo::nitro::iap {
87
87
  std::optional<std::string> obfuscatedAccountIdAndroid SWIFT_PRIVATE;
88
88
  std::optional<std::string> obfuscatedProfileIdAndroid SWIFT_PRIVATE;
89
89
  std::optional<std::string> developerPayloadAndroid SWIFT_PRIVATE;
90
+ std::optional<bool> isSuspendedAndroid SWIFT_PRIVATE;
90
91
 
91
92
  public:
92
93
  NitroPurchase() = default;
93
- explicit NitroPurchase(std::string id, std::string productId, double transactionDate, std::optional<std::string> purchaseToken, IapPlatform platform, IapStore store, double quantity, PurchaseState purchaseState, bool isAutoRenewing, std::optional<double> quantityIOS, std::optional<double> originalTransactionDateIOS, std::optional<std::string> originalTransactionIdentifierIOS, std::optional<std::string> appAccountToken, std::optional<std::string> appBundleIdIOS, std::optional<std::string> countryCodeIOS, std::optional<std::string> currencyCodeIOS, std::optional<std::string> currencySymbolIOS, std::optional<std::string> environmentIOS, std::optional<double> expirationDateIOS, std::optional<bool> isUpgradedIOS, std::optional<std::string> offerIOS, std::optional<std::string> ownershipTypeIOS, std::optional<std::string> reasonIOS, std::optional<std::string> reasonStringRepresentationIOS, std::optional<double> revocationDateIOS, std::optional<std::string> revocationReasonIOS, std::optional<std::string> storefrontCountryCodeIOS, std::optional<std::string> subscriptionGroupIdIOS, std::optional<std::string> transactionReasonIOS, std::optional<std::string> webOrderLineItemIdIOS, std::optional<NitroRenewalInfoIOS> renewalInfoIOS, std::optional<std::string> purchaseTokenAndroid, std::optional<std::string> dataAndroid, std::optional<std::string> signatureAndroid, std::optional<bool> autoRenewingAndroid, std::optional<double> purchaseStateAndroid, std::optional<bool> isAcknowledgedAndroid, std::optional<std::string> packageNameAndroid, std::optional<std::string> obfuscatedAccountIdAndroid, std::optional<std::string> obfuscatedProfileIdAndroid, std::optional<std::string> developerPayloadAndroid): id(id), productId(productId), transactionDate(transactionDate), purchaseToken(purchaseToken), platform(platform), store(store), quantity(quantity), purchaseState(purchaseState), isAutoRenewing(isAutoRenewing), quantityIOS(quantityIOS), originalTransactionDateIOS(originalTransactionDateIOS), originalTransactionIdentifierIOS(originalTransactionIdentifierIOS), appAccountToken(appAccountToken), appBundleIdIOS(appBundleIdIOS), countryCodeIOS(countryCodeIOS), currencyCodeIOS(currencyCodeIOS), currencySymbolIOS(currencySymbolIOS), environmentIOS(environmentIOS), expirationDateIOS(expirationDateIOS), isUpgradedIOS(isUpgradedIOS), offerIOS(offerIOS), ownershipTypeIOS(ownershipTypeIOS), reasonIOS(reasonIOS), reasonStringRepresentationIOS(reasonStringRepresentationIOS), revocationDateIOS(revocationDateIOS), revocationReasonIOS(revocationReasonIOS), storefrontCountryCodeIOS(storefrontCountryCodeIOS), subscriptionGroupIdIOS(subscriptionGroupIdIOS), transactionReasonIOS(transactionReasonIOS), webOrderLineItemIdIOS(webOrderLineItemIdIOS), renewalInfoIOS(renewalInfoIOS), purchaseTokenAndroid(purchaseTokenAndroid), dataAndroid(dataAndroid), signatureAndroid(signatureAndroid), autoRenewingAndroid(autoRenewingAndroid), purchaseStateAndroid(purchaseStateAndroid), isAcknowledgedAndroid(isAcknowledgedAndroid), packageNameAndroid(packageNameAndroid), obfuscatedAccountIdAndroid(obfuscatedAccountIdAndroid), obfuscatedProfileIdAndroid(obfuscatedProfileIdAndroid), developerPayloadAndroid(developerPayloadAndroid) {}
94
+ explicit NitroPurchase(std::string id, std::string productId, double transactionDate, std::optional<std::string> purchaseToken, IapPlatform platform, IapStore store, double quantity, PurchaseState purchaseState, bool isAutoRenewing, std::optional<double> quantityIOS, std::optional<double> originalTransactionDateIOS, std::optional<std::string> originalTransactionIdentifierIOS, std::optional<std::string> appAccountToken, std::optional<std::string> appBundleIdIOS, std::optional<std::string> countryCodeIOS, std::optional<std::string> currencyCodeIOS, std::optional<std::string> currencySymbolIOS, std::optional<std::string> environmentIOS, std::optional<double> expirationDateIOS, std::optional<bool> isUpgradedIOS, std::optional<std::string> offerIOS, std::optional<std::string> ownershipTypeIOS, std::optional<std::string> reasonIOS, std::optional<std::string> reasonStringRepresentationIOS, std::optional<double> revocationDateIOS, std::optional<std::string> revocationReasonIOS, std::optional<std::string> storefrontCountryCodeIOS, std::optional<std::string> subscriptionGroupIdIOS, std::optional<std::string> transactionReasonIOS, std::optional<std::string> webOrderLineItemIdIOS, std::optional<NitroRenewalInfoIOS> renewalInfoIOS, std::optional<std::string> purchaseTokenAndroid, std::optional<std::string> dataAndroid, std::optional<std::string> signatureAndroid, std::optional<bool> autoRenewingAndroid, std::optional<double> purchaseStateAndroid, std::optional<bool> isAcknowledgedAndroid, std::optional<std::string> packageNameAndroid, std::optional<std::string> obfuscatedAccountIdAndroid, std::optional<std::string> obfuscatedProfileIdAndroid, std::optional<std::string> developerPayloadAndroid, std::optional<bool> isSuspendedAndroid): id(id), productId(productId), transactionDate(transactionDate), purchaseToken(purchaseToken), platform(platform), store(store), quantity(quantity), purchaseState(purchaseState), isAutoRenewing(isAutoRenewing), quantityIOS(quantityIOS), originalTransactionDateIOS(originalTransactionDateIOS), originalTransactionIdentifierIOS(originalTransactionIdentifierIOS), appAccountToken(appAccountToken), appBundleIdIOS(appBundleIdIOS), countryCodeIOS(countryCodeIOS), currencyCodeIOS(currencyCodeIOS), currencySymbolIOS(currencySymbolIOS), environmentIOS(environmentIOS), expirationDateIOS(expirationDateIOS), isUpgradedIOS(isUpgradedIOS), offerIOS(offerIOS), ownershipTypeIOS(ownershipTypeIOS), reasonIOS(reasonIOS), reasonStringRepresentationIOS(reasonStringRepresentationIOS), revocationDateIOS(revocationDateIOS), revocationReasonIOS(revocationReasonIOS), storefrontCountryCodeIOS(storefrontCountryCodeIOS), subscriptionGroupIdIOS(subscriptionGroupIdIOS), transactionReasonIOS(transactionReasonIOS), webOrderLineItemIdIOS(webOrderLineItemIdIOS), renewalInfoIOS(renewalInfoIOS), purchaseTokenAndroid(purchaseTokenAndroid), dataAndroid(dataAndroid), signatureAndroid(signatureAndroid), autoRenewingAndroid(autoRenewingAndroid), purchaseStateAndroid(purchaseStateAndroid), isAcknowledgedAndroid(isAcknowledgedAndroid), packageNameAndroid(packageNameAndroid), obfuscatedAccountIdAndroid(obfuscatedAccountIdAndroid), obfuscatedProfileIdAndroid(obfuscatedProfileIdAndroid), developerPayloadAndroid(developerPayloadAndroid), isSuspendedAndroid(isSuspendedAndroid) {}
94
95
  };
95
96
 
96
97
  } // namespace margelo::nitro::iap
@@ -143,7 +144,8 @@ namespace margelo::nitro {
143
144
  JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "packageNameAndroid")),
144
145
  JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "obfuscatedAccountIdAndroid")),
145
146
  JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "obfuscatedProfileIdAndroid")),
146
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "developerPayloadAndroid"))
147
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "developerPayloadAndroid")),
148
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "isSuspendedAndroid"))
147
149
  );
148
150
  }
149
151
  static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::iap::NitroPurchase& arg) {
@@ -189,6 +191,7 @@ namespace margelo::nitro {
189
191
  obj.setProperty(runtime, "obfuscatedAccountIdAndroid", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.obfuscatedAccountIdAndroid));
190
192
  obj.setProperty(runtime, "obfuscatedProfileIdAndroid", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.obfuscatedProfileIdAndroid));
191
193
  obj.setProperty(runtime, "developerPayloadAndroid", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.developerPayloadAndroid));
194
+ obj.setProperty(runtime, "isSuspendedAndroid", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.isSuspendedAndroid));
192
195
  return obj;
193
196
  }
194
197
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -240,6 +243,7 @@ namespace margelo::nitro {
240
243
  if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "obfuscatedAccountIdAndroid"))) return false;
241
244
  if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "obfuscatedProfileIdAndroid"))) return false;
242
245
  if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "developerPayloadAndroid"))) return false;
246
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "isSuspendedAndroid"))) return false;
243
247
  return true;
244
248
  }
245
249
  };
@@ -0,0 +1,80 @@
1
+ ///
2
+ /// NitroRentalDetailsAndroid.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/JSIHelpers.hpp>)
21
+ #include <NitroModules/JSIHelpers.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+
27
+
28
+ #include <string>
29
+ #include <optional>
30
+
31
+ namespace margelo::nitro::iap {
32
+
33
+ /**
34
+ * A struct which can be represented as a JavaScript object (NitroRentalDetailsAndroid).
35
+ */
36
+ struct NitroRentalDetailsAndroid {
37
+ public:
38
+ std::optional<std::string> rentalExpirationPeriod SWIFT_PRIVATE;
39
+ std::string rentalPeriod SWIFT_PRIVATE;
40
+
41
+ public:
42
+ NitroRentalDetailsAndroid() = default;
43
+ explicit NitroRentalDetailsAndroid(std::optional<std::string> rentalExpirationPeriod, std::string rentalPeriod): rentalExpirationPeriod(rentalExpirationPeriod), rentalPeriod(rentalPeriod) {}
44
+ };
45
+
46
+ } // namespace margelo::nitro::iap
47
+
48
+ namespace margelo::nitro {
49
+
50
+ // C++ NitroRentalDetailsAndroid <> JS NitroRentalDetailsAndroid (object)
51
+ template <>
52
+ struct JSIConverter<margelo::nitro::iap::NitroRentalDetailsAndroid> final {
53
+ static inline margelo::nitro::iap::NitroRentalDetailsAndroid fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
54
+ jsi::Object obj = arg.asObject(runtime);
55
+ return margelo::nitro::iap::NitroRentalDetailsAndroid(
56
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "rentalExpirationPeriod")),
57
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "rentalPeriod"))
58
+ );
59
+ }
60
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::iap::NitroRentalDetailsAndroid& arg) {
61
+ jsi::Object obj(runtime);
62
+ obj.setProperty(runtime, "rentalExpirationPeriod", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.rentalExpirationPeriod));
63
+ obj.setProperty(runtime, "rentalPeriod", JSIConverter<std::string>::toJSI(runtime, arg.rentalPeriod));
64
+ return obj;
65
+ }
66
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
67
+ if (!value.isObject()) {
68
+ return false;
69
+ }
70
+ jsi::Object obj = value.getObject(runtime);
71
+ if (!nitro::isPlainObject(runtime, obj)) {
72
+ return false;
73
+ }
74
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "rentalExpirationPeriod"))) return false;
75
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "rentalPeriod"))) return false;
76
+ return true;
77
+ }
78
+ };
79
+
80
+ } // namespace margelo::nitro
@@ -0,0 +1,79 @@
1
+ ///
2
+ /// NitroValidTimeWindowAndroid.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/JSIHelpers.hpp>)
21
+ #include <NitroModules/JSIHelpers.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+
27
+
28
+ #include <string>
29
+
30
+ namespace margelo::nitro::iap {
31
+
32
+ /**
33
+ * A struct which can be represented as a JavaScript object (NitroValidTimeWindowAndroid).
34
+ */
35
+ struct NitroValidTimeWindowAndroid {
36
+ public:
37
+ std::string endTimeMillis SWIFT_PRIVATE;
38
+ std::string startTimeMillis SWIFT_PRIVATE;
39
+
40
+ public:
41
+ NitroValidTimeWindowAndroid() = default;
42
+ explicit NitroValidTimeWindowAndroid(std::string endTimeMillis, std::string startTimeMillis): endTimeMillis(endTimeMillis), startTimeMillis(startTimeMillis) {}
43
+ };
44
+
45
+ } // namespace margelo::nitro::iap
46
+
47
+ namespace margelo::nitro {
48
+
49
+ // C++ NitroValidTimeWindowAndroid <> JS NitroValidTimeWindowAndroid (object)
50
+ template <>
51
+ struct JSIConverter<margelo::nitro::iap::NitroValidTimeWindowAndroid> final {
52
+ static inline margelo::nitro::iap::NitroValidTimeWindowAndroid fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
53
+ jsi::Object obj = arg.asObject(runtime);
54
+ return margelo::nitro::iap::NitroValidTimeWindowAndroid(
55
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "endTimeMillis")),
56
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "startTimeMillis"))
57
+ );
58
+ }
59
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::iap::NitroValidTimeWindowAndroid& arg) {
60
+ jsi::Object obj(runtime);
61
+ obj.setProperty(runtime, "endTimeMillis", JSIConverter<std::string>::toJSI(runtime, arg.endTimeMillis));
62
+ obj.setProperty(runtime, "startTimeMillis", JSIConverter<std::string>::toJSI(runtime, arg.startTimeMillis));
63
+ return obj;
64
+ }
65
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
66
+ if (!value.isObject()) {
67
+ return false;
68
+ }
69
+ jsi::Object obj = value.getObject(runtime);
70
+ if (!nitro::isPlainObject(runtime, obj)) {
71
+ return false;
72
+ }
73
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "endTimeMillis"))) return false;
74
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "startTimeMillis"))) return false;
75
+ return true;
76
+ }
77
+ };
78
+
79
+ } // namespace margelo::nitro
@@ -52,6 +52,7 @@ namespace margelo::nitro::iap {
52
52
  std::optional<std::vector<std::string>> ids SWIFT_PRIVATE;
53
53
  std::optional<bool> isAcknowledgedAndroid SWIFT_PRIVATE;
54
54
  bool isAutoRenewing SWIFT_PRIVATE;
55
+ std::optional<bool> isSuspendedAndroid SWIFT_PRIVATE;
55
56
  std::optional<std::string> obfuscatedAccountIdAndroid SWIFT_PRIVATE;
56
57
  std::optional<std::string> obfuscatedProfileIdAndroid SWIFT_PRIVATE;
57
58
  std::optional<std::string> packageNameAndroid SWIFT_PRIVATE;
@@ -67,7 +68,7 @@ namespace margelo::nitro::iap {
67
68
 
68
69
  public:
69
70
  PurchaseAndroid() = default;
70
- explicit PurchaseAndroid(std::optional<bool> autoRenewingAndroid, std::optional<std::string> currentPlanId, std::optional<std::string> dataAndroid, std::optional<std::string> developerPayloadAndroid, std::string id, std::optional<std::vector<std::string>> ids, std::optional<bool> isAcknowledgedAndroid, bool isAutoRenewing, std::optional<std::string> obfuscatedAccountIdAndroid, std::optional<std::string> obfuscatedProfileIdAndroid, std::optional<std::string> packageNameAndroid, IapPlatform platform, std::string productId, PurchaseState purchaseState, std::optional<std::string> purchaseToken, double quantity, std::optional<std::string> signatureAndroid, IapStore store, double transactionDate, std::optional<std::string> transactionId): autoRenewingAndroid(autoRenewingAndroid), currentPlanId(currentPlanId), dataAndroid(dataAndroid), developerPayloadAndroid(developerPayloadAndroid), id(id), ids(ids), isAcknowledgedAndroid(isAcknowledgedAndroid), isAutoRenewing(isAutoRenewing), obfuscatedAccountIdAndroid(obfuscatedAccountIdAndroid), obfuscatedProfileIdAndroid(obfuscatedProfileIdAndroid), packageNameAndroid(packageNameAndroid), platform(platform), productId(productId), purchaseState(purchaseState), purchaseToken(purchaseToken), quantity(quantity), signatureAndroid(signatureAndroid), store(store), transactionDate(transactionDate), transactionId(transactionId) {}
71
+ explicit PurchaseAndroid(std::optional<bool> autoRenewingAndroid, std::optional<std::string> currentPlanId, std::optional<std::string> dataAndroid, std::optional<std::string> developerPayloadAndroid, std::string id, std::optional<std::vector<std::string>> ids, std::optional<bool> isAcknowledgedAndroid, bool isAutoRenewing, std::optional<bool> isSuspendedAndroid, std::optional<std::string> obfuscatedAccountIdAndroid, std::optional<std::string> obfuscatedProfileIdAndroid, std::optional<std::string> packageNameAndroid, IapPlatform platform, std::string productId, PurchaseState purchaseState, std::optional<std::string> purchaseToken, double quantity, std::optional<std::string> signatureAndroid, IapStore store, double transactionDate, std::optional<std::string> transactionId): autoRenewingAndroid(autoRenewingAndroid), currentPlanId(currentPlanId), dataAndroid(dataAndroid), developerPayloadAndroid(developerPayloadAndroid), id(id), ids(ids), isAcknowledgedAndroid(isAcknowledgedAndroid), isAutoRenewing(isAutoRenewing), isSuspendedAndroid(isSuspendedAndroid), obfuscatedAccountIdAndroid(obfuscatedAccountIdAndroid), obfuscatedProfileIdAndroid(obfuscatedProfileIdAndroid), packageNameAndroid(packageNameAndroid), platform(platform), productId(productId), purchaseState(purchaseState), purchaseToken(purchaseToken), quantity(quantity), signatureAndroid(signatureAndroid), store(store), transactionDate(transactionDate), transactionId(transactionId) {}
71
72
  };
72
73
 
73
74
  } // namespace margelo::nitro::iap
@@ -88,6 +89,7 @@ namespace margelo::nitro {
88
89
  JSIConverter<std::optional<std::vector<std::string>>>::fromJSI(runtime, obj.getProperty(runtime, "ids")),
89
90
  JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "isAcknowledgedAndroid")),
90
91
  JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "isAutoRenewing")),
92
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "isSuspendedAndroid")),
91
93
  JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "obfuscatedAccountIdAndroid")),
92
94
  JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "obfuscatedProfileIdAndroid")),
93
95
  JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "packageNameAndroid")),
@@ -112,6 +114,7 @@ namespace margelo::nitro {
112
114
  obj.setProperty(runtime, "ids", JSIConverter<std::optional<std::vector<std::string>>>::toJSI(runtime, arg.ids));
113
115
  obj.setProperty(runtime, "isAcknowledgedAndroid", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.isAcknowledgedAndroid));
114
116
  obj.setProperty(runtime, "isAutoRenewing", JSIConverter<bool>::toJSI(runtime, arg.isAutoRenewing));
117
+ obj.setProperty(runtime, "isSuspendedAndroid", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.isSuspendedAndroid));
115
118
  obj.setProperty(runtime, "obfuscatedAccountIdAndroid", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.obfuscatedAccountIdAndroid));
116
119
  obj.setProperty(runtime, "obfuscatedProfileIdAndroid", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.obfuscatedProfileIdAndroid));
117
120
  obj.setProperty(runtime, "packageNameAndroid", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.packageNameAndroid));
@@ -142,6 +145,7 @@ namespace margelo::nitro {
142
145
  if (!JSIConverter<std::optional<std::vector<std::string>>>::canConvert(runtime, obj.getProperty(runtime, "ids"))) return false;
143
146
  if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "isAcknowledgedAndroid"))) return false;
144
147
  if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "isAutoRenewing"))) return false;
148
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "isSuspendedAndroid"))) return false;
145
149
  if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "obfuscatedAccountIdAndroid"))) return false;
146
150
  if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "obfuscatedProfileIdAndroid"))) return false;
147
151
  if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "packageNameAndroid"))) return false;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "apple": "1.3.0",
3
- "google": "1.3.10",
4
- "gql": "1.3.0"
3
+ "google": "1.3.12",
4
+ "gql": "1.3.2"
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-iap",
3
- "version": "14.5.0",
3
+ "version": "14.6.0-rc.1",
4
4
  "description": "React Native In-App Purchases module for iOS and Android using Nitro",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -0,0 +1,3 @@
1
+ import type { ConfigPlugin } from 'expo/config-plugins';
2
+ declare const _default: ConfigPlugin<void>;
3
+ export default _default;