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.
- package/NitroIap.podspec +11 -1
- package/README.md +2 -3
- package/android/build.gradle +24 -1
- package/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +374 -119
- package/android/src/main/java/com/margelo/nitro/iap/RnIapLog.kt +64 -0
- package/ios/HybridRnIap.swift +525 -362
- package/ios/RnIapHelper.swift +224 -0
- package/ios/RnIapLog.swift +127 -0
- package/lib/module/hooks/useIAP.js +2 -34
- package/lib/module/hooks/useIAP.js.map +1 -1
- package/lib/module/index.js +52 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/plugin/src/withIAP.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useIAP.d.ts +0 -12
- package/lib/typescript/src/hooks/useIAP.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +3 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/RnIap.nitro.d.ts +24 -0
- package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +8 -6
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +64 -0
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.hpp +4 -0
- package/nitrogen/generated/android/c++/JIapPlatform.hpp +3 -3
- package/nitrogen/generated/android/c++/JPurchaseAndroid.hpp +6 -2
- package/nitrogen/generated/android/c++/JPurchaseIOS.hpp +4 -0
- package/nitrogen/generated/android/c++/JPurchaseState.hpp +6 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/HybridRnIapSpec.kt +16 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/IapPlatform.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseAndroid.kt +4 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseIOS.kt +3 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseState.kt +5 -5
- package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +32 -0
- package/nitrogen/generated/ios/swift/HybridRnIapSpec.swift +4 -0
- package/nitrogen/generated/ios/swift/HybridRnIapSpec_cxx.swift +82 -0
- package/nitrogen/generated/ios/swift/IapPlatform.swift +4 -4
- package/nitrogen/generated/ios/swift/PurchaseAndroid.swift +32 -2
- package/nitrogen/generated/ios/swift/PurchaseIOS.swift +13 -2
- package/nitrogen/generated/ios/swift/PurchaseState.swift +8 -8
- package/nitrogen/generated/shared/c++/HybridRnIapSpec.cpp +4 -0
- package/nitrogen/generated/shared/c++/HybridRnIapSpec.hpp +4 -0
- package/nitrogen/generated/shared/c++/IapPlatform.hpp +5 -5
- package/nitrogen/generated/shared/c++/PurchaseAndroid.hpp +6 -2
- package/nitrogen/generated/shared/c++/PurchaseIOS.hpp +5 -1
- package/nitrogen/generated/shared/c++/PurchaseState.hpp +11 -11
- package/openiap-versions.json +5 -0
- package/package.json +3 -2
- package/plugin/build/withIAP.js +35 -3
- package/plugin/src/withIAP.ts +44 -3
- package/src/hooks/useIAP.ts +3 -71
- package/src/index.ts +61 -2
- package/src/specs/RnIap.nitro.ts +28 -0
- 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
|
+
}
|