react-native-iap 12.13.2 → 12.14.1-rc.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.
- package/README.md +10 -4
- package/RNIap.podspec +1 -1
- package/android/gradle.properties +1 -1
- package/android/src/amazon/java/com/dooboolab/rniap/PurchasingServiceProxy.kt +8 -2
- package/android/src/amazon/java/com/dooboolab/rniap/PurchasingServiceProxyAmazonImpl.kt +12 -18
- package/android/src/amazon/java/com/dooboolab/rniap/RNIapAmazonListener.kt +4 -2
- package/android/src/amazon/java/com/dooboolab/rniap/RNIapAmazonModule.kt +45 -29
- package/android/src/amazon/java/com/dooboolab/rniap/RNIapPackage.kt +1 -4
- package/android/src/main/java/com/dooboolab/rniap/PromiseUtils.kt +9 -2
- package/android/src/main/java/com/dooboolab/rniap/PromiseUtlis.kt +15 -6
- package/android/src/play/java/com/dooboolab/rniap/PlayUtils.kt +86 -70
- package/android/src/play/java/com/dooboolab/rniap/RNIapModule.kt +196 -209
- package/android/src/play/java/com/dooboolab/rniap/RNIapPackage.kt +1 -4
- package/android/src/testAmazon/java/com/dooboolab/rniap/RNIapAmazonModuleTest.kt +23 -19
- package/ios/IapSerializationUtils.swift +2 -0
- package/ios/IapUtils.swift +10 -0
- package/ios/LatestPromiseKeeper.swift +47 -0
- package/ios/RNIapIos.swift +16 -24
- package/ios/RNIapIos.xcodeproj/project.pbxproj +13 -7
- package/ios/RNIapIosSk2.m +1 -4
- package/ios/RNIapIosSk2.swift +25 -12
- package/ios/ThreadSafe.swift +18 -0
- package/lib/commonjs/eventEmitter.js.map +1 -1
- package/lib/commonjs/modules/iosSk2.js.map +1 -1
- package/lib/module/eventEmitter.js.map +1 -1
- package/lib/module/modules/iosSk2.js.map +1 -1
- package/lib/typescript/src/eventEmitter.d.ts.map +1 -1
- package/lib/typescript/src/modules/iosSk2.d.ts.map +1 -1
- package/package.json +3 -4
- package/src/eventEmitter.ts +1 -7
- package/src/modules/iosSk2.ts +2 -3
package/ios/IapUtils.swift
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import Foundation
|
|
9
9
|
import StoreKit
|
|
10
|
+
import React
|
|
10
11
|
|
|
11
12
|
public func debugMessage(_ object: Any...) {
|
|
12
13
|
#if DEBUG
|
|
@@ -28,3 +29,12 @@ func checkVerified<T>(_ result: VerificationResult<T>) throws -> T {
|
|
|
28
29
|
return safe
|
|
29
30
|
}
|
|
30
31
|
}
|
|
32
|
+
|
|
33
|
+
@available(iOS 15.0, *)
|
|
34
|
+
func currentWindow() async -> UIWindow? {
|
|
35
|
+
await withCheckedContinuation { continuation in
|
|
36
|
+
DispatchQueue.main.async {
|
|
37
|
+
continuation.resume(returning: RCTKeyWindow())
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import StoreKit
|
|
2
|
+
|
|
3
|
+
// Only keeps latest promise, assumes older promises are not needed
|
|
4
|
+
// Avoids racing conditions by storing latestPromise in a thread safe var
|
|
5
|
+
// Cancels previous promises when new ones are added
|
|
6
|
+
// Should not be used when all promises are relevant (e.g. Purchases)
|
|
7
|
+
class LatestPromiseKeeper {
|
|
8
|
+
private var latestPromise: ThreadSafe<(RCTPromiseResolveBlock, RCTPromiseRejectBlock)?> = ThreadSafe(nil)
|
|
9
|
+
private var latestRequest: ThreadSafe<SKProductsRequest?> = ThreadSafe(nil)
|
|
10
|
+
|
|
11
|
+
func setLatestPromise(request: SKProductsRequest, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
12
|
+
// Cancel the ongoing request and reject the existing promise before setting a new one
|
|
13
|
+
cancelOngoingRequest()
|
|
14
|
+
|
|
15
|
+
latestRequest.atomically { $0 = request }
|
|
16
|
+
latestPromise.atomically { $0 = (resolve, reject) }
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
func cancelOngoingRequest() {
|
|
20
|
+
latestPromise.atomically { promiseResolvers in
|
|
21
|
+
if let (_, reject) = promiseResolvers {
|
|
22
|
+
// Reject the promise with an error indicating that it was cancelled due to a new request
|
|
23
|
+
reject("E_CANCELED", "Previous request was cancelled due to a new request", nil)
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
latestRequest.atomically { ongoingRequest in
|
|
28
|
+
ongoingRequest?.cancel()
|
|
29
|
+
ongoingRequest = nil
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Clear the latestPromise after rejecting it
|
|
33
|
+
latestPromise.atomically { $0 = nil }
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
func resolveIfRequestMatches(matchingRequest: SKProductsRequest, items: [[String: Any?]], operation: (RCTPromiseResolveBlock, [[String: Any?]]) -> Void) {
|
|
37
|
+
latestPromise.atomically { promiseResolvers in
|
|
38
|
+
guard let (resolve, _) = promiseResolvers else { return }
|
|
39
|
+
|
|
40
|
+
latestRequest.atomically { ongoingRequest in
|
|
41
|
+
guard ongoingRequest === matchingRequest else { return }
|
|
42
|
+
|
|
43
|
+
operation(resolve, items)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
package/ios/RNIapIos.swift
CHANGED
|
@@ -8,10 +8,11 @@ class RNIapIos: RCTEventEmitter, SKRequestDelegate, SKPaymentTransactionObserver
|
|
|
8
8
|
private var hasListeners = false
|
|
9
9
|
private var pendingTransactionWithAutoFinish = false
|
|
10
10
|
private var receiptBlock: ((Data?, Error?) -> Void)? // Block to handle request the receipt async from delegate
|
|
11
|
-
private var validProducts: [String: SKProduct]
|
|
11
|
+
private var validProducts: ThreadSafe<[String: SKProduct]>
|
|
12
12
|
private var promotedPayment: SKPayment?
|
|
13
13
|
private var promotedProduct: SKProduct?
|
|
14
14
|
private var productsRequest: SKProductsRequest?
|
|
15
|
+
private let latestPromiseKeeper = LatestPromiseKeeper()
|
|
15
16
|
private var countPendingTransaction: Int = 0
|
|
16
17
|
private var hasTransactionObserver = false
|
|
17
18
|
|
|
@@ -19,7 +20,7 @@ class RNIapIos: RCTEventEmitter, SKRequestDelegate, SKPaymentTransactionObserver
|
|
|
19
20
|
promisesByKey = [String: [RNIapIosPromise]]()
|
|
20
21
|
pendingTransactionWithAutoFinish = false
|
|
21
22
|
myQueue = DispatchQueue(label: "reject")
|
|
22
|
-
validProducts = [String: SKProduct]()
|
|
23
|
+
validProducts = ThreadSafe<[String: SKProduct]>([:])
|
|
23
24
|
super.init()
|
|
24
25
|
addTransactionObserver()
|
|
25
26
|
}
|
|
@@ -148,7 +149,7 @@ class RNIapIos: RCTEventEmitter, SKRequestDelegate, SKPaymentTransactionObserver
|
|
|
148
149
|
stopObserving()
|
|
149
150
|
rejectAllPendingPromises()
|
|
150
151
|
receiptBlock = nil
|
|
151
|
-
validProducts.removeAll()
|
|
152
|
+
validProducts.atomically { $0.removeAll() }
|
|
152
153
|
promotedPayment = nil
|
|
153
154
|
promotedProduct = nil
|
|
154
155
|
productsRequest = nil
|
|
@@ -162,10 +163,12 @@ class RNIapIos: RCTEventEmitter, SKRequestDelegate, SKPaymentTransactionObserver
|
|
|
162
163
|
) {
|
|
163
164
|
let productIdentifiers = Set<String>(skus)
|
|
164
165
|
productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
|
|
166
|
+
|
|
165
167
|
if let productsRequest = productsRequest {
|
|
166
168
|
productsRequest.delegate = self
|
|
167
|
-
|
|
168
|
-
|
|
169
|
+
|
|
170
|
+
self.latestPromiseKeeper.setLatestPromise(request: productsRequest, resolve: resolve, reject: reject)
|
|
171
|
+
|
|
169
172
|
productsRequest.start()
|
|
170
173
|
}
|
|
171
174
|
}
|
|
@@ -189,7 +192,7 @@ class RNIapIos: RCTEventEmitter, SKRequestDelegate, SKPaymentTransactionObserver
|
|
|
189
192
|
reject: @escaping RCTPromiseRejectBlock = { _, _, _ in }
|
|
190
193
|
) {
|
|
191
194
|
pendingTransactionWithAutoFinish = andDangerouslyFinishTransactionAutomatically
|
|
192
|
-
if let product = validProducts[sku] {
|
|
195
|
+
if let product = validProducts.value[sku] {
|
|
193
196
|
addPromise(forKey: product.productIdentifier, resolve: resolve, reject: reject)
|
|
194
197
|
|
|
195
198
|
let payment = SKMutablePayment(product: product)
|
|
@@ -254,7 +257,7 @@ class RNIapIos: RCTEventEmitter, SKRequestDelegate, SKPaymentTransactionObserver
|
|
|
254
257
|
reject: @escaping RCTPromiseRejectBlock = { _, _, _ in }
|
|
255
258
|
) {
|
|
256
259
|
debugMessage("clear valid products")
|
|
257
|
-
validProducts.removeAll()
|
|
260
|
+
validProducts.atomically { $0.removeAll() }
|
|
258
261
|
resolve(nil)
|
|
259
262
|
}
|
|
260
263
|
|
|
@@ -348,23 +351,26 @@ class RNIapIos: RCTEventEmitter, SKRequestDelegate, SKPaymentTransactionObserver
|
|
|
348
351
|
|
|
349
352
|
// StoreKitDelegate
|
|
350
353
|
func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
|
|
354
|
+
// Add received products
|
|
351
355
|
for prod in response.products {
|
|
352
356
|
add(prod)
|
|
353
357
|
}
|
|
354
358
|
|
|
355
359
|
var items: [[String: Any?]] = [[:]]
|
|
356
|
-
for product in validProducts.values {
|
|
360
|
+
for product in validProducts.value.values {
|
|
357
361
|
items.append(getProductObject(product))
|
|
358
362
|
}
|
|
359
363
|
|
|
360
|
-
|
|
364
|
+
self.latestPromiseKeeper.resolveIfRequestMatches(matchingRequest: request, items: items) { (resolve, items) in
|
|
365
|
+
resolve(items)
|
|
366
|
+
}
|
|
361
367
|
}
|
|
362
368
|
|
|
363
369
|
// Add to valid products from Apple server response. Allowing getProducts, getSubscriptions call several times.
|
|
364
370
|
// Doesn't allow duplication. Replace new product.
|
|
365
371
|
func add(_ aProd: SKProduct) {
|
|
366
372
|
debugMessage("Add new object: \(aProd.productIdentifier)")
|
|
367
|
-
validProducts[aProd.productIdentifier] = aProd
|
|
373
|
+
validProducts.atomically { $0[aProd.productIdentifier] = aProd }
|
|
368
374
|
}
|
|
369
375
|
|
|
370
376
|
func request(_ request: SKRequest, didFailWithError error: Error) {
|
|
@@ -395,17 +401,14 @@ class RNIapIos: RCTEventEmitter, SKRequestDelegate, SKPaymentTransactionObserver
|
|
|
395
401
|
switch transaction.transactionState {
|
|
396
402
|
case .purchasing:
|
|
397
403
|
debugMessage("Purchase Started")
|
|
398
|
-
break
|
|
399
404
|
|
|
400
405
|
case .purchased:
|
|
401
406
|
debugMessage("Purchase Successful")
|
|
402
407
|
purchaseProcess(transaction)
|
|
403
|
-
break
|
|
404
408
|
|
|
405
409
|
case .restored:
|
|
406
410
|
debugMessage("Restored")
|
|
407
411
|
SKPaymentQueue.default().finishTransaction(transaction)
|
|
408
|
-
break
|
|
409
412
|
|
|
410
413
|
case .deferred:
|
|
411
414
|
debugMessage("Deferred (awaiting approval via parental controls, etc.)")
|
|
@@ -464,8 +467,6 @@ class RNIapIos: RCTEventEmitter, SKRequestDelegate, SKPaymentTransactionObserver
|
|
|
464
467
|
message: nsError?.localizedDescription,
|
|
465
468
|
error: nsError)
|
|
466
469
|
})
|
|
467
|
-
|
|
468
|
-
break
|
|
469
470
|
}
|
|
470
471
|
}
|
|
471
472
|
}
|
|
@@ -707,22 +708,18 @@ class RNIapIos: RCTEventEmitter, SKRequestDelegate, SKPaymentTransactionObserver
|
|
|
707
708
|
case .freeTrial:
|
|
708
709
|
paymendMode = "FREETRIAL"
|
|
709
710
|
numberOfPeriods = String(discount.subscriptionPeriod.numberOfUnits)
|
|
710
|
-
break
|
|
711
711
|
|
|
712
712
|
case .payAsYouGo:
|
|
713
713
|
paymendMode = "PAYASYOUGO"
|
|
714
714
|
numberOfPeriods = String(discount.numberOfPeriods)
|
|
715
|
-
break
|
|
716
715
|
|
|
717
716
|
case .payUpFront:
|
|
718
717
|
paymendMode = "PAYUPFRONT"
|
|
719
718
|
numberOfPeriods = String(discount.subscriptionPeriod.numberOfUnits )
|
|
720
|
-
break
|
|
721
719
|
|
|
722
720
|
default:
|
|
723
721
|
paymendMode = ""
|
|
724
722
|
numberOfPeriods = "0"
|
|
725
|
-
break
|
|
726
723
|
}
|
|
727
724
|
|
|
728
725
|
switch discount.subscriptionPeriod.unit {
|
|
@@ -746,15 +743,10 @@ class RNIapIos: RCTEventEmitter, SKRequestDelegate, SKPaymentTransactionObserver
|
|
|
746
743
|
switch discount.type {
|
|
747
744
|
case SKProductDiscount.Type.introductory:
|
|
748
745
|
discountType = "INTRODUCTORY"
|
|
749
|
-
break
|
|
750
|
-
|
|
751
746
|
case SKProductDiscount.Type.subscription:
|
|
752
747
|
discountType = "SUBSCRIPTION"
|
|
753
|
-
break
|
|
754
|
-
|
|
755
748
|
default:
|
|
756
749
|
discountType = ""
|
|
757
|
-
break
|
|
758
750
|
}
|
|
759
751
|
|
|
760
752
|
let discountObj = [
|
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
objects = {
|
|
8
8
|
|
|
9
9
|
/* Begin PBXBuildFile section */
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
CBA2290C2B027DA500C780F8 /* ThreadSafe.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBA2290A2B027DA500C780F8 /* ThreadSafe.swift */; };
|
|
11
|
+
CBA2290D2B027DA500C780F8 /* LatestPromiseKeeper.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBA2290B2B027DA500C780F8 /* LatestPromiseKeeper.swift */; };
|
|
12
|
+
F4FF95D7245B92E800C19C63 /* RNIapIos.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF95D6245B92E800C19C63 /* RNIapIos.swift */; };
|
|
12
13
|
/* End PBXBuildFile section */
|
|
13
14
|
|
|
14
15
|
/* Begin PBXCopyFilesBuildPhase section */
|
|
@@ -26,7 +27,9 @@
|
|
|
26
27
|
/* Begin PBXFileReference section */
|
|
27
28
|
134814201AA4EA6300B7C361 /* libRNIapIos.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRNIapIos.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
28
29
|
B3E7B5891CC2AC0600A0062D /* RNIapIos.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNIapIos.m; sourceTree = "<group>"; };
|
|
29
|
-
|
|
30
|
+
CBA2290A2B027DA500C780F8 /* ThreadSafe.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThreadSafe.swift; sourceTree = "<group>"; };
|
|
31
|
+
CBA2290B2B027DA500C780F8 /* LatestPromiseKeeper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LatestPromiseKeeper.swift; sourceTree = "<group>"; };
|
|
32
|
+
F4FF95D5245B92E700C19C63 /* RNIapIos-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RNIapIos-Bridging-Header.h"; sourceTree = "<group>"; };
|
|
30
33
|
F4FF95D6245B92E800C19C63 /* RNIapIos.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RNIapIos.swift; sourceTree = "<group>"; };
|
|
31
34
|
/* End PBXFileReference section */
|
|
32
35
|
|
|
@@ -52,9 +55,11 @@
|
|
|
52
55
|
58B511D21A9E6C8500147676 = {
|
|
53
56
|
isa = PBXGroup;
|
|
54
57
|
children = (
|
|
58
|
+
CBA2290B2B027DA500C780F8 /* LatestPromiseKeeper.swift */,
|
|
59
|
+
CBA2290A2B027DA500C780F8 /* ThreadSafe.swift */,
|
|
55
60
|
F4FF95D6245B92E800C19C63 /* RNIapIos.swift */,
|
|
56
61
|
B3E7B5891CC2AC0600A0062D /* RNIapIos.m */,
|
|
57
|
-
F4FF95D5245B92E700C19C63 /*
|
|
62
|
+
F4FF95D5245B92E700C19C63 /* RNIapIos-Bridging-Header.h */,
|
|
58
63
|
134814211AA4EA7D00B7C361 /* Products */,
|
|
59
64
|
);
|
|
60
65
|
sourceTree = "<group>";
|
|
@@ -116,8 +121,9 @@
|
|
|
116
121
|
isa = PBXSourcesBuildPhase;
|
|
117
122
|
buildActionMask = 2147483647;
|
|
118
123
|
files = (
|
|
124
|
+
CBA2290C2B027DA500C780F8 /* ThreadSafe.swift in Sources */,
|
|
125
|
+
CBA2290D2B027DA500C780F8 /* LatestPromiseKeeper.swift in Sources */,
|
|
119
126
|
F4FF95D7245B92E800C19C63 /* RNIapIos.swift in Sources */,
|
|
120
|
-
B3E7B58A1CC2AC0600A0062D /* RNIapIos.m in Sources */,
|
|
121
127
|
);
|
|
122
128
|
runOnlyForDeploymentPostprocessing = 0;
|
|
123
129
|
};
|
|
@@ -232,7 +238,7 @@
|
|
|
232
238
|
OTHER_LDFLAGS = "-ObjC";
|
|
233
239
|
PRODUCT_NAME = RNIapIos;
|
|
234
240
|
SKIP_INSTALL = YES;
|
|
235
|
-
SWIFT_OBJC_BRIDGING_HEADER = "
|
|
241
|
+
SWIFT_OBJC_BRIDGING_HEADER = "RNIapIos-Bridging-Header.h";
|
|
236
242
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
|
237
243
|
SWIFT_VERSION = 5.0;
|
|
238
244
|
};
|
|
@@ -251,7 +257,7 @@
|
|
|
251
257
|
OTHER_LDFLAGS = "-ObjC";
|
|
252
258
|
PRODUCT_NAME = RNIapIos;
|
|
253
259
|
SKIP_INSTALL = YES;
|
|
254
|
-
SWIFT_OBJC_BRIDGING_HEADER = "
|
|
260
|
+
SWIFT_OBJC_BRIDGING_HEADER = "RNIapIos-Bridging-Header.h";
|
|
255
261
|
SWIFT_VERSION = 5.0;
|
|
256
262
|
};
|
|
257
263
|
name = Release;
|
package/ios/RNIapIosSk2.m
CHANGED
|
@@ -3,14 +3,11 @@
|
|
|
3
3
|
#import <React/RCTBridgeModule.h>
|
|
4
4
|
#ifdef __IPHONE_15_0
|
|
5
5
|
|
|
6
|
-
// From: https://stackoverflow.com/a/5337804/570612
|
|
7
|
-
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
|
|
8
|
-
|
|
9
6
|
|
|
10
7
|
@interface RCT_EXTERN_MODULE (RNIapIosSk2, NSObject)
|
|
11
8
|
|
|
12
9
|
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(isAvailable){
|
|
13
|
-
if (
|
|
10
|
+
if (@available(iOS 15.0, *)) {
|
|
14
11
|
return [NSNumber numberWithInt:1];
|
|
15
12
|
}else{
|
|
16
13
|
return [NSNumber numberWithInt:0];
|
package/ios/RNIapIosSk2.swift
CHANGED
|
@@ -711,7 +711,20 @@ class RNIapIosSk2iOS15: Sk2Delegate {
|
|
|
711
711
|
}
|
|
712
712
|
debugMessage("Purchase Started")
|
|
713
713
|
|
|
714
|
-
let
|
|
714
|
+
guard let windowScene = await currentWindow()?.windowScene else {
|
|
715
|
+
reject(IapErrors.E_DEVELOPER_ERROR.rawValue, "Could not find window scene", nil)
|
|
716
|
+
return
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
var result: Product.PurchaseResult?
|
|
720
|
+
|
|
721
|
+
if #available(iOS 17.0, tvOS 17.0, *) {
|
|
722
|
+
result = try await product.purchase(confirmIn: windowScene, options: options)
|
|
723
|
+
} else {
|
|
724
|
+
#if !os(visionOS)
|
|
725
|
+
result = try await product.purchase(options: options)
|
|
726
|
+
#endif
|
|
727
|
+
}
|
|
715
728
|
switch result {
|
|
716
729
|
case .success(let verification):
|
|
717
730
|
debugMessage("Purchase Successful")
|
|
@@ -947,22 +960,20 @@ class RNIapIosSk2iOS15: Sk2Delegate {
|
|
|
947
960
|
reject: @escaping RCTPromiseRejectBlock = { _, _, _ in }
|
|
948
961
|
) {
|
|
949
962
|
#if !os(tvOS)
|
|
950
|
-
|
|
951
|
-
guard let scene =
|
|
963
|
+
Task {
|
|
964
|
+
guard let scene = await currentWindow()?.windowScene as? UIWindowScene,
|
|
952
965
|
!ProcessInfo.processInfo.isiOSAppOnMac else {
|
|
953
966
|
return
|
|
954
967
|
}
|
|
955
968
|
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
print("Error:(error)")
|
|
961
|
-
}
|
|
969
|
+
do {
|
|
970
|
+
try await AppStore.showManageSubscriptions(in: scene)
|
|
971
|
+
} catch {
|
|
972
|
+
print("Error:(error)")
|
|
962
973
|
}
|
|
963
|
-
|
|
964
|
-
resolve(nil)
|
|
965
974
|
}
|
|
975
|
+
|
|
976
|
+
resolve(nil)
|
|
966
977
|
#else
|
|
967
978
|
reject(IapErrors.E_USER_CANCELLED.rawValue, "This method is not available on tvOS", nil)
|
|
968
979
|
#endif
|
|
@@ -998,8 +1009,10 @@ class RNIapIosSk2iOS15: Sk2Delegate {
|
|
|
998
1009
|
return nil
|
|
999
1010
|
}
|
|
1000
1011
|
}
|
|
1012
|
+
|
|
1001
1013
|
Task {
|
|
1002
|
-
|
|
1014
|
+
let window = await currentWindow()
|
|
1015
|
+
if let windowScene = await window?.windowScene {
|
|
1003
1016
|
if let product = await productStore.getProduct(productID: sku) {
|
|
1004
1017
|
if let result = await product.latestTransaction {
|
|
1005
1018
|
do {
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
class ThreadSafe<A> {
|
|
2
|
+
private var _value: A
|
|
3
|
+
private let queue = DispatchQueue(label: "ThreadSafe")
|
|
4
|
+
|
|
5
|
+
init(_ value: A) {
|
|
6
|
+
self._value = value
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
var value: A {
|
|
10
|
+
return queue.sync { _value }
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
func atomically(_ transform: (inout A) -> Void) {
|
|
14
|
+
queue.sync {
|
|
15
|
+
transform(&self._value)
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_appleSk","_iap","_internal","purchaseUpdatedListener","listener","eventEmitter","NativeEventEmitter","getNativeModule","proxyListener","isIosStorekit2","event","transactionSk2ToPurchaseMap","emitterSubscription","addListener","isAndroid","getAndroidModule","startListening","exports","purchaseErrorListener","promotedProductListener","isIos","getIosModule","transactionListener"],"sourceRoot":"../../src","sources":["eventEmitter.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_appleSk","_iap","_internal","purchaseUpdatedListener","listener","eventEmitter","NativeEventEmitter","getNativeModule","proxyListener","isIosStorekit2","event","transactionSk2ToPurchaseMap","emitterSubscription","addListener","isAndroid","getAndroidModule","startListening","exports","purchaseErrorListener","promotedProductListener","isIos","getIosModule","transactionListener"],"sourceRoot":"../../src","sources":["eventEmitter.ts"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","RNIapIosSk2","NativeModules","sync","exports","isEligibleForIntroOffer","groupID","subscriptionStatus","sku","currentEntitlement","latestTransaction","beginRefundRequest","showManageSubscriptions","finishTransaction","transactionIdentifier"],"sourceRoot":"../../../src","sources":["modules/iosSk2.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAYA,MAAM;EAACC;AAAW,CAAC,GAAGC,0BAAa;AAkDnC;AACA;AACA;AACA;AACO,MAAMC,IAAI,GAAGA,CAAA,KAAqBF,WAAW,CAACE,IAAI,CAAC,CAAC;;AAE3D;AACA;AACA;AAFAC,OAAA,CAAAD,IAAA,GAAAA,IAAA;AAGO,MAAME,uBAAuB,GAAIC,OAAe,IACrDL,WAAW,CAACI,uBAAuB,CAACC,OAAO,CAAC;;AAE9C;AACA;AACA;AAFAF,OAAA,CAAAC,uBAAA,GAAAA,uBAAA;AAIO,MAAME,kBAAkB,GAAIC,GAAW,IAC5CP,WAAW,CAACM,kBAAkB,CAACC,GAAG,CAAC;;AAErC;AACA;AACA;AAFAJ,OAAA,CAAAG,kBAAA,GAAAA,kBAAA;AAGO,MAAME,kBAAkB,GAAID,GAAW,IAC5CP,WAAW,CAACQ,kBAAkB,CAACD,GAAG,CAAC;;AAErC;AACA;AACA;AAFAJ,OAAA,CAAAK,kBAAA,GAAAA,kBAAA;AAGO,MAAMC,iBAAiB,GAAIF,GAAW,IAC3CP,WAAW,CAACS,iBAAiB,CAACF,GAAG,CAAC;;AAEpC;AACA;AACA;AAFAJ,OAAA,CAAAM,iBAAA,GAAAA,iBAAA;AAGO,MAAMC,kBAAkB,GAAIH,GAAW,IAC5CP,WAAW,CAACU,kBAAkB,CAACH,GAAG,CAAC;;AAErC;AACA;AACA;AAFAJ,OAAA,CAAAO,kBAAA,GAAAA,kBAAA;AAGO,MAAMC,uBAAuB,GAAGA,CAAA,KACrCX,WAAW,CAACW,uBAAuB,CAAC,CAAC;;AAEvC;AACA;AACA;AAFAR,OAAA,CAAAQ,uBAAA,GAAAA,uBAAA;AAGO,MAAMC,iBAAiB,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","RNIapIosSk2","NativeModules","sync","exports","isEligibleForIntroOffer","groupID","subscriptionStatus","sku","currentEntitlement","latestTransaction","beginRefundRequest","showManageSubscriptions","finishTransaction","transactionIdentifier"],"sourceRoot":"../../../src","sources":["modules/iosSk2.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAYA,MAAM;EAACC;AAAW,CAAC,GAAGC,0BAAa;AAkDnC;AACA;AACA;AACA;AACO,MAAMC,IAAI,GAAGA,CAAA,KAAqBF,WAAW,CAACE,IAAI,CAAC,CAAC;;AAE3D;AACA;AACA;AAFAC,OAAA,CAAAD,IAAA,GAAAA,IAAA;AAGO,MAAME,uBAAuB,GAAIC,OAAe,IACrDL,WAAW,CAACI,uBAAuB,CAACC,OAAO,CAAC;;AAE9C;AACA;AACA;AAFAF,OAAA,CAAAC,uBAAA,GAAAA,uBAAA;AAIO,MAAME,kBAAkB,GAAIC,GAAW,IAC5CP,WAAW,CAACM,kBAAkB,CAACC,GAAG,CAAC;;AAErC;AACA;AACA;AAFAJ,OAAA,CAAAG,kBAAA,GAAAA,kBAAA;AAGO,MAAME,kBAAkB,GAAID,GAAW,IAC5CP,WAAW,CAACQ,kBAAkB,CAACD,GAAG,CAAC;;AAErC;AACA;AACA;AAFAJ,OAAA,CAAAK,kBAAA,GAAAA,kBAAA;AAGO,MAAMC,iBAAiB,GAAIF,GAAW,IAC3CP,WAAW,CAACS,iBAAiB,CAACF,GAAG,CAAC;;AAEpC;AACA;AACA;AAFAJ,OAAA,CAAAM,iBAAA,GAAAA,iBAAA;AAGO,MAAMC,kBAAkB,GAAIH,GAAW,IAC5CP,WAAW,CAACU,kBAAkB,CAACH,GAAG,CAAC;;AAErC;AACA;AACA;AAFAJ,OAAA,CAAAO,kBAAA,GAAAA,kBAAA;AAGO,MAAMC,uBAAuB,GAAGA,CAAA,KACrCX,WAAW,CAACW,uBAAuB,CAAC,CAAC;;AAEvC;AACA;AACA;AAFAR,OAAA,CAAAQ,uBAAA,GAAAA,uBAAA;AAGO,MAAMC,iBAAiB,GAAIC,qBAA6B,IAC7Db,WAAW,CAACY,iBAAiB,CAACC,qBAAqB,CAAC;AAACV,OAAA,CAAAS,iBAAA,GAAAA,iBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","transactionSk2ToPurchaseMap","isIosStorekit2","getAndroidModule","getIosModule","getNativeModule","isAndroid","isIos","purchaseUpdatedListener","listener","eventEmitter","proxyListener","event","emitterSubscription","addListener","startListening","purchaseErrorListener","promotedProductListener","transactionListener"],"sourceRoot":"../../src","sources":["eventEmitter.ts"],"mappings":"AAAA,SAA6BA,kBAAkB,QAAO,cAAc;AAEpE,SAA0BC,2BAA2B,QAAO,kBAAkB;AAC9E,SAAQC,cAAc,QAAO,OAAO;AACpC,
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","transactionSk2ToPurchaseMap","isIosStorekit2","getAndroidModule","getIosModule","getNativeModule","isAndroid","isIos","purchaseUpdatedListener","listener","eventEmitter","proxyListener","event","emitterSubscription","addListener","startListening","purchaseErrorListener","promotedProductListener","transactionListener"],"sourceRoot":"../../src","sources":["eventEmitter.ts"],"mappings":"AAAA,SAA6BA,kBAAkB,QAAO,cAAc;AAEpE,SAA0BC,2BAA2B,QAAO,kBAAkB;AAC9E,SAAQC,cAAc,QAAO,OAAO;AACpC,SAASC,gBAAgB,EAAEC,YAAY,EAAEC,eAAe,EAAEC,SAAS,EAAEC,KAAK,QAAQ,YAAY;AAI9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,uBAAuB,GAClCC,QAAmC,IAChC;EACH,MAAMC,YAAY,GAAG,IAAIV,kBAAkB,CAACK,eAAe,CAAC,CAAC,CAAC;EAC9D,MAAMM,aAAa,GAAGT,cAAc,CAAC,CAAC,GACjCU,KAAe,IAAK;IACnBH,QAAQ,CAACR,2BAA2B,CAACW,KAAY,CAAC,CAAC;EACrD,CAAC,GACDH,QAAQ;EACZ,MAAMI,mBAAmB,GAAGH,YAAY,CAACI,WAAW,CAClD,kBAAkB,EAClBH,aACF,CAAC;EAED,IAAIL,SAAS,EAAE;IACbH,gBAAgB,CAAC,CAAC,CAACY,cAAc,CAAC,CAAC;EACrC;EAEA,OAAOF,mBAAmB;AAC5B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,qBAAqB,GAChCP,QAAwC,IAChB;EACxB,MAAMC,YAAY,GAAG,IAAIV,kBAAkB,CAACK,eAAe,CAAC,CAAC,CAAC;EAC9D,OAAOK,YAAY,CAACI,WAAW,CAAC,gBAAgB,EAAEL,QAAQ,CAAC;AAC7D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMQ,uBAAuB,GAAIR,QAAoB,IAAK;EAC/D,IAAIF,KAAK,IAAI,CAACL,cAAc,CAAC,CAAC,EAAE;IAC9B,MAAMQ,YAAY,GAAG,IAAIV,kBAAkB,CAACI,YAAY,CAAC,CAAC,CAAC;IAC3D,OAAOM,YAAY,CAACI,WAAW,CAAC,sBAAsB,EAAEL,QAAQ,CAAC;EACnE;EAEA,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMS,mBAAmB,GAC9BT,QAA2C,IACxC;EACH,IAAIF,KAAK,IAAIL,cAAc,CAAC,CAAC,EAAE;IAC7B,MAAMQ,YAAY,GAAG,IAAIV,kBAAkB,CAACI,YAAY,CAAC,CAAC,CAAC;IAC3D,OAAOM,YAAY,CAACI,WAAW,CAAC,yBAAyB,EAAEL,QAAQ,CAAC;EACtE;EAEA,OAAO,IAAI;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","RNIapIosSk2","sync","isEligibleForIntroOffer","groupID","subscriptionStatus","sku","currentEntitlement","latestTransaction","beginRefundRequest","showManageSubscriptions","finishTransaction","transactionIdentifier"],"sourceRoot":"../../../src","sources":["modules/iosSk2.ts"],"mappings":"AAAA,SAAQA,aAAa,QAAO,cAAc;AAY1C,MAAM;EAACC;AAAW,CAAC,GAAGD,aAAa;AAkDnC;AACA;AACA;AACA;AACA,OAAO,MAAME,IAAI,GAAGA,CAAA,KAAqBD,WAAW,CAACC,IAAI,CAAC,CAAC;;AAE3D;AACA;AACA;AACA,OAAO,MAAMC,uBAAuB,GAAIC,OAAe,IACrDH,WAAW,CAACE,uBAAuB,CAACC,OAAO,CAAC;;AAE9C;AACA;AACA;;AAEA,OAAO,MAAMC,kBAAkB,GAAIC,GAAW,IAC5CL,WAAW,CAACI,kBAAkB,CAACC,GAAG,CAAC;;AAErC;AACA;AACA;AACA,OAAO,MAAMC,kBAAkB,GAAID,GAAW,IAC5CL,WAAW,CAACM,kBAAkB,CAACD,GAAG,CAAC;;AAErC;AACA;AACA;AACA,OAAO,MAAME,iBAAiB,GAAIF,GAAW,IAC3CL,WAAW,CAACO,iBAAiB,CAACF,GAAG,CAAC;;AAEpC;AACA;AACA;AACA,OAAO,MAAMG,kBAAkB,GAAIH,GAAW,IAC5CL,WAAW,CAACQ,kBAAkB,CAACH,GAAG,CAAC;;AAErC;AACA;AACA;AACA,OAAO,MAAMI,uBAAuB,GAAGA,CAAA,KACrCT,WAAW,CAACS,uBAAuB,CAAC,CAAC;;AAEvC;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,
|
|
1
|
+
{"version":3,"names":["NativeModules","RNIapIosSk2","sync","isEligibleForIntroOffer","groupID","subscriptionStatus","sku","currentEntitlement","latestTransaction","beginRefundRequest","showManageSubscriptions","finishTransaction","transactionIdentifier"],"sourceRoot":"../../../src","sources":["modules/iosSk2.ts"],"mappings":"AAAA,SAAQA,aAAa,QAAO,cAAc;AAY1C,MAAM;EAACC;AAAW,CAAC,GAAGD,aAAa;AAkDnC;AACA;AACA;AACA;AACA,OAAO,MAAME,IAAI,GAAGA,CAAA,KAAqBD,WAAW,CAACC,IAAI,CAAC,CAAC;;AAE3D;AACA;AACA;AACA,OAAO,MAAMC,uBAAuB,GAAIC,OAAe,IACrDH,WAAW,CAACE,uBAAuB,CAACC,OAAO,CAAC;;AAE9C;AACA;AACA;;AAEA,OAAO,MAAMC,kBAAkB,GAAIC,GAAW,IAC5CL,WAAW,CAACI,kBAAkB,CAACC,GAAG,CAAC;;AAErC;AACA;AACA;AACA,OAAO,MAAMC,kBAAkB,GAAID,GAAW,IAC5CL,WAAW,CAACM,kBAAkB,CAACD,GAAG,CAAC;;AAErC;AACA;AACA;AACA,OAAO,MAAME,iBAAiB,GAAIF,GAAW,IAC3CL,WAAW,CAACO,iBAAiB,CAACF,GAAG,CAAC;;AAEpC;AACA;AACA;AACA,OAAO,MAAMG,kBAAkB,GAAIH,GAAW,IAC5CL,WAAW,CAACQ,kBAAkB,CAACH,GAAG,CAAC;;AAErC;AACA;AACA;AACA,OAAO,MAAMI,uBAAuB,GAAGA,CAAA,KACrCT,WAAW,CAACS,uBAAuB,CAAC,CAAC;;AAEvC;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,GAAIC,qBAA6B,IAC7DX,WAAW,CAACU,iBAAiB,CAACC,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventEmitter.d.ts","sourceRoot":"","sources":["../../../src/eventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAqB,MAAM,cAAc,CAAC;AAErE,OAAO,EAAC,gBAAgB,EAA8B,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"eventEmitter.d.ts","sourceRoot":"","sources":["../../../src/eventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAqB,MAAM,cAAc,CAAC;AAErE,OAAO,EAAC,gBAAgB,EAA8B,MAAM,kBAAkB,CAAC;AAG/E,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,uBAAuB,qBAChB,QAAQ,KAAK,IAAI,wBAkBpC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,qBAAqB,qBACd,aAAa,KAAK,IAAI,KACvC,mBAGF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,uBAAuB,aAAc,MAAM,IAAI,+BAO3D,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,mBAAmB,qBACZ,gBAAgB,KAAK,IAAI,+BAQ5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iosSk2.d.ts","sourceRoot":"","sources":["../../../../src/modules/iosSk2.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"iosSk2.d.ts","sourceRoot":"","sources":["../../../../src/modules/iosSk2.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-iap",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.14.1-rc.1",
|
|
4
4
|
"description": "React Native In App Purchase Module.",
|
|
5
5
|
"repository": "https://github.com/dooboolab-community/react-native-iap",
|
|
6
6
|
"author": "hyochan <dooboolab@gmail.com> (https://github.com/hyochan)",
|
|
@@ -71,6 +71,7 @@
|
|
|
71
71
|
"lint:ci": "yarn lint:tsc && yarn lint:eslint -f ./node_modules/@firmnav/eslint-github-actions-formatter/dist/formatter.js && yarn lint:prettier",
|
|
72
72
|
"lint:prettier": "prettier --write \"**/*.{md,js,jsx,ts,tsx}\"",
|
|
73
73
|
"lint:swift": "swiftlint lint --fix --format --path ios/*.swift --config .swiftlint.yml",
|
|
74
|
+
"lint:kotlin": "ktlint --format",
|
|
74
75
|
"format": "git ls-files -m | xargs yarn prettier --write --ignore-unknown --no-error-on-unmatched-pattern",
|
|
75
76
|
"bootstrap": "yarn example && yarn && yarn example pods",
|
|
76
77
|
"gen:doc": "typedoc",
|
|
@@ -85,8 +86,6 @@
|
|
|
85
86
|
"@jeremybarbet/google-api-types": "1.4.0",
|
|
86
87
|
"@react-native-community/eslint-config": "3.2.0",
|
|
87
88
|
"@release-it/conventional-changelog": "5.1.1",
|
|
88
|
-
"@testing-library/jest-native": "5.4.2",
|
|
89
|
-
"@testing-library/react-native": "12.1.2",
|
|
90
89
|
"@types/jest": "29.5.1",
|
|
91
90
|
"@types/react": "*",
|
|
92
91
|
"@typescript-eslint/eslint-plugin": "5.57.1",
|
|
@@ -102,7 +101,7 @@
|
|
|
102
101
|
"monolinter": "1.0.4",
|
|
103
102
|
"pod-install": "0.1.38",
|
|
104
103
|
"prettier": "2.8.8",
|
|
105
|
-
"react": "
|
|
104
|
+
"react": "18.2.0",
|
|
106
105
|
"react-native": "*",
|
|
107
106
|
"react-native-builder-bob": "0.20.4",
|
|
108
107
|
"release-it": "15.10.3",
|
package/src/eventEmitter.ts
CHANGED
|
@@ -2,13 +2,7 @@ import {EmitterSubscription, NativeEventEmitter} from 'react-native';
|
|
|
2
2
|
|
|
3
3
|
import {TransactionEvent, transactionSk2ToPurchaseMap} from './types/appleSk2';
|
|
4
4
|
import {isIosStorekit2} from './iap';
|
|
5
|
-
import {
|
|
6
|
-
getAndroidModule,
|
|
7
|
-
getIosModule,
|
|
8
|
-
getNativeModule,
|
|
9
|
-
isAndroid,
|
|
10
|
-
isIos,
|
|
11
|
-
} from './internal';
|
|
5
|
+
import { getAndroidModule, getIosModule, getNativeModule, isAndroid, isIos } from './internal';
|
|
12
6
|
import type {PurchaseError} from './purchaseError';
|
|
13
7
|
import type {Purchase} from './types';
|
|
14
8
|
|
package/src/modules/iosSk2.ts
CHANGED
|
@@ -106,6 +106,5 @@ export const showManageSubscriptions = (): Promise<null> =>
|
|
|
106
106
|
/**
|
|
107
107
|
*
|
|
108
108
|
*/
|
|
109
|
-
export const finishTransaction = (
|
|
110
|
-
transactionIdentifier
|
|
111
|
-
): Promise<Boolean> => RNIapIosSk2.finishTransaction(transactionIdentifier);
|
|
109
|
+
export const finishTransaction = (transactionIdentifier: string): Promise<Boolean> =>
|
|
110
|
+
RNIapIosSk2.finishTransaction(transactionIdentifier);
|