react-native-iap 13.0.4 → 14.0.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 (381) hide show
  1. package/NitroIap.podspec +33 -0
  2. package/README.md +163 -51
  3. package/android/CMakeLists.txt +32 -0
  4. package/android/build.gradle +107 -138
  5. package/android/fix-prefab.gradle +51 -0
  6. package/android/gradle.properties +5 -13
  7. package/android/src/main/AndroidManifest.xml +1 -4
  8. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  9. package/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +843 -0
  10. package/android/src/main/java/com/margelo/nitro/iap/NitroIapPackage.java +33 -0
  11. package/android/src/main/java/com/margelo/nitro/iap/Types.kt +173 -0
  12. package/ios/Bridge.h +8 -0
  13. package/ios/ErrorUtils.swift +153 -0
  14. package/ios/HybridRnIap.swift +1326 -0
  15. package/ios/ProductStore.swift +33 -0
  16. package/ios/reactnativeiap.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  17. package/ios/reactnativeiap.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  18. package/lib/module/helpers/subscription.js +56 -0
  19. package/lib/module/helpers/subscription.js.map +1 -0
  20. package/lib/module/hooks/useIAP.js +175 -123
  21. package/lib/module/hooks/useIAP.js.map +1 -1
  22. package/lib/module/index.js +1015 -9
  23. package/lib/module/index.js.map +1 -1
  24. package/lib/module/package.json +1 -0
  25. package/lib/module/specs/RnIap.nitro.js +4 -0
  26. package/lib/{commonjs/modules/common.js.map → module/specs/RnIap.nitro.js.map} +1 -1
  27. package/lib/module/types.js +187 -0
  28. package/lib/module/types.js.map +1 -0
  29. package/lib/module/utils/error.js +80 -0
  30. package/lib/module/utils/error.js.map +1 -0
  31. package/lib/module/utils/type-bridge.js +202 -0
  32. package/lib/module/utils/type-bridge.js.map +1 -0
  33. package/lib/typescript/package.json +1 -0
  34. package/lib/typescript/plugin/src/withIAP.d.ts +2 -7
  35. package/lib/typescript/plugin/src/withIAP.d.ts.map +1 -1
  36. package/lib/typescript/scripts/check-nitro-versions.d.ts +3 -0
  37. package/lib/typescript/scripts/check-nitro-versions.d.ts.map +1 -0
  38. package/lib/typescript/src/helpers/subscription.d.ts +14 -0
  39. package/lib/typescript/src/helpers/subscription.d.ts.map +1 -0
  40. package/lib/typescript/src/hooks/useIAP.d.ts +42 -26
  41. package/lib/typescript/src/hooks/useIAP.d.ts.map +1 -1
  42. package/lib/typescript/src/index.d.ts +356 -8
  43. package/lib/typescript/src/index.d.ts.map +1 -1
  44. package/lib/typescript/src/specs/RnIap.nitro.d.ts +404 -0
  45. package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -0
  46. package/lib/typescript/src/types.d.ts +544 -0
  47. package/lib/typescript/src/types.d.ts.map +1 -0
  48. package/lib/typescript/src/utils/error.d.ts +30 -0
  49. package/lib/typescript/src/utils/error.d.ts.map +1 -0
  50. package/lib/typescript/src/utils/type-bridge.d.ts +40 -0
  51. package/lib/typescript/src/utils/type-bridge.d.ts.map +1 -0
  52. package/nitro.json +17 -0
  53. package/nitrogen/generated/android/NitroIap+autolinking.cmake +80 -0
  54. package/nitrogen/generated/android/NitroIap+autolinking.gradle +27 -0
  55. package/nitrogen/generated/android/NitroIapOnLoad.cpp +50 -0
  56. package/nitrogen/generated/android/NitroIapOnLoad.hpp +25 -0
  57. package/nitrogen/generated/android/c++/JFunc_void_NitroProduct.hpp +78 -0
  58. package/nitrogen/generated/android/c++/JFunc_void_NitroPurchase.hpp +78 -0
  59. package/nitrogen/generated/android/c++/JFunc_void_NitroPurchaseResult.hpp +78 -0
  60. package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +577 -0
  61. package/nitrogen/generated/android/c++/JHybridRnIapSpec.hpp +93 -0
  62. package/nitrogen/generated/android/c++/JNitroAndroidReceiptValidationOptions.hpp +66 -0
  63. package/nitrogen/generated/android/c++/JNitroAvailablePurchasesAndroidOptions.hpp +54 -0
  64. package/nitrogen/generated/android/c++/JNitroAvailablePurchasesIosOptions.hpp +65 -0
  65. package/nitrogen/generated/android/c++/JNitroAvailablePurchasesOptions.hpp +62 -0
  66. package/nitrogen/generated/android/c++/JNitroFinishTransactionAndroidParams.hpp +58 -0
  67. package/nitrogen/generated/android/c++/JNitroFinishTransactionIosParams.hpp +53 -0
  68. package/nitrogen/generated/android/c++/JNitroFinishTransactionParams.hpp +62 -0
  69. package/nitrogen/generated/android/c++/JNitroProduct.hpp +154 -0
  70. package/nitrogen/generated/android/c++/JNitroPurchase.hpp +122 -0
  71. package/nitrogen/generated/android/c++/JNitroPurchaseRequest.hpp +66 -0
  72. package/nitrogen/generated/android/c++/JNitroPurchaseResult.hpp +70 -0
  73. package/nitrogen/generated/android/c++/JNitroReceiptValidationParams.hpp +60 -0
  74. package/nitrogen/generated/android/c++/JNitroReceiptValidationResultAndroid.hpp +122 -0
  75. package/nitrogen/generated/android/c++/JNitroReceiptValidationResultIOS.hpp +68 -0
  76. package/nitrogen/generated/android/c++/JNitroRequestPurchaseAndroid.hpp +115 -0
  77. package/nitrogen/generated/android/c++/JNitroRequestPurchaseIos.hpp +84 -0
  78. package/nitrogen/generated/android/c++/JNitroSubscriptionOffer.hpp +57 -0
  79. package/nitrogen/generated/android/c++/JNitroSubscriptionRenewalInfo.hpp +74 -0
  80. package/nitrogen/generated/android/c++/JNitroSubscriptionStatus.hpp +64 -0
  81. package/nitrogen/generated/android/c++/JVariant_Boolean_NitroPurchaseResult.cpp +26 -0
  82. package/nitrogen/generated/android/c++/JVariant_Boolean_NitroPurchaseResult.hpp +71 -0
  83. package/nitrogen/generated/android/c++/JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.cpp +26 -0
  84. package/nitrogen/generated/android/c++/JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.hpp +75 -0
  85. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Func_void_NitroProduct.kt +81 -0
  86. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Func_void_NitroPurchase.kt +81 -0
  87. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Func_void_NitroPurchaseResult.kt +81 -0
  88. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/HybridRnIapSpec.kt +198 -0
  89. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAndroidReceiptValidationOptions.kt +38 -0
  90. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesAndroidOptions.kt +29 -0
  91. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesIosOptions.kt +38 -0
  92. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesOptions.kt +32 -0
  93. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionAndroidParams.kt +32 -0
  94. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionIosParams.kt +29 -0
  95. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionParams.kt +32 -0
  96. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroIapOnLoad.kt +35 -0
  97. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroProduct.kt +104 -0
  98. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchase.kt +80 -0
  99. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchaseRequest.kt +32 -0
  100. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchaseResult.kt +41 -0
  101. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationParams.kt +32 -0
  102. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationResultAndroid.kt +80 -0
  103. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationResultIOS.kt +38 -0
  104. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseAndroid.kt +47 -0
  105. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseIos.kt +41 -0
  106. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroSubscriptionOffer.kt +32 -0
  107. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroSubscriptionRenewalInfo.kt +44 -0
  108. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroSubscriptionStatus.kt +35 -0
  109. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_Boolean_NitroPurchaseResult.kt +42 -0
  110. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.kt +42 -0
  111. package/nitrogen/generated/ios/NitroIap+autolinking.rb +60 -0
  112. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.cpp +152 -0
  113. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +1061 -0
  114. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +107 -0
  115. package/nitrogen/generated/ios/NitroIapAutolinking.mm +33 -0
  116. package/nitrogen/generated/ios/NitroIapAutolinking.swift +25 -0
  117. package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.cpp +11 -0
  118. package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +355 -0
  119. package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
  120. package/nitrogen/generated/ios/swift/Func_void_NitroProduct.swift +47 -0
  121. package/nitrogen/generated/ios/swift/Func_void_NitroPurchase.swift +47 -0
  122. package/nitrogen/generated/ios/swift/Func_void_NitroPurchaseResult.swift +47 -0
  123. package/nitrogen/generated/ios/swift/Func_void_bool.swift +47 -0
  124. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
  125. package/nitrogen/generated/ios/swift/Func_void_std__optional_NitroProduct_.swift +54 -0
  126. package/nitrogen/generated/ios/swift/Func_void_std__optional_NitroPurchase_.swift +54 -0
  127. package/nitrogen/generated/ios/swift/Func_void_std__optional_std__string_.swift +54 -0
  128. package/nitrogen/generated/ios/swift/Func_void_std__optional_std__vector_NitroSubscriptionStatus__.swift +54 -0
  129. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
  130. package/nitrogen/generated/ios/swift/Func_void_std__variant_NitroReceiptValidationResultIOS__NitroReceiptValidationResultAndroid_.swift +59 -0
  131. package/nitrogen/generated/ios/swift/Func_void_std__variant_bool__NitroPurchaseResult_.swift +59 -0
  132. package/nitrogen/generated/ios/swift/Func_void_std__vector_NitroProduct_.swift +47 -0
  133. package/nitrogen/generated/ios/swift/Func_void_std__vector_NitroPurchase_.swift +47 -0
  134. package/nitrogen/generated/ios/swift/HybridRnIapSpec.swift +78 -0
  135. package/nitrogen/generated/ios/swift/HybridRnIapSpec_cxx.swift +750 -0
  136. package/nitrogen/generated/ios/swift/NitroAndroidReceiptValidationOptions.swift +80 -0
  137. package/nitrogen/generated/ios/swift/NitroAvailablePurchasesAndroidOptions.swift +54 -0
  138. package/nitrogen/generated/ios/swift/NitroAvailablePurchasesIosOptions.swift +116 -0
  139. package/nitrogen/generated/ios/swift/NitroAvailablePurchasesOptions.swift +84 -0
  140. package/nitrogen/generated/ios/swift/NitroFinishTransactionAndroidParams.swift +58 -0
  141. package/nitrogen/generated/ios/swift/NitroFinishTransactionIosParams.swift +35 -0
  142. package/nitrogen/generated/ios/swift/NitroFinishTransactionParams.swift +84 -0
  143. package/nitrogen/generated/ios/swift/NitroProduct.swift +653 -0
  144. package/nitrogen/generated/ios/swift/NitroPurchase.swift +453 -0
  145. package/nitrogen/generated/ios/swift/NitroPurchaseRequest.swift +84 -0
  146. package/nitrogen/generated/ios/swift/NitroPurchaseResult.swift +117 -0
  147. package/nitrogen/generated/ios/swift/NitroReceiptValidationParams.swift +65 -0
  148. package/nitrogen/generated/ios/swift/NitroReceiptValidationResultAndroid.swift +258 -0
  149. package/nitrogen/generated/ios/swift/NitroReceiptValidationResultIOS.swift +87 -0
  150. package/nitrogen/generated/ios/swift/NitroRequestPurchaseAndroid.swift +225 -0
  151. package/nitrogen/generated/ios/swift/NitroRequestPurchaseIos.swift +161 -0
  152. package/nitrogen/generated/ios/swift/NitroSubscriptionOffer.swift +46 -0
  153. package/nitrogen/generated/ios/swift/NitroSubscriptionRenewalInfo.swift +152 -0
  154. package/nitrogen/generated/ios/swift/NitroSubscriptionStatus.swift +76 -0
  155. package/nitrogen/generated/ios/swift/Variant_Bool_NitroPurchaseResult.swift +18 -0
  156. package/nitrogen/generated/ios/swift/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.swift +18 -0
  157. package/nitrogen/generated/shared/c++/HybridRnIapSpec.cpp +50 -0
  158. package/nitrogen/generated/shared/c++/HybridRnIapSpec.hpp +125 -0
  159. package/nitrogen/generated/shared/c++/NitroAndroidReceiptValidationOptions.hpp +80 -0
  160. package/nitrogen/generated/shared/c++/NitroAvailablePurchasesAndroidOptions.hpp +68 -0
  161. package/nitrogen/generated/shared/c++/NitroAvailablePurchasesIosOptions.hpp +79 -0
  162. package/nitrogen/generated/shared/c++/NitroAvailablePurchasesOptions.hpp +76 -0
  163. package/nitrogen/generated/shared/c++/NitroFinishTransactionAndroidParams.hpp +72 -0
  164. package/nitrogen/generated/shared/c++/NitroFinishTransactionIosParams.hpp +67 -0
  165. package/nitrogen/generated/shared/c++/NitroFinishTransactionParams.hpp +76 -0
  166. package/nitrogen/generated/shared/c++/NitroProduct.hpp +168 -0
  167. package/nitrogen/generated/shared/c++/NitroPurchase.hpp +136 -0
  168. package/nitrogen/generated/shared/c++/NitroPurchaseRequest.hpp +76 -0
  169. package/nitrogen/generated/shared/c++/NitroPurchaseResult.hpp +84 -0
  170. package/nitrogen/generated/shared/c++/NitroReceiptValidationParams.hpp +74 -0
  171. package/nitrogen/generated/shared/c++/NitroReceiptValidationResultAndroid.hpp +136 -0
  172. package/nitrogen/generated/shared/c++/NitroReceiptValidationResultIOS.hpp +82 -0
  173. package/nitrogen/generated/shared/c++/NitroRequestPurchaseAndroid.hpp +95 -0
  174. package/nitrogen/generated/shared/c++/NitroRequestPurchaseIos.hpp +85 -0
  175. package/nitrogen/generated/shared/c++/NitroSubscriptionOffer.hpp +71 -0
  176. package/nitrogen/generated/shared/c++/NitroSubscriptionRenewalInfo.hpp +88 -0
  177. package/nitrogen/generated/shared/c++/NitroSubscriptionStatus.hpp +78 -0
  178. package/package.json +144 -104
  179. package/plugin/build/src/withIAP.d.ts +3 -0
  180. package/plugin/build/src/withIAP.js +81 -0
  181. package/plugin/build/tsconfig.tsbuildinfo +1 -0
  182. package/plugin/build/withIAP.d.ts +2 -7
  183. package/plugin/build/withIAP.js +62 -51
  184. package/plugin/src/withIAP.ts +119 -0
  185. package/plugin/tsconfig.json +18 -0
  186. package/plugin/tsconfig.tsbuildinfo +1 -0
  187. package/src/helpers/subscription.ts +65 -0
  188. package/src/hooks/useIAP.ts +361 -222
  189. package/src/index.ts +1194 -9
  190. package/src/specs/RnIap.nitro.ts +501 -0
  191. package/src/types.ts +680 -0
  192. package/src/utils/error.ts +97 -0
  193. package/src/utils/type-bridge.ts +209 -0
  194. package/LICENSE +0 -21
  195. package/RNIap.podspec +0 -36
  196. package/android/src/amazon/AndroidManifest.xml +0 -14
  197. package/android/src/amazon/java/com/dooboolab/rniap/EventSender.kt +0 -10
  198. package/android/src/amazon/java/com/dooboolab/rniap/PurchasingServiceProxy.kt +0 -29
  199. package/android/src/amazon/java/com/dooboolab/rniap/PurchasingServiceProxyAmazonImpl.kt +0 -31
  200. package/android/src/amazon/java/com/dooboolab/rniap/RNIapActivityListener.kt +0 -55
  201. package/android/src/amazon/java/com/dooboolab/rniap/RNIapAmazonListener.kt +0 -325
  202. package/android/src/amazon/java/com/dooboolab/rniap/RNIapAmazonModule.kt +0 -244
  203. package/android/src/amazon/java/com/dooboolab/rniap/RNIapPackage.kt +0 -17
  204. package/android/src/amazon/java/com/dooboolab/rniap/modifysubscription/RNIapAmazonModifySubscriptionListener.kt +0 -88
  205. package/android/src/amazon/java/com/dooboolab/rniap/utils/Extensions.kt +0 -22
  206. package/android/src/main/java/com/dooboolab/rniap/PromiseUtils.kt +0 -62
  207. package/android/src/main/java/com/dooboolab/rniap/PromiseUtlis.kt +0 -43
  208. package/android/src/play/java/com/dooboolab/rniap/PlayUtils.kt +0 -114
  209. package/android/src/play/java/com/dooboolab/rniap/RNIapActivityListener.kt +0 -15
  210. package/android/src/play/java/com/dooboolab/rniap/RNIapModule.kt +0 -911
  211. package/android/src/play/java/com/dooboolab/rniap/RNIapPackage.kt +0 -17
  212. package/android/src/testAmazon/java/com/dooboolab/rniap/RNIapAmazonModuleTest.kt +0 -170
  213. package/app.plugin.js +0 -1
  214. package/ios/IapSerializationUtils.swift +0 -290
  215. package/ios/IapTypes.swift +0 -56
  216. package/ios/IapUtils.swift +0 -40
  217. package/ios/LatestPromiseKeeper.swift +0 -52
  218. package/ios/RNIapIos-Bridging-Header.h +0 -2
  219. package/ios/RNIapIos.m +0 -69
  220. package/ios/RNIapIos.swift +0 -868
  221. package/ios/RNIapIos.xcodeproj/project.pbxproj +0 -289
  222. package/ios/RNIapIosSk2.m +0 -126
  223. package/ios/RNIapIosSk2.swift +0 -1413
  224. package/ios/ThreadSafe.swift +0 -18
  225. package/lib/commonjs/eventEmitter.js +0 -195
  226. package/lib/commonjs/eventEmitter.js.map +0 -1
  227. package/lib/commonjs/hooks/index.js +0 -17
  228. package/lib/commonjs/hooks/index.js.map +0 -1
  229. package/lib/commonjs/hooks/useIAP.js +0 -203
  230. package/lib/commonjs/hooks/useIAP.js.map +0 -1
  231. package/lib/commonjs/hooks/withIAPContext.js +0 -95
  232. package/lib/commonjs/hooks/withIAPContext.js.map +0 -1
  233. package/lib/commonjs/iap.js +0 -836
  234. package/lib/commonjs/iap.js.map +0 -1
  235. package/lib/commonjs/index.js +0 -105
  236. package/lib/commonjs/index.js.map +0 -1
  237. package/lib/commonjs/internal/enhancedFetch.js +0 -26
  238. package/lib/commonjs/internal/enhancedFetch.js.map +0 -1
  239. package/lib/commonjs/internal/fillProductsWithAdditionalData.js +0 -50
  240. package/lib/commonjs/internal/fillProductsWithAdditionalData.js.map +0 -1
  241. package/lib/commonjs/internal/index.js +0 -39
  242. package/lib/commonjs/internal/index.js.map +0 -1
  243. package/lib/commonjs/internal/platform.js +0 -119
  244. package/lib/commonjs/internal/platform.js.map +0 -1
  245. package/lib/commonjs/modules/amazon.js +0 -50
  246. package/lib/commonjs/modules/amazon.js.map +0 -1
  247. package/lib/commonjs/modules/android.js +0 -92
  248. package/lib/commonjs/modules/android.js.map +0 -1
  249. package/lib/commonjs/modules/common.js +0 -2
  250. package/lib/commonjs/modules/index.js +0 -50
  251. package/lib/commonjs/modules/index.js.map +0 -1
  252. package/lib/commonjs/modules/ios.js +0 -160
  253. package/lib/commonjs/modules/ios.js.map +0 -1
  254. package/lib/commonjs/modules/iosSk2.js +0 -113
  255. package/lib/commonjs/modules/iosSk2.js.map +0 -1
  256. package/lib/commonjs/purchaseError.js +0 -170
  257. package/lib/commonjs/purchaseError.js.map +0 -1
  258. package/lib/commonjs/types/amazon.js +0 -2
  259. package/lib/commonjs/types/amazon.js.map +0 -1
  260. package/lib/commonjs/types/android.js +0 -67
  261. package/lib/commonjs/types/android.js.map +0 -1
  262. package/lib/commonjs/types/apple.js +0 -24
  263. package/lib/commonjs/types/apple.js.map +0 -1
  264. package/lib/commonjs/types/appleSk2.js +0 -137
  265. package/lib/commonjs/types/appleSk2.js.map +0 -1
  266. package/lib/commonjs/types/index.js +0 -67
  267. package/lib/commonjs/types/index.js.map +0 -1
  268. package/lib/commonjs/utils/errorMapping.js +0 -83
  269. package/lib/commonjs/utils/errorMapping.js.map +0 -1
  270. package/lib/commonjs/utils/typeGuards.js +0 -74
  271. package/lib/commonjs/utils/typeGuards.js.map +0 -1
  272. package/lib/module/eventEmitter.js +0 -185
  273. package/lib/module/eventEmitter.js.map +0 -1
  274. package/lib/module/hooks/index.js +0 -2
  275. package/lib/module/hooks/index.js.map +0 -1
  276. package/lib/module/hooks/withIAPContext.js +0 -86
  277. package/lib/module/hooks/withIAPContext.js.map +0 -1
  278. package/lib/module/iap.js +0 -805
  279. package/lib/module/iap.js.map +0 -1
  280. package/lib/module/internal/enhancedFetch.js +0 -19
  281. package/lib/module/internal/enhancedFetch.js.map +0 -1
  282. package/lib/module/internal/fillProductsWithAdditionalData.js +0 -43
  283. package/lib/module/internal/fillProductsWithAdditionalData.js.map +0 -1
  284. package/lib/module/internal/index.js +0 -4
  285. package/lib/module/internal/index.js.map +0 -1
  286. package/lib/module/internal/platform.js +0 -102
  287. package/lib/module/internal/platform.js.map +0 -1
  288. package/lib/module/modules/amazon.js +0 -42
  289. package/lib/module/modules/amazon.js.map +0 -1
  290. package/lib/module/modules/android.js +0 -81
  291. package/lib/module/modules/android.js.map +0 -1
  292. package/lib/module/modules/common.js +0 -2
  293. package/lib/module/modules/common.js.map +0 -1
  294. package/lib/module/modules/index.js +0 -5
  295. package/lib/module/modules/index.js.map +0 -1
  296. package/lib/module/modules/ios.js +0 -145
  297. package/lib/module/modules/ios.js.map +0 -1
  298. package/lib/module/modules/iosSk2.js +0 -96
  299. package/lib/module/modules/iosSk2.js.map +0 -1
  300. package/lib/module/purchaseError.js +0 -164
  301. package/lib/module/purchaseError.js.map +0 -1
  302. package/lib/module/types/amazon.js +0 -2
  303. package/lib/module/types/amazon.js.map +0 -1
  304. package/lib/module/types/android.js +0 -63
  305. package/lib/module/types/android.js.map +0 -1
  306. package/lib/module/types/apple.js +0 -17
  307. package/lib/module/types/apple.js.map +0 -1
  308. package/lib/module/types/appleSk2.js +0 -129
  309. package/lib/module/types/appleSk2.js.map +0 -1
  310. package/lib/module/types/index.js +0 -75
  311. package/lib/module/types/index.js.map +0 -1
  312. package/lib/module/utils/errorMapping.js +0 -75
  313. package/lib/module/utils/errorMapping.js.map +0 -1
  314. package/lib/module/utils/typeGuards.js +0 -61
  315. package/lib/module/utils/typeGuards.js.map +0 -1
  316. package/lib/typescript/src/eventEmitter.d.ts +0 -151
  317. package/lib/typescript/src/eventEmitter.d.ts.map +0 -1
  318. package/lib/typescript/src/hooks/index.d.ts +0 -2
  319. package/lib/typescript/src/hooks/index.d.ts.map +0 -1
  320. package/lib/typescript/src/hooks/withIAPContext.d.ts +0 -27
  321. package/lib/typescript/src/hooks/withIAPContext.d.ts.map +0 -1
  322. package/lib/typescript/src/iap.d.ts +0 -503
  323. package/lib/typescript/src/iap.d.ts.map +0 -1
  324. package/lib/typescript/src/internal/enhancedFetch.d.ts +0 -6
  325. package/lib/typescript/src/internal/enhancedFetch.d.ts.map +0 -1
  326. package/lib/typescript/src/internal/fillProductsWithAdditionalData.d.ts +0 -7
  327. package/lib/typescript/src/internal/fillProductsWithAdditionalData.d.ts.map +0 -1
  328. package/lib/typescript/src/internal/index.d.ts +0 -4
  329. package/lib/typescript/src/internal/index.d.ts.map +0 -1
  330. package/lib/typescript/src/internal/platform.d.ts +0 -27
  331. package/lib/typescript/src/internal/platform.d.ts.map +0 -1
  332. package/lib/typescript/src/modules/amazon.d.ts +0 -55
  333. package/lib/typescript/src/modules/amazon.d.ts.map +0 -1
  334. package/lib/typescript/src/modules/android.d.ts +0 -74
  335. package/lib/typescript/src/modules/android.d.ts.map +0 -1
  336. package/lib/typescript/src/modules/common.d.ts +0 -14
  337. package/lib/typescript/src/modules/common.d.ts.map +0 -1
  338. package/lib/typescript/src/modules/index.d.ts +0 -5
  339. package/lib/typescript/src/modules/index.d.ts.map +0 -1
  340. package/lib/typescript/src/modules/ios.d.ts +0 -117
  341. package/lib/typescript/src/modules/ios.d.ts.map +0 -1
  342. package/lib/typescript/src/modules/iosSk2.d.ts +0 -140
  343. package/lib/typescript/src/modules/iosSk2.d.ts.map +0 -1
  344. package/lib/typescript/src/purchaseError.d.ts +0 -133
  345. package/lib/typescript/src/purchaseError.d.ts.map +0 -1
  346. package/lib/typescript/src/types/amazon.d.ts +0 -33
  347. package/lib/typescript/src/types/amazon.d.ts.map +0 -1
  348. package/lib/typescript/src/types/android.d.ts +0 -66
  349. package/lib/typescript/src/types/android.d.ts.map +0 -1
  350. package/lib/typescript/src/types/apple.d.ts +0 -27
  351. package/lib/typescript/src/types/apple.d.ts.map +0 -1
  352. package/lib/typescript/src/types/appleSk2.d.ts +0 -129
  353. package/lib/typescript/src/types/appleSk2.d.ts.map +0 -1
  354. package/lib/typescript/src/types/index.d.ts +0 -302
  355. package/lib/typescript/src/types/index.d.ts.map +0 -1
  356. package/lib/typescript/src/utils/errorMapping.d.ts +0 -29
  357. package/lib/typescript/src/utils/errorMapping.d.ts.map +0 -1
  358. package/lib/typescript/src/utils/typeGuards.d.ts +0 -53
  359. package/lib/typescript/src/utils/typeGuards.d.ts.map +0 -1
  360. package/src/eventEmitter.ts +0 -212
  361. package/src/hooks/index.ts +0 -1
  362. package/src/hooks/withIAPContext.tsx +0 -179
  363. package/src/iap.ts +0 -1046
  364. package/src/internal/enhancedFetch.ts +0 -25
  365. package/src/internal/fillProductsWithAdditionalData.ts +0 -47
  366. package/src/internal/index.ts +0 -3
  367. package/src/internal/platform.ts +0 -135
  368. package/src/modules/amazon.ts +0 -94
  369. package/src/modules/android.ts +0 -179
  370. package/src/modules/common.ts +0 -16
  371. package/src/modules/index.ts +0 -4
  372. package/src/modules/ios.ts +0 -229
  373. package/src/modules/iosSk2.ts +0 -194
  374. package/src/purchaseError.ts +0 -196
  375. package/src/types/amazon.ts +0 -40
  376. package/src/types/android.ts +0 -89
  377. package/src/types/apple.ts +0 -44
  378. package/src/types/appleSk2.ts +0 -275
  379. package/src/types/index.ts +0 -379
  380. package/src/utils/errorMapping.ts +0 -88
  381. package/src/utils/typeGuards.ts +0 -90
