expo-iap 3.1.14 → 3.1.16
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/android/src/main/java/expo/modules/iap/ExpoIapModule.kt +35 -0
- package/build/index.d.ts +45 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +50 -2
- package/build/index.js.map +1 -1
- package/build/types.d.ts +47 -0
- package/build/types.d.ts.map +1 -1
- package/build/types.js.map +1 -1
- package/bun.lockb +0 -0
- package/coverage/clover.xml +182 -241
- package/coverage/coverage-final.json +2 -3
- package/coverage/lcov-report/index.html +25 -40
- package/coverage/lcov-report/src/index.html +18 -18
- package/coverage/lcov-report/src/index.ts.html +186 -21
- 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 +13 -13
- package/coverage/lcov-report/src/utils/errorMapping.ts.html +1 -1
- package/coverage/lcov-report/src/utils/index.html +15 -15
- package/coverage/lcov.info +340 -445
- package/expo-module.config.json +10 -3
- package/ios/ExpoIapModule.swift +17 -0
- package/openiap-versions.json +3 -3
- package/package.json +1 -1
- package/src/index.ts +61 -6
- package/src/types.ts +47 -0
- package/build/helpers/subscription.d.ts +0 -14
- package/build/helpers/subscription.d.ts.map +0 -1
- package/build/helpers/subscription.js +0 -118
- package/build/helpers/subscription.js.map +0 -1
- package/coverage/lcov-report/src/helpers/index.html +0 -116
- package/coverage/lcov-report/src/helpers/subscription.ts.html +0 -499
- package/src/helpers/subscription.ts +0 -138
|
@@ -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.99% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>454/483</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.45% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>217/251</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">78.
|
|
40
|
+
<span class="strong">78.94% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>75/95</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">93.87% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>429/457</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -80,32 +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.
|
|
83
|
+
<td data-value="96.68" class="pic high">
|
|
84
84
|
<div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="96.
|
|
87
|
-
<td data-value="
|
|
88
|
-
<td data-value="89.
|
|
89
|
-
<td data-value="
|
|
90
|
-
<td data-value="
|
|
91
|
-
<td data-value="41" class="abs medium">
|
|
92
|
-
<td data-value="96.
|
|
93
|
-
<td data-value="
|
|
94
|
-
</tr>
|
|
95
|
-
|
|
96
|
-
<tr>
|
|
97
|
-
<td class="file high" data-value="src/helpers"><a href="src/helpers/index.html">src/helpers</a></td>
|
|
98
|
-
<td data-value="96.66" class="pic high">
|
|
99
|
-
<div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
|
|
100
|
-
</td>
|
|
101
|
-
<td data-value="96.66" class="pct high">96.66%</td>
|
|
102
|
-
<td data-value="60" class="abs high">58/60</td>
|
|
103
|
-
<td data-value="92.68" class="pct high">92.68%</td>
|
|
104
|
-
<td data-value="41" class="abs high">38/41</td>
|
|
105
|
-
<td data-value="100" class="pct high">100%</td>
|
|
106
|
-
<td data-value="4" class="abs high">4/4</td>
|
|
107
|
-
<td data-value="98.24" class="pct high">98.24%</td>
|
|
108
|
-
<td data-value="57" class="abs high">56/57</td>
|
|
86
|
+
<td data-value="96.68" class="pct high">96.68%</td>
|
|
87
|
+
<td data-value="211" class="abs high">204/211</td>
|
|
88
|
+
<td data-value="89.89" class="pct high">89.89%</td>
|
|
89
|
+
<td data-value="99" class="abs high">89/99</td>
|
|
90
|
+
<td data-value="78.04" class="pct medium">78.04%</td>
|
|
91
|
+
<td data-value="41" class="abs medium">32/41</td>
|
|
92
|
+
<td data-value="96.93" class="pct high">96.93%</td>
|
|
93
|
+
<td data-value="196" class="abs high">190/196</td>
|
|
109
94
|
</tr>
|
|
110
95
|
|
|
111
96
|
<tr>
|
|
@@ -125,17 +110,17 @@
|
|
|
125
110
|
|
|
126
111
|
<tr>
|
|
127
112
|
<td class="file high" data-value="src/utils"><a href="src/utils/index.html">src/utils</a></td>
|
|
128
|
-
<td data-value="89.
|
|
113
|
+
<td data-value="89.06" class="pic high">
|
|
129
114
|
<div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div>
|
|
130
115
|
</td>
|
|
131
|
-
<td data-value="89.
|
|
132
|
-
<td data-value="128" class="abs high">
|
|
116
|
+
<td data-value="89.06" class="pct high">89.06%</td>
|
|
117
|
+
<td data-value="128" class="abs high">114/128</td>
|
|
133
118
|
<td data-value="76.28" class="pct medium">76.28%</td>
|
|
134
119
|
<td data-value="97" class="abs medium">74/97</td>
|
|
135
|
-
<td data-value="
|
|
136
|
-
<td data-value="24" class="abs
|
|
137
|
-
<td data-value="
|
|
138
|
-
<td data-value="125" class="abs high">
|
|
120
|
+
<td data-value="79.16" class="pct medium">79.16%</td>
|
|
121
|
+
<td data-value="24" class="abs medium">19/24</td>
|
|
122
|
+
<td data-value="88.8" class="pct high">88.8%</td>
|
|
123
|
+
<td data-value="125" class="abs high">111/125</td>
|
|
139
124
|
</tr>
|
|
140
125
|
|
|
141
126
|
</tbody>
|
|
@@ -146,7 +131,7 @@
|
|
|
146
131
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
147
132
|
Code coverage generated by
|
|
148
133
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
149
|
-
at 2025-10-
|
|
134
|
+
at 2025-10-15T21:20:56.605Z
|
|
150
135
|
</div>
|
|
151
136
|
<script src="prettify.js"></script>
|
|
152
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.
|
|
26
|
+
<span class="strong">96.68% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>204/211</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">89.
|
|
33
|
+
<span class="strong">89.89% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>89/99</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">78.04% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>32/41</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">96.
|
|
47
|
+
<span class="strong">96.93% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>190/196</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.
|
|
83
|
+
<td data-value="96.68" class="pic high">
|
|
84
84
|
<div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="96.
|
|
87
|
-
<td data-value="
|
|
88
|
-
<td data-value="89.
|
|
89
|
-
<td data-value="
|
|
90
|
-
<td data-value="
|
|
91
|
-
<td data-value="41" class="abs medium">
|
|
92
|
-
<td data-value="96.
|
|
93
|
-
<td data-value="
|
|
86
|
+
<td data-value="96.68" class="pct high">96.68%</td>
|
|
87
|
+
<td data-value="211" class="abs high">204/211</td>
|
|
88
|
+
<td data-value="89.89" class="pct high">89.89%</td>
|
|
89
|
+
<td data-value="99" class="abs high">89/99</td>
|
|
90
|
+
<td data-value="78.04" class="pct medium">78.04%</td>
|
|
91
|
+
<td data-value="41" class="abs medium">32/41</td>
|
|
92
|
+
<td data-value="96.93" class="pct high">96.93%</td>
|
|
93
|
+
<td data-value="196" class="abs high">190/196</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-10-
|
|
104
|
+
at 2025-10-15T21:20:56.605Z
|
|
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.
|
|
26
|
+
<span class="strong">96.68% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>204/211</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">89.
|
|
33
|
+
<span class="strong">89.89% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>89/99</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">78.04% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>32/41</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">96.
|
|
47
|
+
<span class="strong">96.93% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>190/196</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -731,7 +731,62 @@
|
|
|
731
731
|
<a name='L666'></a><a href='#L666'>666</a>
|
|
732
732
|
<a name='L667'></a><a href='#L667'>667</a>
|
|
733
733
|
<a name='L668'></a><a href='#L668'>668</a>
|
|
734
|
-
<a name='L669'></a><a href='#L669'>669</a
|
|
734
|
+
<a name='L669'></a><a href='#L669'>669</a>
|
|
735
|
+
<a name='L670'></a><a href='#L670'>670</a>
|
|
736
|
+
<a name='L671'></a><a href='#L671'>671</a>
|
|
737
|
+
<a name='L672'></a><a href='#L672'>672</a>
|
|
738
|
+
<a name='L673'></a><a href='#L673'>673</a>
|
|
739
|
+
<a name='L674'></a><a href='#L674'>674</a>
|
|
740
|
+
<a name='L675'></a><a href='#L675'>675</a>
|
|
741
|
+
<a name='L676'></a><a href='#L676'>676</a>
|
|
742
|
+
<a name='L677'></a><a href='#L677'>677</a>
|
|
743
|
+
<a name='L678'></a><a href='#L678'>678</a>
|
|
744
|
+
<a name='L679'></a><a href='#L679'>679</a>
|
|
745
|
+
<a name='L680'></a><a href='#L680'>680</a>
|
|
746
|
+
<a name='L681'></a><a href='#L681'>681</a>
|
|
747
|
+
<a name='L682'></a><a href='#L682'>682</a>
|
|
748
|
+
<a name='L683'></a><a href='#L683'>683</a>
|
|
749
|
+
<a name='L684'></a><a href='#L684'>684</a>
|
|
750
|
+
<a name='L685'></a><a href='#L685'>685</a>
|
|
751
|
+
<a name='L686'></a><a href='#L686'>686</a>
|
|
752
|
+
<a name='L687'></a><a href='#L687'>687</a>
|
|
753
|
+
<a name='L688'></a><a href='#L688'>688</a>
|
|
754
|
+
<a name='L689'></a><a href='#L689'>689</a>
|
|
755
|
+
<a name='L690'></a><a href='#L690'>690</a>
|
|
756
|
+
<a name='L691'></a><a href='#L691'>691</a>
|
|
757
|
+
<a name='L692'></a><a href='#L692'>692</a>
|
|
758
|
+
<a name='L693'></a><a href='#L693'>693</a>
|
|
759
|
+
<a name='L694'></a><a href='#L694'>694</a>
|
|
760
|
+
<a name='L695'></a><a href='#L695'>695</a>
|
|
761
|
+
<a name='L696'></a><a href='#L696'>696</a>
|
|
762
|
+
<a name='L697'></a><a href='#L697'>697</a>
|
|
763
|
+
<a name='L698'></a><a href='#L698'>698</a>
|
|
764
|
+
<a name='L699'></a><a href='#L699'>699</a>
|
|
765
|
+
<a name='L700'></a><a href='#L700'>700</a>
|
|
766
|
+
<a name='L701'></a><a href='#L701'>701</a>
|
|
767
|
+
<a name='L702'></a><a href='#L702'>702</a>
|
|
768
|
+
<a name='L703'></a><a href='#L703'>703</a>
|
|
769
|
+
<a name='L704'></a><a href='#L704'>704</a>
|
|
770
|
+
<a name='L705'></a><a href='#L705'>705</a>
|
|
771
|
+
<a name='L706'></a><a href='#L706'>706</a>
|
|
772
|
+
<a name='L707'></a><a href='#L707'>707</a>
|
|
773
|
+
<a name='L708'></a><a href='#L708'>708</a>
|
|
774
|
+
<a name='L709'></a><a href='#L709'>709</a>
|
|
775
|
+
<a name='L710'></a><a href='#L710'>710</a>
|
|
776
|
+
<a name='L711'></a><a href='#L711'>711</a>
|
|
777
|
+
<a name='L712'></a><a href='#L712'>712</a>
|
|
778
|
+
<a name='L713'></a><a href='#L713'>713</a>
|
|
779
|
+
<a name='L714'></a><a href='#L714'>714</a>
|
|
780
|
+
<a name='L715'></a><a href='#L715'>715</a>
|
|
781
|
+
<a name='L716'></a><a href='#L716'>716</a>
|
|
782
|
+
<a name='L717'></a><a href='#L717'>717</a>
|
|
783
|
+
<a name='L718'></a><a href='#L718'>718</a>
|
|
784
|
+
<a name='L719'></a><a href='#L719'>719</a>
|
|
785
|
+
<a name='L720'></a><a href='#L720'>720</a>
|
|
786
|
+
<a name='L721'></a><a href='#L721'>721</a>
|
|
787
|
+
<a name='L722'></a><a href='#L722'>722</a>
|
|
788
|
+
<a name='L723'></a><a href='#L723'>723</a>
|
|
789
|
+
<a name='L724'></a><a href='#L724'>724</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
735
790
|
<span class="cline-any cline-yes">1x</span>
|
|
736
791
|
<span class="cline-any cline-yes">1x</span>
|
|
737
792
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -772,13 +827,9 @@
|
|
|
772
827
|
<span class="cline-any cline-neutral"> </span>
|
|
773
828
|
<span class="cline-any cline-neutral"> </span>
|
|
774
829
|
<span class="cline-any cline-neutral"> </span>
|
|
775
|
-
<span class="cline-any cline-yes">1x</span>
|
|
776
|
-
<span class="cline-any cline-yes">1x</span>
|
|
777
|
-
<span class="cline-any cline-neutral"> </span>
|
|
778
830
|
<span class="cline-any cline-neutral"> </span>
|
|
779
831
|
<span class="cline-any cline-yes">1x</span>
|
|
780
832
|
<span class="cline-any cline-yes">1x</span>
|
|
781
|
-
<span class="cline-any cline-yes">1x</span>
|
|
782
833
|
<span class="cline-any cline-neutral"> </span>
|
|
783
834
|
<span class="cline-any cline-neutral"> </span>
|
|
784
835
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -786,7 +837,6 @@
|
|
|
786
837
|
<span class="cline-any cline-yes">1x</span>
|
|
787
838
|
<span class="cline-any cline-neutral"> </span>
|
|
788
839
|
<span class="cline-any cline-neutral"> </span>
|
|
789
|
-
<span class="cline-any cline-neutral"> </span>
|
|
790
840
|
<span class="cline-any cline-yes">1x</span>
|
|
791
841
|
<span class="cline-any cline-yes">1x</span>
|
|
792
842
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -1065,6 +1115,66 @@
|
|
|
1065
1115
|
<span class="cline-any cline-yes">4x</span>
|
|
1066
1116
|
<span class="cline-any cline-neutral"> </span>
|
|
1067
1117
|
<span class="cline-any cline-neutral"> </span>
|
|
1118
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1119
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1120
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1121
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1122
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1123
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1124
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1125
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1126
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1127
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1128
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1129
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1130
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1131
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1132
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1133
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1134
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1135
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1136
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1137
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1138
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1139
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1140
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1141
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1142
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1143
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1144
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1145
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1146
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1147
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1148
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1149
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1150
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1151
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1152
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1153
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1154
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1155
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1156
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1157
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1158
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1159
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1160
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1161
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1162
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1163
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1164
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1165
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1166
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1167
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1168
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1169
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1170
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1171
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1172
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1173
|
+
<span class="cline-any cline-yes">8x</span>
|
|
1174
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1175
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1176
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1177
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1068
1178
|
<span class="cline-any cline-yes">1x</span>
|
|
1069
1179
|
<span class="cline-any cline-yes">2x</span>
|
|
1070
1180
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1420,6 +1530,7 @@ import {ExpoIapConsole} from './utils/debug';
|
|
|
1420
1530
|
|
|
1421
1531
|
// Types
|
|
1422
1532
|
import type {
|
|
1533
|
+
ActiveSubscription,
|
|
1423
1534
|
AndroidSubscriptionOfferInput,
|
|
1424
1535
|
DeepLinkOptions,
|
|
1425
1536
|
FetchProductsResult,
|
|
@@ -1448,12 +1559,6 @@ export * from './types';
|
|
|
1448
1559
|
export * from './modules/android';
|
|
1449
1560
|
export * from './modules/ios';
|
|
1450
1561
|
|
|
1451
|
-
// Export subscription helpers
|
|
1452
|
-
export {
|
|
1453
|
-
<span class="fstat-no" title="function not covered" > getActiveSubscriptions,</span>
|
|
1454
|
-
<span class="fstat-no" title="function not covered" > hasActiveSubscriptions,</span>
|
|
1455
|
-
} from './helpers/subscription';
|
|
1456
|
-
|
|
1457
1562
|
// Get the native constant value
|
|
1458
1563
|
export enum OpenIapEvent {
|
|
1459
1564
|
PurchaseUpdated = 'purchase-updated',
|
|
@@ -1733,6 +1838,66 @@ export const getAvailablePurchases: QueryField<
|
|
|
1733
1838
|
return normalizePurchaseArray(purchases as Purchase[]);
|
|
1734
1839
|
};
|
|
1735
1840
|
|
|
1841
|
+
/**
|
|
1842
|
+
* Get all active subscriptions with detailed information.
|
|
1843
|
+
* Uses native OpenIAP module for accurate subscription status and renewal info.
|
|
1844
|
+
*
|
|
1845
|
+
* On iOS: Returns subscriptions with renewalInfoIOS containing pendingUpgradeProductId,
|
|
1846
|
+
* willAutoRenew, autoRenewPreference, and other renewal details.
|
|
1847
|
+
*
|
|
1848
|
+
* On Android: Filters available purchases to find active subscriptions (fallback implementation).
|
|
1849
|
+
*
|
|
1850
|
+
* @param subscriptionIds - Optional array of subscription product IDs to filter. If not provided, returns all active subscriptions.
|
|
1851
|
+
* @returns Promise resolving to array of active subscriptions with details
|
|
1852
|
+
*
|
|
1853
|
+
* @example
|
|
1854
|
+
* ```typescript
|
|
1855
|
+
* // Get all active subscriptions
|
|
1856
|
+
* const subs = await getActiveSubscriptions();
|
|
1857
|
+
*
|
|
1858
|
+
* // Get specific subscriptions
|
|
1859
|
+
* const premiumSubs = await getActiveSubscriptions(['premium', 'premium_year']);
|
|
1860
|
+
*
|
|
1861
|
+
* // Check for pending upgrades (iOS)
|
|
1862
|
+
* subs.forEach(sub => {
|
|
1863
|
+
* if (sub.renewalInfoIOS?.pendingUpgradeProductId) {
|
|
1864
|
+
* console.log(`Upgrade pending to: ${sub.renewalInfoIOS.pendingUpgradeProductId}`);
|
|
1865
|
+
* }
|
|
1866
|
+
* });
|
|
1867
|
+
* ```
|
|
1868
|
+
*/
|
|
1869
|
+
export const getActiveSubscriptions: QueryField<
|
|
1870
|
+
'getActiveSubscriptions'
|
|
1871
|
+
> = async (subscriptionIds) => {
|
|
1872
|
+
const result = await ExpoIapModule.getActiveSubscriptions(
|
|
1873
|
+
subscriptionIds ?? null,
|
|
1874
|
+
);
|
|
1875
|
+
return (result ?? []) as ActiveSubscription[];
|
|
1876
|
+
};
|
|
1877
|
+
|
|
1878
|
+
/**
|
|
1879
|
+
* Check if user has any active subscriptions.
|
|
1880
|
+
*
|
|
1881
|
+
* @param subscriptionIds - Optional array of subscription product IDs to check. If not provided, checks all subscriptions.
|
|
1882
|
+
* @returns Promise resolving to true if user has at least one active subscription
|
|
1883
|
+
*
|
|
1884
|
+
* @example
|
|
1885
|
+
* ```typescript
|
|
1886
|
+
* // Check any active subscription
|
|
1887
|
+
* const hasAny = await hasActiveSubscriptions();
|
|
1888
|
+
*
|
|
1889
|
+
* // Check specific subscriptions
|
|
1890
|
+
* const hasPremium = await hasActiveSubscriptions(['premium', 'premium_year']);
|
|
1891
|
+
* ```
|
|
1892
|
+
*/
|
|
1893
|
+
export const hasActiveSubscriptions: QueryField<
|
|
1894
|
+
'hasActiveSubscriptions'
|
|
1895
|
+
> = async (subscriptionIds) => {
|
|
1896
|
+
return !!(await ExpoIapModule.hasActiveSubscriptions(
|
|
1897
|
+
subscriptionIds ?? null,
|
|
1898
|
+
));
|
|
1899
|
+
};
|
|
1900
|
+
|
|
1736
1901
|
export const getStorefront: QueryField<'getStorefront'> = async () => {
|
|
1737
1902
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (Platform.OS !== 'ios' && Platform.OS !== 'android') {
|
|
1738
1903
|
<span class="cstat-no" title="statement not covered" > return '';</span>
|
|
@@ -2074,7 +2239,7 @@ export {<span class="fstat-no" title="function not covered" >ExpoIapConsole}</sp
|
|
|
2074
2239
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
2075
2240
|
Code coverage generated by
|
|
2076
2241
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2077
|
-
at 2025-10-
|
|
2242
|
+
at 2025-10-15T21:20:56.605Z
|
|
2078
2243
|
</div>
|
|
2079
2244
|
<script src="../prettify.js"></script>
|
|
2080
2245
|
<script>
|
|
@@ -814,7 +814,7 @@ export const createAlternativeBillingTokenAndroid: MutationField<
|
|
|
814
814
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
815
815
|
Code coverage generated by
|
|
816
816
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
817
|
-
at 2025-10-
|
|
817
|
+
at 2025-10-15T21:20:56.605Z
|
|
818
818
|
</div>
|
|
819
819
|
<script src="../../prettify.js"></script>
|
|
820
820
|
<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-10-
|
|
119
|
+
at 2025-10-15T21:20:56.605Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../../prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -1267,7 +1267,7 @@ export const presentExternalPurchaseLinkIOS: MutationField<
|
|
|
1267
1267
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1268
1268
|
Code coverage generated by
|
|
1269
1269
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1270
|
-
at 2025-10-
|
|
1270
|
+
at 2025-10-15T21:20:56.605Z
|
|
1271
1271
|
</div>
|
|
1272
1272
|
<script src="../../prettify.js"></script>
|
|
1273
1273
|
<script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">52.94% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>9/17</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -37,16 +37,16 @@
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">57.14% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>4/7</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">50% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>8/16</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
<span class="cline-any cline-neutral"> </span>
|
|
138
138
|
<span class="cline-any cline-neutral"> </span>
|
|
139
139
|
<span class="cline-any cline-neutral"> </span>
|
|
140
|
-
<span class="cline-any cline-yes">
|
|
140
|
+
<span class="cline-any cline-yes">1x</span>
|
|
141
141
|
<span class="cline-any cline-neutral"> </span>
|
|
142
142
|
<span class="cline-any cline-neutral"> </span>
|
|
143
143
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
<span class="cline-any cline-yes">6x</span>
|
|
161
161
|
<span class="cline-any cline-neutral"> </span>
|
|
162
162
|
<span class="cline-any cline-neutral"> </span>
|
|
163
|
-
<span class="cline-any cline-yes">
|
|
163
|
+
<span class="cline-any cline-yes">1x</span>
|
|
164
164
|
<span class="cline-any cline-neutral"> </span>
|
|
165
165
|
<span class="cline-any cline-no"> </span>
|
|
166
166
|
<span class="cline-any cline-no"> </span>
|
|
@@ -182,7 +182,7 @@
|
|
|
182
182
|
<span class="cline-any cline-neutral"> </span>
|
|
183
183
|
<span class="cline-any cline-neutral"> </span>
|
|
184
184
|
<span class="cline-any cline-neutral"> </span>
|
|
185
|
-
<span class="cline-any cline-
|
|
185
|
+
<span class="cline-any cline-no"> </span>
|
|
186
186
|
<span class="cline-any cline-neutral"> </span>
|
|
187
187
|
<span class="cline-any cline-neutral"> </span>
|
|
188
188
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -194,7 +194,7 @@
|
|
|
194
194
|
<span class="cline-any cline-neutral"> </span>
|
|
195
195
|
<span class="cline-any cline-neutral"> </span>
|
|
196
196
|
<span class="cline-any cline-neutral"> </span>
|
|
197
|
-
<span class="cline-any cline-yes">
|
|
197
|
+
<span class="cline-any cline-yes">1x</span>
|
|
198
198
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/**
|
|
199
199
|
* Debug logger for Expo IAP
|
|
200
200
|
* Only logs when explicitly enabled for library development
|
|
@@ -246,9 +246,9 @@ const createConsole = () => ({
|
|
|
246
246
|
console.warn('[Expo-IAP]', ...args);
|
|
247
247
|
},
|
|
248
248
|
|
|
249
|
-
error: (
|
|
249
|
+
error: <span class="fstat-no" title="function not covered" >(.</span>..args: any[]) => {
|
|
250
250
|
// Errors are always shown
|
|
251
|
-
console.error('[Expo-IAP]', ...args)
|
|
251
|
+
<span class="cstat-no" title="statement not covered" > console.error('[Expo-IAP]', ...args);</span>
|
|
252
252
|
},
|
|
253
253
|
|
|
254
254
|
info: <span class="fstat-no" title="function not covered" >(.</span>..args: any[]) => {
|
|
@@ -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-10-
|
|
271
|
+
at 2025-10-15T21:20:56.605Z
|
|
272
272
|
</div>
|
|
273
273
|
<script src="../../prettify.js"></script>
|
|
274
274
|
<script>
|
|
@@ -1111,7 +1111,7 @@ export function getUserFriendlyErrorMessage(error: ErrorLike): string {
|
|
|
1111
1111
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1112
1112
|
Code coverage generated by
|
|
1113
1113
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1114
|
-
at 2025-10-
|
|
1114
|
+
at 2025-10-15T21:20:56.605Z
|
|
1115
1115
|
</div>
|
|
1116
1116
|
<script src="../../prettify.js"></script>
|
|
1117
1117
|
<script>
|