react-native-iap 16.3.2 → 16.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  <div align="center">
4
4
  <img src="https://openiap.dev/frameworks/react-native.webp" alt="React Native IAP Logo" width="150" />
5
5
 
6
- [![Version](http://img.shields.io/npm/v/react-native-iap.svg?style=flat-square)](https://npmjs.org/package/react-native-iap) [![Download](http://img.shields.io/npm/dm/react-native-iap.svg?style=flat-square)](https://npmjs.org/package/react-native-iap) [![OpenIAP](https://img.shields.io/badge/OpenIAP-Compliant-green?style=flat-square)](https://openiap.dev) [![Backers and Sponsors](https://img.shields.io/opencollective/all/openiap.svg)](https://opencollective.com/openiap) [![CI - Test](https://github.com/hyodotdev/openiap/actions/workflows/ci-react-native-iap.yml/badge.svg?branch=main)](https://github.com/hyodotdev/openiap/actions/workflows/ci-react-native-iap.yml?query=branch%3Amain) [![codecov](https://codecov.io/gh/hyodotdev/openiap/branch/main/graph/badge.svg?component=react-native-iap)](https://app.codecov.io/gh/hyodotdev/openiap/tree/main/libraries/react-native-iap) [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fhyochan%2Freact-native-iap.svg?type=shield&issueType=license)](https://app.fossa.com/projects/git%2Bgithub.com%2Fhyochan%2Freact-native-iap?ref=badge_shield&issueType=license)
6
+ [![Version](http://img.shields.io/npm/v/react-native-iap.svg?style=flat-square)](https://npmjs.org/package/react-native-iap) [![Download](http://img.shields.io/npm/dm/react-native-iap.svg?style=flat-square)](https://npmjs.org/package/react-native-iap) [![OpenIAP](https://img.shields.io/badge/OpenIAP-Compliant-green?style=flat-square)](https://openiap.dev) [![CI - Test](https://github.com/hyodotdev/openiap/actions/workflows/ci-react-native-iap.yml/badge.svg?branch=main)](https://github.com/hyodotdev/openiap/actions/workflows/ci-react-native-iap.yml?query=branch%3Amain) [![codecov](https://codecov.io/gh/hyodotdev/openiap/branch/main/graph/badge.svg?component=react-native-iap)](https://app.codecov.io/gh/hyodotdev/openiap/tree/main/libraries/react-native-iap) [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fhyochan%2Freact-native-iap.svg?type=shield&issueType=license)](https://app.fossa.com/projects/git%2Bgithub.com%2Fhyochan%2Freact-native-iap?ref=badge_shield&issueType=license)
7
7
 
8
8
  **React Native IAP** is a high-performance in-app purchase library using Nitro Modules that **conforms to the [OpenIAP specification](https://openiap.dev)**. It provides a unified API for handling in-app purchases across iOS and Android platforms with comprehensive error handling and modern TypeScript support.
9
9
 
@@ -150,41 +150,56 @@ Other libraries built on OpenIAP: [expo-iap](https://github.com/hyodotdev/openia
150
150
 
151
151
  **[Learn more about the OpenIAP standard →](https://openiap.dev/docs/foundation/about)**
152
152
 
153
+ <!-- sponsors:start -->
154
+ <!-- Generated by scripts/sync-sponsors.mjs from packages/docs/sponsor-registry.json. -->
153
155
  ## Sponsors
154
156
 
155
- 💼 **[View Our Sponsors](https://openiap.dev/sponsors)**
156
-
157
- ### <p style="color: rgb(255, 182, 193);">Angel</p>
158
-
159
- <a href="https://meta.com">
160
- <img width="600" alt="courier_dot_com" src="https://static.xx.fbcdn.net/rsrc.php/y3/r/y6QsbGgc866.svg" />
161
- </a>
162
-
163
- ## Past Supporters
164
-
165
- <div style="display: flex; align-items:center; gap: 10px;">
166
- <a href="https://namiml.com" style="opacity: 50%">
167
- <img src="https://openiap.dev/sponsors/nami.webp" alt="Nami ML" width="140"/>
157
+ <p align="center">
158
+ <a href="https://meta.com">
159
+ <img src="https://openiap.dev/meta.svg" alt="Meta" height="80" align="middle">
168
160
  </a>
169
- <a href="https://www.courier.com/?utm_source=react-native-iap&utm_campaign=osssponsors" style="opacity: 50%;">
170
- <img width="80" alt="courier_dot_com" src="https://openiap.dev/sponsors/courier.webp" />
161
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
162
+ <a href="https://developer.amazon.com/">
163
+ <picture>
164
+ <source media="(prefers-color-scheme: dark)" srcset="https://openiap.dev/sponsors/amazon-dark.webp">
165
+ <img src="https://openiap.dev/sponsors/amazon.webp" alt="Amazon Developer" height="44" align="middle">
166
+ </picture>
171
167
  </a>
172
- </div>
168
+ </p>
173
169
 
174
- Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Buy me a coffee](https://www.buymeacoffee.com/hyochan).
170
+ Thank you to [Meta](https://meta.com) and [Amazon Developer](https://developer.amazon.com/) for supporting OpenIAP. [View sponsorship options](https://openiap.dev/sponsors).
175
171
 
176
- ---
172
+ ### OpenCollective
177
173
 
178
- ### OpenCollective Sponsorship
174
+ We also recognize sponsors and backers through OpenCollective. The original react-native-iap collective now supports the broader OpenIAP ecosystem and is managed separately from the main sponsor program.
179
175
 
180
- We also recognize sponsors and backers through OpenCollective. The original react-native-iap collective now supports the broader OpenIAP ecosystem and is managed separately from our main sponsor program.
176
+ **Sponsors:** <a href="https://opencollective.com/openiap#sponsors"><img src="https://opencollective.com/openiap/sponsors.svg?width=890&cache=20260706" alt="OpenCollective sponsors" /></a>
181
177
 
182
- **Sponsors:** <a href="https://opencollective.com/openiap#sponsors" target="_blank"><img src="https://opencollective.com/openiap/sponsors.svg?width=890&cache=20260706" alt="OpenCollective sponsors" /></a>
183
-
184
- **Backers:** <a href="https://opencollective.com/openiap#backers" target="_blank"><img src="https://opencollective.com/openiap/backers.svg?width=890&cache=20260706" alt="OpenCollective backers" /></a>
178
+ **Backers:** <a href="https://opencollective.com/openiap#backers"><img src="https://opencollective.com/openiap/backers.svg?width=890&cache=20260706" alt="OpenCollective backers" /></a>
185
179
 
186
180
  [Become a sponsor](https://opencollective.com/openiap#sponsor) | [Become a backer](https://opencollective.com/openiap#backer)
187
181
 
182
+ ### Past supporters
183
+
184
+ Supported the project before the OpenIAP sponsor program.
185
+
186
+ <p align="center">
187
+ <a href="https://namiml.com">
188
+ <img src="https://openiap.dev/sponsors/nami.webp" alt="Nami" height="32" align="middle">
189
+ </a>
190
+ &nbsp;&nbsp;&nbsp;&nbsp;
191
+ <a href="https://www.courier.com/?utm_source=react-native-iap&utm_campaign=osssponsors">
192
+ <img src="https://openiap.dev/sponsors/courier.webp" alt="Courier" height="32" align="middle">
193
+ </a>
194
+ </p>
195
+
196
+ [openiap-sponsors]: https://openiap.dev/sponsors
197
+ [openiap-github-sponsors]: https://github.com/sponsors/hyodotdev
198
+ [openiap-opencollective]: https://opencollective.com/openiap
199
+ [openiap-paypal]: https://www.paypal.me/dooboolab
200
+ [openiap-company-contact]: mailto:hyo@hyo.dev
201
+ <!-- sponsors:end -->
202
+
188
203
  ## Community
189
204
 
190
205
  Have a question or need help? Ask in [react-native-iap Q&A Discussions](https://github.com/hyodotdev/openiap/discussions/categories/react-native-iap).
@@ -146,11 +146,6 @@ internal fun requireMatchingPurchaseOptions(
146
146
  private const val MAX_PENDING_EVENTS = 200
147
147
 
148
148
  class HybridRnIap : HybridRnIapSpec() {
149
- private data class PurchaseUpdatedListenerRegistration(
150
- val token: Double,
151
- val listener: (NitroPurchase) -> Unit
152
- )
153
-
154
149
  // Get ReactApplicationContext lazily from NitroModules
155
150
  private val context: ReactApplicationContext by lazy {
156
151
  NitroModules.applicationContext as ReactApplicationContext
@@ -161,8 +156,7 @@ class HybridRnIap : HybridRnIapSpec() {
161
156
  private val productTypeBySku = mutableMapOf<String, String>()
162
157
 
163
158
  // Event listeners
164
- private val purchaseUpdatedListeners = mutableListOf<PurchaseUpdatedListenerRegistration>()
165
- private var nextPurchaseUpdatedListenerToken = 1.0
159
+ private val purchaseUpdatedListeners = TokenizedListenerRegistry<(NitroPurchase) -> Unit>()
166
160
  private val purchaseErrorListeners = mutableListOf<(NitroPurchaseResult) -> Unit>()
167
161
 
168
162
  // Pending purchase events buffered while ZERO bridge listeners are attached
@@ -441,7 +435,6 @@ class HybridRnIap : HybridRnIapSpec() {
441
435
  // buffered events do not survive an explicit endConnection.
442
436
  synchronized(purchaseUpdatedListeners) {
443
437
  purchaseUpdatedListeners.clear()
444
- nextPurchaseUpdatedListenerToken = 1.0
445
438
  pendingPurchaseUpdates.clear()
446
439
  }
447
440
  synchronized(purchaseErrorListeners) {
@@ -991,9 +984,7 @@ class HybridRnIap : HybridRnIapSpec() {
991
984
  options: PurchaseUpdatedListenerOptions?
992
985
  ): Double {
993
986
  val (token, shouldFlush) = synchronized(purchaseUpdatedListeners) {
994
- val token = nextPurchaseUpdatedListenerToken
995
- nextPurchaseUpdatedListenerToken += 1.0
996
- purchaseUpdatedListeners.add(PurchaseUpdatedListenerRegistration(token, listener))
987
+ val token = purchaseUpdatedListeners.add(listener)
997
988
  val shouldFlush = pendingPurchaseUpdates.beginFlushIfNeeded()
998
989
  token to shouldFlush
999
990
  }
@@ -1016,7 +1007,7 @@ class HybridRnIap : HybridRnIapSpec() {
1016
1007
  pendingPurchaseUpdates.takeBatchOrFinish()?.let { backlog ->
1017
1008
  PendingEventDelivery(
1018
1009
  events = backlog,
1019
- listeners = purchaseUpdatedListeners.map { it.listener },
1010
+ listeners = purchaseUpdatedListeners.snapshot(),
1020
1011
  )
1021
1012
  }
1022
1013
  }
@@ -1047,7 +1038,7 @@ class HybridRnIap : HybridRnIapSpec() {
1047
1038
 
1048
1039
  override fun removePurchaseUpdatedListener(token: Double) {
1049
1040
  synchronized(purchaseUpdatedListeners) {
1050
- purchaseUpdatedListeners.removeAll { it.token == token }
1041
+ purchaseUpdatedListeners.remove(token)
1051
1042
  }
1052
1043
  }
1053
1044
 
@@ -1090,7 +1081,7 @@ class HybridRnIap : HybridRnIapSpec() {
1090
1081
  if (pendingPurchaseUpdates.enqueueIfNeeded(purchaseUpdatedListeners.isNotEmpty(), purchase)) {
1091
1082
  emptyList()
1092
1083
  } else {
1093
- purchaseUpdatedListeners.map { it.listener }
1084
+ purchaseUpdatedListeners.snapshot()
1094
1085
  }
1095
1086
  }
1096
1087
  snapshot.forEach { it(purchase) }
@@ -0,0 +1,40 @@
1
+ package com.margelo.nitro.iap
2
+
3
+ /** Callers may also lock this registry to coordinate listener and queue state. */
4
+ internal class TokenizedListenerRegistry<T> {
5
+ private data class Registration<T>(
6
+ val token: Double,
7
+ val listener: T,
8
+ )
9
+
10
+ private val registrations = mutableListOf<Registration<T>>()
11
+ private var nextToken = 1.0
12
+
13
+ @Synchronized
14
+ fun add(listener: T): Double {
15
+ val token = nextToken
16
+ nextToken += 1.0
17
+ registrations.add(Registration(token, listener))
18
+ return token
19
+ }
20
+
21
+ @Synchronized
22
+ fun remove(token: Double): Boolean {
23
+ val index = registrations.indexOfFirst { it.token == token }
24
+ if (index < 0) return false
25
+ registrations.removeAt(index)
26
+ return true
27
+ }
28
+
29
+ @Synchronized
30
+ fun isNotEmpty(): Boolean = registrations.isNotEmpty()
31
+
32
+ @Synchronized
33
+ fun snapshot(): List<T> = registrations.map { it.listener }
34
+
35
+ @Synchronized
36
+ fun clear() {
37
+ registrations.clear()
38
+ nextToken = 1.0
39
+ }
40
+ }
@@ -7,7 +7,7 @@ import { RnIapConsole } from "../utils/debug.js";
7
7
  import { createPurchaseError } from "../utils/errorMapping.js";
8
8
 
9
9
  // Internal modules
10
- import { initConnection, purchaseErrorListener, purchaseUpdatedListener, promotedProductListenerIOS, getAvailablePurchases, finishTransaction as finishTransactionInternal, requestPurchase as requestPurchaseInternal, fetchProducts, verifyPurchase as verifyPurchaseTopLevel, verifyPurchaseWithProvider as verifyPurchaseWithProviderTopLevel, getActiveSubscriptions, hasActiveSubscriptions, syncIOS, getPromotedProductIOS, getBillingChoiceInfoAndroid, isBillingProgramAvailableAndroid, createBillingProgramReportingDetailsAndroid, launchExternalLinkAndroid, showBillingProgramInformationDialogAndroid, showInAppMessagesAndroid, openRedeemOfferCodeAndroid, userChoiceBillingListenerAndroid, developerProvidedBillingListenerAndroid, subscriptionBillingIssueListener, isStandardIOS } from "../index.js";
10
+ import { initConnection, purchaseErrorListener, purchaseUpdatedListener, promotedProductListenerIOS, getAvailablePurchases, finishTransaction as finishTransactionInternal, requestPurchase as requestPurchaseInternal, fetchProducts, verifyPurchase as verifyPurchaseTopLevel, verifyPurchaseWithProvider as verifyPurchaseWithProviderTopLevel, getActiveSubscriptions, hasActiveSubscriptions, syncIOS, getPromotedProductIOS, getBillingChoiceInfoAndroid, isBillingProgramAvailableAndroid, createBillingProgramReportingDetailsAndroid, launchExternalLinkAndroid, showBillingProgramInformationDialogAndroid, showInAppMessagesAndroid, openRedeemOfferCode, openRedeemOfferCodeAndroid, userChoiceBillingListenerAndroid, developerProvidedBillingListenerAndroid, subscriptionBillingIssueListener, isStandardIOS } from "../index.js";
11
11
 
12
12
  // Types
13
13
  import { ErrorCode } from "../types.js";
@@ -357,6 +357,7 @@ export function useIAP(options) {
357
357
  getActiveSubscriptions: getActiveSubscriptionsInternal,
358
358
  hasActiveSubscriptions: hasActiveSubscriptionsInternal,
359
359
  reconnect,
360
+ openRedeemOfferCode,
360
361
  // Alternative billing (Android only)
361
362
  ...(Platform.OS === 'android' ? {
362
363
  getBillingChoiceInfoAndroid,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useState","useRef","Platform","RnIapConsole","createPurchaseError","initConnection","purchaseErrorListener","purchaseUpdatedListener","promotedProductListenerIOS","getAvailablePurchases","finishTransaction","finishTransactionInternal","requestPurchase","requestPurchaseInternal","fetchProducts","verifyPurchase","verifyPurchaseTopLevel","verifyPurchaseWithProvider","verifyPurchaseWithProviderTopLevel","getActiveSubscriptions","hasActiveSubscriptions","syncIOS","getPromotedProductIOS","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","initializationGenerationRef","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","synced","code","SyncError","message","platform","buildAndroidConfig","config","enableBillingProgramAndroid","billingChoiceScreenTypeAndroid","registerListeners","purchaseUpdate","purchase","e","onPurchaseSuccess","purchaseUpdatedListenerOptions","purchaseError","InitConnection","onPurchaseError","onPromotedProductIOS","onUserChoiceBillingAndroid","userChoiceBillingAndroid","details","onDeveloperProvidedBillingAndroid","developerProvidedBillingAndroid","subscriptionBillingIssue","onSubscriptionBillingIssue","cleanupListeners","remove","undefined","initIapWithSubscriptions","generation","reconnect","Promise","resolve","then"],"sourceRoot":"../../../src","sources":["hooks/useIAP.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useState","useRef","Platform","RnIapConsole","createPurchaseError","initConnection","purchaseErrorListener","purchaseUpdatedListener","promotedProductListenerIOS","getAvailablePurchases","finishTransaction","finishTransactionInternal","requestPurchase","requestPurchaseInternal","fetchProducts","verifyPurchase","verifyPurchaseTopLevel","verifyPurchaseWithProvider","verifyPurchaseWithProviderTopLevel","getActiveSubscriptions","hasActiveSubscriptions","syncIOS","getPromotedProductIOS","getBillingChoiceInfoAndroid","isBillingProgramAvailableAndroid","createBillingProgramReportingDetailsAndroid","launchExternalLinkAndroid","showBillingProgramInformationDialogAndroid","showInAppMessagesAndroid","openRedeemOfferCode","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","initializationGenerationRef","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","synced","code","SyncError","message","platform","buildAndroidConfig","config","enableBillingProgramAndroid","billingChoiceScreenTypeAndroid","registerListeners","purchaseUpdate","purchase","e","onPurchaseSuccess","purchaseUpdatedListenerOptions","purchaseError","InitConnection","onPurchaseError","onPromotedProductIOS","onUserChoiceBillingAndroid","userChoiceBillingAndroid","details","onDeveloperProvidedBillingAndroid","developerProvidedBillingAndroid","subscriptionBillingIssue","onSubscriptionBillingIssue","cleanupListeners","remove","undefined","initIapWithSubscriptions","generation","reconnect","Promise","resolve","then"],"sourceRoot":"../../../src","sources":["hooks/useIAP.ts"],"mappings":"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","ignoreList":[]}
@@ -130,11 +130,9 @@ const IAP = {
130
130
  // ============================================================================
131
131
  // EVENT LISTENERS
132
132
  //
133
- // Uses a singleton native listener per event type with JS-level fan-out.
134
- // This avoids the iOS bug where removePurchaseUpdatedListener calls
135
- // removeAll() instead of removing a specific listener, which caused ALL
136
- // listeners to be lost when any single useIAP instance unmounted.
137
- // See: https://github.com/hyochan/react-native-iap/issues/3150
133
+ // Uses one native listener per event type with JS fan-out so removing one JS
134
+ // subscriber cannot detach another. See hyochan/react-native-iap#3150 and
135
+ // hyodotdev/openiap#382.
138
136
  // ============================================================================
139
137
 
140
138
  const purchaseUpdateJsListeners = new Set();
@@ -1193,9 +1191,7 @@ export const initConnection = async config => {
1193
1191
  export const endConnection = async () => {
1194
1192
  try {
1195
1193
  if (!iapRef) return true;
1196
- const result = await IAP.instance.endConnection();
1197
- resetListenerState();
1198
- return result;
1194
+ return await IAP.instance.endConnection();
1199
1195
  } catch (error) {
1200
1196
  const parsedError = parseErrorAndLogIfNeeded('Failed to end IAP connection:', error);
1201
1197
  throw createPurchaseError({
@@ -1204,6 +1200,8 @@ export const endConnection = async () => {
1204
1200
  responseCode: parsedError.responseCode,
1205
1201
  debugMessage: parsedError.debugMessage
1206
1202
  });
1203
+ } finally {
1204
+ resetListenerState();
1207
1205
  }
1208
1206
  };
1209
1207
 
@@ -1582,6 +1580,7 @@ export const consumePurchaseAndroid = async purchaseToken => {
1582
1580
  * ```
1583
1581
  *
1584
1582
  * @see {@link https://openiap.dev/docs/apis/android/open-redeem-offer-code-android}
1583
+ * @deprecated Use openRedeemOfferCode. Scheduled for removal in OpenIAP 4.0.
1585
1584
  */
1586
1585
  export const openRedeemOfferCodeAndroid = async () => {
1587
1586
  if (Platform.OS !== 'android') {
@@ -1830,6 +1829,7 @@ export const syncIOS = async () => {
1830
1829
  * @platform iOS
1831
1830
  *
1832
1831
  * @see {@link https://openiap.dev/docs/apis/ios/present-code-redemption-sheet-ios}
1832
+ * @deprecated Use openRedeemOfferCode. Scheduled for removal in OpenIAP 4.0.
1833
1833
  */
1834
1834
  export const presentCodeRedemptionSheetIOS = async () => {
1835
1835
  if (Platform.OS !== 'ios') {
@@ -1855,6 +1855,33 @@ export const presentCodeRedemptionSheetIOS = async () => {
1855
1855
  }
1856
1856
  };
1857
1857
 
1858
+ /**
1859
+ * Open the store's offer/promo code redemption flow.
1860
+ *
1861
+ * Resolves the redeemed purchase only when the store reports it synchronously;
1862
+ * every other path resolves null, so reconcile with `getAvailablePurchases`
1863
+ * when the app resumes.
1864
+ *
1865
+ * @returns Promise<Purchase | null> - The redeemed purchase, or null
1866
+ * @throws When a redemption flow exists but cannot be opened
1867
+ *
1868
+ * @see {@link https://openiap.dev/docs/apis/open-redeem-offer-code}
1869
+ */
1870
+ export const openRedeemOfferCode = async () => {
1871
+ if (Platform.OS === 'ios') {
1872
+ return presentCodeRedemptionSheetIOS();
1873
+ }
1874
+ if (isVegaOS()) {
1875
+ return null;
1876
+ }
1877
+ if (Platform.OS === 'android') {
1878
+ // false also maps to null until the SDK adopts openiap-google 3.4.0's unified handler.
1879
+ await IAP.instance.openRedeemOfferCodeAndroid();
1880
+ return null;
1881
+ }
1882
+ throw unsupportedPlatformError();
1883
+ };
1884
+
1858
1885
  /**
1859
1886
  * Clear unfinished transactions on iOS
1860
1887
  * @returns Promise<boolean>