react-native-iap 15.2.3 → 15.3.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/README.md +31 -51
- package/android/build.gradle +92 -22
- package/android/gradle.properties +5 -1
- package/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +24 -8
- package/android/src/main/java/com/margelo/nitro/iap/RnIapLog.kt +3 -1
- package/ios/HybridRnIap.swift +172 -73
- package/lib/module/hooks/useIAP.js +1 -1
- package/lib/module/hooks/useIAP.js.map +1 -1
- package/lib/module/index.js +138 -165
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/src/hooks/useIAP.d.ts +22 -16
- package/lib/typescript/src/hooks/useIAP.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +61 -90
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/RnIap.nitro.d.ts +5 -16
- package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +63 -49
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/nitro.json +0 -1
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +11 -6
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.hpp +2 -2
- package/nitrogen/generated/android/c++/JPurchaseUpdatedListenerOptions.hpp +61 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/HybridRnIapSpec.kt +4 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseUpdatedListenerOptions.kt +38 -0
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +27 -0
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +3 -0
- package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +9 -4
- package/nitrogen/generated/ios/swift/HybridRnIapSpec.swift +2 -2
- package/nitrogen/generated/ios/swift/HybridRnIapSpec_cxx.swift +8 -12
- package/nitrogen/generated/ios/swift/PurchaseUpdatedListenerOptions.swift +61 -0
- package/nitrogen/generated/shared/c++/HybridRnIapSpec.hpp +5 -2
- package/nitrogen/generated/shared/c++/PurchaseUpdatedListenerOptions.hpp +85 -0
- package/openiap-versions.json +3 -3
- package/package.json +4 -6
- package/src/hooks/useIAP.ts +23 -15
- package/src/index.ts +198 -215
- package/src/specs/RnIap.nitro.ts +10 -18
- package/src/types.ts +66 -49
package/ios/HybridRnIap.swift
CHANGED
|
@@ -4,6 +4,16 @@ import OpenIAP
|
|
|
4
4
|
|
|
5
5
|
@available(iOS 15.0, macOS 14.0, tvOS 15.0, watchOS 8.0, *)
|
|
6
6
|
class HybridRnIap: HybridRnIapSpec {
|
|
7
|
+
private enum PurchaseUpdatedListenerBucket {
|
|
8
|
+
case deduping
|
|
9
|
+
case nonDeduping
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
private struct PurchaseUpdatedListenerRegistration {
|
|
13
|
+
let token: Double
|
|
14
|
+
let bucket: PurchaseUpdatedListenerBucket
|
|
15
|
+
}
|
|
16
|
+
|
|
7
17
|
// MARK: - Properties
|
|
8
18
|
private var updateListenerTask: Task<Void, Never>?
|
|
9
19
|
private var isInitialized: Bool = false
|
|
@@ -11,20 +21,20 @@ class HybridRnIap: HybridRnIapSpec {
|
|
|
11
21
|
private var productTypeBySku: [String: String] = [:]
|
|
12
22
|
// OpenIAP event subscriptions
|
|
13
23
|
private var purchaseUpdatedSub: Subscription?
|
|
24
|
+
private var purchaseUpdatedDuplicateSub: Subscription?
|
|
14
25
|
private var purchaseErrorSub: Subscription?
|
|
15
26
|
private var promotedProductSub: Subscription?
|
|
16
27
|
// Event listeners
|
|
17
|
-
private var
|
|
28
|
+
private var nextPurchaseUpdatedListenerToken: Double = 1
|
|
29
|
+
private var purchaseUpdatedListeners: [(token: Double, listener: (NitroPurchase) -> Void)] = []
|
|
30
|
+
private var purchaseUpdatedDuplicateListeners: [(token: Double, listener: (NitroPurchase) -> Void)] = []
|
|
31
|
+
private var purchaseUpdatedListenerRegistrations: [PurchaseUpdatedListenerRegistration] = []
|
|
18
32
|
private var purchaseErrorListeners: [(NitroPurchaseResult) -> Void] = []
|
|
19
33
|
private var promotedProductListeners: [(NitroProduct) -> Void] = []
|
|
20
34
|
private var subscriptionBillingIssueListeners: [(NitroPurchase) -> Void] = []
|
|
21
35
|
private var subscriptionBillingIssueSub: Subscription?
|
|
22
36
|
private var lastPurchaseErrorKey: String? = nil
|
|
23
37
|
private var lastPurchaseErrorTimestamp: TimeInterval = 0
|
|
24
|
-
private var deliveredPurchaseEventKeys: Set<String> = []
|
|
25
|
-
private var deliveredPurchaseEventOrder: [String] = []
|
|
26
|
-
private let purchaseEventDedupLimit = 128
|
|
27
|
-
private static let duplicatePurchaseCode = "duplicate-purchase"
|
|
28
38
|
private var purchasePayloadById: [String: [String: Any]] = [:]
|
|
29
39
|
// Thread safety lock for listener arrays and error dedup state
|
|
30
40
|
private let listenerLock = NSLock()
|
|
@@ -378,7 +388,10 @@ class HybridRnIap: HybridRnIapSpec {
|
|
|
378
388
|
|
|
379
389
|
RnIapLog.payload("validateReceiptIOS", ["sku": sku])
|
|
380
390
|
let props = try OpenIapSerialization.verifyPurchaseProps(from: ["apple": ["sku": sku]])
|
|
381
|
-
let
|
|
391
|
+
let verifyResult = try await OpenIapModule.shared.verifyPurchase(props)
|
|
392
|
+
guard case let .verifyPurchaseResultIos(result) = verifyResult else {
|
|
393
|
+
throw OpenIapException.make(code: .featureNotSupported, message: "Expected iOS validation result")
|
|
394
|
+
}
|
|
382
395
|
var encoded = RnIapHelper.sanitizeDictionary(OpenIapSerialization.encode(result))
|
|
383
396
|
if encoded["receiptData"] != nil {
|
|
384
397
|
encoded["receiptData"] = "<receipt>"
|
|
@@ -478,7 +491,7 @@ class HybridRnIap: HybridRnIapSpec {
|
|
|
478
491
|
return Promise.async {
|
|
479
492
|
do {
|
|
480
493
|
RnIapLog.payload("getStorefront", nil)
|
|
481
|
-
let storefront = try await OpenIapModule.shared.
|
|
494
|
+
let storefront = try await OpenIapModule.shared.getStorefront()
|
|
482
495
|
RnIapLog.result("getStorefront", storefront)
|
|
483
496
|
return storefront
|
|
484
497
|
} catch let purchaseError as PurchaseError {
|
|
@@ -568,9 +581,12 @@ class HybridRnIap: HybridRnIapSpec {
|
|
|
568
581
|
RnIapLog.payload("buyPromotedProductIOS", nil)
|
|
569
582
|
let ok = try await OpenIapModule.shared.requestPurchaseOnPromotedProductIOS()
|
|
570
583
|
RnIapLog.result("buyPromotedProductIOS", ok)
|
|
584
|
+
} catch let purchaseError as PurchaseError {
|
|
585
|
+
RnIapLog.failure("buyPromotedProductIOS", error: purchaseError)
|
|
586
|
+
throw OpenIapException.from(purchaseError)
|
|
571
587
|
} catch {
|
|
572
|
-
// Event-only: OpenIAP will emit purchaseError for this flow. Avoid Promise rejection.
|
|
573
588
|
RnIapLog.failure("buyPromotedProductIOS", error: error)
|
|
589
|
+
throw OpenIapException.make(code: .featureNotSupported, message: error.localizedDescription)
|
|
574
590
|
}
|
|
575
591
|
}
|
|
576
592
|
}
|
|
@@ -942,16 +958,92 @@ class HybridRnIap: HybridRnIapSpec {
|
|
|
942
958
|
|
|
943
959
|
// MARK: - Event Listener Methods
|
|
944
960
|
|
|
945
|
-
func addPurchaseUpdatedListener(
|
|
946
|
-
|
|
961
|
+
func addPurchaseUpdatedListener(
|
|
962
|
+
listener: @escaping (NitroPurchase) -> Void,
|
|
963
|
+
options: PurchaseUpdatedListenerOptions?
|
|
964
|
+
) throws -> Double {
|
|
965
|
+
let dedupeTransactionIOS = purchaseUpdatedDedupeTransactionIOS(from: options)
|
|
966
|
+
let receiveDuplicateTransactionUpdatesIOS = !dedupeTransactionIOS
|
|
967
|
+
let token = listenerLock.withLock {
|
|
968
|
+
let token = nextPurchaseUpdatedListenerToken
|
|
969
|
+
nextPurchaseUpdatedListenerToken += 1
|
|
970
|
+
|
|
971
|
+
let registration = PurchaseUpdatedListenerRegistration(
|
|
972
|
+
token: token,
|
|
973
|
+
bucket: receiveDuplicateTransactionUpdatesIOS ? .nonDeduping : .deduping
|
|
974
|
+
)
|
|
975
|
+
if receiveDuplicateTransactionUpdatesIOS {
|
|
976
|
+
purchaseUpdatedDuplicateListeners.append((token: token, listener: listener))
|
|
977
|
+
} else {
|
|
978
|
+
purchaseUpdatedListeners.append((token: token, listener: listener))
|
|
979
|
+
}
|
|
980
|
+
purchaseUpdatedListenerRegistrations.append(registration)
|
|
981
|
+
return token
|
|
982
|
+
}
|
|
983
|
+
|
|
984
|
+
if receiveDuplicateTransactionUpdatesIOS {
|
|
985
|
+
attachDuplicatePurchaseUpdatedSubIfNeeded()
|
|
986
|
+
} else {
|
|
987
|
+
attachPurchaseUpdatedSubIfNeeded()
|
|
988
|
+
}
|
|
989
|
+
return token
|
|
990
|
+
}
|
|
991
|
+
|
|
992
|
+
func removePurchaseUpdatedListener(token: Double) throws {
|
|
993
|
+
let removedSubscription = listenerLock.withLock {
|
|
994
|
+
removePurchaseUpdatedListenerRegistration(token: token)
|
|
995
|
+
}
|
|
996
|
+
if let removedSubscription {
|
|
997
|
+
RnIapLog.payload("removeListener", removedSubscription.label)
|
|
998
|
+
OpenIapModule.shared.removeListener(removedSubscription.subscription)
|
|
999
|
+
}
|
|
947
1000
|
}
|
|
948
1001
|
|
|
949
1002
|
func addPurchaseErrorListener(listener: @escaping (NitroPurchaseResult) -> Void) throws {
|
|
950
1003
|
listenerLock.withLock { purchaseErrorListeners.append(listener) }
|
|
951
1004
|
}
|
|
952
1005
|
|
|
953
|
-
func
|
|
954
|
-
|
|
1006
|
+
private func purchaseUpdatedDedupeTransactionIOS(
|
|
1007
|
+
from options: PurchaseUpdatedListenerOptions?
|
|
1008
|
+
) -> Bool {
|
|
1009
|
+
guard let dedupeTransactionIOS = options?.dedupeTransactionIOS else {
|
|
1010
|
+
return true
|
|
1011
|
+
}
|
|
1012
|
+
switch dedupeTransactionIOS {
|
|
1013
|
+
case .second(let enabled):
|
|
1014
|
+
return enabled
|
|
1015
|
+
case .first:
|
|
1016
|
+
return true
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
|
|
1020
|
+
private func removePurchaseUpdatedListenerRegistration(token: Double) -> (label: String, subscription: Subscription)? {
|
|
1021
|
+
guard let registrationIndex = purchaseUpdatedListenerRegistrations.lastIndex(where: {
|
|
1022
|
+
$0.token == token
|
|
1023
|
+
}) else {
|
|
1024
|
+
return nil
|
|
1025
|
+
}
|
|
1026
|
+
let registration = purchaseUpdatedListenerRegistrations.remove(at: registrationIndex)
|
|
1027
|
+
switch registration.bucket {
|
|
1028
|
+
case .deduping:
|
|
1029
|
+
if let index = purchaseUpdatedListeners.lastIndex(where: { $0.token == token }) {
|
|
1030
|
+
purchaseUpdatedListeners.remove(at: index)
|
|
1031
|
+
}
|
|
1032
|
+
guard purchaseUpdatedListeners.isEmpty, let sub = purchaseUpdatedSub else {
|
|
1033
|
+
return nil
|
|
1034
|
+
}
|
|
1035
|
+
purchaseUpdatedSub = nil
|
|
1036
|
+
return ("purchaseUpdated", sub)
|
|
1037
|
+
case .nonDeduping:
|
|
1038
|
+
if let index = purchaseUpdatedDuplicateListeners.lastIndex(where: { $0.token == token }) {
|
|
1039
|
+
purchaseUpdatedDuplicateListeners.remove(at: index)
|
|
1040
|
+
}
|
|
1041
|
+
guard purchaseUpdatedDuplicateListeners.isEmpty, let sub = purchaseUpdatedDuplicateSub else {
|
|
1042
|
+
return nil
|
|
1043
|
+
}
|
|
1044
|
+
purchaseUpdatedDuplicateSub = nil
|
|
1045
|
+
return ("purchaseUpdatedDuplicate", sub)
|
|
1046
|
+
}
|
|
955
1047
|
}
|
|
956
1048
|
|
|
957
1049
|
func removePurchaseErrorListener(listener: @escaping (NitroPurchaseResult) -> Void) throws {
|
|
@@ -970,26 +1062,7 @@ class HybridRnIap: HybridRnIapSpec {
|
|
|
970
1062
|
// MARK: - Private Helper Methods
|
|
971
1063
|
|
|
972
1064
|
private func attachListenersIfNeeded() {
|
|
973
|
-
|
|
974
|
-
RnIapLog.payload("purchaseUpdatedListener.register", nil)
|
|
975
|
-
purchaseUpdatedSub = OpenIapModule.shared.purchaseUpdatedListener { [weak self] openIapPurchase in
|
|
976
|
-
guard let self else {
|
|
977
|
-
RnIapLog.warn("purchaseUpdatedListener: HybridRnIap deallocated, purchase event dropped")
|
|
978
|
-
return
|
|
979
|
-
}
|
|
980
|
-
Task { @MainActor in
|
|
981
|
-
let rawPayload = OpenIapSerialization.purchase(openIapPurchase)
|
|
982
|
-
let payload = RnIapHelper.sanitizeDictionary(rawPayload)
|
|
983
|
-
RnIapLog.result("purchaseUpdatedListener", payload)
|
|
984
|
-
if let identifier = rawPayload["id"] as? String {
|
|
985
|
-
self.purchasePayloadById[identifier] = rawPayload
|
|
986
|
-
}
|
|
987
|
-
let nitro = RnIapHelper.convertPurchaseDictionary(payload)
|
|
988
|
-
self.sendPurchaseUpdate(nitro)
|
|
989
|
-
}
|
|
990
|
-
}
|
|
991
|
-
RnIapLog.result("purchaseUpdatedListener.register", "attached")
|
|
992
|
-
}
|
|
1065
|
+
attachPurchaseUpdatedSubIfNeeded()
|
|
993
1066
|
|
|
994
1067
|
if purchaseErrorSub == nil {
|
|
995
1068
|
RnIapLog.payload("purchaseErrorListener.register", nil)
|
|
@@ -1048,6 +1121,61 @@ class HybridRnIap: HybridRnIapSpec {
|
|
|
1048
1121
|
}
|
|
1049
1122
|
}
|
|
1050
1123
|
|
|
1124
|
+
private func attachPurchaseUpdatedSubIfNeeded() {
|
|
1125
|
+
listenerLock.withLock {
|
|
1126
|
+
guard purchaseUpdatedSub == nil else {
|
|
1127
|
+
return
|
|
1128
|
+
}
|
|
1129
|
+
RnIapLog.payload("purchaseUpdatedListener.register", nil)
|
|
1130
|
+
purchaseUpdatedSub = OpenIapModule.shared.purchaseUpdatedListener { [weak self] openIapPurchase in
|
|
1131
|
+
guard let self else {
|
|
1132
|
+
RnIapLog.warn("purchaseUpdatedListener: HybridRnIap deallocated, purchase event dropped")
|
|
1133
|
+
return
|
|
1134
|
+
}
|
|
1135
|
+
Task { @MainActor in
|
|
1136
|
+
let rawPayload = OpenIapSerialization.purchase(openIapPurchase)
|
|
1137
|
+
let payload = RnIapHelper.sanitizeDictionary(rawPayload)
|
|
1138
|
+
RnIapLog.result("purchaseUpdatedListener", payload)
|
|
1139
|
+
if let identifier = rawPayload["id"] as? String {
|
|
1140
|
+
self.purchasePayloadById[identifier] = rawPayload
|
|
1141
|
+
}
|
|
1142
|
+
let nitro = RnIapHelper.convertPurchaseDictionary(payload)
|
|
1143
|
+
self.sendPurchaseUpdate(nitro, includeDuplicateListeners: false)
|
|
1144
|
+
}
|
|
1145
|
+
}
|
|
1146
|
+
RnIapLog.result("purchaseUpdatedListener.register", "attached")
|
|
1147
|
+
}
|
|
1148
|
+
}
|
|
1149
|
+
|
|
1150
|
+
private func attachDuplicatePurchaseUpdatedSubIfNeeded() {
|
|
1151
|
+
listenerLock.withLock {
|
|
1152
|
+
guard purchaseUpdatedDuplicateSub == nil else {
|
|
1153
|
+
return
|
|
1154
|
+
}
|
|
1155
|
+
RnIapLog.payload("purchaseUpdatedListener.register.duplicates", nil)
|
|
1156
|
+
let options = OpenIAP.PurchaseUpdatedListenerOptions(
|
|
1157
|
+
dedupeTransactionIOS: false
|
|
1158
|
+
)
|
|
1159
|
+
purchaseUpdatedDuplicateSub = OpenIapModule.shared.purchaseUpdatedListener({ [weak self] openIapPurchase in
|
|
1160
|
+
guard let self else {
|
|
1161
|
+
RnIapLog.warn("purchaseUpdatedListener: HybridRnIap deallocated, non-deduping purchase event dropped")
|
|
1162
|
+
return
|
|
1163
|
+
}
|
|
1164
|
+
Task { @MainActor in
|
|
1165
|
+
let rawPayload = OpenIapSerialization.purchase(openIapPurchase)
|
|
1166
|
+
let payload = RnIapHelper.sanitizeDictionary(rawPayload)
|
|
1167
|
+
RnIapLog.result("purchaseUpdatedListener.duplicates", payload)
|
|
1168
|
+
if let identifier = rawPayload["id"] as? String {
|
|
1169
|
+
self.purchasePayloadById[identifier] = rawPayload
|
|
1170
|
+
}
|
|
1171
|
+
let nitro = RnIapHelper.convertPurchaseDictionary(payload)
|
|
1172
|
+
self.sendPurchaseUpdate(nitro, includeDuplicateListeners: true)
|
|
1173
|
+
}
|
|
1174
|
+
}, options: options)
|
|
1175
|
+
RnIapLog.result("purchaseUpdatedListener.register.duplicates", "attached")
|
|
1176
|
+
}
|
|
1177
|
+
}
|
|
1178
|
+
|
|
1051
1179
|
private func attachSubscriptionBillingIssueSubIfNeeded() {
|
|
1052
1180
|
guard subscriptionBillingIssueSub == nil else { return }
|
|
1053
1181
|
RnIapLog.payload("subscriptionBillingIssueListener.register", nil)
|
|
@@ -1075,48 +1203,13 @@ class HybridRnIap: HybridRnIapSpec {
|
|
|
1075
1203
|
}
|
|
1076
1204
|
}
|
|
1077
1205
|
|
|
1078
|
-
private func sendPurchaseUpdate(_ purchase: NitroPurchase) {
|
|
1079
|
-
let originalTxId: String
|
|
1080
|
-
if case .second(let val) = purchase.originalTransactionIdentifierIOS { originalTxId = val } else { originalTxId = "" }
|
|
1081
|
-
let purchaseTokenStr: String
|
|
1082
|
-
if case .second(let val) = purchase.purchaseToken { purchaseTokenStr = val } else { purchaseTokenStr = "" }
|
|
1083
|
-
let keyComponents: [String] = [
|
|
1084
|
-
purchase.id,
|
|
1085
|
-
purchase.productId,
|
|
1086
|
-
String(purchase.transactionDate),
|
|
1087
|
-
originalTxId,
|
|
1088
|
-
purchaseTokenStr
|
|
1089
|
-
]
|
|
1090
|
-
let eventKey = keyComponents.joined(separator: "#")
|
|
1091
|
-
|
|
1092
|
-
var isDuplicate = false
|
|
1206
|
+
private func sendPurchaseUpdate(_ purchase: NitroPurchase, includeDuplicateListeners: Bool) {
|
|
1093
1207
|
let snapshot: [(NitroPurchase) -> Void] = listenerLock.withLock {
|
|
1094
|
-
if
|
|
1095
|
-
|
|
1096
|
-
return []
|
|
1097
|
-
}
|
|
1098
|
-
|
|
1099
|
-
deliveredPurchaseEventKeys.insert(eventKey)
|
|
1100
|
-
deliveredPurchaseEventOrder.append(eventKey)
|
|
1101
|
-
if deliveredPurchaseEventOrder.count > purchaseEventDedupLimit, let removed = deliveredPurchaseEventOrder.first {
|
|
1102
|
-
deliveredPurchaseEventOrder.removeFirst()
|
|
1103
|
-
deliveredPurchaseEventKeys.remove(removed)
|
|
1208
|
+
if includeDuplicateListeners {
|
|
1209
|
+
return purchaseUpdatedDuplicateListeners.map(\.listener)
|
|
1104
1210
|
}
|
|
1105
1211
|
|
|
1106
|
-
return
|
|
1107
|
-
}
|
|
1108
|
-
|
|
1109
|
-
if isDuplicate {
|
|
1110
|
-
RnIapLog.warn("Duplicate purchase update skipped for \(purchase.productId)")
|
|
1111
|
-
let error = NitroPurchaseResult(
|
|
1112
|
-
responseCode: -1,
|
|
1113
|
-
debugMessage: nil,
|
|
1114
|
-
code: HybridRnIap.duplicatePurchaseCode,
|
|
1115
|
-
message: "Duplicate purchase update skipped for \(purchase.productId). Use restorePurchases or getAvailablePurchases to recover.",
|
|
1116
|
-
purchaseToken: nil
|
|
1117
|
-
)
|
|
1118
|
-
sendPurchaseError(error, productId: purchase.productId)
|
|
1119
|
-
return
|
|
1212
|
+
return purchaseUpdatedListeners.map(\.listener)
|
|
1120
1213
|
}
|
|
1121
1214
|
|
|
1122
1215
|
for listener in snapshot {
|
|
@@ -1178,6 +1271,10 @@ class HybridRnIap: HybridRnIapSpec {
|
|
|
1178
1271
|
RnIapLog.payload("removeListener", "purchaseUpdated")
|
|
1179
1272
|
OpenIapModule.shared.removeListener(sub)
|
|
1180
1273
|
}
|
|
1274
|
+
if let sub = purchaseUpdatedDuplicateSub {
|
|
1275
|
+
RnIapLog.payload("removeListener", "purchaseUpdatedDuplicate")
|
|
1276
|
+
OpenIapModule.shared.removeListener(sub)
|
|
1277
|
+
}
|
|
1181
1278
|
if let sub = purchaseErrorSub {
|
|
1182
1279
|
RnIapLog.payload("removeListener", "purchaseError")
|
|
1183
1280
|
OpenIapModule.shared.removeListener(sub)
|
|
@@ -1191,6 +1288,7 @@ class HybridRnIap: HybridRnIapSpec {
|
|
|
1191
1288
|
OpenIapModule.shared.removeListener(sub)
|
|
1192
1289
|
}
|
|
1193
1290
|
purchaseUpdatedSub = nil
|
|
1291
|
+
purchaseUpdatedDuplicateSub = nil
|
|
1194
1292
|
purchaseErrorSub = nil
|
|
1195
1293
|
promotedProductSub = nil
|
|
1196
1294
|
subscriptionBillingIssueSub = nil
|
|
@@ -1203,13 +1301,14 @@ class HybridRnIap: HybridRnIapSpec {
|
|
|
1203
1301
|
// Clear event listeners, error dedup state, and delivery state (thread-safe)
|
|
1204
1302
|
listenerLock.withLock {
|
|
1205
1303
|
purchaseUpdatedListeners.removeAll()
|
|
1304
|
+
purchaseUpdatedDuplicateListeners.removeAll()
|
|
1305
|
+
purchaseUpdatedListenerRegistrations.removeAll()
|
|
1306
|
+
nextPurchaseUpdatedListenerToken = 1
|
|
1206
1307
|
purchaseErrorListeners.removeAll()
|
|
1207
1308
|
promotedProductListeners.removeAll()
|
|
1208
1309
|
subscriptionBillingIssueListeners.removeAll()
|
|
1209
1310
|
lastPurchaseErrorKey = nil
|
|
1210
1311
|
lastPurchaseErrorTimestamp = 0
|
|
1211
|
-
deliveredPurchaseEventKeys.removeAll()
|
|
1212
|
-
deliveredPurchaseEventOrder.removeAll()
|
|
1213
1312
|
}
|
|
1214
1313
|
// Clear purchasePayloadById on MainActor to match its access pattern
|
|
1215
1314
|
Task { @MainActor in
|
|
@@ -192,7 +192,7 @@ export function useIAP(options) {
|
|
|
192
192
|
if (optionsRef.current?.onPurchaseSuccess) {
|
|
193
193
|
optionsRef.current.onPurchaseSuccess(purchase);
|
|
194
194
|
}
|
|
195
|
-
});
|
|
195
|
+
}, optionsRef.current?.purchaseUpdatedListenerOptions);
|
|
196
196
|
}
|
|
197
197
|
if (!subscriptionsRef.current.purchaseError) {
|
|
198
198
|
subscriptionsRef.current.purchaseError = purchaseErrorListener(error => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useState","useRef","Platform","RnIapConsole","initConnection","purchaseErrorListener","purchaseUpdatedListener","promotedProductListenerIOS","getAvailablePurchases","finishTransaction","finishTransactionInternal","requestPurchase","requestPurchaseInternal","fetchProducts","validateReceipt","validateReceiptInternal","verifyPurchase","verifyPurchaseTopLevel","verifyPurchaseWithProvider","verifyPurchaseWithProviderTopLevel","getActiveSubscriptions","hasActiveSubscriptions","syncIOS","getPromotedProductIOS","requestPurchaseOnPromotedProductIOS","checkAlternativeBillingAvailabilityAndroid","showAlternativeBillingDialogAndroid","createAlternativeBillingTokenAndroid","userChoiceBillingListenerAndroid","subscriptionBillingIssueListener","isStandardIOS","ErrorCode","useIAP","options","connected","setConnected","products","setProducts","subscriptions","setSubscriptions","availablePurchases","setAvailablePurchases","promotedProductIOS","setPromotedProductIOS","activeSubscriptions","setActiveSubscriptions","optionsRef","connectedRef","mergeWithDuplicateCheck","existingItems","newItems","getKey","merged","forEach","newItem","isDuplicate","some","existingItem","push","current","subscriptionsRef","isMountedRef","subscriptionsRefState","invokeOnError","error","onError","Error","String","fetchProductsInternal","params","warn","requestType","type","debug","skus","result","items","prevSubscriptions","subscription","id","newProducts","filter","item","newSubscriptions","prevProducts","product","getAvailablePurchasesInternal","alsoPublishToEventListenerIOS","onlyIncludeActiveItemsIOS","includeSuspendedAndroid","getActiveSubscriptionsInternal","subscriptionIds","hasActiveSubscriptionsInternal","args","requestObj","restorePurchases","OS","buildAndroidConfig","config","enableBillingProgramAndroid","alternativeBillingModeAndroid","registerListeners","purchaseUpdate","purchase","e","onPurchaseSuccess","purchaseError","code","InitConnection","onPurchaseError","onPromotedProductIOS","onUserChoiceBillingAndroid","userChoiceBillingAndroid","details","subscriptionBillingIssue","onSubscriptionBillingIssue","cleanupListeners","remove","undefined","initIapWithSubscriptions","reconnect"],"sourceRoot":"../../../src","sources":["hooks/useIAP.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useState","useRef","Platform","RnIapConsole","initConnection","purchaseErrorListener","purchaseUpdatedListener","promotedProductListenerIOS","getAvailablePurchases","finishTransaction","finishTransactionInternal","requestPurchase","requestPurchaseInternal","fetchProducts","validateReceipt","validateReceiptInternal","verifyPurchase","verifyPurchaseTopLevel","verifyPurchaseWithProvider","verifyPurchaseWithProviderTopLevel","getActiveSubscriptions","hasActiveSubscriptions","syncIOS","getPromotedProductIOS","requestPurchaseOnPromotedProductIOS","checkAlternativeBillingAvailabilityAndroid","showAlternativeBillingDialogAndroid","createAlternativeBillingTokenAndroid","userChoiceBillingListenerAndroid","subscriptionBillingIssueListener","isStandardIOS","ErrorCode","useIAP","options","connected","setConnected","products","setProducts","subscriptions","setSubscriptions","availablePurchases","setAvailablePurchases","promotedProductIOS","setPromotedProductIOS","activeSubscriptions","setActiveSubscriptions","optionsRef","connectedRef","mergeWithDuplicateCheck","existingItems","newItems","getKey","merged","forEach","newItem","isDuplicate","some","existingItem","push","current","subscriptionsRef","isMountedRef","subscriptionsRefState","invokeOnError","error","onError","Error","String","fetchProductsInternal","params","warn","requestType","type","debug","skus","result","items","prevSubscriptions","subscription","id","newProducts","filter","item","newSubscriptions","prevProducts","product","getAvailablePurchasesInternal","alsoPublishToEventListenerIOS","onlyIncludeActiveItemsIOS","includeSuspendedAndroid","getActiveSubscriptionsInternal","subscriptionIds","hasActiveSubscriptionsInternal","args","requestObj","restorePurchases","OS","buildAndroidConfig","config","enableBillingProgramAndroid","alternativeBillingModeAndroid","registerListeners","purchaseUpdate","purchase","e","onPurchaseSuccess","purchaseUpdatedListenerOptions","purchaseError","code","InitConnection","onPurchaseError","onPromotedProductIOS","onUserChoiceBillingAndroid","userChoiceBillingAndroid","details","subscriptionBillingIssue","onSubscriptionBillingIssue","cleanupListeners","remove","undefined","initIapWithSubscriptions","reconnect"],"sourceRoot":"../../../src","sources":["hooks/useIAP.ts"],"mappings":";;AAAA;AACA,SAAQA,WAAW,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,QAAO,OAAO;AAC9D,SAAQC,QAAQ,QAAO,cAAc;AACrC,SAAQC,YAAY,QAAO,mBAAgB;;AAE3C;AACA,SACEC,cAAc,EACdC,qBAAqB,EACrBC,uBAAuB,EACvBC,0BAA0B,EAC1BC,qBAAqB,EACrBC,iBAAiB,IAAIC,yBAAyB,EAC9CC,eAAe,IAAIC,uBAAuB,EAC1CC,aAAa,EACbC,eAAe,IAAIC,uBAAuB,EAC1CC,cAAc,IAAIC,sBAAsB,EACxCC,0BAA0B,IAAIC,kCAAkC,EAChEC,sBAAsB,EACtBC,sBAAsB,EACtBC,OAAO,EACPC,qBAAqB,EACrBC,mCAAmC,EACnCC,0CAA0C,EAC1CC,mCAAmC,EACnCC,oCAAoC,EACpCC,gCAAgC,EAChCC,gCAAgC,EAChCC,aAAa,QACR,aAAK;;AAEZ;AACA,SAAQC,SAAS,QAAO,aAAU;;AAuBlC;;AA4PA;AACA;AACA;AACA;AACA,OAAO,SAASC,MAAMA,CAACC,OAAuB,EAAU;EACtD,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGnC,QAAQ,CAAU,KAAK,CAAC;EAC1D,MAAM,CAACoC,QAAQ,EAAEC,WAAW,CAAC,GAAGrC,QAAQ,CAAY,EAAE,CAAC;EACvD,MAAM,CAACsC,aAAa,EAAEC,gBAAgB,CAAC,GAAGvC,QAAQ,CAAwB,EAAE,CAAC;EAC7E,MAAM,CAACwC,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGzC,QAAQ,CAAa,EAAE,CAAC;EAC5E,MAAM,CAAC0C,kBAAkB,EAAEC,qBAAqB,CAAC,GAAG3C,QAAQ,CAAU,CAAC;EACvE,MAAM,CAAC4C,mBAAmB,EAAEC,sBAAsB,CAAC,GAAG7C,QAAQ,CAE5D,EAAE,CAAC;EAEL,MAAM8C,UAAU,GAAG7C,MAAM,CAA4BgC,OAAO,CAAC;EAC7D,MAAMc,YAAY,GAAG9C,MAAM,CAAU,KAAK,CAAC;;EAE3C;EACA,MAAM+C,uBAAuB,GAAGlD,WAAW,CACzC,CACEmD,aAAkB,EAClBC,QAAa,EACbC,MAA2B,KACnB;IACR,MAAMC,MAAM,GAAG,CAAC,GAAGH,aAAa,CAAC;IACjCC,QAAQ,CAACG,OAAO,CAAEC,OAAO,IAAK;MAC5B,MAAMC,WAAW,GAAGH,MAAM,CAACI,IAAI,CAC5BC,YAAY,IAAKN,MAAM,CAACM,YAAY,CAAC,KAAKN,MAAM,CAACG,OAAO,CAC3D,CAAC;MACD,IAAI,CAACC,WAAW,EAAE;QAChBH,MAAM,CAACM,IAAI,CAACJ,OAAO,CAAC;MACtB;IACF,CAAC,CAAC;IACF,OAAOF,MAAM;EACf,CAAC,EACD,EACF,CAAC;EAEDrD,SAAS,CAAC,MAAM;IACd+C,UAAU,CAACa,OAAO,GAAG1B,OAAO;EAC9B,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEblC,SAAS,CAAC,MAAM;IACdgD,YAAY,CAACY,OAAO,GAAGzB,SAAS;EAClC,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf,MAAM0B,gBAAgB,GAAG3D,MAAM,CAM5B,CAAC,CAAC,CAAC;;EAEN;EACA,MAAM4D,YAAY,GAAG5D,MAAM,CAAU,IAAI,CAAC;EAE1C,MAAM6D,qBAAqB,GAAG7D,MAAM,CAAwB,EAAE,CAAC;EAE/DF,SAAS,CAAC,MAAM;IACd+D,qBAAqB,CAACH,OAAO,GAAGrB,aAAa;EAC/C,CAAC,EAAE,CAACA,aAAa,CAAC,CAAC;;EAEnB;EACA,MAAMyB,aAAa,GAAGjE,WAAW,CAAEkE,KAAc,IAAK;IACpD,IAAIlB,UAAU,CAACa,OAAO,EAAEM,OAAO,EAAE;MAC/BnB,UAAU,CAACa,OAAO,CAACM,OAAO,CACxBD,KAAK,YAAYE,KAAK,GAAGF,KAAK,GAAG,IAAIE,KAAK,CAACC,MAAM,CAACH,KAAK,CAAC,CAC1D,CAAC;IACH;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMI,qBAAqB,GAAGtE,WAAW,CACvC,MAAOuE,MAGN,IAAoB;IACnB,IAAI,CAACtB,YAAY,CAACY,OAAO,EAAE;MACzBxD,YAAY,CAACmE,IAAI,CACf,2DACF,CAAC;MACD;IACF;IACA,IAAI;MACF,MAAMC,WAAW,GAAGF,MAAM,CAACG,IAAI,IAAI,QAAQ;MAC3CrE,YAAY,CAACsE,KAAK,CAAC,sCAAsC,EAAE;QACzDC,IAAI,EAAEL,MAAM,CAACK,IAAI;QACjBF,IAAI,EAAED;MACR,CAAC,CAAC;MACF,MAAMI,MAAM,GAAG,MAAM9D,aAAa,CAAC;QACjC6D,IAAI,EAAEL,MAAM,CAACK,IAAI;QACjBF,IAAI,EAAED;MACR,CAAC,CAAC;MACFpE,YAAY,CAACsE,KAAK,CAAC,gCAAgC,EAAEE,MAAM,CAAC;MAC5D,MAAMC,KAAK,GAAID,MAAM,IAAI,EAAwC;;MAEjE;MACA,IAAIJ,WAAW,KAAK,MAAM,EAAE;QAC1B;QACAhC,gBAAgB,CAAEsC,iBAAwC,IACxD7B,uBAAuB,CACrB6B,iBAAiB,EACjBD,KAAK,EACJE,YAAiC,IAAKA,YAAY,CAACC,EACtD,CACF,CAAC;QACD;MACF;MAEA,IAAIR,WAAW,KAAK,KAAK,EAAE;QACzB;QACA,MAAMS,WAAW,GAAGJ,KAAK,CAACK,MAAM,CAC7BC,IAAI,IAAsBA,IAAI,CAACV,IAAI,KAAK,QAC3C,CAAC;QACD,MAAMW,gBAAgB,GAAGP,KAAK,CAACK,MAAM,CAClCC,IAAI,IAAkCA,IAAI,CAACV,IAAI,KAAK,MACvD,CAAC;QAEDnC,WAAW,CAAE+C,YAAuB,IAClCpC,uBAAuB,CACrBoC,YAAY,EACZJ,WAAW,EACVK,OAAgB,IAAKA,OAAO,CAACN,EAChC,CACF,CAAC;QACDxC,gBAAgB,CAAEsC,iBAAwC,IACxD7B,uBAAuB,CACrB6B,iBAAiB,EACjBM,gBAAgB,EACfL,YAAiC,IAAKA,YAAY,CAACC,EACtD,CACF,CAAC;QACD;MACF;;MAEA;MACA1C,WAAW,CAAE+C,YAAuB,IAClCpC,uBAAuB,CACrBoC,YAAY,EACZR,KAAK,EACJS,OAAgB,IAAKA,OAAO,CAACN,EAChC,CACF,CAAC;IACH,CAAC,CAAC,OAAOf,KAAK,EAAE;MACd7D,YAAY,CAAC6D,KAAK,CAAC,0BAA0B,EAAEA,KAAK,CAAC;MACrDD,aAAa,CAACC,KAAK,CAAC;IACtB;EACF,CAAC,EACD,CAAChB,uBAAuB,EAAEe,aAAa,CACzC,CAAC;EAED,MAAMuB,6BAA6B,GAAGxF,WAAW,CAC/C,MAAOmC,OAAyB,IAAoB;IAClD,IAAI;MACF,MAAM0C,MAAM,GAAG,MAAMnE,qBAAqB,CAAC;QACzC+E,6BAA6B,EAC3BtD,OAAO,EAAEsD,6BAA6B,IAAI,KAAK;QACjDC,yBAAyB,EAAEvD,OAAO,EAAEuD,yBAAyB,IAAI,IAAI;QACrEC,uBAAuB,EAAExD,OAAO,EAAEwD,uBAAuB,IAAI;MAC/D,CAAC,CAAC;MACFhD,qBAAqB,CAACkC,MAAM,CAAC;IAC/B,CAAC,CAAC,OAAOX,KAAK,EAAE;MACd7D,YAAY,CAAC6D,KAAK,CAAC,qCAAqC,EAAEA,KAAK,CAAC;MAChED,aAAa,CAACC,KAAK,CAAC;IACtB;EACF,CAAC,EACD,CAACD,aAAa,CAChB,CAAC;EAED,MAAM2B,8BAA8B,GAAG5F,WAAW,CAChD,MAAO6F,eAA0B,IAAoC;IACnE,IAAI;MACF,MAAMhB,MAAM,GAAG,MAAMvD,sBAAsB,CAACuE,eAAe,CAAC;MAC5D9C,sBAAsB,CAAC8B,MAAM,CAAC;MAC9B,OAAOA,MAAM;IACf,CAAC,CAAC,OAAOX,KAAK,EAAE;MACd7D,YAAY,CAAC6D,KAAK,CAAC,qCAAqC,EAAEA,KAAK,CAAC;MAChED,aAAa,CAACC,KAAK,CAAC;MACpB,OAAO,EAAE;IACX;EACF,CAAC,EACD,CAACD,aAAa,CAChB,CAAC;EAED,MAAM6B,8BAA8B,GAAG9F,WAAW,CAChD,MAAO6F,eAA0B,IAAuB;IACtD,IAAI;MACF,OAAO,MAAMtE,sBAAsB,CAACsE,eAAe,CAAC;IACtD,CAAC,CAAC,OAAO3B,KAAK,EAAE;MACd7D,YAAY,CAAC6D,KAAK,CAAC,sCAAsC,EAAEA,KAAK,CAAC;MACjED,aAAa,CAACC,KAAK,CAAC;MACpB,OAAO,KAAK;IACd;EACF,CAAC,EACD,CAACD,aAAa,CAChB,CAAC;EAED,MAAMtD,iBAAiB,GAAGX,WAAW,CACnC,MAAO+F,IAAmC,IAAoB;IAC5D;IACA;IACA;IACA;IACA;IACA,MAAMnF,yBAAyB,CAACmF,IAAI,CAAC;EACvC,CAAC,EACD,EACF,CAAC;EAED,MAAMlF,eAAe,GAAGb,WAAW,CACjC,MAAOgG,UAAgC,IAAoB;IACzD,MAAMlF,uBAAuB,CAACkF,UAAU,CAAC;EAC3C,CAAC,EACD,EACF,CAAC;EAED,MAAMC,gBAAgB,GAAGjG,WAAW,CAClC,MAAOmC,OAAyB,IAAoB;IAClD,IAAI;MACF,IAAI/B,QAAQ,CAAC8F,EAAE,KAAK,KAAK,EAAE;QACzB,MAAM1E,OAAO,CAAC,CAAC;MACjB;MAEA,MAAMgE,6BAA6B,CAACrD,OAAO,CAAC;IAC9C,CAAC,CAAC,OAAO+B,KAAK,EAAE;MACd7D,YAAY,CAACmE,IAAI,CAAC,8BAA8B,EAAEN,KAAK,CAAC;MACxDD,aAAa,CAACC,KAAK,CAAC;IACtB;EACF,CAAC,EACD,CAACsB,6BAA6B,EAAEvB,aAAa,CAC/C,CAAC;EAED,MAAMjD,eAAe,GAAGhB,WAAW,CACjC,MAAOmC,OAA4B,IACjClB,uBAAuB,CAACkB,OAAO,CAAC,EAClC,EACF,CAAC;EAED,MAAMjB,cAAc,GAAGlB,WAAW,CAChC,MAAOmC,OAA4B,IAAoC;IACrE,OAAOhB,sBAAsB,CAACgB,OAAO,CAAC;EACxC,CAAC,EACD,EACF,CAAC;EAED,MAAMf,0BAA0B,GAAGpB,WAAW,CAC5C,MACEmC,OAAwC,IACM;IAC9C,OAAOd,kCAAkC,CAACc,OAAO,CAAC;EACpD,CAAC,EACD,EACF,CAAC;;EAED;EACA,MAAMgE,kBAAkB,GAAGnG,WAAW,CAAC,MAAM;IAC3C,IAAIoG,MAKS;IAEb,IAAIhG,QAAQ,CAAC8F,EAAE,KAAK,SAAS,EAAE;MAC7B,IAAIlD,UAAU,CAACa,OAAO,EAAEwC,2BAA2B,EAAE;QACnDD,MAAM,GAAG;UACPC,2BAA2B,EACzBrD,UAAU,CAACa,OAAO,CAACwC;QACvB,CAAC;MACH,CAAC,MAAM,IAAIrD,UAAU,CAACa,OAAO,EAAEyC,6BAA6B,EAAE;QAC5DF,MAAM,GAAG;UACPE,6BAA6B,EAC3BtD,UAAU,CAACa,OAAO,CAACyC;QACvB,CAAC;MACH;IACF;IAEA,OAAOF,MAAM;EACf,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMG,iBAAiB,GAAGvG,WAAW,CAAC,MAAM;IAC1C,IAAI,CAAC8D,gBAAgB,CAACD,OAAO,CAAC2C,cAAc,EAAE;MAC5C1C,gBAAgB,CAACD,OAAO,CAAC2C,cAAc,GAAGhG,uBAAuB,CAC/D,MAAOiG,QAAkB,IAAK;QAC5B,IAAI;UACF,MAAMb,8BAA8B,CAAC,CAAC;UACtC,MAAMJ,6BAA6B,CAAC,CAAC;QACvC,CAAC,CAAC,OAAOkB,CAAC,EAAE;UACVrG,YAAY,CAACmE,IAAI,CAAC,wCAAwC,EAAEkC,CAAC,CAAC;QAChE;QACA,IAAI1D,UAAU,CAACa,OAAO,EAAE8C,iBAAiB,EAAE;UACzC3D,UAAU,CAACa,OAAO,CAAC8C,iBAAiB,CAACF,QAAQ,CAAC;QAChD;MACF,CAAC,EACDzD,UAAU,CAACa,OAAO,EAAE+C,8BACtB,CAAC;IACH;IAEA,IAAI,CAAC9C,gBAAgB,CAACD,OAAO,CAACgD,aAAa,EAAE;MAC3C/C,gBAAgB,CAACD,OAAO,CAACgD,aAAa,GAAGtG,qBAAqB,CAC3D2D,KAAK,IAAK;QACT,IACEA,KAAK,CAAC4C,IAAI,KAAK7E,SAAS,CAAC8E,cAAc,IACvC,CAAC9D,YAAY,CAACY,OAAO,EACrB;UACA;QACF;QACA,IAAIb,UAAU,CAACa,OAAO,EAAEmD,eAAe,EAAE;UACvChE,UAAU,CAACa,OAAO,CAACmD,eAAe,CAAC9C,KAAK,CAAC;QAC3C;MACF,CACF,CAAC;IACH;IAEA,IAAIlC,aAAa,CAAC,CAAC,IAAI,CAAC8B,gBAAgB,CAACD,OAAO,CAACjB,kBAAkB,EAAE;MACnEkB,gBAAgB,CAACD,OAAO,CAACjB,kBAAkB,GAAGnC,0BAA0B,CACrE8E,OAAgB,IAAK;QACpB1C,qBAAqB,CAAC0C,OAAO,CAAC;QAC9B,IAAIvC,UAAU,CAACa,OAAO,EAAEoD,oBAAoB,EAAE;UAC5CjE,UAAU,CAACa,OAAO,CAACoD,oBAAoB,CAAC1B,OAAO,CAAC;QAClD;MACF,CACF,CAAC;IACH;IAEA,IACEnF,QAAQ,CAAC8F,EAAE,KAAK,SAAS,IACzBlD,UAAU,CAACa,OAAO,EAAEqD,0BAA0B,IAC9C,CAACpD,gBAAgB,CAACD,OAAO,CAACsD,wBAAwB,EAClD;MACArD,gBAAgB,CAACD,OAAO,CAACsD,wBAAwB,GAC/CrF,gCAAgC,CAAEsF,OAAO,IAAK;QAC5C,IAAIpE,UAAU,CAACa,OAAO,EAAEqD,0BAA0B,EAAE;UAClDlE,UAAU,CAACa,OAAO,CAACqD,0BAA0B,CAACE,OAAO,CAAC;QACxD;MACF,CAAC,CAAC;IACN;;IAEA;IACA;IACA,IAAI,CAACtD,gBAAgB,CAACD,OAAO,CAACwD,wBAAwB,EAAE;MACtDvD,gBAAgB,CAACD,OAAO,CAACwD,wBAAwB,GAC/CtF,gCAAgC,CAAE0E,QAAkB,IAAK;QACvDzD,UAAU,CAACa,OAAO,EAAEyD,0BAA0B,GAAGb,QAAQ,CAAC;MAC5D,CAAC,CAAC;IACN;EACF,CAAC,EAAE,CAACb,8BAA8B,EAAEJ,6BAA6B,CAAC,CAAC;;EAEnE;EACA,MAAM+B,gBAAgB,GAAGvH,WAAW,CAAC,MAAM;IACzC8D,gBAAgB,CAACD,OAAO,CAAC2C,cAAc,EAAEgB,MAAM,CAAC,CAAC;IACjD1D,gBAAgB,CAACD,OAAO,CAACgD,aAAa,EAAEW,MAAM,CAAC,CAAC;IAChD1D,gBAAgB,CAACD,OAAO,CAACjB,kBAAkB,EAAE4E,MAAM,CAAC,CAAC;IACrD1D,gBAAgB,CAACD,OAAO,CAACsD,wBAAwB,EAAEK,MAAM,CAAC,CAAC;IAC3D1D,gBAAgB,CAACD,OAAO,CAACwD,wBAAwB,EAAEG,MAAM,CAAC,CAAC;IAC3D1D,gBAAgB,CAACD,OAAO,CAAC2C,cAAc,GAAGiB,SAAS;IACnD3D,gBAAgB,CAACD,OAAO,CAACgD,aAAa,GAAGY,SAAS;IAClD3D,gBAAgB,CAACD,OAAO,CAACjB,kBAAkB,GAAG6E,SAAS;IACvD3D,gBAAgB,CAACD,OAAO,CAACsD,wBAAwB,GAAGM,SAAS;IAC7D3D,gBAAgB,CAACD,OAAO,CAACwD,wBAAwB,GAAGI,SAAS;EAC/D,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,wBAAwB,GAAG1H,WAAW,CAAC,YAA2B;IACtE,MAAMoG,MAAM,GAAGD,kBAAkB,CAAC,CAAC;IAEnC,IAAI;MACF,MAAMtB,MAAM,GAAG,MAAMvE,cAAc,CAAC8F,MAAM,CAAC;MAE3C,IAAI,CAACrC,YAAY,CAACF,OAAO,EAAE;QACzB;MACF;MAEA,IAAI,CAACgB,MAAM,EAAE;QACXxC,YAAY,CAAC,KAAK,CAAC;QACnBhC,YAAY,CAACmE,IAAI,CAAC,wCAAwC,CAAC;QAC3D;MACF;MAEA+B,iBAAiB,CAAC,CAAC;MACnBlE,YAAY,CAAC,IAAI,CAAC;IACpB,CAAC,CAAC,OAAO6B,KAAK,EAAE;MACd7D,YAAY,CAAC6D,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC;MACnDqD,gBAAgB,CAAC,CAAC;MAClB,IAAIxD,YAAY,CAACF,OAAO,EAAE;QACxBxB,YAAY,CAAC,KAAK,CAAC;MACrB;MACA4B,aAAa,CAACC,KAAK,CAAC;IACtB;EACF,CAAC,EAAE,CAACiC,kBAAkB,EAAEI,iBAAiB,EAAEgB,gBAAgB,EAAEtD,aAAa,CAAC,CAAC;EAE5E,MAAM0D,SAAS,GAAG3H,WAAW,CAAC,YAA8B;IAC1D,MAAMoG,MAAM,GAAGD,kBAAkB,CAAC,CAAC;IAEnC,IAAI;MACF,MAAMtB,MAAM,GAAG,MAAMvE,cAAc,CAAC8F,MAAM,CAAC;MAE3C,IAAI,CAACrC,YAAY,CAACF,OAAO,EAAE;QACzB,OAAO,KAAK;MACd;MAEA,IAAIgB,MAAM,EAAE;QACV0B,iBAAiB,CAAC,CAAC;QACnBlE,YAAY,CAAC,IAAI,CAAC;QAClB,OAAO,IAAI;MACb;MAEAA,YAAY,CAAC,KAAK,CAAC;MACnB,OAAO,KAAK;IACd,CAAC,CAAC,OAAO6B,KAAK,EAAE;MACd7D,YAAY,CAAC6D,KAAK,CAAC,4BAA4B,EAAEA,KAAK,CAAC;MACvDqD,gBAAgB,CAAC,CAAC;MAClB,IAAIxD,YAAY,CAACF,OAAO,EAAE;QACxBxB,YAAY,CAAC,KAAK,CAAC;MACrB;MACA4B,aAAa,CAACC,KAAK,CAAC;MACpB,OAAO,KAAK;IACd;EACF,CAAC,EAAE,CAACiC,kBAAkB,EAAEI,iBAAiB,EAAEgB,gBAAgB,EAAEtD,aAAa,CAAC,CAAC;EAE5EhE,SAAS,CAAC,MAAM;IACd8D,YAAY,CAACF,OAAO,GAAG,IAAI;IAC3B6D,wBAAwB,CAAC,CAAC;IAE1B,OAAO,MAAM;MACX3D,YAAY,CAACF,OAAO,GAAG,KAAK;MAC5B0D,gBAAgB,CAAC,CAAC;MAClB;MACAlF,YAAY,CAAC,KAAK,CAAC;IACrB,CAAC;EACH,CAAC,EAAE,CAACqF,wBAAwB,EAAEH,gBAAgB,CAAC,CAAC;EAEhD,OAAO;IACLnF,SAAS;IACTE,QAAQ;IACRE,aAAa;IACb7B,iBAAiB;IACjB+B,kBAAkB;IAClBE,kBAAkB;IAClBE,mBAAmB;IACnBpC,qBAAqB,EAAE8E,6BAA6B;IACpDzE,aAAa,EAAEuD,qBAAqB;IACpCzD,eAAe;IACfG,eAAe;IACfE,cAAc;IACdE,0BAA0B;IAC1B6E,gBAAgB;IAChBxE,qBAAqB;IACrBC,mCAAmC;IACnCJ,sBAAsB,EAAEsE,8BAA8B;IACtDrE,sBAAsB,EAAEuE,8BAA8B;IACtD6B,SAAS;IACT;IACA,IAAIvH,QAAQ,CAAC8F,EAAE,KAAK,SAAS,GACzB;MACEvE,0CAA0C;MAC1CC,mCAAmC;MACnCC;IACF,CAAC,GACD,CAAC,CAAC;EACR,CAAC;AACH","ignoreList":[]}
|