react-native-iap 14.3.8 → 14.4.0

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 +374 -119
  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
@@ -0,0 +1,64 @@
1
+ package com.margelo.nitro.iap
2
+
3
+ import android.util.Log
4
+ import org.json.JSONArray
5
+ import org.json.JSONObject
6
+
7
+ internal object RnIapLog {
8
+ private const val TAG = "RnIap"
9
+
10
+ fun payload(name: String, payload: Any?) {
11
+ debug("$name payload: ${stringify(payload)}")
12
+ }
13
+
14
+ fun result(name: String, value: Any?) {
15
+ debug("$name result: ${stringify(value)}")
16
+ }
17
+
18
+ fun failure(name: String, error: Throwable) {
19
+ Log.e(TAG, "$name failed: ${error.localizedMessage}", error)
20
+ }
21
+
22
+ fun debug(message: String) {
23
+ Log.d(TAG, message)
24
+ }
25
+
26
+ fun warn(message: String) {
27
+ Log.w(TAG, message)
28
+ }
29
+
30
+ private fun stringify(value: Any?): String {
31
+ val sanitized = sanitize(value) ?: return "null"
32
+ return when (sanitized) {
33
+ is String -> sanitized
34
+ is Number, is Boolean -> sanitized.toString()
35
+ is Map<*, *> -> JSONObject(sanitized).toString()
36
+ is List<*> -> JSONArray(sanitized).toString()
37
+ is Array<*> -> JSONArray(sanitized).toString()
38
+ else -> sanitized.toString()
39
+ }
40
+ }
41
+
42
+ private fun sanitize(value: Any?): Any? {
43
+ if (value == null) return null
44
+ return when (value) {
45
+ is Map<*, *> -> sanitizeMap(value)
46
+ is List<*> -> value.mapNotNull { sanitize(it) }
47
+ is Array<*> -> value.mapNotNull { sanitize(it) }
48
+ else -> value
49
+ }
50
+ }
51
+
52
+ private fun sanitizeMap(source: Map<*, *>): Map<String, Any?> {
53
+ val sanitized = linkedMapOf<String, Any?>()
54
+ for ((rawKey, rawValue) in source) {
55
+ val key = rawKey as? String ?: continue
56
+ if (key.lowercase().contains("token")) {
57
+ sanitized[key] = "hidden"
58
+ continue
59
+ }
60
+ sanitized[key] = sanitize(rawValue)
61
+ }
62
+ return sanitized
63
+ }
64
+ }