react-native-iap 14.3.9 → 14.4.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 (54) hide show
  1. package/NitroIap.podspec +11 -1
  2. package/README.md +2 -3
  3. package/android/build.gradle +24 -1
  4. package/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +369 -124
  5. package/android/src/main/java/com/margelo/nitro/iap/RnIapLog.kt +64 -0
  6. package/ios/HybridRnIap.swift +525 -362
  7. package/ios/RnIapHelper.swift +224 -0
  8. package/ios/RnIapLog.swift +127 -0
  9. package/lib/module/hooks/useIAP.js +2 -34
  10. package/lib/module/hooks/useIAP.js.map +1 -1
  11. package/lib/module/index.js +52 -2
  12. package/lib/module/index.js.map +1 -1
  13. package/lib/module/types.js.map +1 -1
  14. package/lib/typescript/plugin/src/withIAP.d.ts.map +1 -1
  15. package/lib/typescript/src/hooks/useIAP.d.ts +0 -12
  16. package/lib/typescript/src/hooks/useIAP.d.ts.map +1 -1
  17. package/lib/typescript/src/index.d.ts +3 -0
  18. package/lib/typescript/src/index.d.ts.map +1 -1
  19. package/lib/typescript/src/specs/RnIap.nitro.d.ts +24 -0
  20. package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
  21. package/lib/typescript/src/types.d.ts +8 -6
  22. package/lib/typescript/src/types.d.ts.map +1 -1
  23. package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +64 -0
  24. package/nitrogen/generated/android/c++/JHybridRnIapSpec.hpp +4 -0
  25. package/nitrogen/generated/android/c++/JIapPlatform.hpp +3 -3
  26. package/nitrogen/generated/android/c++/JPurchaseAndroid.hpp +6 -2
  27. package/nitrogen/generated/android/c++/JPurchaseIOS.hpp +4 -0
  28. package/nitrogen/generated/android/c++/JPurchaseState.hpp +6 -6
  29. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/HybridRnIapSpec.kt +16 -0
  30. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/IapPlatform.kt +2 -2
  31. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseAndroid.kt +4 -1
  32. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseIOS.kt +3 -0
  33. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseState.kt +5 -5
  34. package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +32 -0
  35. package/nitrogen/generated/ios/swift/HybridRnIapSpec.swift +4 -0
  36. package/nitrogen/generated/ios/swift/HybridRnIapSpec_cxx.swift +82 -0
  37. package/nitrogen/generated/ios/swift/IapPlatform.swift +4 -4
  38. package/nitrogen/generated/ios/swift/PurchaseAndroid.swift +32 -2
  39. package/nitrogen/generated/ios/swift/PurchaseIOS.swift +13 -2
  40. package/nitrogen/generated/ios/swift/PurchaseState.swift +8 -8
  41. package/nitrogen/generated/shared/c++/HybridRnIapSpec.cpp +4 -0
  42. package/nitrogen/generated/shared/c++/HybridRnIapSpec.hpp +4 -0
  43. package/nitrogen/generated/shared/c++/IapPlatform.hpp +5 -5
  44. package/nitrogen/generated/shared/c++/PurchaseAndroid.hpp +6 -2
  45. package/nitrogen/generated/shared/c++/PurchaseIOS.hpp +5 -1
  46. package/nitrogen/generated/shared/c++/PurchaseState.hpp +11 -11
  47. package/openiap-versions.json +5 -0
  48. package/package.json +3 -2
  49. package/plugin/build/withIAP.js +35 -3
  50. package/plugin/src/withIAP.ts +44 -3
  51. package/src/hooks/useIAP.ts +3 -71
  52. package/src/index.ts +61 -2
  53. package/src/specs/RnIap.nitro.ts +28 -0
  54. package/src/types.ts +8 -6
package/NitroIap.podspec CHANGED
@@ -1,6 +1,16 @@
1
1
  require "json"
2
2
 
3
3
  package = JSON.parse(File.read(File.join(__dir__, "package.json")))
4
+ versions_path = File.join(__dir__, "openiap-versions.json")
5
+ unless File.exist?(versions_path)
6
+ raise "NitroIap: Missing openiap-versions.json. Add the file to manage native dependency versions."
7
+ end
8
+
9
+ versions = JSON.parse(File.read(versions_path))
10
+ apple_version = versions["apple"]
11
+ unless apple_version.is_a?(String) && !apple_version.strip.empty?
12
+ raise "NitroIap: 'apple' version missing or invalid in openiap-versions.json"
13
+ end
4
14
 
