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.
- package/CLAUDE.md +10 -4
- package/README.md +1 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +24 -0
- package/build/index.js.map +1 -1
- package/coverage/clover.xml +21 -14
- package/coverage/coverage-final.json +1 -1
- package/coverage/lcov-report/index.html +19 -19
- package/coverage/lcov-report/src/index.html +19 -19
- package/coverage/lcov-report/src/index.ts.html +91 -10
- package/coverage/lcov-report/src/modules/android.ts.html +1 -1
- package/coverage/lcov-report/src/modules/index.html +1 -1
- package/coverage/lcov-report/src/modules/ios.ts.html +1 -1
- package/coverage/lcov-report/src/utils/debug.ts.html +1 -1
- package/coverage/lcov-report/src/utils/errorMapping.ts.html +1 -1
- package/coverage/lcov-report/src/utils/index.html +1 -1
- package/coverage/lcov.info +107 -93
- package/ios/ExpoIap.podspec +7 -5
- package/ios/ExpoIapHelper.swift +1 -1
- package/package.json +1 -1
- package/src/index.ts +27 -0
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">93.17% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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">
|
|
33
|
+
<span class="strong">86.51% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
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">
|
|
40
|
+
<span class="strong">79.2% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>80/
|
|
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">
|
|
47
|
+
<span class="strong">92.96% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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="
|
|
84
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
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="
|
|
87
|
-
<td data-value="
|
|
88
|
-
<td data-value="
|
|
89
|
-
<td data-value="
|
|
90
|
-
<td data-value="
|
|
91
|
-
<td data-value="
|
|
92
|
-
<td data-value="
|
|
93
|
-
<td data-value="
|
|
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-
|
|
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">
|
|
26
|
+
<span class="strong">94.39% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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">
|
|
33
|
+
<span class="strong">89.56% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
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">
|
|
40
|
+
<span class="strong">77.27% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>34/
|
|
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">
|
|
47
|
+
<span class="strong">94.44% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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="
|
|
84
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
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="
|
|
87
|
-
<td data-value="
|
|
88
|
-
<td data-value="
|
|
89
|
-
<td data-value="
|
|
90
|
-
<td data-value="
|
|
91
|
-
<td data-value="
|
|
92
|
-
<td data-value="
|
|
93
|
-
<td data-value="
|
|
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-
|
|
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">
|
|
26
|
+
<span class="strong">94.39% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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">
|
|
33
|
+
<span class="strong">89.56% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
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">
|
|
40
|
+
<span class="strong">77.27% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>34/
|
|
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">
|
|
47
|
+
<span class="strong">94.44% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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
|
|
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"> </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"> </span>
|
|
@@ -1701,6 +1728,33 @@
|
|
|
1701
1728
|
<span class="cline-any cline-neutral"> </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"> </span>
|
|
1732
|
+
<span class="cline-any cline-yes">12x</span>
|
|
1733
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1734
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1735
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1736
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1737
|
+
<span class="cline-any cline-no"> </span>
|
|
1738
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1739
|
+
<span class="cline-any cline-no"> </span>
|
|
1740
|
+
<span class="cline-any cline-no"> </span>
|
|
1741
|
+
<span class="cline-any cline-no"> </span>
|
|
1742
|
+
<span class="cline-any cline-no"> </span>
|
|
1743
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1744
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1745
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1746
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1747
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1748
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1749
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1750
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1751
|
+
<span class="cline-any cline-no"> </span>
|
|
1752
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1753
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1754
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1755
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1756
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1757
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1704
1758
|
<span class="cline-any cline-yes">12x</span>
|
|
1705
1759
|
<span class="cline-any cline-neutral"> </span>
|
|
1706
1760
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2529,6 +2583,33 @@ export const verifyPurchaseWithProvider: MutationField<
|
|
|
2529
2583
|
'verifyPurchaseWithProvider'
|
|
2530
2584
|
> = async (options) => {
|
|
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' &&
|
|
2589
|
+
options.iapkit &&
|
|
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
|
|
|
@@ -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-
|
|
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-
|
|
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-
|
|
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<
|
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
119
|
+
at 2025-12-13T21:49:13.783Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../../prettify.js"></script>
|
|
122
122
|
<script>
|
package/coverage/lcov.info
CHANGED
|
@@ -1,93 +1,95 @@
|
|
|
1
1
|
TN:
|
|
2
2
|
SF:src/index.ts
|
|
3
|
-
FN:51,(
|
|
4
|
-
FN:89,(
|
|
5
|
-
FN:117,(
|
|
6
|
-
FN:131,(
|
|
7
|
-
FN:132,(
|
|
8
|
-
FN:134,(
|
|
9
|
-
FN:137,(
|
|
10
|
-
FN:148,(
|
|
11
|
-
FN:151,(
|
|
12
|
-
FN:181,(
|
|
13
|
-
FN:188,(
|
|
14
|
-
FN:218,(
|
|
15
|
-
FN:225,(
|
|
16
|
-
FN:230,(
|
|
17
|
-
FN:233,(
|
|
18
|
-
FN:243,(
|
|
19
|
-
FN:259,(
|
|
20
|
-
FN:262,(
|
|
21
|
-
FN:270,(
|
|
22
|
-
FN:273,(
|
|
23
|
-
FN:281,(
|
|
24
|
-
FN:314,(
|
|
25
|
-
FN:323,(
|
|
26
|
-
FN:328,(
|
|
27
|
-
FN:329,(
|
|
28
|
-
FN:365,(
|
|
29
|
-
FN:389,(
|
|
30
|
-
FN:395,(
|
|
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,(
|
|
33
|
-
FN:612,(
|
|
34
|
-
FN:629,(
|
|
35
|
-
FN:672,(
|
|
36
|
-
FN:674,(
|
|
37
|
-
FN:703,(
|
|
38
|
-
FN:727,(
|
|
39
|
-
FN:772,(
|
|
40
|
-
FN:809,(
|
|
41
|
-
FN:819,(
|
|
42
|
-
FN:
|
|
43
|
-
FN:
|
|
44
|
-
FN:
|
|
45
|
-
FN:
|
|
46
|
-
|
|
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,(
|
|
49
|
-
FNDA:21,(
|
|
50
|
-
FNDA:7,(
|
|
51
|
-
FNDA:7,(
|
|
52
|
-
FNDA:4,(
|
|
53
|
-
FNDA:1,(
|
|
54
|
-
FNDA:1,(
|
|
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:
|
|
64
|
-
FNDA:
|
|
65
|
-
FNDA:
|
|
66
|
-
FNDA:
|
|
67
|
-
FNDA:
|
|
68
|
-
FNDA:
|
|
69
|
-
FNDA:
|
|
70
|
-
FNDA:
|
|
71
|
-
FNDA:
|
|
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:
|
|
74
|
-
FNDA:
|
|
75
|
-
FNDA:
|
|
76
|
-
FNDA:
|
|
77
|
-
FNDA:
|
|
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:
|
|
81
|
-
FNDA:
|
|
82
|
-
FNDA:
|
|
83
|
-
FNDA:
|
|
84
|
-
FNDA:
|
|
85
|
-
FNDA:
|
|
86
|
-
FNDA:
|
|
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:
|
|
89
|
-
FNDA:
|
|
90
|
-
FNDA:
|
|
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:
|
|
292
|
-
DA:
|
|
293
|
-
DA:
|
|
294
|
-
DA:
|
|
295
|
-
DA:
|
|
296
|
-
DA:
|
|
297
|
-
DA:
|
|
298
|
-
DA:
|
|
299
|
-
DA:
|
|
300
|
-
|
|
301
|
-
|
|
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
|
-
|
|
413
|
-
|
|
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
|
package/ios/ExpoIap.podspec
CHANGED
|
@@ -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
|
|
15
|
-
# Changing iOS
|
|
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
|
|
18
|
-
# The iOS
|
|
19
|
-
|
|
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
|
package/ios/ExpoIapHelper.swift
CHANGED
|
@@ -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
|
|