react-native-iap 14.3.2 → 14.3.3
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/lib/module/helpers/subscription.js +2 -2
- package/lib/module/helpers/subscription.js.map +1 -1
- package/lib/module/hooks/useIAP.js +14 -8
- package/lib/module/hooks/useIAP.js.map +1 -1
- package/lib/module/index.js +76 -23
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +90 -190
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/error.js +4 -4
- package/lib/module/utils/error.js.map +1 -1
- package/lib/module/utils/errorMapping.js +34 -10
- package/lib/module/utils/errorMapping.js.map +1 -1
- package/lib/module/utils/type-bridge.js +217 -173
- package/lib/module/utils/type-bridge.js.map +1 -1
- package/lib/typescript/src/helpers/subscription.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useIAP.d.ts +8 -11
- package/lib/typescript/src/hooks/useIAP.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +11 -10
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/RnIap.nitro.d.ts +2 -2
- package/lib/typescript/src/types.d.ts +606 -518
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/utils/errorMapping.d.ts +2 -1
- package/lib/typescript/src/utils/errorMapping.d.ts.map +1 -1
- package/lib/typescript/src/utils/type-bridge.d.ts +13 -14
- package/lib/typescript/src/utils/type-bridge.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +4 -4
- package/nitrogen/generated/android/c++/{JNitroAndroidReceiptValidationOptions.hpp → JNitroReceiptValidationAndroidOptions.hpp} +9 -9
- package/nitrogen/generated/android/c++/JNitroReceiptValidationParams.hpp +5 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/{NitroAndroidReceiptValidationOptions.kt → NitroReceiptValidationAndroidOptions.kt} +3 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationParams.kt +1 -1
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +10 -10
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +3 -3
- package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +3 -3
- package/nitrogen/generated/ios/swift/{NitroAndroidReceiptValidationOptions.swift → NitroReceiptValidationAndroidOptions.swift} +5 -5
- package/nitrogen/generated/ios/swift/NitroReceiptValidationParams.swift +9 -9
- package/nitrogen/generated/shared/c++/{NitroAndroidReceiptValidationOptions.hpp → NitroReceiptValidationAndroidOptions.hpp} +10 -10
- package/nitrogen/generated/shared/c++/NitroReceiptValidationParams.hpp +8 -8
- package/package.json +1 -1
- package/src/helpers/subscription.ts +8 -9
- package/src/hooks/useIAP.ts +52 -47
- package/src/index.ts +123 -35
- package/src/specs/RnIap.nitro.ts +2 -2
- package/src/types.ts +651 -616
- package/src/utils/error.ts +4 -4
- package/src/utils/errorMapping.ts +47 -19
- package/src/utils/type-bridge.ts +308 -204
|
@@ -3,206 +3,255 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* Type Bridge Utilities
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* Purpose: Prevent type fragmentation between native (Nitro) and TypeScript sides
|
|
6
|
+
* Converts the loose Nitro shapes coming from native into the strongly typed
|
|
7
|
+
* structures that our generated TypeScript types expect.
|
|
10
8
|
*/
|
|
11
9
|
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
import { Platform as IapPlatform, PaymentModeIOS, ProductType, ProductTypeIOS, PurchaseState, SubscriptionPeriodIOS } from "../types.js";
|
|
11
|
+
const PLATFORM_IOS = 'ios';
|
|
12
|
+
const PRODUCT_TYPE_SUBS = 'subs';
|
|
13
|
+
const PURCHASE_STATE_DEFERRED = 'deferred';
|
|
14
|
+
const PURCHASE_STATE_FAILED = 'failed';
|
|
15
|
+
const PURCHASE_STATE_PENDING = 'pending';
|
|
16
|
+
const PURCHASE_STATE_PURCHASED = 'purchased';
|
|
17
|
+
const PURCHASE_STATE_RESTORED = 'restored';
|
|
18
|
+
const DEFAULT_JSON_REPR = '{}';
|
|
19
|
+
function normalizePlatform(value) {
|
|
20
|
+
return value?.toLowerCase() === PLATFORM_IOS ? IapPlatform.Ios : IapPlatform.Android;
|
|
21
|
+
}
|
|
22
|
+
function normalizeProductType(value) {
|
|
23
|
+
return value?.toLowerCase() === PRODUCT_TYPE_SUBS ? ProductType.Subs : ProductType.InApp;
|
|
24
|
+
}
|
|
25
|
+
function normalizeProductTypeIOS(value) {
|
|
26
|
+
switch ((value ?? '').toLowerCase()) {
|
|
27
|
+
case 'consumable':
|
|
28
|
+
return ProductTypeIOS.Consumable;
|
|
29
|
+
case 'nonconsumable':
|
|
30
|
+
case 'non_consumable':
|
|
31
|
+
case 'non-consumable':
|
|
32
|
+
return ProductTypeIOS.NonConsumable;
|
|
33
|
+
case 'autorenewablesubscription':
|
|
34
|
+
case 'auto_renewable_subscription':
|
|
35
|
+
case 'autorenewable':
|
|
36
|
+
return ProductTypeIOS.AutoRenewableSubscription;
|
|
37
|
+
case 'nonrenewingsubscription':
|
|
38
|
+
case 'non_renewing_subscription':
|
|
39
|
+
return ProductTypeIOS.NonRenewingSubscription;
|
|
40
|
+
default:
|
|
41
|
+
if (value) {
|
|
42
|
+
console.warn(`[react-native-iap] Unknown iOS product type "${value}", defaulting to NonConsumable.`);
|
|
43
|
+
}
|
|
44
|
+
return ProductTypeIOS.NonConsumable;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function normalizePaymentMode(value) {
|
|
48
|
+
switch ((value ?? '').toUpperCase()) {
|
|
49
|
+
case 'FREE_TRIAL':
|
|
50
|
+
case 'FREETRIAL':
|
|
51
|
+
return PaymentModeIOS.FreeTrial;
|
|
52
|
+
case 'PAY_AS_YOU_GO':
|
|
53
|
+
case 'PAYASYOUGO':
|
|
54
|
+
return PaymentModeIOS.PayAsYouGo;
|
|
55
|
+
case 'PAY_UP_FRONT':
|
|
56
|
+
case 'PAYUPFRONT':
|
|
57
|
+
return PaymentModeIOS.PayUpFront;
|
|
58
|
+
default:
|
|
59
|
+
return PaymentModeIOS.Empty;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function normalizeSubscriptionPeriod(value) {
|
|
63
|
+
switch ((value ?? '').toUpperCase()) {
|
|
64
|
+
case 'DAY':
|
|
65
|
+
return SubscriptionPeriodIOS.Day;
|
|
66
|
+
case 'WEEK':
|
|
67
|
+
return SubscriptionPeriodIOS.Week;
|
|
68
|
+
case 'MONTH':
|
|
69
|
+
return SubscriptionPeriodIOS.Month;
|
|
70
|
+
case 'YEAR':
|
|
71
|
+
return SubscriptionPeriodIOS.Year;
|
|
72
|
+
default:
|
|
73
|
+
return SubscriptionPeriodIOS.Empty;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function normalizePurchaseState(state) {
|
|
77
|
+
if (typeof state === 'string') {
|
|
78
|
+
switch (state.toLowerCase()) {
|
|
79
|
+
case PURCHASE_STATE_PURCHASED:
|
|
80
|
+
return PurchaseState.Purchased;
|
|
81
|
+
case PURCHASE_STATE_PENDING:
|
|
82
|
+
return PurchaseState.Pending;
|
|
83
|
+
case PURCHASE_STATE_FAILED:
|
|
84
|
+
return PurchaseState.Failed;
|
|
85
|
+
case PURCHASE_STATE_RESTORED:
|
|
86
|
+
return PurchaseState.Restored;
|
|
87
|
+
case PURCHASE_STATE_DEFERRED:
|
|
88
|
+
return PurchaseState.Deferred;
|
|
89
|
+
default:
|
|
90
|
+
return PurchaseState.Unknown;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (typeof state === 'number') {
|
|
94
|
+
switch (state) {
|
|
95
|
+
case 1:
|
|
96
|
+
return PurchaseState.Purchased;
|
|
97
|
+
case 2:
|
|
98
|
+
return PurchaseState.Pending;
|
|
99
|
+
default:
|
|
100
|
+
return PurchaseState.Unknown;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return PurchaseState.Unknown;
|
|
104
|
+
}
|
|
105
|
+
function toNullableString(value) {
|
|
106
|
+
if (value == null) return null;
|
|
107
|
+
return String(value);
|
|
108
|
+
}
|
|
109
|
+
function toNullableNumber(value) {
|
|
110
|
+
if (value == null) return null;
|
|
111
|
+
const num = Number(value);
|
|
112
|
+
return Number.isFinite(num) ? num : null;
|
|
113
|
+
}
|
|
114
|
+
function toNullableBoolean(value) {
|
|
115
|
+
if (value == null) return null;
|
|
116
|
+
if (typeof value === 'boolean') return value;
|
|
117
|
+
if (typeof value === 'number') return value !== 0;
|
|
118
|
+
if (typeof value === 'string') return value.toLowerCase() === 'true';
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
function parseSubscriptionOffers(value) {
|
|
122
|
+
if (!value) return undefined;
|
|
123
|
+
try {
|
|
124
|
+
const parsed = JSON.parse(value);
|
|
125
|
+
if (Array.isArray(parsed)) {
|
|
126
|
+
return parsed;
|
|
127
|
+
}
|
|
128
|
+
} catch (error) {
|
|
129
|
+
console.warn('Failed to parse subscriptionOfferDetailsAndroid:', error);
|
|
130
|
+
}
|
|
131
|
+
return undefined;
|
|
132
|
+
}
|
|
18
133
|
|
|
19
134
|
/**
|
|
20
|
-
* Convert NitroProduct (from native) to
|
|
21
|
-
* This ensures all fields are properly mapped and accessible
|
|
135
|
+
* Convert NitroProduct (from native) to generated Product type
|
|
22
136
|
*/
|
|
23
137
|
export function convertNitroProductToProduct(nitroProduct) {
|
|
24
|
-
|
|
25
|
-
const
|
|
138
|
+
const platform = normalizePlatform(nitroProduct.platform);
|
|
139
|
+
const type = normalizeProductType(nitroProduct.type);
|
|
140
|
+
const base = {
|
|
26
141
|
id: nitroProduct.id,
|
|
27
142
|
title: nitroProduct.title,
|
|
28
143
|
description: nitroProduct.description,
|
|
29
|
-
type
|
|
30
|
-
displayName: nitroProduct.displayName,
|
|
31
|
-
displayPrice: nitroProduct.displayPrice
|
|
32
|
-
currency: nitroProduct.currency
|
|
33
|
-
price: nitroProduct.price,
|
|
34
|
-
|
|
144
|
+
type,
|
|
145
|
+
displayName: nitroProduct.displayName ?? null,
|
|
146
|
+
displayPrice: nitroProduct.displayPrice ?? '',
|
|
147
|
+
currency: nitroProduct.currency ?? '',
|
|
148
|
+
price: toNullableNumber(nitroProduct.price),
|
|
149
|
+
debugDescription: null,
|
|
150
|
+
platform
|
|
35
151
|
};
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
iosProduct.introductoryPriceIOS = nitroProduct.introductoryPriceIOS;
|
|
64
|
-
iosProduct.introductoryPriceAsAmountIOS = nitroProduct.introductoryPriceAsAmountIOS;
|
|
65
|
-
iosProduct.introductoryPricePaymentModeIOS = nitroProduct.introductoryPricePaymentModeIOS;
|
|
66
|
-
iosProduct.introductoryPriceNumberOfPeriodsIOS = nitroProduct.introductoryPriceNumberOfPeriodsIOS;
|
|
67
|
-
iosProduct.introductoryPriceSubscriptionPeriodIOS = nitroProduct.introductoryPriceSubscriptionPeriodIOS;
|
|
68
|
-
} else if (Platform.OS === 'android') {
|
|
69
|
-
// Map Android fields from Nitro to TypeScript types
|
|
70
|
-
const androidProduct = product; // Temporarily cast to access Android fields
|
|
71
|
-
androidProduct.originalPrice = nitroProduct.originalPriceAndroid;
|
|
72
|
-
androidProduct.originalPriceAmountMicros = nitroProduct.originalPriceAmountMicrosAndroid;
|
|
73
|
-
androidProduct.introductoryPriceValue = nitroProduct.introductoryPriceValueAndroid;
|
|
74
|
-
androidProduct.introductoryPriceCycles = nitroProduct.introductoryPriceCyclesAndroid;
|
|
75
|
-
androidProduct.introductoryPricePeriod = nitroProduct.introductoryPricePeriodAndroid;
|
|
76
|
-
androidProduct.subscriptionPeriod = nitroProduct.subscriptionPeriodAndroid;
|
|
77
|
-
androidProduct.freeTrialPeriod = nitroProduct.freeTrialPeriodAndroid;
|
|
78
|
-
|
|
79
|
-
// Map subscription offer details (parse from JSON string)
|
|
80
|
-
if (nitroProduct.subscriptionOfferDetailsAndroid) {
|
|
81
|
-
try {
|
|
82
|
-
androidProduct.subscriptionOfferDetailsAndroid = JSON.parse(nitroProduct.subscriptionOfferDetailsAndroid);
|
|
83
|
-
} catch (e) {
|
|
84
|
-
console.warn('Failed to parse subscription offer details:', e);
|
|
85
|
-
androidProduct.subscriptionOfferDetailsAndroid = null;
|
|
86
|
-
}
|
|
152
|
+
if (platform === IapPlatform.Ios) {
|
|
153
|
+
const iosProduct = {
|
|
154
|
+
...base,
|
|
155
|
+
displayNameIOS: nitroProduct.displayName ?? nitroProduct.title,
|
|
156
|
+
isFamilyShareableIOS: Boolean(nitroProduct.isFamilyShareableIOS ?? false),
|
|
157
|
+
jsonRepresentationIOS: nitroProduct.jsonRepresentationIOS ?? DEFAULT_JSON_REPR,
|
|
158
|
+
typeIOS: normalizeProductTypeIOS(nitroProduct.typeIOS),
|
|
159
|
+
subscriptionInfoIOS: undefined
|
|
160
|
+
};
|
|
161
|
+
iosProduct.introductoryPriceAsAmountIOS = toNullableString(nitroProduct.introductoryPriceAsAmountIOS);
|
|
162
|
+
iosProduct.introductoryPriceIOS = toNullableString(nitroProduct.introductoryPriceIOS);
|
|
163
|
+
iosProduct.introductoryPriceNumberOfPeriodsIOS = toNullableString(nitroProduct.introductoryPriceNumberOfPeriodsIOS);
|
|
164
|
+
iosProduct.introductoryPricePaymentModeIOS = normalizePaymentMode(nitroProduct.introductoryPricePaymentModeIOS);
|
|
165
|
+
iosProduct.introductoryPriceSubscriptionPeriodIOS = normalizeSubscriptionPeriod(nitroProduct.introductoryPriceSubscriptionPeriodIOS);
|
|
166
|
+
iosProduct.subscriptionPeriodNumberIOS = toNullableString(nitroProduct.subscriptionPeriodNumberIOS);
|
|
167
|
+
iosProduct.subscriptionPeriodUnitIOS = normalizeSubscriptionPeriod(nitroProduct.subscriptionPeriodUnitIOS);
|
|
168
|
+
return iosProduct;
|
|
169
|
+
}
|
|
170
|
+
const androidProduct = {
|
|
171
|
+
...base,
|
|
172
|
+
nameAndroid: nitroProduct.nameAndroid ?? nitroProduct.title,
|
|
173
|
+
oneTimePurchaseOfferDetailsAndroid: nitroProduct.oneTimePurchaseOfferDetailsAndroid,
|
|
174
|
+
subscriptionOfferDetailsAndroid: parseSubscriptionOffers(nitroProduct.subscriptionOfferDetailsAndroid)
|
|
175
|
+
};
|
|
176
|
+
if (type === ProductType.Subs) {
|
|
177
|
+
if (!Array.isArray(androidProduct.subscriptionOfferDetailsAndroid)) {
|
|
178
|
+
androidProduct.subscriptionOfferDetailsAndroid = [];
|
|
87
179
|
}
|
|
88
|
-
|
|
89
|
-
// Create flattened offer fields for easier access in example code
|
|
90
|
-
androidProduct.oneTimePurchaseOfferFormattedPrice = nitroProduct.displayPrice;
|
|
91
|
-
androidProduct.oneTimePurchaseOfferPriceAmountMicros = nitroProduct.originalPriceAmountMicrosAndroid;
|
|
92
|
-
androidProduct.oneTimePurchaseOfferPriceCurrencyCode = nitroProduct.currency;
|
|
93
180
|
}
|
|
94
|
-
return
|
|
181
|
+
return androidProduct;
|
|
95
182
|
}
|
|
96
183
|
|
|
97
|
-
// Note: Use nitroProducts.map(convertNitroProductToProduct) instead of a separate function
|
|
98
|
-
|
|
99
184
|
/**
|
|
100
|
-
* Convert Product to
|
|
185
|
+
* Convert Product to ProductSubscription (type-safe casting helper)
|
|
101
186
|
*/
|
|
102
|
-
export function
|
|
103
|
-
if (product.type !==
|
|
104
|
-
console.warn('Converting non-subscription product to
|
|
187
|
+
export function convertProductToProductSubscription(product) {
|
|
188
|
+
if (product.type !== ProductType.Subs) {
|
|
189
|
+
console.warn('Converting non-subscription product to ProductSubscription:', product.id);
|
|
105
190
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
...product,
|
|
109
|
-
type: 'subs'
|
|
191
|
+
const output = {
|
|
192
|
+
...product
|
|
110
193
|
};
|
|
194
|
+
if (output.platform === IapPlatform.Android) {
|
|
195
|
+
if (!Array.isArray(output.subscriptionOfferDetailsAndroid)) {
|
|
196
|
+
output.subscriptionOfferDetailsAndroid = [];
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return output;
|
|
111
200
|
}
|
|
112
201
|
|
|
113
|
-
// ============================================================================
|
|
114
|
-
// PURCHASE CONVERSION
|
|
115
|
-
// ============================================================================
|
|
116
|
-
|
|
117
202
|
/**
|
|
118
|
-
* Convert NitroPurchase (from native) to
|
|
203
|
+
* Convert NitroPurchase (from native) to generated Purchase type
|
|
119
204
|
*/
|
|
120
205
|
export function convertNitroPurchaseToPurchase(nitroPurchase) {
|
|
121
|
-
|
|
206
|
+
const platform = normalizePlatform(nitroPurchase.platform);
|
|
122
207
|
const purchase = {
|
|
123
208
|
id: nitroPurchase.id,
|
|
124
209
|
productId: nitroPurchase.productId,
|
|
125
|
-
transactionDate: nitroPurchase.transactionDate,
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
purchaseState: nitroPurchase.purchaseState || PurchaseState.unknown,
|
|
132
|
-
isAutoRenewing: nitroPurchase.isAutoRenewing || false
|
|
210
|
+
transactionDate: nitroPurchase.transactionDate ?? Date.now(),
|
|
211
|
+
purchaseToken: nitroPurchase.purchaseToken ?? nitroPurchase.purchaseTokenAndroid ?? null,
|
|
212
|
+
platform,
|
|
213
|
+
quantity: nitroPurchase.quantity ?? 1,
|
|
214
|
+
purchaseState: normalizePurchaseState(nitroPurchase.purchaseState ?? nitroPurchase.purchaseStateAndroid),
|
|
215
|
+
isAutoRenewing: Boolean(nitroPurchase.isAutoRenewing)
|
|
133
216
|
};
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
217
|
+
if (purchase.purchaseState === PurchaseState.Unknown && nitroPurchase.purchaseStateAndroid != null) {
|
|
218
|
+
purchase.purchaseState = normalizePurchaseState(nitroPurchase.purchaseStateAndroid);
|
|
219
|
+
}
|
|
220
|
+
if (platform === IapPlatform.Ios) {
|
|
137
221
|
const iosPurchase = purchase;
|
|
138
|
-
iosPurchase.quantityIOS = nitroPurchase.quantityIOS;
|
|
139
|
-
iosPurchase.originalTransactionDateIOS = nitroPurchase.originalTransactionDateIOS;
|
|
140
|
-
iosPurchase.originalTransactionIdentifierIOS = nitroPurchase.originalTransactionIdentifierIOS;
|
|
141
|
-
iosPurchase.appAccountToken = nitroPurchase.appAccountToken;
|
|
142
|
-
|
|
143
|
-
if (typeof nitroPurchase.quantityIOS === 'number') {
|
|
144
|
-
purchase.quantity = nitroPurchase.quantityIOS;
|
|
145
|
-
}
|
|
146
|
-
} else if (Platform.OS === 'android') {
|
|
147
|
-
const androidPurchase = purchase;
|
|
148
|
-
androidPurchase.purchaseTokenAndroid = nitroPurchase.purchaseTokenAndroid;
|
|
149
|
-
androidPurchase.dataAndroid = nitroPurchase.dataAndroid;
|
|
150
|
-
androidPurchase.signatureAndroid = nitroPurchase.signatureAndroid;
|
|
151
|
-
// Support both old and new field names for backward compatibility
|
|
152
|
-
androidPurchase.autoRenewingAndroid = nitroPurchase.autoRenewingAndroid ?? nitroPurchase.isAutoRenewing;
|
|
153
|
-
// no longer surface purchaseStateAndroid on TS side
|
|
154
|
-
androidPurchase.isAcknowledgedAndroid = nitroPurchase.isAcknowledgedAndroid;
|
|
155
|
-
androidPurchase.packageNameAndroid = nitroPurchase.packageNameAndroid;
|
|
156
|
-
androidPurchase.obfuscatedAccountIdAndroid = nitroPurchase.obfuscatedAccountIdAndroid;
|
|
157
|
-
androidPurchase.obfuscatedProfileIdAndroid = nitroPurchase.obfuscatedProfileIdAndroid;
|
|
158
|
-
|
|
159
|
-
// Use the common isAutoRenewing field from NitroPurchase
|
|
160
|
-
purchase.isAutoRenewing = nitroPurchase.isAutoRenewing;
|
|
161
|
-
|
|
162
|
-
// Map numeric Android purchase state to common PurchaseState
|
|
163
|
-
switch (nitroPurchase.purchaseStateAndroid) {
|
|
164
|
-
case 1:
|
|
165
|
-
purchase.purchaseState = PurchaseState.purchased;
|
|
166
|
-
break;
|
|
167
|
-
case 2:
|
|
168
|
-
purchase.purchaseState = PurchaseState.pending;
|
|
169
|
-
break;
|
|
170
|
-
case 0:
|
|
171
|
-
default:
|
|
172
|
-
purchase.purchaseState = PurchaseState.unknown;
|
|
173
|
-
break;
|
|
174
|
-
}
|
|
222
|
+
iosPurchase.quantityIOS = toNullableNumber(nitroPurchase.quantityIOS);
|
|
223
|
+
iosPurchase.originalTransactionDateIOS = toNullableNumber(nitroPurchase.originalTransactionDateIOS);
|
|
224
|
+
iosPurchase.originalTransactionIdentifierIOS = toNullableString(nitroPurchase.originalTransactionIdentifierIOS);
|
|
225
|
+
iosPurchase.appAccountToken = toNullableString(nitroPurchase.appAccountToken);
|
|
226
|
+
return iosPurchase;
|
|
175
227
|
}
|
|
176
|
-
|
|
228
|
+
const androidPurchase = purchase;
|
|
229
|
+
androidPurchase.autoRenewingAndroid = toNullableBoolean(nitroPurchase.autoRenewingAndroid ?? nitroPurchase.isAutoRenewing);
|
|
230
|
+
androidPurchase.dataAndroid = toNullableString(nitroPurchase.dataAndroid);
|
|
231
|
+
androidPurchase.signatureAndroid = toNullableString(nitroPurchase.signatureAndroid);
|
|
232
|
+
androidPurchase.isAcknowledgedAndroid = toNullableBoolean(nitroPurchase.isAcknowledgedAndroid);
|
|
233
|
+
androidPurchase.packageNameAndroid = toNullableString(nitroPurchase.packageNameAndroid);
|
|
234
|
+
androidPurchase.obfuscatedAccountIdAndroid = toNullableString(nitroPurchase.obfuscatedAccountIdAndroid);
|
|
235
|
+
androidPurchase.obfuscatedProfileIdAndroid = toNullableString(nitroPurchase.obfuscatedProfileIdAndroid);
|
|
236
|
+
return androidPurchase;
|
|
177
237
|
}
|
|
178
238
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
// SUBSCRIPTION STATUS CONVERSION (iOS)
|
|
183
|
-
// ============================================================================
|
|
184
|
-
|
|
239
|
+
/**
|
|
240
|
+
* Convert Nitro subscription status (iOS) to generated type
|
|
241
|
+
*/
|
|
185
242
|
export function convertNitroSubscriptionStatusToSubscriptionStatusIOS(nitro) {
|
|
186
243
|
return {
|
|
187
|
-
state: nitro.state,
|
|
188
|
-
platform: 'ios',
|
|
244
|
+
state: String(nitro.state ?? ''),
|
|
189
245
|
renewalInfo: nitro.renewalInfo ? {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
gracePeriodExpirationDate: nitro.renewalInfo.gracePeriodExpirationDate,
|
|
194
|
-
currentProductID: nitro.renewalInfo.currentProductID,
|
|
195
|
-
platform: 'ios'
|
|
246
|
+
autoRenewPreference: toNullableString(nitro.renewalInfo.autoRenewPreference),
|
|
247
|
+
jsonRepresentation: JSON.stringify(nitro.renewalInfo),
|
|
248
|
+
willAutoRenew: Boolean(nitro.renewalInfo.autoRenewStatus)
|
|
196
249
|
} : undefined
|
|
197
250
|
};
|
|
198
251
|
}
|
|
199
252
|
|
|
200
|
-
// ============================================================================
|
|
201
|
-
// TYPE VALIDATION
|
|
202
|
-
// ============================================================================
|
|
203
|
-
|
|
204
253
|
/**
|
|
205
|
-
* Validate that a NitroProduct has
|
|
254
|
+
* Validate that a NitroProduct has the expected shape
|
|
206
255
|
*/
|
|
207
256
|
export function validateNitroProduct(nitroProduct) {
|
|
208
257
|
if (!nitroProduct || typeof nitroProduct !== 'object') {
|
|
@@ -219,7 +268,7 @@ export function validateNitroProduct(nitroProduct) {
|
|
|
219
268
|
}
|
|
220
269
|
|
|
221
270
|
/**
|
|
222
|
-
* Validate that a NitroPurchase has
|
|
271
|
+
* Validate that a NitroPurchase has the expected shape
|
|
223
272
|
*/
|
|
224
273
|
export function validateNitroPurchase(nitroPurchase) {
|
|
225
274
|
if (!nitroPurchase || typeof nitroPurchase !== 'object') {
|
|
@@ -235,33 +284,28 @@ export function validateNitroPurchase(nitroPurchase) {
|
|
|
235
284
|
return true;
|
|
236
285
|
}
|
|
237
286
|
|
|
238
|
-
// ============================================================================
|
|
239
|
-
// TYPE SYNCHRONIZATION HELPERS
|
|
240
|
-
// ============================================================================
|
|
241
|
-
|
|
242
287
|
/**
|
|
243
|
-
*
|
|
244
|
-
* This function can be run in development to detect type mismatches
|
|
288
|
+
* Development helper to check that type conversions stay valid
|
|
245
289
|
*/
|
|
246
290
|
export function checkTypeSynchronization() {
|
|
247
291
|
const issues = [];
|
|
248
292
|
try {
|
|
249
|
-
// Simple test: can we convert between types?
|
|
250
293
|
const testNitroProduct = {
|
|
251
294
|
id: 'test',
|
|
252
295
|
title: 'Test',
|
|
253
|
-
description: 'Test',
|
|
296
|
+
description: 'Test product',
|
|
254
297
|
type: 'inapp',
|
|
255
|
-
platform:
|
|
298
|
+
platform: PLATFORM_IOS,
|
|
256
299
|
displayPrice: '$1.00',
|
|
257
|
-
currency: 'USD'
|
|
300
|
+
currency: 'USD',
|
|
301
|
+
price: 1
|
|
258
302
|
};
|
|
259
303
|
const converted = convertNitroProductToProduct(testNitroProduct);
|
|
260
304
|
if (!converted.id || !converted.title) {
|
|
261
305
|
issues.push('Type conversion failed');
|
|
262
306
|
}
|
|
263
307
|
} catch (error) {
|
|
264
|
-
issues.push(`Type conversion error: ${error}`);
|
|
308
|
+
issues.push(`Type conversion error: ${String(error)}`);
|
|
265
309
|
}
|
|
266
310
|
return {
|
|
267
311
|
isSync: issues.length === 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PurchaseState","ProductTypeIOS","Platform","convertNitroProductToProduct","nitroProduct","product","id","title","description","type","displayName","displayPrice","currency","price","platform","OS","iosProduct","isFamilyShareable","isFamilyShareableIOS","jsonRepresentation","jsonRepresentationIOS","typeIOSValue","typeIOS","consumable","nonConsumable","autoRenewableSubscription","nonRenewingSubscription","undefined","subscriptionPeriodUnitIOS","subscriptionPeriodNumberIOS","introductoryPriceIOS","introductoryPriceAsAmountIOS","introductoryPricePaymentModeIOS","introductoryPriceNumberOfPeriodsIOS","introductoryPriceSubscriptionPeriodIOS","androidProduct","originalPrice","originalPriceAndroid","originalPriceAmountMicros","originalPriceAmountMicrosAndroid","introductoryPriceValue","introductoryPriceValueAndroid","introductoryPriceCycles","introductoryPriceCyclesAndroid","introductoryPricePeriod","introductoryPricePeriodAndroid","subscriptionPeriod","subscriptionPeriodAndroid","freeTrialPeriod","freeTrialPeriodAndroid","subscriptionOfferDetailsAndroid","JSON","parse","e","console","warn","oneTimePurchaseOfferFormattedPrice","oneTimePurchaseOfferPriceAmountMicros","oneTimePurchaseOfferPriceCurrencyCode","convertProductToSubscriptionProduct","convertNitroPurchaseToPurchase","nitroPurchase","purchase","productId","transactionDate","purchaseToken","quantity","purchaseState","unknown","isAutoRenewing","iosPurchase","quantityIOS","originalTransactionDateIOS","originalTransactionIdentifierIOS","appAccountToken","androidPurchase","purchaseTokenAndroid","dataAndroid","signatureAndroid","autoRenewingAndroid","isAcknowledgedAndroid","packageNameAndroid","obfuscatedAccountIdAndroid","obfuscatedProfileIdAndroid","purchaseStateAndroid","purchased","pending","convertNitroSubscriptionStatusToSubscriptionStatusIOS","nitro","state","renewalInfo","autoRenewStatus","autoRenewPreference","expirationReason","gracePeriodExpirationDate","currentProductID","validateNitroProduct","required","field","error","validateNitroPurchase","checkTypeSynchronization","issues","testNitroProduct","converted","push","isSync","length"],"sourceRoot":"../../../src","sources":["utils/type-bridge.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Platform","IapPlatform","PaymentModeIOS","ProductType","ProductTypeIOS","PurchaseState","SubscriptionPeriodIOS","PLATFORM_IOS","PRODUCT_TYPE_SUBS","PURCHASE_STATE_DEFERRED","PURCHASE_STATE_FAILED","PURCHASE_STATE_PENDING","PURCHASE_STATE_PURCHASED","PURCHASE_STATE_RESTORED","DEFAULT_JSON_REPR","normalizePlatform","value","toLowerCase","Ios","Android","normalizeProductType","Subs","InApp","normalizeProductTypeIOS","Consumable","NonConsumable","AutoRenewableSubscription","NonRenewingSubscription","console","warn","normalizePaymentMode","toUpperCase","FreeTrial","PayAsYouGo","PayUpFront","Empty","normalizeSubscriptionPeriod","Day","Week","Month","Year","normalizePurchaseState","state","Purchased","Pending","Failed","Restored","Deferred","Unknown","toNullableString","String","toNullableNumber","num","Number","isFinite","toNullableBoolean","parseSubscriptionOffers","undefined","parsed","JSON","parse","Array","isArray","error","convertNitroProductToProduct","nitroProduct","platform","type","base","id","title","description","displayName","displayPrice","currency","price","debugDescription","iosProduct","displayNameIOS","isFamilyShareableIOS","Boolean","jsonRepresentationIOS","typeIOS","subscriptionInfoIOS","introductoryPriceAsAmountIOS","introductoryPriceIOS","introductoryPriceNumberOfPeriodsIOS","introductoryPricePaymentModeIOS","introductoryPriceSubscriptionPeriodIOS","subscriptionPeriodNumberIOS","subscriptionPeriodUnitIOS","androidProduct","nameAndroid","oneTimePurchaseOfferDetailsAndroid","subscriptionOfferDetailsAndroid","convertProductToProductSubscription","product","output","convertNitroPurchaseToPurchase","nitroPurchase","purchase","productId","transactionDate","Date","now","purchaseToken","purchaseTokenAndroid","quantity","purchaseState","purchaseStateAndroid","isAutoRenewing","iosPurchase","quantityIOS","originalTransactionDateIOS","originalTransactionIdentifierIOS","appAccountToken","androidPurchase","autoRenewingAndroid","dataAndroid","signatureAndroid","isAcknowledgedAndroid","packageNameAndroid","obfuscatedAccountIdAndroid","obfuscatedProfileIdAndroid","convertNitroSubscriptionStatusToSubscriptionStatusIOS","nitro","renewalInfo","autoRenewPreference","jsonRepresentation","stringify","willAutoRenew","autoRenewStatus","validateNitroProduct","required","field","validateNitroPurchase","checkTypeSynchronization","issues","testNitroProduct","converted","push","isSync","length"],"sourceRoot":"../../../src","sources":["utils/type-bridge.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../../../src/helpers/subscription.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAA+B,MAAM,UAAU,CAAC;AAE/E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GACjC,kBAAkB,MAAM,EAAE,KACzB,OAAO,CAAC,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../../../src/helpers/subscription.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAA+B,MAAM,UAAU,CAAC;AAE/E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GACjC,kBAAkB,MAAM,EAAE,KACzB,OAAO,CAAC,kBAAkB,EAAE,CA+C9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GACjC,kBAAkB,MAAM,EAAE,KACzB,OAAO,CAAC,OAAO,CAQjB,CAAC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ProductQueryType } from '../types';
|
|
2
|
+
import type { ActiveSubscription, Product, Purchase, PurchaseError, ProductSubscription, PurchaseParams } from '../types';
|
|
3
|
+
import type { FinishTransactionParams } from '../';
|
|
4
|
+
import type { NitroPurchaseResult } from '../specs/RnIap.nitro';
|
|
2
5
|
type UseIap = {
|
|
3
6
|
connected: boolean;
|
|
4
7
|
products: Product[];
|
|
5
8
|
promotedProductsIOS: Purchase[];
|
|
6
9
|
promotedProductIdIOS?: string;
|
|
7
|
-
subscriptions:
|
|
10
|
+
subscriptions: ProductSubscription[];
|
|
8
11
|
availablePurchases: Purchase[];
|
|
9
12
|
currentPurchase?: Purchase;
|
|
10
13
|
currentPurchaseError?: PurchaseError;
|
|
@@ -12,14 +15,11 @@ type UseIap = {
|
|
|
12
15
|
activeSubscriptions: ActiveSubscription[];
|
|
13
16
|
clearCurrentPurchase: () => void;
|
|
14
17
|
clearCurrentPurchaseError: () => void;
|
|
15
|
-
finishTransaction: ({ purchase, isConsumable, }:
|
|
16
|
-
purchase: Purchase;
|
|
17
|
-
isConsumable?: boolean;
|
|
18
|
-
}) => Promise<PurchaseResult | boolean>;
|
|
18
|
+
finishTransaction: ({ purchase, isConsumable, }: FinishTransactionParams) => Promise<NitroPurchaseResult | boolean>;
|
|
19
19
|
getAvailablePurchases: (skus?: string[]) => Promise<void>;
|
|
20
20
|
fetchProducts: (params: {
|
|
21
21
|
skus: string[];
|
|
22
|
-
type?:
|
|
22
|
+
type?: ProductQueryType | null;
|
|
23
23
|
}) => Promise<void>;
|
|
24
24
|
/**
|
|
25
25
|
* @deprecated Use fetchProducts({ skus, type: 'inapp' }) instead. This method will be removed in version 3.0.0.
|
|
@@ -31,10 +31,7 @@ type UseIap = {
|
|
|
31
31
|
* Note: This method internally uses fetchProducts, so no deprecation warning is shown.
|
|
32
32
|
*/
|
|
33
33
|
getSubscriptions: (skus: string[]) => Promise<void>;
|
|
34
|
-
requestPurchase: (params:
|
|
35
|
-
request: RequestPurchaseProps | RequestSubscriptionProps;
|
|
36
|
-
type?: 'inapp' | 'subs';
|
|
37
|
-
}) => Promise<any>;
|
|
34
|
+
requestPurchase: (params: PurchaseParams) => Promise<any>;
|
|
38
35
|
validateReceipt: (sku: string, androidOptions?: {
|
|
39
36
|
packageName: string;
|
|
40
37
|
productToken: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIAP.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useIAP.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useIAP.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useIAP.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import 'react-native-nitro-modules';
|
|
2
2
|
import type { NitroPurchaseResult } from './specs/RnIap.nitro';
|
|
3
|
-
import type { Product,
|
|
4
|
-
import type { ProductRequest } from './types';
|
|
3
|
+
import type { Product, ProductRequest, Purchase, PurchaseOptions, PurchaseParams, PurchaseError, SubscriptionStatusIOS } from './types';
|
|
5
4
|
export type { RnIap, NitroProduct, NitroPurchase, NitroPurchaseResult, } from './specs/RnIap.nitro';
|
|
6
5
|
export * from './types';
|
|
7
6
|
export * from './utils/error';
|
|
8
7
|
export interface EventSubscription {
|
|
9
8
|
remove(): void;
|
|
10
9
|
}
|
|
10
|
+
export type FinishTransactionParams = {
|
|
11
|
+
purchase: Purchase;
|
|
12
|
+
isConsumable?: boolean;
|
|
13
|
+
};
|
|
11
14
|
export { useIAP } from './hooks/useIAP';
|
|
12
15
|
export declare const getPromotedProductIOS: () => Promise<Product | null>;
|
|
13
16
|
export declare const requestPurchaseOnPromotedProductIOS: () => Promise<void>;
|
|
@@ -72,13 +75,11 @@ export declare const fetchProducts: ({ skus, type, }: ProductRequest) => Promise
|
|
|
72
75
|
* ⚠️ Important: This is an event-based operation, not promise-based.
|
|
73
76
|
* Listen for events through purchaseUpdatedListener or purchaseErrorListener.
|
|
74
77
|
* @param params - Purchase request configuration
|
|
75
|
-
* @param params.
|
|
76
|
-
* @param params.
|
|
78
|
+
* @param params.requestPurchase - Platform-specific purchase parameters (in-app)
|
|
79
|
+
* @param params.requestSubscription - Platform-specific subscription parameters (subs)
|
|
80
|
+
* @param params.type - Type of purchase (defaults to in-app)
|
|
77
81
|
*/
|
|
78
|
-
export declare const requestPurchase: (
|
|
79
|
-
request: RequestPurchaseProps | RequestSubscriptionProps;
|
|
80
|
-
type?: "inapp" | "subs";
|
|
81
|
-
}) => Promise<void>;
|
|
82
|
+
export declare const requestPurchase: (params: PurchaseParams) => Promise<void>;
|
|
82
83
|
/**
|
|
83
84
|
* Get available purchases (purchased items not yet consumed/finished)
|
|
84
85
|
* @param params - Options for getting available purchases
|
|
@@ -176,7 +177,7 @@ export declare const purchaseUpdatedListener: (listener: (purchase: Purchase) =>
|
|
|
176
177
|
* subscription.remove();
|
|
177
178
|
* ```
|
|
178
179
|
*/
|
|
179
|
-
export declare const purchaseErrorListener: (listener: (error:
|
|
180
|
+
export declare const purchaseErrorListener: (listener: (error: PurchaseError) => void) => EventSubscription;
|
|
180
181
|
/**
|
|
181
182
|
* iOS-only listener for App Store promoted product events.
|
|
182
183
|
* Fired when a user clicks on a promoted in-app purchase in the App Store.
|
|
@@ -356,7 +357,7 @@ export declare const deepLinkToSubscriptions: (options?: {
|
|
|
356
357
|
*/
|
|
357
358
|
export declare const getAppTransactionIOS: () => Promise<string | null>;
|
|
358
359
|
export { getActiveSubscriptions, hasActiveSubscriptions, } from './helpers/subscription';
|
|
359
|
-
export { convertNitroProductToProduct, convertNitroPurchaseToPurchase,
|
|
360
|
+
export { convertNitroProductToProduct, convertNitroPurchaseToPurchase, convertProductToProductSubscription, validateNitroProduct, validateNitroPurchase, checkTypeSynchronization, } from './utils/type-bridge';
|
|
360
361
|
/**
|
|
361
362
|
* @deprecated Use acknowledgePurchaseAndroid instead
|
|
362
363
|
*/
|