expo-iap 3.2.1 → 3.2.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.
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">94.26% </span>
26
+ <span class="strong">93.17% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>477/506</span>
28
+ <span class='fraction'>478/513</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">87.02% </span>
33
+ <span class="strong">86.51% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>228/262</span>
35
+ <span class='fraction'>231/267</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">80% </span>
40
+ <span class="strong">79.2% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>80/100</span>
42
+ <span class='fraction'>80/101</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">94.11% </span>
47
+ <span class="strong">92.96% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>448/476</span>
49
+ <span class='fraction'>449/483</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,17 +80,17 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file high" data-value="src"><a href="src/index.html">src</a></td>
83
- <td data-value="96.88" class="pic high">
84
- <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
83
+ <td data-value="94.39" class="pic high">
84
+ <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
85
85
  </td>
86
- <td data-value="96.88" class="pct high">96.88%</td>
87
- <td data-value="225" class="abs high">218/225</td>
88
- <td data-value="90.9" class="pct high">90.9%</td>
89
- <td data-value="110" class="abs high">100/110</td>
90
- <td data-value="79.06" class="pct medium">79.06%</td>
91
- <td data-value="43" class="abs medium">34/43</td>
92
- <td data-value="97.12" class="pct high">97.12%</td>
93
- <td data-value="209" class="abs high">203/209</td>
86
+ <td data-value="94.39" class="pct high">94.39%</td>
87
+ <td data-value="232" class="abs high">219/232</td>
88
+ <td data-value="89.56" class="pct high">89.56%</td>
89
+ <td data-value="115" class="abs high">103/115</td>
90
+ <td data-value="77.27" class="pct medium">77.27%</td>
91
+ <td data-value="44" class="abs medium">34/44</td>
92
+ <td data-value="94.44" class="pct high">94.44%</td>
93
+ <td data-value="216" class="abs high">204/216</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
@@ -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-13T16:00:09.743Z
134
+ at 2025-12-13T21:49:13.783Z
135
135
  </div>
136
136
  <script src="prettify.js"></script>
137
137
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">96.88% </span>
26
+ <span class="strong">94.39% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>218/225</span>
28
+ <span class='fraction'>219/232</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">90.9% </span>
33
+ <span class="strong">89.56% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>100/110</span>
35
+ <span class='fraction'>103/115</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">79.06% </span>
40
+ <span class="strong">77.27% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>34/43</span>
42
+ <span class='fraction'>34/44</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">97.12% </span>
47
+ <span class="strong">94.44% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>203/209</span>
49
+ <span class='fraction'>204/216</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,17 +80,17 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file high" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
83
- <td data-value="96.88" class="pic high">
84
- <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
83
+ <td data-value="94.39" class="pic high">
84
+ <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
85
85
  </td>
86
- <td data-value="96.88" class="pct high">96.88%</td>
87
- <td data-value="225" class="abs high">218/225</td>
88
- <td data-value="90.9" class="pct high">90.9%</td>
89
- <td data-value="110" class="abs high">100/110</td>
90
- <td data-value="79.06" class="pct medium">79.06%</td>
91
- <td data-value="43" class="abs medium">34/43</td>
92
- <td data-value="97.12" class="pct high">97.12%</td>
93
- <td data-value="209" class="abs high">203/209</td>
86
+ <td data-value="94.39" class="pct high">94.39%</td>
87
+ <td data-value="232" class="abs high">219/232</td>
88
+ <td data-value="89.56" class="pct high">89.56%</td>
89
+ <td data-value="115" class="abs high">103/115</td>
90
+ <td data-value="77.27" class="pct medium">77.27%</td>
91
+ <td data-value="44" class="abs medium">34/44</td>
92
+ <td data-value="94.44" class="pct high">94.44%</td>
93
+ <td data-value="216" class="abs high">204/216</td>
94
94
  </tr>
95
95
 
96
96
  </tbody>
