react-native-iap 15.6.0 → 15.6.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.
Files changed (67) hide show
  1. package/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +28 -4
  2. package/android/src/main/java/com/margelo/nitro/iap/RnIapLog.kt +13 -0
  3. package/ios/HybridRnIap.swift +25 -4
  4. package/ios/RnIapHelper.swift +3 -2
  5. package/ios/RnIapLog.swift +14 -0
  6. package/lib/module/hooks/useIAP.js.map +1 -1
  7. package/lib/module/index.js +72 -30
  8. package/lib/module/index.js.map +1 -1
  9. package/lib/module/index.kepler.js +71 -5
  10. package/lib/module/index.kepler.js.map +1 -1
  11. package/lib/module/kit-api.js +78 -3
  12. package/lib/module/kit-api.js.map +1 -1
  13. package/lib/module/types.js +29 -25
  14. package/lib/module/types.js.map +1 -1
  15. package/lib/module/utils/deprecation.js +15 -0
  16. package/lib/module/utils/deprecation.js.map +1 -0
  17. package/lib/module/utils/platform-request.js +28 -0
  18. package/lib/module/utils/platform-request.js.map +1 -0
  19. package/lib/module/utils/type-bridge.js +9 -4
  20. package/lib/module/utils/type-bridge.js.map +1 -1
  21. package/lib/module/vega-adapter.js +31 -22
  22. package/lib/module/vega-adapter.js.map +1 -1
  23. package/lib/typescript/src/hooks/useIAP.d.ts +14 -2
  24. package/lib/typescript/src/hooks/useIAP.d.ts.map +1 -1
  25. package/lib/typescript/src/index.d.ts +37 -12
  26. package/lib/typescript/src/index.d.ts.map +1 -1
  27. package/lib/typescript/src/index.kepler.d.ts +49 -4
  28. package/lib/typescript/src/index.kepler.d.ts.map +1 -1
  29. package/lib/typescript/src/kit-api.d.ts +18 -8
  30. package/lib/typescript/src/kit-api.d.ts.map +1 -1
  31. package/lib/typescript/src/specs/RnIap.nitro.d.ts +24 -6
  32. package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
  33. package/lib/typescript/src/types.d.ts +105 -176
  34. package/lib/typescript/src/types.d.ts.map +1 -1
  35. package/lib/typescript/src/utils/deprecation.d.ts +3 -0
  36. package/lib/typescript/src/utils/deprecation.d.ts.map +1 -0
  37. package/lib/typescript/src/utils/platform-request.d.ts +12 -0
  38. package/lib/typescript/src/utils/platform-request.d.ts.map +1 -0
  39. package/lib/typescript/src/utils/type-bridge.d.ts.map +1 -1
  40. package/lib/typescript/src/vega-adapter.d.ts +1 -0
  41. package/lib/typescript/src/vega-adapter.d.ts.map +1 -1
  42. package/nitrogen/generated/android/c++/JNitroPurchase.hpp +5 -1
  43. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchase.kt +7 -2
  44. package/nitrogen/generated/ios/swift/NitroPurchase.swift +39 -2
  45. package/nitrogen/generated/shared/c++/NitroPurchase.hpp +5 -1
  46. package/openiap-versions.json +3 -3
  47. package/package.json +1 -1
  48. package/src/hooks/useIAP.ts +14 -2
  49. package/src/index.kepler.ts +82 -8
  50. package/src/index.ts +104 -47
  51. package/src/kit-api.ts +136 -13
  52. package/src/specs/RnIap.nitro.ts +24 -6
  53. package/src/types.ts +116 -204
  54. package/src/utils/deprecation.ts +16 -0
  55. package/src/utils/platform-request.ts +37 -0
  56. package/src/utils/type-bridge.ts +20 -4
  57. package/src/vega-adapter.ts +46 -24
  58. package/lib/module/hooks/useWebhookEvents.js +0 -113
  59. package/lib/module/hooks/useWebhookEvents.js.map +0 -1
  60. package/lib/module/webhook-client.js +0 -164
  61. package/lib/module/webhook-client.js.map +0 -1
  62. package/lib/typescript/src/hooks/useWebhookEvents.d.ts +0 -55
  63. package/lib/typescript/src/hooks/useWebhookEvents.d.ts.map +0 -1
  64. package/lib/typescript/src/webhook-client.d.ts +0 -82
  65. package/lib/typescript/src/webhook-client.d.ts.map +0 -1
  66. package/src/hooks/useWebhookEvents.ts +0 -180
  67. package/src/webhook-client.ts +0 -312