5
15
  Pod::Spec.new do |s|
6
16
  s.name = "NitroIap"
@@ -32,7 +42,7 @@ Pod::Spec.new do |s|
32
42
  s.dependency 'React-jsi'
33
43
  s.dependency 'React-callinvoker'
34
44
  # OpenIAP Apple for StoreKit 2 integration
35
- s.dependency 'openiap', '1.1.12'
45
+ s.dependency 'openiap', apple_version
36
46
 
37
47
  install_modules_dependencies(s)
38
48
  end
package/README.md CHANGED
@@ -4,7 +4,6 @@
4
4
  <img src="https://hyochan.github.io/react-native-iap/img/icon.png" alt="React Native IAP Logo" width="150" />
5
5
 
6
6
  [![Version](http://img.shields.io/npm/v/react-native-iap.svg?style=flat-square)](https://npmjs.org/package/react-native-iap)
7
- [![Next Version](https://img.shields.io/npm/v/react-native-iap/next)](https://npmjs.org/package/react-native-iap)
8
7
  [![Download](http://img.shields.io/npm/dm/react-native-iap.svg?style=flat-square)](https://npmjs.org/package/react-native-iap)
9
8
  [![Backers and Sponsors](https://img.shields.io/opencollective/all/react-native-iap.svg)](https://opencollective.com/react-native-iap)
10
9
  [![CI - Test](https://github.com/hyochan/react-native-iap/actions/workflows/ci-test.yml/badge.svg)](https://github.com/hyochan/react-native-iap/actions/workflows/ci-test.yml)
@@ -90,11 +89,11 @@ Before installing React Native IAP, make sure you have:
90
89
 
91
90
  #### Android Configuration
92
91
 
93
- Add the OpenIAP Google library to your `android/app/build.gradle` dependencies:
92
+ Add the OpenIAP Google library to your `android/app/build.gradle` dependencies. React Native IAP pins the native module versions in `openiap-versions.json` so Android, iOS, and tooling stay in sync:
94
93
 
95
94
  ```gradle
96
95
  dependencies {
97
- implementation "io.github.hyochan.openiap:openiap-google:1.1.12"
96
+ implementation "io.github.hyochan.openiap:openiap-google:1.2.6"
98
97
  }
99
98
  ```
100
99
 
@@ -1,3 +1,5 @@
1
+ import groovy.json.JsonSlurper
2
+
1
3
  buildscript {
2
4
  repositories {
3
5
  google()
@@ -19,6 +21,27 @@ def isNewArchitectureEnabled() {
19
21
  return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
20
22
  }
21
23
 
24
+ def resolveOpenIapVersionsFile() {
25
+ def candidates = [
26
+ new File(projectDir.parentFile, 'openiap-versions.json'),
27
+ new File(rootDir.parentFile ?: rootDir, 'openiap-versions.json'),
28
+ new File(rootProject.projectDir.parentFile ?: rootProject.projectDir, 'openiap-versions.json')
29
+ ]
30
+ return candidates.find { it.exists() }
31
+ }
32
+
33
+ def openiapVersionsFile = resolveOpenIapVersionsFile()
34
+ if (openiapVersionsFile == null) {
35
+ throw new GradleException("react-native-iap: Unable to locate openiap-versions.json")
36
+ }
37
+
38
+ def openiapVersions = new JsonSlurper().parse(openiapVersionsFile)
39
+ def googleVersion = (openiapVersions instanceof Map) ? openiapVersions.google : null
40
+ if (!(googleVersion instanceof String) || !googleVersion.trim()) {
41
+ throw new GradleException("react-native-iap: 'google' version missing or invalid in openiap-versions.json")
42
+ }
43
+ def googleVersionString = googleVersion.trim()
44
+
22
45
  apply plugin: "com.android.library"
23
46
  apply plugin: 'org.jetbrains.kotlin.android'
24
47
 
@@ -155,7 +178,7 @@ dependencies {
155
178
 
156
179
  // Kotlin coroutines
157
180
  implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0'
158
- implementation 'io.github.hyochan.openiap:openiap-google:1.1.12'
181
+ implementation "io.github.hyochan.openiap:openiap-google:${googleVersionString}"
159
182
  }
160
183
 
161
184
  configurations.all {