@@ -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-13T16:00:09.743Z
104
+ at 2025-12-13T21:49:13.783Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">96.88% </span>
26
+ <span class="strong">94.39% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>218/225</span>
28
+ <span class='fraction'>219/232</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">90.9% </span>
33
+ <span class="strong">89.56% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>100/110</span>
35
+ <span class='fraction'>103/115</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">79.06% </span>
40
+ <span class="strong">77.27% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>34/43</span>
42
+ <span class='fraction'>34/44</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">97.12% </span>
47
+ <span class="strong">94.44% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>203/209</span>
49
+ <span class='fraction'>204/216</span>
50
50
  </div>
51
51
 
52
52
 
@@ -891,7 +891,34 @@
891
891
  <a name='L826'></a><a href='#L826'>826</a>
892
892
  <a name='L827'></a><a href='#L827'>827</a>
893
893
  <a name='L828'></a><a href='#L828'>828</a>
894
- <a name='L829'></a><a href='#L829'>829</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
894
+ <a name='L829'></a><a href='#L829'>829</a>
895
+ <a name='L830'></a><a href='#L830'>830</a>
896
+ <a name='L831'></a><a href='#L831'>831</a>
897
+ <a name='L832'></a><a href='#L832'>832</a>
898
+ <a name='L833'></a><a href='#L833'>833</a>
899
+ <a name='L834'></a><a href='#L834'>834</a>
900
+ <a name='L835'></a><a href='#L835'>835</a>
901
+ <a name='L836'></a><a href='#L836'>836</a>
902
+ <a name='L837'></a><a href='#L837'>837</a>
903
+ <a name='L838'></a><a href='#L838'>838</a>
904
+ <a name='L839'></a><a href='#L839'>839</a>
905
+ <a name='L840'></a><a href='#L840'>840</a>
906
+ <a name='L841'></a><a href='#L841'>841</a>
907
+ <a name='L842'></a><a href='#L842'>842</a>
908
+ <a name='L843'></a><a href='#L843'>843</a>
909
+ <a name='L844'></a><a href='#L844'>844</a>
910
+ <a name='L845'></a><a href='#L845'>845</a>
911
+ <a name='L846'></a><a href='#L846'>846</a>
912
+ <a name='L847'></a><a href='#L847'>847</a>
913
+ <a name='L848'></a><a href='#L848'>848</a>
914
+ <a name='L849'></a><a href='#L849'>849</a>
915
+ <a name='L850'></a><a href='#L850'>850</a>
916
+ <a name='L851'></a><a href='#L851'>851</a>
917
+ <a name='L852'></a><a href='#L852'>852</a>
918
+ <a name='L853'></a><a href='#L853'>853</a>
919
+ <a name='L854'></a><a href='#L854'>854</a>
920
+ <a name='L855'></a><a href='#L855'>855</a>
921
+ <a name='L856'></a><a href='#L856'>856</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
895
922
  <span class="cline-any cline-yes">2x</span>
896
923
  <span class="cline-any cline-yes">2x</span>
897
924
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1701,6 +1728,33 @@
1701
1728
  <span class="cline-any cline-neutral">&nbsp;</span>
1702
1729
  <span class="cline-any cline-yes">2x</span>
1703
1730
  <span class="cline-any cline-yes">13x</span>
