expo-iap 3.3.1 → 3.3.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.
@@ -170,6 +170,7 @@ object ExpoIapHelper {
170
170
  }
171
171
  }
172
172
  openIap.addPurchaseErrorListener { e ->
173
+ val errorJson = e.toJSON()
173
174
  runCatching {
174
175
  emitOrQueue(
175
176
  module,
@@ -177,7 +178,7 @@ object ExpoIapHelper {
177
178
  connectionReady,
178
179
  pendingEvents,
179
180
  eventPurchaseError,
180
- e.toJSON(),
181
+ errorJson,
181
182
  )
182
183
  }.onFailure { error ->
183
184
  android.util.Log.e(TAG, "Failed to buffer/send PURCHASE_ERROR", error)
@@ -198,6 +199,10 @@ object ExpoIapHelper {
198
199
  )
199
200
  }.onFailure { android.util.Log.e(TAG, "Failed to send fallback error event", it) }
200
201
  }
202
+ // Also reject any pending purchase promises to match iOS behavior
203
+ val errorCode = errorJson["code"] as? String ?: "purchase-error"
204
+ val errorMessage = errorJson["message"] as? String ?: "Purchase failed"
205
+ rejectPurchasePromises(errorCode, errorMessage, null)
201
206
  }
202
207
  openIap.addUserChoiceBillingListener { details ->
203
208
  runCatching {
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1765981272673" clover="3.2.0">
3
- <project timestamp="1765981272673" name="All files">
2
+ <coverage generated="1765982313260" clover="3.2.0">
3
+ <project timestamp="1765982313260" name="All files">
4
4
  <metrics statements="483" coveredstatements="449" conditionals="267" coveredconditionals="231" methods="101" coveredmethods="80" elements="851" coveredelements="760" complexity="0" loc="483" ncloc="483" packages="3" files="5" classes="5"/>
5
5
  <package name="src">
6
6
  <metrics statements="216" coveredstatements="204" conditionals="115" coveredconditionals="103" methods="44" coveredmethods="34"/>
@@ -131,7 +131,7 @@
131
131
  <div class='footer quiet pad2 space-top1 center small'>
132
132
  Code coverage generated by
133
133
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
134
- at 2025-12-17T14:21:12.653Z
134
+ at 2025-12-17T14:38:33.241Z
135
135
  </div>
136
136
  <script src="prettify.js"></script>
137
137
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2025-12-17T14:21:12.653Z
104
+ at 2025-12-17T14:38:33.241Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
@@ -2635,7 +2635,7 @@ export {<span class="fstat-no" title="function not covered" >ExpoIapConsole}</sp
2635
2635
  <div class='footer quiet pad2 space-top1 center small'>
2636
2636
  Code coverage generated by
2637
2637
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2638
- at 2025-12-17T14:21:12.653Z
2638
+ at 2025-12-17T14:38:33.241Z
2639
2639
  </div>
2640
2640
  <script src="../prettify.js"></script>
2641
2641
  <script>
@@ -1045,7 +1045,7 @@ export const createBillingProgramReportingDetailsAndroid = async (
1045
1045
  <div class='footer quiet pad2 space-top1 center small'>
1046
1046
  Code coverage generated by
1047
1047
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1048
- at 2025-12-17T14:21:12.653Z
1048
+ at 2025-12-17T14:38:33.241Z
1049
1049
  </div>
1050
1050
  <script src="../../prettify.js"></script>
1051
1051
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2025-12-17T14:21:12.653Z
119
+ at 2025-12-17T14:38:33.241Z
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -1270,7 +1270,7 @@ export const presentExternalPurchaseLinkIOS: MutationField&lt;
1270
1270
  <div class='footer quiet pad2 space-top1 center small'>
1271
1271
  Code coverage generated by
1272
1272
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1273
- at 2025-12-17T14:21:12.653Z
1273
+ at 2025-12-17T14:38:33.241Z
1274
1274
  </div>
1275
1275
  <script src="../../prettify.js"></script>
1276
1276
  <script>
@@ -268,7 +268,7 @@ export const ExpoIapConsole = createConsole();
268
268
  <div class='footer quiet pad2 space-top1 center small'>
269
269
  Code coverage generated by
270
270
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
271
- at 2025-12-17T14:21:12.653Z
271
+ at 2025-12-17T14:38:33.241Z
272
272
  </div>
273
273
  <script src="../../prettify.js"></script>
274
274
  <script>
@@ -1126,7 +1126,7 @@ export function getUserFriendlyErrorMessage(error: ErrorLike): string {
1126
1126
  <div class='footer quiet pad2 space-top1 center small'>
1127
1127
  Code coverage generated by
1128
1128
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1129
- at 2025-12-17T14:21:12.653Z
1129
+ at 2025-12-17T14:38:33.241Z
1130
1130
  </div>
1131
1131
  <script src="../../prettify.js"></script>
1132
1132
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2025-12-17T14:21:12.653Z
119
+ at 2025-12-17T14:38:33.241Z
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-iap",
3
- "version": "3.3.1",
3
+ "version": "3.3.2",
4
4
  "description": "In App Purchase module in Expo",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",