@@ -445,6 +445,13 @@ class HybridRnIap : HybridRnIapSpec() {
445
445
 
446
446
  ensureConnection()
447
447
 
448
+ if (type.trim().lowercase(Locale.US) == "inapp") {
449
+ RnIapLog.deprecation(
450
+ "product-type.inapp",
451
+ "fetchProducts received legacy type 'inapp'; forwarding as 'in-app'. " +
452
+ "The alias will be removed in react-native-iap 16.0.0."
453
+ )
454
+ }
448
455
  val queryType = parseProductQueryType(type)
449
456
  val skusList = skus.toList()
450
457
 
@@ -495,14 +502,26 @@ class HybridRnIap : HybridRnIapSpec() {
495
502
  return Promise.async {
496
503
  val defaultResult = RequestPurchaseResult.create(emptyArray<com.margelo.nitro.iap.Purchase>())
497
504
 
498
- val androidRequest = (request.android as? Variant_NullType_NitroRequestPurchaseAndroid.Second)?.value
499
- ?: (request.google as? Variant_NullType_NitroRequestPurchaseAndroid.Second)?.value
505
+ val androidRequest =
506
+ if (request.google != null) {
507
+ (request.google as? Variant_NullType_NitroRequestPurchaseAndroid.Second)?.value
508
+ } else {
509
+ (request.android as? Variant_NullType_NitroRequestPurchaseAndroid.Second)
510
+ ?.value
511
+ ?.also {
512
+ RnIapLog.deprecation(
513
+ "request-purchase.android",
514
+ "`request.android` is deprecated and will be removed in react-native-iap 16.0.0. Use `request.google` instead."
515
+ )
516
+ }
517
+ }
500
518
 
501
519
  RnIapLog.payload(
502
520
  "requestPurchase",
503
521
  mapOf(
504
522
  "androidSkus" to (androidRequest?.skus?.toList() ?: emptyList()),
505
- "hasIOS" to (request.ios != null)
523
+ "hasApple" to (request.apple != null),
524
+ "hasLegacyIOS" to (request.ios != null)
506
525
  )
507
526
  )
508
527
 
@@ -679,7 +698,11 @@ class HybridRnIap : HybridRnIapSpec() {
679
698
  val typeName = androidOptions?.type?.name?.lowercase(java.util.Locale.ROOT)
680
699
  val normalizedType = when (typeName) {
681
700
  "inapp" -> {
682
- RnIapLog.warn("getAvailablePurchases received legacy type 'inapp'; forwarding as 'in-app'")
701
+ RnIapLog.deprecation(
702
+ "product-type.inapp",
703
+ "getAvailablePurchases received legacy type 'inapp'; forwarding as 'in-app'. " +
704
+ "The alias will be removed in react-native-iap 16.0.0."
705
+ )
683
706
  "in-app"
684
707
  }
685
708
  "in-app", "subs" -> typeName
@@ -1285,6 +1308,7 @@ class HybridRnIap : HybridRnIapSpec() {
1285
1308
  }
1286
1309
  return NitroPurchase(
1287
1310
  id = purchase.id,
1311
+ transactionId = androidPurchase?.transactionId.wrapVariant(),
1288
1312
  productId = purchase.productId,
1289
1313
  transactionDate = purchase.transactionDate,
1290
1314
  purchaseToken = purchase.purchaseToken.wrapVariant(),
@@ -3,10 +3,14 @@ package com.margelo.nitro.iap
3
3
  import android.util.Log
4
4
  import org.json.JSONArray
5
5
  import org.json.JSONObject
6
+ import java.util.Collections
6
7
  import java.util.Locale
8
+ import java.util.concurrent.ConcurrentHashMap
7
9
 
8
10
  internal object RnIapLog {
9
11
  private const val TAG = "RnIap"
12
+ private val emittedDeprecations: MutableSet<String> =
13
+ Collections.newSetFromMap(ConcurrentHashMap())
10
14
  private val SENSITIVE_KEY_FRAGMENTS = setOf(
11
15
  "token",
12
16
  "apikey",
@@ -45,6 +49,15 @@ internal object RnIapLog {
45
49
  Log.w(TAG, message)
46
50
  }
47
51
 
52
+ fun deprecation(
53
+ key: String,
54
+ message: String,
55
+ ) {
56
+ if (emittedDeprecations.add(key)) {
57
+ Log.w(TAG, message)
58
+ }
59
+ }
60
+
48
61
  private fun stringify(value: Any?): String {
49
62
  val sanitized = sanitize(value) ?: return "null"
50
63
  return when (sanitized) {
@@ -129,7 +129,11 @@ class HybridRnIap: HybridRnIapSpec {
129
129
  queryTypes = [.inApp, .subs]
130
130
  } else {
131
131
  if normalizedType == "inapp" {
132
- RnIapLog.warn("fetchProducts received legacy type 'inapp'; forwarding as 'in-app'")
132
+ RnIapLog.deprecation(
133
+ "product-type.inapp",
134
+ "fetchProducts received legacy type 'inapp'; forwarding as 'in-app'. " +
135
+ "The alias will be removed in react-native-iap 16.0.0."
136
+ )
133
137
  }
134
138
  queryTypes = [RnIapHelper.parseProductQueryType(type)]
135
139
  }
@@ -178,13 +182,30 @@ class HybridRnIap: HybridRnIapSpec {
178
182
  let defaultResult: RequestPurchaseResult = .fourth([])
179
183
  RnIapLog.payload(
180
184
  "requestPurchase", [
181
- "hasIOS": request.ios != nil,
182
- "hasAndroid": request.android != nil
185
+ "hasApple": request.apple != nil,
186
+ "hasGoogle": request.google != nil,
187
+ "hasLegacyIOS": request.ios != nil,
188
+ "hasLegacyAndroid": request.android != nil
183
189
  ]
184
190
  )
185
191
 
186
192
  let iosRequest: NitroRequestPurchaseIos
187
- if case .second(let unwrapped) = request.ios {
193
+ if let canonicalApple = request.apple {
194
+ guard case .second(let unwrapped) = canonicalApple else {
195
+ let error = RnIapHelper.makePurchaseErrorResult(
196
+ code: .developerError,
197
+ message: "No iOS request provided"
198
+ )
199
+ self.sendPurchaseError(error, productId: nil)
200
+ return defaultResult
201
+ }
202
+ iosRequest = unwrapped
203
+ } else if case .second(let unwrapped) = request.ios {
204
+ RnIapLog.deprecation(
205
+ "request-purchase.ios",
206
+ "`request.ios` is deprecated and will be removed in react-native-iap 16.0.0. " +
207
+ "Use `request.apple` instead."
208
+ )
188
209
  iosRequest = unwrapped
189
210
  } else {
190
211
  let error = RnIapHelper.makePurchaseErrorResult(
@@ -392,6 +392,7 @@ enum RnIapHelper {
392
392
 
393
393
  return NitroPurchase(
394
394
  id: dictionary["id"] as? String ?? "",
395
+ transactionId: wrapString(dictionary["transactionId"] as? String),
395
396
  productId: dictionary["productId"] as? String ?? "",
396
397
  transactionDate: doubleValue(dictionary["transactionDate"]) ?? 0,
397
398
  purchaseToken: wrapString(dictionary["purchaseToken"] as? String),
@@ -489,8 +490,8 @@ enum RnIapHelper {
489
490
  priceIncreaseStatus: wrapString(dictionary["priceIncreaseStatus"] as? String),
490
491
  renewalBillingPlanType: (dictionary["renewalBillingPlanType"] as? String)
491
492
  .flatMap(SubscriptionBillingPlanTypeIOS.init(fromString:)),
492
- renewalOfferType: wrapString(dictionary["offerType"] as? String),
493
- renewalOfferId: wrapString(dictionary["offerIdentifier"] as? String),
493
+ renewalOfferType: wrapString(dictionary["renewalOfferType"] as? String),
494
+ renewalOfferId: wrapString(dictionary["renewalOfferId"] as? String),
494
495
  jsonRepresentation: wrapString(dictionary["jsonRepresentation"] as? String)
495
496
  )
496
497
  }
@@ -36,6 +36,8 @@ enum RnIapLog {
36
36
  }()
37
37
 
38
38
  private static var customHandler: ((Level, String) -> Void)?
39
+ private static let deprecationLock = NSLock()
40
+ private static var emittedDeprecations = Set<String>()
39
41
 
40
42
  static func setEnabled(_ enabled: Bool) {
41
43
  isEnabled = enabled
@@ -50,6 +52,15 @@ enum RnIapLog {
50
52
  static func warn(_ message: String) { log(.warn, message) }
51
53
  static func error(_ message: String) { log(.error, message) }
52
54
 
55
+ static func deprecation(_ key: String, _ message: String) {
56
+ deprecationLock.lock()
57
+ let inserted = emittedDeprecations.insert(key).inserted
58
+ deprecationLock.unlock()
59
+ guard inserted else { return }
60
+
61
+ emit(.warn, message)
62
+ }
63
+
53
64
  static func payload(_ name: String, _ payload: Any?) {
54
65
  debug("\(name) payload: \(stringify(payload))")
55
66
  }
@@ -64,7 +75,10 @@ enum RnIapLog {
64
75
 
65
76
  private static func log(_ level: Level, _ message: String) {
66
77
  guard isEnabled else { return }
78
+ emit(level, message)
79
+ }
67
80
 
81
+ private static func emit(_ level: Level, _ message: String) {
68
82
  if let handler = customHandler {
69
83
  handler(level, message)
70
84
  return
@@ -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","getBillingChoiceInfoAndroid","isBillingProgramAvailableAndroid","createBillingProgramReportingDetailsAndroid","launchExternalLinkAndroid","showBillingProgramInformationDialogAndroid","showInAppMessagesAndroid","openRedeemOfferCodeAndroid","userChoiceBillingListenerAndroid","developerProvidedBillingListenerAndroid","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","length","items","prevSubscriptions","subscription","id","newProducts","filter","item","newSubscriptions","prevProducts","product","getAvailablePurchasesInternal","alsoPublishToEventListenerIOS","onlyIncludeActiveItemsIOS","includeSuspendedAndroid","getActiveSubscriptionsInternal","subscriptionIds","hasActiveSubscriptionsInternal","args","requestObj","restorePurchases","OS","buildAndroidConfig","config","enableBillingProgramAndroid","billingChoiceScreenTypeAndroid","alternativeBillingModeAndroid","registerListeners","purchaseUpdate","purchase","e","onPurchaseSuccess","purchaseUpdatedListenerOptions","purchaseError","code","InitConnection","onPurchaseError","onPromotedProductIOS","onUserChoiceBillingAndroid","userChoiceBillingAndroid","details","onDeveloperProvidedBillingAndroid","developerProvidedBillingAndroid","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","getBillingChoiceInfoAndroid","isBillingProgramAvailableAndroid","createBillingProgramReportingDetailsAndroid","launchExternalLinkAndroid","showBillingProgramInformationDialogAndroid","showInAppMessagesAndroid","openRedeemOfferCodeAndroid","userChoiceBillingListenerAndroid","developerProvidedBillingListenerAndroid","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","length","items","prevSubscriptions","subscription","id","newProducts","filter","item","newSubscriptions","prevProducts","product","getAvailablePurchasesInternal","alsoPublishToEventListenerIOS","onlyIncludeActiveItemsIOS","includeSuspendedAndroid","getActiveSubscriptionsInternal","subscriptionIds","hasActiveSubscriptionsInternal","args","requestObj","restorePurchases","OS","buildAndroidConfig","config","enableBillingProgramAndroid","billingChoiceScreenTypeAndroid","alternativeBillingModeAndroid","registerListeners","purchaseUpdate","purchase","e","onPurchaseSuccess","purchaseUpdatedListenerOptions","purchaseError","code","InitConnection","onPurchaseError","onPromotedProductIOS","onUserChoiceBillingAndroid","userChoiceBillingAndroid","details","onDeveloperProvidedBillingAndroid","developerProvidedBillingAndroid","subscriptionBillingIssue","onSubscriptionBillingIssue","cleanupListeners","remove","undefined","initIapWithSubscriptions","reconnect"],"sourceRoot":"../../../src","sources":["hooks/useIAP.ts"],"mappings":"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","ignoreList":[]}
@@ -13,6 +13,8 @@ import { convertNitroProductToProduct, convertNitroPurchaseToPurchase, convertPr
13
13
  import { isUserCancelledError, parseErrorStringToJsonObj } from "./utils/error.js";
14
14
  import { normalizeErrorCodeFromNative, createPurchaseError, DUPLICATE_PURCHASE_CODE } from "./utils/errorMapping.js";
15
15
  import { RnIapConsole } from "./utils/debug.js";
16
+ import { warnLegacyOnce } from "./utils/deprecation.js";
17
+ import { selectCanonicalPlatformRequest } from "./utils/platform-request.js";
16
18
  import { getSuccessFromPurchaseVariant } from "./utils/purchase.js";
17
19
  import { parseAppTransactionPayload } from "./utils.js";
18
20
  import { getVegaIapModule, isVegaOS } from "./vega.js";
@@ -30,7 +32,15 @@ import { getVegaIapModule, isVegaOS } from "./vega.js";
30
32
  export * from "./types.js";
31
33
  export * from "./utils/error.js";
32
34
  export * from "./vega.js";
33
- const LEGACY_INAPP_WARNING = "[react-native-iap] `type: 'inapp'` is deprecated and will be removed in a future major version. Use 'in-app' instead.";
35
+
36
+ /**
37
+ * Product type accepted by public query and purchase helpers.
38
+ *
39
+ * Compatibility note: the `'inapp'` member is deprecated. Use `'in-app'`
40
+ * instead; the alias will be removed in react-native-iap 16.0.0.
41
+ */
42
+
43
+ const LEGACY_INAPP_WARNING = "[react-native-iap] `type: 'inapp'` is deprecated and will be removed in react-native-iap 16.0.0. Use 'in-app' instead.";
34
44
  const toErrorMessage = error => {
35
45
  if (typeof error === 'object' && error !== null && 'message' in error && error.message != null) {
36
46
  return String(error.message);
@@ -49,8 +59,6 @@ const unsupportedPlatformError = () => new Error(`Unsupported platform: ${Platfo
49
59
 
50
60
  // Export hooks
51
61
  export { useIAP } from "./hooks/useIAP.js";
52
- export { useWebhookEvents } from "./hooks/useWebhookEvents.js";
53
- export { connectWebhookStream, parseWebhookEventData } from "./webhook-client.js";
54
62
  export { kitApi, KitApiError } from "./kit-api.js";
55
63
  // Restore completed transactions (cross-platform)
56
64
  // Development utilities removed - use type bridge functions directly if needed
@@ -783,6 +791,11 @@ export const getPromotedProductIOS = async () => {
783
791
  });
784
792
  }
785
793
  };
794
+
795
+ /**
796
+ * @deprecated Use `getPromotedProductIOS` instead. This compatibility alias
797
+ * will be removed in react-native-iap 16.0.0.
798
+ */
786
799
  export const requestPromotedProductIOS = getPromotedProductIOS;
787
800
 
788
801
  /**
@@ -797,6 +810,8 @@ export const requestPromotedProductIOS = getPromotedProductIOS;
797
810
  * ```
798
811
  *
799
812
  * @see {@link https://openiap.dev/docs/apis/ios/get-storefront-ios}
813
+ * @deprecated Use `getStorefront` instead. Scheduled for removal in
814
+ * react-native-iap 16.0.0.
800
815
  */
801
816
  export const getStorefrontIOS = async () => {
802
817
  if (Platform.OS !== 'ios') {
@@ -1117,11 +1132,19 @@ export const getReceiptDataIOS = async () => {
1117
1132
  });
1118
1133
  }
1119
1134
  };
1135
+
1136
+ /**
1137
+ * Legacy alias for `getReceiptDataIOS`.
1138
+ *
1139
+ * @deprecated Use `getReceiptDataIOS` for the cumulative App Store receipt or
1140
+ * `getTransactionJwsIOS(productId)` for one transaction. This alias will be
1141
+ * removed in react-native-iap 16.0.0.
1142
+ */
1120
1143
  export const getReceiptIOS = async () => {
1121
1144
  if (Platform.OS !== 'ios') {
1122
1145
  throw new Error('getReceiptIOS is only available on iOS');
1123
1146
  }
1124
- RnIapConsole.warn('[getReceiptIOS] ⚠️ iOS receipts contain ALL transactions, not just the latest one. ' + 'For individual purchase validation, use getTransactionJwsIOS(productId) instead. ' + 'See: https://react-native-iap.hyo.dev/docs/guides/receipt-validation');
1147
+ RnIapConsole.warn('[getReceiptIOS] is deprecated and will be removed in react-native-iap 16.0.0. ' + 'Use getReceiptDataIOS() for the cumulative receipt. iOS receipts contain ALL transactions, not just the latest one. ' + 'For individual purchase validation, use getTransactionJwsIOS(productId) instead. ' + 'See: https://react-native-iap.hyo.dev/docs/guides/receipt-validation');
1125
1148
  try {
1126
1149
  if (typeof IAP.instance.getReceiptIOS === 'function') {
1127
1150
  return await IAP.instance.getReceiptIOS();
@@ -1338,25 +1361,20 @@ export const requestPurchase = async request => {
1338
1361
  if (!perPlatformRequest) {
1339
1362
  throw new Error('Missing purchase request configuration');
1340
1363
  }
1364
+ const iosRequestSource = Platform.OS === 'ios' ? selectApplePurchaseRequest(perPlatformRequest) : undefined;
1365
+ const androidRequestSource = isAndroidStoreRuntime() ? selectGooglePurchaseRequest(perPlatformRequest) : undefined;
1341
1366
  if (Platform.OS === 'ios') {
1342
- // Support both 'apple' (recommended) and 'ios' (deprecated) fields
1343
- const iosRequest = perPlatformRequest.apple ?? perPlatformRequest.ios;
1344
- if (!iosRequest?.sku) {
1367
+ if (!iosRequestSource?.sku) {
1345
1368
  throw new Error('Invalid request for iOS. The `sku` property is required.');
1346
1369
  }
1347
1370
  } else if (isAndroidStoreRuntime()) {
1348
- // Support both 'google' (recommended) and 'android' (deprecated) fields
1349
- const androidRequest = perPlatformRequest.google ?? perPlatformRequest.android;
1350
- if (!androidRequest?.skus?.length) {
1371
+ if (!androidRequestSource?.skus?.length) {
1351
1372
  throw new Error('Invalid request for Android. The `skus` property is required and must be a non-empty array.');
1352
1373
  }
1353
1374
  } else {
1354
1375
  throw unsupportedPlatformError();
1355
1376
  }
1356
1377
  const unifiedRequest = {};
1357
-
1358
- // Support both 'apple' (recommended) and 'ios' (deprecated) fields
1359
- const iosRequestSource = perPlatformRequest.apple ?? perPlatformRequest.ios;
1360
1378
  if (Platform.OS === 'ios' && iosRequestSource) {
1361
1379
  const iosRequest = isSubs ? iosRequestSource : iosRequestSource;
1362
1380
  const iosPayload = {
@@ -1393,11 +1411,8 @@ export const requestPurchase = async request => {
1393
1411
  iosPayload.winBackOffer = subscriptionRequest.winBackOffer;
1394
1412
  }
1395
1413
  }
1396
- unifiedRequest.ios = iosPayload;
1414
+ unifiedRequest.apple = iosPayload;
1397
1415
  }
1398
-
1399
- // Support both 'google' (recommended) and 'android' (deprecated) fields
1400
- const androidRequestSource = perPlatformRequest.google ?? perPlatformRequest.android;
1401
1416
  if (isAndroidStoreRuntime() && androidRequestSource) {
1402
1417
  const androidRequest = isSubs ? androidRequestSource : androidRequestSource;
1403
1418
  const androidPayload = {
@@ -1442,7 +1457,7 @@ export const requestPurchase = async request => {
1442
1457
  offerToken: offer.offerToken
1443
1458
  }));
1444
1459
  }
1445
- unifiedRequest.android = androidPayload;
1460
+ unifiedRequest.google = androidPayload;
1446
1461
  }
1447
1462
  return await IAP.instance.requestPurchase(unifiedRequest);
1448
1463
  } catch (error) {
@@ -1634,7 +1649,7 @@ export const openRedeemOfferCodeAndroid = async () => {
1634
1649
 
1635
1650
  /**
1636
1651
  * Validate receipt on both iOS and Android platforms
1637
- * @deprecated Use `verifyPurchase` instead. This function will be removed in a future version.
1652
+ * @deprecated Use `verifyPurchase` instead. This function will be removed in react-native-iap 16.0.0.
1638
1653
  * @param options - Platform-specific verification options
1639
1654
  * @param options.apple - Apple App Store verification options (iOS)
1640
1655
  * @param options.google - Google Play verification options (Android)
@@ -1771,9 +1786,8 @@ export const verifyPurchase = validateReceipt;
1771
1786
  /**
1772
1787
  * iOS-only receipt validation alias.
1773
1788
  *
1774
- * @deprecated Use `verifyPurchase` (or `validateReceipt`) instead. Kept so
1775
- * consumers who imported `validateReceiptIOS` which is still declared on the
1776
- * OpenIAP Query interface — keep working. Throws on non-iOS platforms.
1789
+ * @deprecated Use `verifyPurchase` instead. This compatibility alias will be
1790
+ * removed in react-native-iap 16.0.0. Throws on non-iOS platforms.
1777
1791
  *
1778
1792
  * @see {@link https://openiap.dev/docs/apis/ios/validate-receipt-ios}
1779
1793
  */
@@ -1905,7 +1919,9 @@ export const presentCodeRedemptionSheetIOS = async () => {
1905
1919
 
1906
1920
  /**
1907
1921
  * Buy promoted product on iOS
1908
- * @deprecated In StoreKit 2, promoted products can be purchased directly via the standard `requestPurchase()` flow.
1922
+ * @deprecated In StoreKit 2, promoted products can be purchased directly via
1923
+ * the standard `requestPurchase()` flow. This alias will be removed in
1924
+ * react-native-iap 16.0.0.
1909
1925
  * Use `promotedProductListenerIOS` to receive the product ID when a user taps a promoted product,
1910
1926
  * then call `requestPurchase()` with the received SKU directly.
1911
1927
  *
@@ -2077,14 +2093,17 @@ export const getActiveSubscriptions = async subscriptionIds => {
2077
2093
  renewalInfoIOS: sub.renewalInfoIOS ? {
2078
2094
  willAutoRenew: sub.renewalInfoIOS.willAutoRenew ?? false,
2079
2095
  autoRenewPreference: sub.renewalInfoIOS.autoRenewPreference ?? null,
2096
+ commitmentInfo: sub.renewalInfoIOS.commitmentInfo ?? null,
2080
2097
  pendingUpgradeProductId: sub.renewalInfoIOS.pendingUpgradeProductId ?? null,
2081
2098
  renewalDate: sub.renewalInfoIOS.renewalDate ?? null,
2082
2099
  expirationReason: sub.renewalInfoIOS.expirationReason ?? null,
2083
2100
  isInBillingRetry: sub.renewalInfoIOS.isInBillingRetry ?? null,
2084
2101
  gracePeriodExpirationDate: sub.renewalInfoIOS.gracePeriodExpirationDate ?? null,
2085
2102
  priceIncreaseStatus: sub.renewalInfoIOS.priceIncreaseStatus ?? null,
2103
+ renewalBillingPlanType: sub.renewalInfoIOS.renewalBillingPlanType ?? null,
2086
2104
  renewalOfferType: sub.renewalInfoIOS.renewalOfferType ?? null,
2087
- renewalOfferId: sub.renewalInfoIOS.renewalOfferId ?? null
2105
+ renewalOfferId: sub.renewalInfoIOS.renewalOfferId ?? null,
2106
+ jsonRepresentation: sub.renewalInfoIOS.jsonRepresentation ?? null
2088
2107
  } : null,
2089
2108
  // Android specific fields
2090
2109
  autoRenewingAndroid: sub.autoRenewingAndroid ?? null,
@@ -2133,12 +2152,14 @@ export { convertNitroProductToProduct, convertNitroPurchaseToPurchase, convertPr
2133
2152
 
2134
2153
  // Deprecated exports for backward compatibility
2135
2154
  /**
2136
- * @deprecated Use acknowledgePurchaseAndroid instead
2155
+ * @deprecated Use acknowledgePurchaseAndroid instead. This alias will be
2156
+ * removed in react-native-iap 16.0.0.
2137
2157
  */
2138
2158
  export const acknowledgePurchase = acknowledgePurchaseAndroid;
2139
2159
 
2140
2160
  /**
2141
- * @deprecated Use consumePurchaseAndroid instead
2161
+ * @deprecated Use consumePurchaseAndroid instead. This alias will be removed
2162
+ * in react-native-iap 16.0.0.
2142
2163
  */
2143
2164
  export const consumePurchase = consumePurchaseAndroid;
2144
2165
 
@@ -2146,6 +2167,20 @@ export const consumePurchase = consumePurchaseAndroid;
2146
2167
  // Internal Helpers
2147
2168
  // ============================================================================
2148
2169
 
2170
+ const selectApplePurchaseRequest = request => {
2171
+ const selection = selectCanonicalPlatformRequest(request, 'apple', 'ios');
2172
+ if (selection.usesLegacyKey && selection.value != null) {
2173
+ warnLegacyOnce('request-purchase.ios', '[react-native-iap] `request.ios` is deprecated and will be removed in react-native-iap 16.0.0. Use `request.apple` instead.');
2174
+ }
2175
+ return selection.value;
2176
+ };
2177
+ const selectGooglePurchaseRequest = request => {
2178
+ const selection = selectCanonicalPlatformRequest(request, 'google', 'android');
2179
+ if (selection.usesLegacyKey && selection.value != null) {
2180
+ warnLegacyOnce('request-purchase.android', '[react-native-iap] `request.android` is deprecated and will be removed in react-native-iap 16.0.0. Use `request.google` instead.');
2181
+ }
2182
+ return selection.value;
2183
+ };
2149
2184
  const toDiscountOfferRecordIOS = offer => {
2150
2185
  if (!offer) {
2151
2186
  return undefined;
@@ -2166,10 +2201,10 @@ const toNitroProductType = type => {
2166
2201
  return 'all';
2167
2202
  }
2168
2203
  if (type === 'inapp') {
2169
- RnIapConsole.warn(LEGACY_INAPP_WARNING);
2170
- return 'inapp';
2204
+ warnLegacyOnce('product-type.inapp', LEGACY_INAPP_WARNING);
2205
+ return 'in-app';
2171
2206
  }
2172
- return 'inapp';
2207
+ return 'in-app';
2173
2208
  };
2174
2209
  const isSubscriptionQuery = type => type === 'subs';
2175
2210
  const normalizeProductQueryType = type => {
@@ -2185,7 +2220,7 @@ const normalizeProductQueryType = type => {
2185
2220
  return 'subs';
2186
2221
  }
2187
2222
  if (normalized === 'inapp') {
2188
- RnIapConsole.warn(LEGACY_INAPP_WARNING);
2223
+ warnLegacyOnce('product-type.inapp', LEGACY_INAPP_WARNING);
2189
2224
  return 'in-app';
2190
2225
  }
2191
2226
  if (normalized === 'in-app') {
@@ -2220,6 +2255,8 @@ const normalizeProductQueryType = type => {
2220
2255
  * ```
2221
2256
  *
2222
2257
  * @see {@link https://openiap.dev/docs/apis/android/check-alternative-billing-availability-android}
2258
+ * @deprecated Use `isBillingProgramAvailableAndroid('external-offer')`
2259
+ * instead. Scheduled for removal in react-native-iap 16.0.0.
2223
2260
  */
2224
2261
  export const checkAlternativeBillingAvailabilityAndroid = async () => {
2225
2262
  if (Platform.OS !== 'android') {
@@ -2257,6 +2294,8 @@ export const checkAlternativeBillingAvailabilityAndroid = async () => {
2257
2294
  * ```
2258
2295
  *
2259
2296
  * @see {@link https://openiap.dev/docs/apis/android/show-alternative-billing-dialog-android}
2297
+ * @deprecated Use `launchExternalLinkAndroid` instead. Scheduled for removal in
2298
+ * react-native-iap 16.0.0.
2260
2299
  */
2261
2300
  export const showAlternativeBillingDialogAndroid = async () => {
2262
2301
  if (Platform.OS !== 'android') {
@@ -2294,6 +2333,9 @@ export const showAlternativeBillingDialogAndroid = async () => {
2294
2333
  * ```
2295
2334
  *
2296
2335
  * @see {@link https://openiap.dev/docs/apis/android/create-alternative-billing-token-android}
2336
+ * @deprecated Use
2337
+ * `createBillingProgramReportingDetailsAndroid('external-offer')` instead.
2338
+ * Scheduled for removal in react-native-iap 16.0.0.
2297
2339
  */
2298
2340
  export const createAlternativeBillingTokenAndroid = async sku => {
2299
2341
  if (Platform.OS !== 'android') {