1731
+ <span class="cline-any cline-neutral">&nbsp;</span>
1732
+ <span class="cline-any cline-yes">12x</span>
1733
+ <span class="cline-any cline-neutral">&nbsp;</span>
1734
+ <span class="cline-any cline-neutral">&nbsp;</span>
1735
+ <span class="cline-any cline-neutral">&nbsp;</span>
1736
+ <span class="cline-any cline-neutral">&nbsp;</span>
1737
+ <span class="cline-any cline-no">&nbsp;</span>
1738
+ <span class="cline-any cline-neutral">&nbsp;</span>
1739
+ <span class="cline-any cline-no">&nbsp;</span>
1740
+ <span class="cline-any cline-no">&nbsp;</span>
1741
+ <span class="cline-any cline-no">&nbsp;</span>
1742
+ <span class="cline-any cline-no">&nbsp;</span>
1743
+ <span class="cline-any cline-neutral">&nbsp;</span>
1744
+ <span class="cline-any cline-neutral">&nbsp;</span>
1745
+ <span class="cline-any cline-neutral">&nbsp;</span>
1746
+ <span class="cline-any cline-neutral">&nbsp;</span>
1747
+ <span class="cline-any cline-neutral">&nbsp;</span>
1748
+ <span class="cline-any cline-neutral">&nbsp;</span>
1749
+ <span class="cline-any cline-neutral">&nbsp;</span>
1750
+ <span class="cline-any cline-neutral">&nbsp;</span>
1751
+ <span class="cline-any cline-no">&nbsp;</span>
1752
+ <span class="cline-any cline-neutral">&nbsp;</span>
1753
+ <span class="cline-any cline-neutral">&nbsp;</span>
1754
+ <span class="cline-any cline-neutral">&nbsp;</span>
1755
+ <span class="cline-any cline-neutral">&nbsp;</span>
1756
+ <span class="cline-any cline-neutral">&nbsp;</span>
1757
+ <span class="cline-any cline-neutral">&nbsp;</span>
1704
1758
  <span class="cline-any cline-yes">12x</span>
1705
1759
  <span class="cline-any cline-neutral">&nbsp;</span>
1706
1760
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -2529,6 +2583,33 @@ export const verifyPurchaseWithProvider: MutationField&lt;
2529
2583
  'verifyPurchaseWithProvider'
