react-native-iap 16.0.0 → 16.0.2
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/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +15 -7
- package/ios/HybridRnIap.swift +11 -6
- package/ios/RnIapHelper.swift +33 -1
- package/lib/module/hooks/useIAP.js +27 -9
- package/lib/module/hooks/useIAP.js.map +1 -1
- package/lib/module/index.js +34 -22
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.kepler.js +3 -2
- package/lib/module/index.kepler.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/available-purchases.js +59 -0
- package/lib/module/utils/available-purchases.js.map +1 -0
- package/lib/module/utils/type-bridge.js +56 -6
- package/lib/module/utils/type-bridge.js.map +1 -1
- package/lib/module/vega-adapter.js +13 -7
- package/lib/module/vega-adapter.js.map +1 -1
- package/lib/typescript/src/hooks/useIAP.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/index.kepler.d.ts.map +1 -1
- package/lib/typescript/src/specs/RnIap.nitro.d.ts +2 -0
- package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +11 -0
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/utils/available-purchases.d.ts +8 -0
- package/lib/typescript/src/utils/available-purchases.d.ts.map +1 -0
- package/lib/typescript/src/utils/type-bridge.d.ts.map +1 -1
- package/lib/typescript/src/vega-adapter.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JNitroPurchase.hpp +11 -3
- package/nitrogen/generated/android/c++/JPurchaseAndroid.hpp +11 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchase.kt +14 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseAndroid.kt +14 -4
- package/nitrogen/generated/ios/swift/NitroPurchase.swift +75 -1
- package/nitrogen/generated/ios/swift/PurchaseAndroid.swift +75 -1
- package/nitrogen/generated/shared/c++/NitroPurchase.hpp +10 -2
- package/nitrogen/generated/shared/c++/PurchaseAndroid.hpp +10 -2
- package/openiap-versions.json +3 -3
- package/package.json +1 -1
- package/src/hooks/useIAP.ts +27 -10
- package/src/index.kepler.ts +5 -9
- package/src/index.ts +41 -45
- package/src/specs/RnIap.nitro.ts +2 -0
- package/src/types.ts +11 -0
- package/src/utils/available-purchases.ts +73 -0
- package/src/utils/type-bridge.ts +84 -9
- package/src/vega-adapter.ts +24 -3
package/src/vega-adapter.ts
CHANGED
|
@@ -631,6 +631,14 @@ function isVegaParserError(error: unknown): boolean {
|
|
|
631
631
|
);
|
|
632
632
|
}
|
|
633
633
|
|
|
634
|
+
function malformedVegaResponse(error: unknown, operation: string): Error {
|
|
635
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
636
|
+
return createVegaError(
|
|
637
|
+
ErrorCode.BillingResponseJsonParseError,
|
|
638
|
+
`${operation} returned a malformed response: ${detail}`,
|
|
639
|
+
);
|
|
640
|
+
}
|
|
641
|
+
|
|
634
642
|
function createPricingPhase(product: VegaProduct) {
|
|
635
643
|
return {
|
|
636
644
|
billingCycleCount: 0,
|
|
@@ -693,6 +701,7 @@ function mapReceipt(
|
|
|
693
701
|
receipt: VegaReceipt,
|
|
694
702
|
fallbackProductType?: unknown,
|
|
695
703
|
productIdOverride?: string,
|
|
704
|
+
userData?: VegaUserData | null,
|
|
696
705
|
): NitroPurchase {
|
|
697
706
|
const receiptId = receipt.receiptId ?? '';
|
|
698
707
|
const productId = productIdOverride ?? getReceiptSku(receipt);
|
|
@@ -729,6 +738,8 @@ function mapReceipt(
|
|
|
729
738
|
receipt.isDeferred && deferredSku
|
|
730
739
|
? {products: [deferredSku], purchaseToken: receiptId}
|
|
731
740
|
: null,
|
|
741
|
+
userIdAmazon: nonBlankString(userData?.userId),
|
|
742
|
+
userMarketplaceAmazon: nonBlankString(userData?.marketplace),
|
|
732
743
|
};
|
|
733
744
|
}
|
|
734
745
|
|
|
@@ -934,7 +945,7 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
|
|
|
934
945
|
response = await service.getPurchaseUpdates({reset});
|
|
935
946
|
} catch (error) {
|
|
936
947
|
if (isVegaParserError(error)) {
|
|
937
|
-
|
|
948
|
+
throw malformedVegaResponse(error, 'Amazon Vega purchase updates');
|
|
938
949
|
}
|
|
939
950
|
throw error;
|
|
940
951
|
}
|
|
@@ -1013,7 +1024,10 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
|
|
|
1013
1024
|
);
|
|
1014
1025
|
} catch (error) {
|
|
1015
1026
|
if (isVegaParserError(error)) {
|
|
1016
|
-
|
|
1027
|
+
throw malformedVegaResponse(
|
|
1028
|
+
error,
|
|
1029
|
+
'Amazon Vega purchase product metadata',
|
|
1030
|
+
);
|
|
1017
1031
|
}
|
|
1018
1032
|
throw error;
|
|
1019
1033
|
}
|
|
@@ -1045,6 +1059,7 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
|
|
|
1045
1059
|
receipt,
|
|
1046
1060
|
getCachedProductType(receipt, productTypesBySku),
|
|
1047
1061
|
resolveReceiptProductId(receipt),
|
|
1062
|
+
cachedUserData,
|
|
1048
1063
|
),
|
|
1049
1064
|
);
|
|
1050
1065
|
};
|
|
@@ -1133,6 +1148,7 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
|
|
|
1133
1148
|
getCachedProductType(receipt, productTypesBySku, sku) ??
|
|
1134
1149
|
(matchesRequestedSku ? fallbackProductType : undefined),
|
|
1135
1150
|
resolveReceiptProductId(receipt, matchesRequestedSku ? sku : undefined),
|
|
1151
|
+
cachedUserData,
|
|
1136
1152
|
);
|
|
1137
1153
|
if (matchesRequestedSku) {
|
|
1138
1154
|
requestedPurchases.push(purchase);
|
|
@@ -1481,7 +1497,12 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
|
|
|
1481
1497
|
if (!response.receipt) return [];
|
|
1482
1498
|
|
|
1483
1499
|
cachedUserData = response.userData ?? cachedUserData;
|
|
1484
|
-
const purchase = mapReceipt(
|
|
1500
|
+
const purchase = mapReceipt(
|
|
1501
|
+
response.receipt,
|
|
1502
|
+
fallbackProductType,
|
|
1503
|
+
sku,
|
|
1504
|
+
response.userData ?? cachedUserData,
|
|
1505
|
+
);
|
|
1485
1506
|
emitPurchaseUpdated(purchase);
|
|
1486
1507
|
return [purchase];
|
|
1487
1508
|
} catch (error) {
|