@@ -0,0 +1,68 @@
1
+ ///
2
+ /// JNitroReceiptValidationResultIOS.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 "NitroReceiptValidationResultIOS.hpp"
12
+
13
+ #include "JNitroPurchase.hpp"
14
+ #include "NitroPurchase.hpp"
15
+ #include <optional>
16
+ #include <string>
17
+
18
+ namespace margelo::nitro::iap {
19
+
20
+ using namespace facebook;
21
+
22
+ /**
23
+ * The C++ JNI bridge between the C++ struct "NitroReceiptValidationResultIOS" and the the Kotlin data class "NitroReceiptValidationResultIOS".
24
+ */
25
+ struct JNitroReceiptValidationResultIOS final: public jni::JavaClass<JNitroReceiptValidationResultIOS> {
26
+ public:
27
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroReceiptValidationResultIOS;";
28
+
29
+ public:
30
+ /**
31
+ * Convert this Java/Kotlin-based struct to the C++ struct NitroReceiptValidationResultIOS by copying all values to C++.
32
+ */
33
+ [[maybe_unused]]
34
+ [[nodiscard]]
35
+ NitroReceiptValidationResultIOS toCpp() const {
36
+ static const auto clazz = javaClassStatic();
37
+ static const auto fieldIsValid = clazz->getField<jboolean>("isValid");
38
+ jboolean isValid = this->getFieldValue(fieldIsValid);
39
+ static const auto fieldReceiptData = clazz->getField<jni::JString>("receiptData");
40
+ jni::local_ref<jni::JString> receiptData = this->getFieldValue(fieldReceiptData);
41
+ static const auto fieldJwsRepresentation = clazz->getField<jni::JString>("jwsRepresentation");
42
+ jni::local_ref<jni::JString> jwsRepresentation = this->getFieldValue(fieldJwsRepresentation);
43
+ static const auto fieldLatestTransaction = clazz->getField<JNitroPurchase>("latestTransaction");
44
+ jni::local_ref<JNitroPurchase> latestTransaction = this->getFieldValue(fieldLatestTransaction);
45
+ return NitroReceiptValidationResultIOS(
46
+ static_cast<bool>(isValid),
47
+ receiptData->toStdString(),
48
+ jwsRepresentation->toStdString(),
49
+ latestTransaction != nullptr ? std::make_optional(latestTransaction->toCpp()) : std::nullopt
50
+ );
51
+ }
52
+
53
+ public:
54
+ /**
55
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
56
+ */
57
+ [[maybe_unused]]
58
+ static jni::local_ref<JNitroReceiptValidationResultIOS::javaobject> fromCpp(const NitroReceiptValidationResultIOS& value) {
59
+ return newInstance(
60
+ value.isValid,
61
+ jni::make_jstring(value.receiptData),
62
+ jni::make_jstring(value.jwsRepresentation),
63
+ value.latestTransaction.has_value() ? JNitroPurchase::fromCpp(value.latestTransaction.value()) : nullptr
64
+ );
65
+ }
66
+ };
67
+
68
+ } // namespace margelo::nitro::iap
@@ -0,0 +1,115 @@
1
+ ///
2
+ /// JNitroRequestPurchaseAndroid.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 "NitroRequestPurchaseAndroid.hpp"
12
+
13
+ #include "JNitroSubscriptionOffer.hpp"
14
+ #include "NitroSubscriptionOffer.hpp"
15
+ #include <optional>
16
+ #include <string>
17
+ #include <vector>
18
+
19
+ namespace margelo::nitro::iap {
20
+
21
+ using namespace facebook;
22
+
23
+ /**
24
+ * The C++ JNI bridge between the C++ struct "NitroRequestPurchaseAndroid" and the the Kotlin data class "NitroRequestPurchaseAndroid".
25
+ */
26
+ struct JNitroRequestPurchaseAndroid final: public jni::JavaClass<JNitroRequestPurchaseAndroid> {
27
+ public:
28
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroRequestPurchaseAndroid;";
29
+
30
+ public:
31
+ /**
32
+ * Convert this Java/Kotlin-based struct to the C++ struct NitroRequestPurchaseAndroid by copying all values to C++.
33
+ */
34
+ [[maybe_unused]]
35
+ [[nodiscard]]
36
+ NitroRequestPurchaseAndroid toCpp() const {
37
+ static const auto clazz = javaClassStatic();
38
+ static const auto fieldSkus = clazz->getField<jni::JArrayClass<jni::JString>>("skus");
39
+ jni::local_ref<jni::JArrayClass<jni::JString>> skus = this->getFieldValue(fieldSkus);
40
+ static const auto fieldObfuscatedAccountIdAndroid = clazz->getField<jni::JString>("obfuscatedAccountIdAndroid");
41
+ jni::local_ref<jni::JString> obfuscatedAccountIdAndroid = this->getFieldValue(fieldObfuscatedAccountIdAndroid);
42
+ static const auto fieldObfuscatedProfileIdAndroid = clazz->getField<jni::JString>("obfuscatedProfileIdAndroid");
43
+ jni::local_ref<jni::JString> obfuscatedProfileIdAndroid = this->getFieldValue(fieldObfuscatedProfileIdAndroid);
44
+ static const auto fieldIsOfferPersonalized = clazz->getField<jni::JBoolean>("isOfferPersonalized");
45
+ jni::local_ref<jni::JBoolean> isOfferPersonalized = this->getFieldValue(fieldIsOfferPersonalized);
46
+ static const auto fieldSubscriptionOffers = clazz->getField<jni::JArrayClass<JNitroSubscriptionOffer>>("subscriptionOffers");
47
+ jni::local_ref<jni::JArrayClass<JNitroSubscriptionOffer>> subscriptionOffers = this->getFieldValue(fieldSubscriptionOffers);
48
+ static const auto fieldReplacementModeAndroid = clazz->getField<jni::JDouble>("replacementModeAndroid");
49
+ jni::local_ref<jni::JDouble> replacementModeAndroid = this->getFieldValue(fieldReplacementModeAndroid);
50
+ static const auto fieldPurchaseTokenAndroid = clazz->getField<jni::JString>("purchaseTokenAndroid");
51
+ jni::local_ref<jni::JString> purchaseTokenAndroid = this->getFieldValue(fieldPurchaseTokenAndroid);
52
+ return NitroRequestPurchaseAndroid(
53
+ [&]() {
54
+ size_t __size = skus->size();
55
+ std::vector<std::string> __vector;
56
+ __vector.reserve(__size);
57
+ for (size_t __i = 0; __i < __size; __i++) {
58
+ auto __element = skus->getElement(__i);
59
+ __vector.push_back(__element->toStdString());
60
+ }
61
+ return __vector;
62
+ }(),
63
+ obfuscatedAccountIdAndroid != nullptr ? std::make_optional(obfuscatedAccountIdAndroid->toStdString()) : std::nullopt,
64
+ obfuscatedProfileIdAndroid != nullptr ? std::make_optional(obfuscatedProfileIdAndroid->toStdString()) : std::nullopt,
65
+ isOfferPersonalized != nullptr ? std::make_optional(static_cast<bool>(isOfferPersonalized->value())) : std::nullopt,
66
+ subscriptionOffers != nullptr ? std::make_optional([&]() {
67
+ size_t __size = subscriptionOffers->size();
68
+ std::vector<NitroSubscriptionOffer> __vector;
69
+ __vector.reserve(__size);
70
+ for (size_t __i = 0; __i < __size; __i++) {
71
+ auto __element = subscriptionOffers->getElement(__i);
72
+ __vector.push_back(__element->toCpp());
73
+ }
74
+ return __vector;
75
+ }()) : std::nullopt,
76
+ replacementModeAndroid != nullptr ? std::make_optional(replacementModeAndroid->value()) : std::nullopt,
77
+ purchaseTokenAndroid != nullptr ? std::make_optional(purchaseTokenAndroid->toStdString()) : std::nullopt
78
+ );
79
+ }
80
+
81
+ public:
82
+ /**
83
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
84
+ */
85
+ [[maybe_unused]]
86
+ static jni::local_ref<JNitroRequestPurchaseAndroid::javaobject> fromCpp(const NitroRequestPurchaseAndroid& value) {
87
+ return newInstance(
88
+ [&]() {
89
+ size_t __size = value.skus.size();
90
+ jni::local_ref<jni::JArrayClass<jni::JString>> __array = jni::JArrayClass<jni::JString>::newArray(__size);
91
+ for (size_t __i = 0; __i < __size; __i++) {
92
+ const auto& __element = value.skus[__i];
93
+ __array->setElement(__i, *jni::make_jstring(__element));
94
+ }
95
+ return __array;
96
+ }(),
97
+ value.obfuscatedAccountIdAndroid.has_value() ? jni::make_jstring(value.obfuscatedAccountIdAndroid.value()) : nullptr,
98
+ value.obfuscatedProfileIdAndroid.has_value() ? jni::make_jstring(value.obfuscatedProfileIdAndroid.value()) : nullptr,
99
+ value.isOfferPersonalized.has_value() ? jni::JBoolean::valueOf(value.isOfferPersonalized.value()) : nullptr,
100
+ value.subscriptionOffers.has_value() ? [&]() {
101
+ size_t __size = value.subscriptionOffers.value().size();
102
+ jni::local_ref<jni::JArrayClass<JNitroSubscriptionOffer>> __array = jni::JArrayClass<JNitroSubscriptionOffer>::newArray(__size);
103
+ for (size_t __i = 0; __i < __size; __i++) {
104
+ const auto& __element = value.subscriptionOffers.value()[__i];
105
+ __array->setElement(__i, *JNitroSubscriptionOffer::fromCpp(__element));
106
+ }
107
+ return __array;
108
+ }() : nullptr,
109
+ value.replacementModeAndroid.has_value() ? jni::JDouble::valueOf(value.replacementModeAndroid.value()) : nullptr,
110
+ value.purchaseTokenAndroid.has_value() ? jni::make_jstring(value.purchaseTokenAndroid.value()) : nullptr
111
+ );
112
+ }
113
+ };
114
+
115
+ } // namespace margelo::nitro::iap
@@ -0,0 +1,84 @@
1
+ ///
2
+ /// JNitroRequestPurchaseIos.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 "NitroRequestPurchaseIos.hpp"
12
+
13
+ #include <optional>
14
+ #include <string>
15
+ #include <unordered_map>
16
+
17
+ namespace margelo::nitro::iap {
18
+
19
+ using namespace facebook;
20
+
21
+ /**
22
+ * The C++ JNI bridge between the C++ struct "NitroRequestPurchaseIos" and the the Kotlin data class "NitroRequestPurchaseIos".
23
+ */
24
+ struct JNitroRequestPurchaseIos final: public jni::JavaClass<JNitroRequestPurchaseIos> {
25
+ public:
26
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroRequestPurchaseIos;";
27
+
28
+ public:
29
+ /**
30
+ * Convert this Java/Kotlin-based struct to the C++ struct NitroRequestPurchaseIos by copying all values to C++.
31
+ */
32
+ [[maybe_unused]]
33
+ [[nodiscard]]
34
+ NitroRequestPurchaseIos toCpp() const {
35
+ static const auto clazz = javaClassStatic();
36
+ static const auto fieldSku = clazz->getField<jni::JString>("sku");
37
+ jni::local_ref<jni::JString> sku = this->getFieldValue(fieldSku);
38
+ static const auto fieldAndDangerouslyFinishTransactionAutomatically = clazz->getField<jni::JBoolean>("andDangerouslyFinishTransactionAutomatically");
39
+ jni::local_ref<jni::JBoolean> andDangerouslyFinishTransactionAutomatically = this->getFieldValue(fieldAndDangerouslyFinishTransactionAutomatically);
40
+ static const auto fieldAppAccountToken = clazz->getField<jni::JString>("appAccountToken");
41
+ jni::local_ref<jni::JString> appAccountToken = this->getFieldValue(fieldAppAccountToken);
42
+ static const auto fieldQuantity = clazz->getField<jni::JDouble>("quantity");
43
+ jni::local_ref<jni::JDouble> quantity = this->getFieldValue(fieldQuantity);
44
+ static const auto fieldWithOffer = clazz->getField<jni::JMap<jni::JString, jni::JString>>("withOffer");
45
+ jni::local_ref<jni::JMap<jni::JString, jni::JString>> withOffer = this->getFieldValue(fieldWithOffer);
46
+ return NitroRequestPurchaseIos(
47
+ sku->toStdString(),
48
+ andDangerouslyFinishTransactionAutomatically != nullptr ? std::make_optional(static_cast<bool>(andDangerouslyFinishTransactionAutomatically->value())) : std::nullopt,
49
+ appAccountToken != nullptr ? std::make_optional(appAccountToken->toStdString()) : std::nullopt,
50
+ quantity != nullptr ? std::make_optional(quantity->value()) : std::nullopt,
51
+ withOffer != nullptr ? std::make_optional([&]() {
52
+ std::unordered_map<std::string, std::string> __map;
53
+ __map.reserve(withOffer->size());
54
+ for (const auto& __entry : *withOffer) {
55
+ __map.emplace(__entry.first->toStdString(), __entry.second->toStdString());
56
+ }
57
+ return __map;
58
+ }()) : std::nullopt
59
+ );
60
+ }
61
+
62
+ public:
63
+ /**
64
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
65
+ */
66
+ [[maybe_unused]]
67
+ static jni::local_ref<JNitroRequestPurchaseIos::javaobject> fromCpp(const NitroRequestPurchaseIos& value) {
68
+ return newInstance(
69
+ jni::make_jstring(value.sku),
70
+ value.andDangerouslyFinishTransactionAutomatically.has_value() ? jni::JBoolean::valueOf(value.andDangerouslyFinishTransactionAutomatically.value()) : nullptr,
71
+ value.appAccountToken.has_value() ? jni::make_jstring(value.appAccountToken.value()) : nullptr,
72
+ value.quantity.has_value() ? jni::JDouble::valueOf(value.quantity.value()) : nullptr,
73
+ value.withOffer.has_value() ? [&]() -> jni::local_ref<jni::JMap<jni::JString, jni::JString>> {
74
+ auto __map = jni::JHashMap<jni::JString, jni::JString>::create(value.withOffer.value().size());
75
+ for (const auto& __entry : value.withOffer.value()) {
76
+ __map->put(jni::make_jstring(__entry.first), jni::make_jstring(__entry.second));
77
+ }
78
+ return __map;
79
+ }() : nullptr
80
+ );
81
+ }
82
+ };
83
+
84
+ } // namespace margelo::nitro::iap
@@ -0,0 +1,57 @@
1
+ ///
2
+ /// JNitroSubscriptionOffer.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 "NitroSubscriptionOffer.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 "NitroSubscriptionOffer" and the the Kotlin data class "NitroSubscriptionOffer".
21
+ */
22
+ struct JNitroSubscriptionOffer final: public jni::JavaClass<JNitroSubscriptionOffer> {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroSubscriptionOffer;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct NitroSubscriptionOffer by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ NitroSubscriptionOffer 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
+ static const auto fieldOfferToken = clazz->getField<jni::JString>("offerToken");
37
+ jni::local_ref<jni::JString> offerToken = this->getFieldValue(fieldOfferToken);
38
+ return NitroSubscriptionOffer(
39
+ sku->toStdString(),
40
+ offerToken->toStdString()
41
+ );
42
+ }
43
+
44
+ public:
45
+ /**
46
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
47
+ */
48
+ [[maybe_unused]]
49
+ static jni::local_ref<JNitroSubscriptionOffer::javaobject> fromCpp(const NitroSubscriptionOffer& value) {
50
+ return newInstance(
51
+ jni::make_jstring(value.sku),
52
+ jni::make_jstring(value.offerToken)
53
+ );
54
+ }
55
+ };
56
+
57
+ } // namespace margelo::nitro::iap
@@ -0,0 +1,74 @@
1
+ ///
2
+ /// JNitroSubscriptionRenewalInfo.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 "NitroSubscriptionRenewalInfo.hpp"
12
+
13
+ #include <optional>
14
+ #include <string>
15
+
16
+ namespace margelo::nitro::iap {
17
+
18
+ using namespace facebook;
19
+
20
+ /**
21
+ * The C++ JNI bridge between the C++ struct "NitroSubscriptionRenewalInfo" and the the Kotlin data class "NitroSubscriptionRenewalInfo".
22
+ */
23
+ struct JNitroSubscriptionRenewalInfo final: public jni::JavaClass<JNitroSubscriptionRenewalInfo> {
24
+ public:
25
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroSubscriptionRenewalInfo;";
26
+
27
+ public:
28
+ /**
29
+ * Convert this Java/Kotlin-based struct to the C++ struct NitroSubscriptionRenewalInfo by copying all values to C++.
30
+ */
31
+ [[maybe_unused]]
32
+ [[nodiscard]]
33
+ NitroSubscriptionRenewalInfo toCpp() const {
34
+ static const auto clazz = javaClassStatic();
35
+ static const auto fieldAutoRenewStatus = clazz->getField<jboolean>("autoRenewStatus");
36
+ jboolean autoRenewStatus = this->getFieldValue(fieldAutoRenewStatus);
37
+ static const auto fieldAutoRenewPreference = clazz->getField<jni::JString>("autoRenewPreference");
38
+ jni::local_ref<jni::JString> autoRenewPreference = this->getFieldValue(fieldAutoRenewPreference);
39
+ static const auto fieldExpirationReason = clazz->getField<jni::JDouble>("expirationReason");
40
+ jni::local_ref<jni::JDouble> expirationReason = this->getFieldValue(fieldExpirationReason);
41
+ static const auto fieldGracePeriodExpirationDate = clazz->getField<jni::JDouble>("gracePeriodExpirationDate");
42
+ jni::local_ref<jni::JDouble> gracePeriodExpirationDate = this->getFieldValue(fieldGracePeriodExpirationDate);
43
+ static const auto fieldCurrentProductID = clazz->getField<jni::JString>("currentProductID");
44
+ jni::local_ref<jni::JString> currentProductID = this->getFieldValue(fieldCurrentProductID);
45
+ static const auto fieldPlatform = clazz->getField<jni::JString>("platform");
46
+ jni::local_ref<jni::JString> platform = this->getFieldValue(fieldPlatform);
47
+ return NitroSubscriptionRenewalInfo(
48
+ static_cast<bool>(autoRenewStatus),
49
+ autoRenewPreference != nullptr ? std::make_optional(autoRenewPreference->toStdString()) : std::nullopt,
50
+ expirationReason != nullptr ? std::make_optional(expirationReason->value()) : std::nullopt,
51
+ gracePeriodExpirationDate != nullptr ? std::make_optional(gracePeriodExpirationDate->value()) : std::nullopt,
52
+ currentProductID != nullptr ? std::make_optional(currentProductID->toStdString()) : std::nullopt,
53
+ platform->toStdString()
54
+ );
55
+ }
56
+
57
+ public:
58
+ /**
59
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
60
+ */
61
+ [[maybe_unused]]
62
+ static jni::local_ref<JNitroSubscriptionRenewalInfo::javaobject> fromCpp(const NitroSubscriptionRenewalInfo& value) {
63
+ return newInstance(
64
+ value.autoRenewStatus,
65
+ value.autoRenewPreference.has_value() ? jni::make_jstring(value.autoRenewPreference.value()) : nullptr,
66
+ value.expirationReason.has_value() ? jni::JDouble::valueOf(value.expirationReason.value()) : nullptr,
67
+ value.gracePeriodExpirationDate.has_value() ? jni::JDouble::valueOf(value.gracePeriodExpirationDate.value()) : nullptr,
68
+ value.currentProductID.has_value() ? jni::make_jstring(value.currentProductID.value()) : nullptr,
69
+ jni::make_jstring(value.platform)
70
+ );
71
+ }
72
+ };
73
+
74
+ } // namespace margelo::nitro::iap
@@ -0,0 +1,64 @@
1
+ ///
2
+ /// JNitroSubscriptionStatus.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 "NitroSubscriptionStatus.hpp"
12
+
13
+ #include "JNitroSubscriptionRenewalInfo.hpp"
14
+ #include "NitroSubscriptionRenewalInfo.hpp"
15
+ #include <optional>
16
+ #include <string>
17
+
18
+ namespace margelo::nitro::iap {
19
+
20
+ using namespace facebook;
21
+
22
+ /**
23
+ * The C++ JNI bridge between the C++ struct "NitroSubscriptionStatus" and the the Kotlin data class "NitroSubscriptionStatus".
24
+ */
25
+ struct JNitroSubscriptionStatus final: public jni::JavaClass<JNitroSubscriptionStatus> {
26
+ public:
27
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroSubscriptionStatus;";
28
+
29
+ public:
30
+ /**
31
+ * Convert this Java/Kotlin-based struct to the C++ struct NitroSubscriptionStatus by copying all values to C++.
32
+ */
33
+ [[maybe_unused]]
34
+ [[nodiscard]]
35
+ NitroSubscriptionStatus toCpp() const {
36
+ static const auto clazz = javaClassStatic();
37
+ static const auto fieldState = clazz->getField<double>("state");
38
+ double state = this->getFieldValue(fieldState);
39
+ static const auto fieldPlatform = clazz->getField<jni::JString>("platform");
40
+ jni::local_ref<jni::JString> platform = this->getFieldValue(fieldPlatform);
41
+ static const auto fieldRenewalInfo = clazz->getField<JNitroSubscriptionRenewalInfo>("renewalInfo");
42
+ jni::local_ref<JNitroSubscriptionRenewalInfo> renewalInfo = this->getFieldValue(fieldRenewalInfo);
43
+ return NitroSubscriptionStatus(
44
+ state,
45
+ platform->toStdString(),
46
+ renewalInfo != nullptr ? std::make_optional(renewalInfo->toCpp()) : std::nullopt
47
+ );
48
+ }
49
+
50
+ public:
51
+ /**
52
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
53
+ */
54
+ [[maybe_unused]]
55
+ static jni::local_ref<JNitroSubscriptionStatus::javaobject> fromCpp(const NitroSubscriptionStatus& value) {
56
+ return newInstance(
57
+ value.state,
58
+ jni::make_jstring(value.platform),
59
+ value.renewalInfo.has_value() ? JNitroSubscriptionRenewalInfo::fromCpp(value.renewalInfo.value()) : nullptr
60
+ );
61
+ }
62
+ };
63
+
64
+ } // namespace margelo::nitro::iap
@@ -0,0 +1,26 @@
1
+ ///
2
+ /// JVariant_Boolean_NitroPurchaseResult.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "JVariant_Boolean_NitroPurchaseResult.hpp"
9
+
10
+ namespace margelo::nitro::iap {
11
+ /**
12
+ * Converts JVariant_Boolean_NitroPurchaseResult to std::variant<bool, NitroPurchaseResult>
13
+ */
14
+ std::variant<bool, NitroPurchaseResult> JVariant_Boolean_NitroPurchaseResult::toCpp() const {
15
+ if (isInstanceOf(JVariant_Boolean_NitroPurchaseResult_impl::First::javaClassStatic())) {
16
+ // It's a `bool`
17
+ auto jniValue = static_cast<const JVariant_Boolean_NitroPurchaseResult_impl::First*>(this)->getValue();
18
+ return static_cast<bool>(jniValue);
19
+ } else if (isInstanceOf(JVariant_Boolean_NitroPurchaseResult_impl::Second::javaClassStatic())) {
20
+ // It's a `NitroPurchaseResult`
21
+ auto jniValue = static_cast<const JVariant_Boolean_NitroPurchaseResult_impl::Second*>(this)->getValue();
22
+ return jniValue->toCpp();
23
+ }
24
+ throw std::invalid_argument("Variant is unknown Kotlin instance!");
25
+ }
26
+ } // namespace margelo::nitro::iap
@@ -0,0 +1,71 @@
1
+ ///
2
+ /// JVariant_Boolean_NitroPurchaseResult.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <variant>
12
+
13
+ #include "NitroPurchaseResult.hpp"
14
+ #include <variant>
15
+ #include "JNitroPurchaseResult.hpp"
16
+ #include <string>
17
+ #include <optional>
18
+
19
+ namespace margelo::nitro::iap {
20
+
21
+ using namespace facebook;
22
+
23
+ /**
24
+ * The C++ JNI bridge between the C++ std::variant and the Java class "Variant_Boolean_NitroPurchaseResult".
25
+ */
26
+ class JVariant_Boolean_NitroPurchaseResult: public jni::JavaClass<JVariant_Boolean_NitroPurchaseResult> {
27
+ public:
28
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/Variant_Boolean_NitroPurchaseResult;";
29
+
30
+ static jni::local_ref<JVariant_Boolean_NitroPurchaseResult> create_0(jboolean value) {
31
+ static const auto method = javaClassStatic()->getStaticMethod<JVariant_Boolean_NitroPurchaseResult(jboolean)>("create");
32
+ return method(javaClassStatic(), value);
33
+ }
34
+ static jni::local_ref<JVariant_Boolean_NitroPurchaseResult> create_1(jni::alias_ref<JNitroPurchaseResult> value) {
35
+ static const auto method = javaClassStatic()->getStaticMethod<JVariant_Boolean_NitroPurchaseResult(jni::alias_ref<JNitroPurchaseResult>)>("create");
36
+ return method(javaClassStatic(), value);
37
+ }
38
+
39
+ static jni::local_ref<JVariant_Boolean_NitroPurchaseResult> fromCpp(const std::variant<bool, NitroPurchaseResult>& variant) {
40
+ switch (variant.index()) {
41
+ case 0: return create_0(std::get<0>(variant));
42
+ case 1: return create_1(JNitroPurchaseResult::fromCpp(std::get<1>(variant)));
43
+ default: throw std::invalid_argument("Variant holds unknown index! (" + std::to_string(variant.index()) + ")");
44
+ }
45
+ }
46
+
47
+ [[nodiscard]] std::variant<bool, NitroPurchaseResult> toCpp() const;
48
+ };
49
+
50
+ namespace JVariant_Boolean_NitroPurchaseResult_impl {
51
+ class First: public jni::JavaClass<First, JVariant_Boolean_NitroPurchaseResult> {
52
+ public:
53
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/Variant_Boolean_NitroPurchaseResult$First;";
54
+
55
+ [[nodiscard]] jboolean getValue() const {
56
+ static const auto field = javaClassStatic()->getField<jboolean>("value");
57
+ return getFieldValue(field);
58
+ }
59
+ };
60
+
61
+ class Second: public jni::JavaClass<Second, JVariant_Boolean_NitroPurchaseResult> {
62
+ public:
63
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/Variant_Boolean_NitroPurchaseResult$Second;";
64
+
65
+ [[nodiscard]] jni::local_ref<JNitroPurchaseResult> getValue() const {
66
+ static const auto field = javaClassStatic()->getField<JNitroPurchaseResult>("value");
67
+ return getFieldValue(field);
68
+ }
69
+ };
70
+ } // namespace JVariant_Boolean_NitroPurchaseResult_impl
71
+ } // namespace margelo::nitro::iap
@@ -0,0 +1,26 @@
1
+ ///
2
+ /// JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.hpp"
9
+
10
+ namespace margelo::nitro::iap {
11
+ /**
12
+ * Converts JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid to std::variant<NitroReceiptValidationResultIOS, NitroReceiptValidationResultAndroid>
13
+ */
14
+ std::variant<NitroReceiptValidationResultIOS, NitroReceiptValidationResultAndroid> JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid::toCpp() const {
15
+ if (isInstanceOf(JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid_impl::First::javaClassStatic())) {
16
+ // It's a `NitroReceiptValidationResultIOS`
17
+ auto jniValue = static_cast<const JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid_impl::First*>(this)->getValue();
18
+ return jniValue->toCpp();
19
+ } else if (isInstanceOf(JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid_impl::Second::javaClassStatic())) {
20
+ // It's a `NitroReceiptValidationResultAndroid`
21
+ auto jniValue = static_cast<const JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid_impl::Second*>(this)->getValue();
22
+ return jniValue->toCpp();
23
+ }
24
+ throw std::invalid_argument("Variant is unknown Kotlin instance!");
25
+ }
26
+ } // namespace margelo::nitro::iap
@@ -0,0 +1,75 @@
1
+ ///
2
+ /// JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <variant>
12
+
13
+ #include "NitroReceiptValidationResultIOS.hpp"
14
+ #include "NitroReceiptValidationResultAndroid.hpp"
15
+ #include <variant>
16
+ #include "JNitroReceiptValidationResultIOS.hpp"
17
+ #include <string>
18
+ #include "NitroPurchase.hpp"
19
+ #include <optional>
20
+ #include "JNitroPurchase.hpp"
21
+ #include "JNitroReceiptValidationResultAndroid.hpp"
22
+
23
+ namespace margelo::nitro::iap {
24
+
25
+ using namespace facebook;
26
+
27
+ /**
28
+ * The C++ JNI bridge between the C++ std::variant and the Java class "Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid".
29
+ */
30
+ class JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid: public jni::JavaClass<JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid> {
31
+ public:
32
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid;";
33
+
34
+ static jni::local_ref<JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid> create_0(jni::alias_ref<JNitroReceiptValidationResultIOS> value) {
35
+ static const auto method = javaClassStatic()->getStaticMethod<JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid(jni::alias_ref<JNitroReceiptValidationResultIOS>)>("create");
36
+ return method(javaClassStatic(), value);
37
+ }
38
+ static jni::local_ref<JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid> create_1(jni::alias_ref<JNitroReceiptValidationResultAndroid> value) {
39
+ static const auto method = javaClassStatic()->getStaticMethod<JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid(jni::alias_ref<JNitroReceiptValidationResultAndroid>)>("create");
40
+ return method(javaClassStatic(), value);
41
+ }
42
+
43
+ static jni::local_ref<JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid> fromCpp(const std::variant<NitroReceiptValidationResultIOS, NitroReceiptValidationResultAndroid>& variant) {
44
+ switch (variant.index()) {
45
+ case 0: return create_0(JNitroReceiptValidationResultIOS::fromCpp(std::get<0>(variant)));
46
+ case 1: return create_1(JNitroReceiptValidationResultAndroid::fromCpp(std::get<1>(variant)));
47
+ default: throw std::invalid_argument("Variant holds unknown index! (" + std::to_string(variant.index()) + ")");
48
+ }
49
+ }
50
+
51
+ [[nodiscard]] std::variant<NitroReceiptValidationResultIOS, NitroReceiptValidationResultAndroid> toCpp() const;
52
+ };
53
+
54
+ namespace JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid_impl {
55
+ class First: public jni::JavaClass<First, JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid> {
56
+ public:
57
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid$First;";
58
+
59
+ [[nodiscard]] jni::local_ref<JNitroReceiptValidationResultIOS> getValue() const {
60
+ static const auto field = javaClassStatic()->getField<JNitroReceiptValidationResultIOS>("value");
61
+ return getFieldValue(field);
62
+ }
63
+ };
64
+
65
+ class Second: public jni::JavaClass<Second, JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid> {
66
+ public:
67
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid$Second;";
68
+
69
+ [[nodiscard]] jni::local_ref<JNitroReceiptValidationResultAndroid> getValue() const {
70
+ static const auto field = javaClassStatic()->getField<JNitroReceiptValidationResultAndroid>("value");
71
+ return getFieldValue(field);
72
+ }
73
+ };
74
+ } // namespace JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid_impl
75
+ } // namespace margelo::nitro::iap