2530
2584
  &gt; = async (options) =&gt; {
2531
2585
  if (Platform.OS === 'ios' || Platform.OS === 'android') {
2586
+ // Auto-fill apiKey from config if not provided and provider is iapkit
2587
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (
2588
+ options.provider === 'iapkit' &amp;&amp;
2589
+ options.iapkit &amp;&amp;
2590
+ !options.iapkit.apiKey
2591
+ ) {
2592
+ <span class="cstat-no" title="statement not covered" > try {</span>
2593
+ // Dynamically import expo-constants to avoid hard dependency
2594
+ const {default: Constants} = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >await import('</span>expo-constants');</span>
2595
+ const configApiKey = <span class="cstat-no" title="statement not covered" >Constants.expoConfig?.extra?.iapkitApiKey;</span>
2596
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (configApiKey) {</span>
2597
+ <span class="cstat-no" title="statement not covered" > options = {</span>
2598
+ ...options,
2599
+ iapkit: {
2600
+ ...options.iapkit,
2601
+ apiKey: configApiKey,
2602
+ },
2603
+ };
2604
+ }
2605
+ } catch {
2606
+ <span class="cstat-no" title="statement not covered" > throw new Error(</span>
2607
+ 'expo-constants is required for auto-filling iapkitApiKey from config. ' +
2608
+ 'Please install it: npx expo install expo-constants\n' +
2609
+ 'Or provide apiKey directly in verifyPurchaseWithProvider options.',
2610
+ );
2611
+ }
2612
+ }
2532
2613
  return ExpoIapModule.verifyPurchaseWithProvider(options);
2533
2614
  }
2534
2615
  &nbsp;
@@ -2554,7 +2635,7 @@ export {<span class="fstat-no" title="function not covered" >ExpoIapConsole}</sp
2554
2635
  <div class='footer quiet pad2 space-top1 center small'>
2555
2636
  Code coverage generated by
2556
2637
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2557
- at 2025-12-13T16:00:09.743Z
2638
+ at 2025-12-13T21:49:13.783Z
2558
2639
  </div>
2559
2640
  <script src="../prettify.js"></script>
2560
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-13T16:00:09.743Z
1048
+ at 2025-12-13T21:49:13.783Z
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-13T16:00:09.743Z
119
+ at 2025-12-13T21:49:13.783Z
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-13T16:00:09.743Z
1273
+ at 2025-12-13T21:49:13.783Z
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-13T16:00:09.743Z
271
+ at 2025-12-13T21:49:13.783Z
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-13T16:00:09.743Z
1129
+ at 2025-12-13T21:49:13.783Z
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-13T16:00:09.743Z
119
+ at 2025-12-13T21:49:13.783Z
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -1,93 +1,95 @@
1
1
  TN:
2
2
  SF:src/index.ts
3
- FN:51,(anonymous_5)
4
- FN:89,(anonymous_6)
5
- FN:117,(anonymous_7)
6
- FN:131,(anonymous_8)
7
- FN:132,(anonymous_9)
8
- FN:134,(anonymous_10)
9
- FN:137,(anonymous_11)
10
- FN:148,(anonymous_12)
11
- FN:151,(anonymous_13)
12
- FN:181,(anonymous_14)
13
- FN:188,(anonymous_15)
14
- FN:218,(anonymous_16)
15
- FN:225,(anonymous_17)
16
- FN:230,(anonymous_18)
17
- FN:233,(anonymous_19)
18
- FN:243,(anonymous_20)
19
- FN:259,(anonymous_21)
20
- FN:262,(anonymous_22)
21
- FN:270,(anonymous_23)
22
- FN:273,(anonymous_24)
23
- FN:281,(anonymous_25)
24
- FN:314,(anonymous_26)
25
- FN:323,(anonymous_27)
26
- FN:328,(anonymous_28)
27
- FN:329,(anonymous_29)
28
- FN:365,(anonymous_30)
29
- FN:389,(anonymous_31)
30
- FN:395,(anonymous_32)
3
+ FN:51,(anonymous_11)
4
+ FN:89,(anonymous_12)
5
+ FN:117,(anonymous_13)
6
+ FN:131,(anonymous_14)
7
+ FN:132,(anonymous_15)
8
+ FN:134,(anonymous_16)
9
+ FN:137,(anonymous_17)
10
+ FN:148,(anonymous_18)
11
+ FN:151,(anonymous_19)
12
+ FN:181,(anonymous_20)
13
+ FN:188,(anonymous_21)
14
+ FN:218,(anonymous_22)
15
+ FN:225,(anonymous_23)
16
+ FN:230,(anonymous_24)
17
+ FN:233,(anonymous_25)
18
+ FN:243,(anonymous_26)
19
+ FN:259,(anonymous_27)
20
+ FN:262,(anonymous_28)
21
+ FN:270,(anonymous_29)
22
+ FN:273,(anonymous_30)
23
+ FN:281,(anonymous_31)
24
+ FN:314,(anonymous_32)
25
+ FN:323,(anonymous_33)
26
+ FN:328,(anonymous_34)
27
+ FN:329,(anonymous_35)
28
+ FN:365,(anonymous_36)
29
+ FN:389,(anonymous_37)
30
+ FN:395,(anonymous_38)
31
31
  FN:421,normalizeRequestProps
32
- FN:475,(anonymous_34)
33
- FN:612,(anonymous_35)
34
- FN:629,(anonymous_36)
35
- FN:672,(anonymous_37)
36
- FN:674,(anonymous_38)
37
- FN:703,(anonymous_39)
38
- FN:727,(anonymous_40)
39
- FN:772,(anonymous_41)
40
- FN:809,(anonymous_42)
41
- FN:819,(anonymous_43)
42
- FN:820,(anonymous_44)
43
- FN:821,(anonymous_45)
44
- FN:822,(anonymous_46)
45
- FN:828,(anonymous_47)
46
- FNF:43
32
+ FN:475,(anonymous_40)
33
+ FN:612,(anonymous_41)
34
+ FN:629,(anonymous_42)
35
+ FN:672,(anonymous_43)
36
+ FN:674,(anonymous_44)
37
+ FN:703,(anonymous_45)
38
+ FN:727,(anonymous_46)
39
+ FN:772,(anonymous_47)
40
+ FN:809,(anonymous_48)
41
+ FN:819,(anonymous_49)
42
+ FN:846,(anonymous_50)
43
+ FN:847,(anonymous_51)
44
+ FN:848,(anonymous_52)
45
+ FN:849,(anonymous_53)
46
+ FN:855,(anonymous_54)
47
+ FNF:44
47
48
  FNH:34
48
- FNDA:2,(anonymous_5)
49
- FNDA:21,(anonymous_6)
50
- FNDA:7,(anonymous_7)
51
- FNDA:7,(anonymous_8)
52
- FNDA:4,(anonymous_9)
53
- FNDA:1,(anonymous_10)
54
- FNDA:1,(anonymous_11)
55
- FNDA:1,(anonymous_12)
56
- FNDA:1,(anonymous_13)
57
- FNDA:2,(anonymous_14)
58
- FNDA:0,(anonymous_15)
59
- FNDA:0,(anonymous_16)
60
- FNDA:0,(anonymous_17)
49
+ FNDA:2,(anonymous_11)
50
+ FNDA:21,(anonymous_12)
51
+ FNDA:7,(anonymous_13)
52
+ FNDA:7,(anonymous_14)
53
+ FNDA:4,(anonymous_15)
54
+ FNDA:1,(anonymous_16)
55
+ FNDA:1,(anonymous_17)
61
56
  FNDA:1,(anonymous_18)
62
57
  FNDA:1,(anonymous_19)
63
- FNDA:9,(anonymous_20)
64
- FNDA:6,(anonymous_21)
65
- FNDA:10,(anonymous_22)
66
- FNDA:1,(anonymous_23)
67
- FNDA:3,(anonymous_24)
68
- FNDA:7,(anonymous_25)
69
- FNDA:4,(anonymous_26)
70
- FNDA:2,(anonymous_27)
71
- FNDA:1,(anonymous_28)
58
+ FNDA:2,(anonymous_20)
59
+ FNDA:0,(anonymous_21)
60
+ FNDA:0,(anonymous_22)
61
+ FNDA:0,(anonymous_23)
62
+ FNDA:1,(anonymous_24)
63
+ FNDA:1,(anonymous_25)
64
+ FNDA:9,(anonymous_26)
65
+ FNDA:6,(anonymous_27)
66
+ FNDA:10,(anonymous_28)
72
67
  FNDA:1,(anonymous_29)
73
- FNDA:6,(anonymous_30)
74
- FNDA:8,(anonymous_31)
75
- FNDA:2,(anonymous_32)
76
- FNDA:10,normalizeRequestProps
77
- FNDA:13,(anonymous_34)
68
+ FNDA:3,(anonymous_30)
69
+ FNDA:7,(anonymous_31)
70
+ FNDA:4,(anonymous_32)
71
+ FNDA:2,(anonymous_33)
72
+ FNDA:1,(anonymous_34)
78
73
  FNDA:1,(anonymous_35)
79
74
  FNDA:6,(anonymous_36)
80
- FNDA:1,(anonymous_37)
81
- FNDA:0,(anonymous_38)
82
- FNDA:5,(anonymous_39)
83
- FNDA:5,(anonymous_40)
84
- FNDA:3,(anonymous_41)
85
- FNDA:13,(anonymous_42)
86
- FNDA:0,(anonymous_43)
75
+ FNDA:8,(anonymous_37)
76
+ FNDA:2,(anonymous_38)
77
+ FNDA:10,normalizeRequestProps
78
+ FNDA:13,(anonymous_40)
79
+ FNDA:1,(anonymous_41)
80
+ FNDA:6,(anonymous_42)
81
+ FNDA:1,(anonymous_43)
87
82
  FNDA:0,(anonymous_44)
88
- FNDA:0,(anonymous_45)
89
- FNDA:0,(anonymous_46)
90
- FNDA:0,(anonymous_47)
83
+ FNDA:5,(anonymous_45)
84
+ FNDA:5,(anonymous_46)
85
+ FNDA:3,(anonymous_47)
86
+ FNDA:13,(anonymous_48)
87
+ FNDA:0,(anonymous_49)
88
+ FNDA:0,(anonymous_50)
89
+ FNDA:0,(anonymous_51)
90
+ FNDA:0,(anonymous_52)
91
+ FNDA:0,(anonymous_53)
92
+ FNDA:0,(anonymous_54)
91
93
  DA:2,2
92
94
  DA:3,2
93
95
  DA:6,2
@@ -288,17 +290,24 @@ DA:779,1
288
290
  DA:807,2
289
291
  DA:809,2
290
292
  DA:810,13
291
- DA:811,12
292
- DA:814,1
293
- DA:817,2
294
- DA:818,2
295
- DA:819,2
296
- DA:820,2
297
- DA:821,2
298
- DA:822,2
299
- DA:828,2
300
- LF:209
301
- LH:203
293
+ DA:812,12
294
+ DA:817,0
295
+ DA:819,0
296
+ DA:820,0
297
+ DA:821,0
298
+ DA:822,0
299
+ DA:831,0
300
+ DA:838,12
301
+ DA:841,1
302
+ DA:844,2
303
+ DA:845,2
304
+ DA:846,2
305
+ DA:847,2
306
+ DA:848,2
307
+ DA:849,2
308
+ DA:855,2
309
+ LF:216
310
+ LH:204
302
311
  BRDA:51,0,0,2
303
312
  BRDA:51,0,1,2
304
313
  BRDA:81,1,0,2
@@ -409,8 +418,13 @@ BRDA:775,70,1,2
409
418
  BRDA:810,71,0,12
410
419
  BRDA:810,72,0,13
411
420
  BRDA:810,72,1,2
412
- BRF:110
413
- BRH:100
421
+ BRDA:812,73,0,0
422
+ BRDA:813,74,0,12
423
+ BRDA:813,74,1,12
424
+ BRDA:813,74,2,12
425
+ BRDA:821,75,0,0
426
+ BRF:115
427
+ BRH:103
414
428
  end_of_record
415
429
  TN:
416
430
  SF:src/modules/android.ts
@@ -11,12 +11,14 @@ Pod::Spec.new do |s|
11
11
  s.license = package['license']
12
12
  s.author = package['author']
13
13
  s.homepage = package['homepage']
14
- # WARNING: DO NOT MODIFY platform versions from 13.4
15
- # Changing iOS/tvOS to 15.0 can cause expo prebuild to exclude the module in certain Expo SDKs (known bug)
14
+ # WARNING: DO NOT MODIFY iOS platform version from 13.4
15
+ # Changing iOS to 15.0 can cause expo prebuild to exclude the module in certain Expo SDKs (known bug)
16
16
  # See: https://github.com/hyochan/expo-iap/issues/168
17
- # Even though StoreKit 2 requires iOS/tvOS 15.0+, keep both at 13.4 for compatibility with affected Expo SDKs
18
- # The iOS/tvOS 15.0+ requirement is enforced at build time in source code via @available annotations
19
- s.platforms = { :ios => '13.4', :tvos => '13.4' }
17
+ # Even though StoreKit 2 requires iOS 15.0+, keep iOS at 13.4 for compatibility with affected Expo SDKs
18
+ # The iOS 15.0+ requirement is enforced at build time in source code via @available annotations
19
+ #
20
+ # NOTE: tvOS requires 16.0 because openiap dependency has minimum tvOS deployment target of 16.0
21
+ s.platforms = { :ios => '13.4', :tvos => '16.0' }
20
22
  s.swift_version = '5.9'
21
23
  s.source = { git: 'https://github.com/hyochan/expo-iap' }
22
24
  s.static_framework = true
@@ -4,7 +4,7 @@ import OpenIAP
4
4
 
5
5
  /// Exception wrapper for PurchaseError that preserves OpenIAP error codes
6
6
  /// This ensures consistent error format between try-catch and onPurchaseError callback
7
- class IapException: GenericException<(code: String, message: String, productId: String?)> {
7
+ final class IapException: GenericException<(code: String, message: String, productId: String?)>, @unchecked Sendable {
8
8
  override var code: String { param.code }
9
9
  override var reason: String { param.message }
10
10
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-iap",
3
- "version": "3.2.1",
3
+ "version": "3.2.2",
4
4
  "description": "In App Purchase module in Expo",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",