@insignia-education/api-sdk-js 0.15.68 → 0.15.69
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/coverage/clover.xml +186 -1376
- package/coverage/coverage-final.json +2 -45
- package/coverage/lcov-report/index.html +28 -58
- package/coverage/lcov-report/src/Client.js.html +153 -138
- package/coverage/lcov-report/src/api/v1/Users.js.html +49 -43
- package/coverage/lcov-report/src/api/v1/index.html +18 -618
- package/coverage/lcov-report/src/index.html +20 -35
- package/coverage/lcov.info +302 -2294
- package/coverage/test-report.html +1 -151
- package/package.json +1 -1
- package/src/Client.js +5 -0
- package/src/api/v1/Users.js +2 -0
- package/tests/client.test.js +17 -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">56.11% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>202/360</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">81.63% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>40/49</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">29.5% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>18/61</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">56.11% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>202/360</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -80,62 +80,32 @@
|
|
|
80
80
|
</thead>
|
|
81
81
|
<tbody><tr>
|
|
82
82
|
<td class="file medium" 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="75.57" class="pic medium">
|
|
84
|
+
<div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></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="15" class="abs
|
|
92
|
-
<td data-value="
|
|
93
|
-
<td data-value="
|
|
86
|
+
<td data-value="75.57" class="pct medium">75.57%</td>
|
|
87
|
+
<td data-value="131" class="abs medium">99/131</td>
|
|
88
|
+
<td data-value="80" class="pct high">80%</td>
|
|
89
|
+
<td data-value="45" class="abs high">36/45</td>
|
|
90
|
+
<td data-value="93.33" class="pct high">93.33%</td>
|
|
91
|
+
<td data-value="15" class="abs high">14/15</td>
|
|
92
|
+
<td data-value="75.57" class="pct medium">75.57%</td>
|
|
93
|
+
<td data-value="131" class="abs medium">99/131</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
97
|
-
<td class="file
|
|
98
|
-
<td data-value="
|
|
99
|
-
<div class="chart"><div class="cover-fill
|
|
97
|
+
<td class="file low" data-value="src/api/v1"><a href="src/api/v1/index.html">src/api/v1</a></td>
|
|
98
|
+
<td data-value="44.97" class="pic low">
|
|
99
|
+
<div class="chart"><div class="cover-fill" style="width: 44%"></div><div class="cover-empty" style="width: 56%"></div></div>
|
|
100
100
|
</td>
|
|
101
|
-
<td data-value="
|
|
102
|
-
<td data-value="
|
|
101
|
+
<td data-value="44.97" class="pct low">44.97%</td>
|
|
102
|
+
<td data-value="229" class="abs low">103/229</td>
|
|
103
103
|
<td data-value="100" class="pct high">100%</td>
|
|
104
104
|
<td data-value="4" class="abs high">4/4</td>
|
|
105
|
-
<td data-value="
|
|
106
|
-
<td data-value="
|
|
107
|
-
<td data-value="
|
|
108
|
-
<td data-value="
|
|
109
|
-
</tr>
|
|
110
|
-
|
|
111
|
-
<tr>
|
|
112
|
-
<td class="file medium" data-value="src/api/v1"><a href="src/api/v1/index.html">src/api/v1</a></td>
|
|
113
|
-
<td data-value="63.4" class="pic medium">
|
|
114
|
-
<div class="chart"><div class="cover-fill" style="width: 63%"></div><div class="cover-empty" style="width: 37%"></div></div>
|
|
115
|
-
</td>
|
|
116
|
-
<td data-value="63.4" class="pct medium">63.4%</td>
|
|
117
|
-
<td data-value="1246" class="abs medium">790/1246</td>
|
|
118
|
-
<td data-value="91.34" class="pct high">91.34%</td>
|
|
119
|
-
<td data-value="104" class="abs high">95/104</td>
|
|
120
|
-
<td data-value="34.79" class="pct low">34.79%</td>
|
|
121
|
-
<td data-value="273" class="abs low">95/273</td>
|
|
122
|
-
<td data-value="63.4" class="pct medium">63.4%</td>
|
|
123
|
-
<td data-value="1246" class="abs medium">790/1246</td>
|
|
124
|
-
</tr>
|
|
125
|
-
|
|
126
|
-
<tr>
|
|
127
|
-
<td class="file high" data-value="tests"><a href="tests/index.html">tests</a></td>
|
|
128
|
-
<td data-value="100" class="pic high">
|
|
129
|
-
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
130
|
-
</td>
|
|
131
|
-
<td data-value="100" class="pct high">100%</td>
|
|
132
|
-
<td data-value="21" class="abs high">21/21</td>
|
|
133
|
-
<td data-value="100" class="pct high">100%</td>
|
|
134
|
-
<td data-value="3" class="abs high">3/3</td>
|
|
135
|
-
<td data-value="100" class="pct high">100%</td>
|
|
136
|
-
<td data-value="3" class="abs high">3/3</td>
|
|
137
|
-
<td data-value="100" class="pct high">100%</td>
|
|
138
|
-
<td data-value="21" class="abs high">21/21</td>
|
|
105
|
+
<td data-value="8.69" class="pct low">8.69%</td>
|
|
106
|
+
<td data-value="46" class="abs low">4/46</td>
|
|
107
|
+
<td data-value="44.97" class="pct low">44.97%</td>
|
|
108
|
+
<td data-value="229" class="abs low">103/229</td>
|
|
139
109
|
</tr>
|
|
140
110
|
|
|
141
111
|
</tbody>
|
|
@@ -146,7 +116,7 @@
|
|
|
146
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
147
117
|
Code coverage generated by
|
|
148
118
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
149
|
-
at 2026-08-
|
|
119
|
+
at 2026-08-12T00:21:43.076Z
|
|
150
120
|
</div>
|
|
151
121
|
<script src="prettify.js"></script>
|
|
152
122
|
<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">75.57% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>99/131</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">80% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>36/45</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">93.33% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>14/15</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">75.57% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>99/131</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line medium'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -189,97 +189,112 @@
|
|
|
189
189
|
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
190
|
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
191
|
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
-
<a name='L127'></a><a href='#L127'>127</a
|
|
192
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
+
<a name='L132'></a><a href='#L132'>132</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
193
198
|
<span class="cline-any cline-yes">1x</span>
|
|
194
199
|
<span class="cline-any cline-yes">1x</span>
|
|
195
200
|
<span class="cline-any cline-yes">1x</span>
|
|
196
201
|
<span class="cline-any cline-yes">1x</span>
|
|
197
|
-
<span class="cline-any cline-yes">
|
|
198
|
-
<span class="cline-any cline-yes">
|
|
202
|
+
<span class="cline-any cline-yes">29x</span>
|
|
203
|
+
<span class="cline-any cline-yes">29x</span>
|
|
199
204
|
<span class="cline-any cline-yes">1x</span>
|
|
200
205
|
<span class="cline-any cline-yes">1x</span>
|
|
201
|
-
<span class="cline-any cline-yes">128x</span>
|
|
202
|
-
<span class="cline-any cline-yes">128x</span>
|
|
203
|
-
<span class="cline-any cline-yes">128x</span>
|
|
204
|
-
<span class="cline-any cline-yes">128x</span>
|
|
205
|
-
<span class="cline-any cline-yes">128x</span>
|
|
206
|
-
<span class="cline-any cline-yes">128x</span>
|
|
207
|
-
<span class="cline-any cline-yes">128x</span>
|
|
208
|
-
<span class="cline-any cline-yes">128x</span>
|
|
209
206
|
<span class="cline-any cline-yes">1x</span>
|
|
207
|
+
<span class="cline-any cline-yes">2x</span>
|
|
208
|
+
<span class="cline-any cline-yes">2x</span>
|
|
210
209
|
<span class="cline-any cline-yes">1x</span>
|
|
211
|
-
<span class="cline-any cline-yes">60x</span>
|
|
212
|
-
<span class="cline-any cline-yes">60x</span>
|
|
213
|
-
<span class="cline-any cline-yes">60x</span>
|
|
214
|
-
<span class="cline-any cline-yes">60x</span>
|
|
215
|
-
<span class="cline-any cline-yes">60x</span>
|
|
216
|
-
<span class="cline-any cline-yes">60x</span>
|
|
217
|
-
<span class="cline-any cline-yes">60x</span>
|
|
218
|
-
<span class="cline-any cline-yes">60x</span>
|
|
219
|
-
<span class="cline-any cline-yes">60x</span>
|
|
220
|
-
<span class="cline-any cline-yes">60x</span>
|
|
221
|
-
<span class="cline-any cline-yes">60x</span>
|
|
222
|
-
<span class="cline-any cline-yes">60x</span>
|
|
223
210
|
<span class="cline-any cline-yes">1x</span>
|
|
211
|
+
<span class="cline-any cline-yes">29x</span>
|
|
212
|
+
<span class="cline-any cline-yes">28x</span>
|
|
213
|
+
<span class="cline-any cline-yes">29x</span>
|
|
214
|
+
<span class="cline-any cline-yes">29x</span>
|
|
215
|
+
<span class="cline-any cline-yes">29x</span>
|
|
216
|
+
<span class="cline-any cline-yes">29x</span>
|
|
217
|
+
<span class="cline-any cline-yes">29x</span>
|
|
218
|
+
<span class="cline-any cline-yes">29x</span>
|
|
224
219
|
<span class="cline-any cline-yes">1x</span>
|
|
225
|
-
<span class="cline-any cline-yes">60x</span>
|
|
226
|
-
<span class="cline-any cline-no"> </span>
|
|
227
|
-
<span class="cline-any cline-no"> </span>
|
|
228
|
-
<span class="cline-any cline-no"> </span>
|
|
229
|
-
<span class="cline-any cline-no"> </span>
|
|
230
|
-
<span class="cline-any cline-no"> </span>
|
|
231
220
|
<span class="cline-any cline-yes">1x</span>
|
|
221
|
+
<span class="cline-any cline-yes">23x</span>
|
|
222
|
+
<span class="cline-any cline-yes">23x</span>
|
|
223
|
+
<span class="cline-any cline-yes">23x</span>
|
|
224
|
+
<span class="cline-any cline-yes">23x</span>
|
|
225
|
+
<span class="cline-any cline-yes">23x</span>
|
|
226
|
+
<span class="cline-any cline-yes">23x</span>
|
|
227
|
+
<span class="cline-any cline-yes">23x</span>
|
|
228
|
+
<span class="cline-any cline-yes">23x</span>
|
|
229
|
+
<span class="cline-any cline-yes">23x</span>
|
|
230
|
+
<span class="cline-any cline-yes">23x</span>
|
|
231
|
+
<span class="cline-any cline-yes">23x</span>
|
|
232
|
+
<span class="cline-any cline-yes">23x</span>
|
|
233
|
+
<span class="cline-any cline-yes">1x</span>
|
|
234
|
+
<span class="cline-any cline-yes">1x</span>
|
|
235
|
+
<span class="cline-any cline-yes">23x</span>
|
|
236
|
+
<span class="cline-any cline-yes">1x</span>
|
|
237
|
+
<span class="cline-any cline-yes">1x</span>
|
|
238
|
+
<span class="cline-any cline-yes">1x</span>
|
|
239
|
+
<span class="cline-any cline-yes">1x</span>
|
|
240
|
+
<span class="cline-any cline-yes">1x</span>
|
|
241
|
+
<span class="cline-any cline-yes">1x</span>
|
|
242
|
+
<span class="cline-any cline-yes">1x</span>
|
|
243
|
+
<span class="cline-any cline-yes">23x</span>
|
|
244
|
+
<span class="cline-any cline-yes">23x</span>
|
|
245
|
+
<span class="cline-any cline-yes">23x</span>
|
|
246
|
+
<span class="cline-any cline-yes">23x</span>
|
|
247
|
+
<span class="cline-any cline-yes">1x</span>
|
|
248
|
+
<span class="cline-any cline-yes">23x</span>
|
|
249
|
+
<span class="cline-any cline-yes">23x</span>
|
|
250
|
+
<span class="cline-any cline-yes">23x</span>
|
|
251
|
+
<span class="cline-any cline-yes">1x</span>
|
|
252
|
+
<span class="cline-any cline-yes">1x</span>
|
|
253
|
+
<span class="cline-any cline-yes">1x</span>
|
|
254
|
+
<span class="cline-any cline-yes">1x</span>
|
|
255
|
+
<span class="cline-any cline-yes">1x</span>
|
|
256
|
+
<span class="cline-any cline-yes">1x</span>
|
|
257
|
+
<span class="cline-any cline-yes">23x</span>
|
|
258
|
+
<span class="cline-any cline-yes">1x</span>
|
|
259
|
+
<span class="cline-any cline-yes">1x</span>
|
|
260
|
+
<span class="cline-any cline-yes">23x</span>
|
|
261
|
+
<span class="cline-any cline-yes">22x</span>
|
|
262
|
+
<span class="cline-any cline-yes">22x</span>
|
|
263
|
+
<span class="cline-any cline-yes">23x</span>
|
|
264
|
+
<span class="cline-any cline-yes">1x</span>
|
|
265
|
+
<span class="cline-any cline-yes">1x</span>
|
|
266
|
+
<span class="cline-any cline-yes">1x</span>
|
|
267
|
+
<span class="cline-any cline-yes">21x</span>
|
|
268
|
+
<span class="cline-any cline-yes">21x</span>
|
|
269
|
+
<span class="cline-any cline-yes">23x</span>
|
|
232
270
|
<span class="cline-any cline-yes">1x</span>
|
|
233
|
-
<span class="cline-any cline-no"> </span>
|
|
234
|
-
<span class="cline-any cline-no"> </span>
|
|
235
|
-
<span class="cline-any cline-no"> </span>
|
|
236
|
-
<span class="cline-any cline-no"> </span>
|
|
237
|
-
<span class="cline-any cline-no"> </span>
|
|
238
|
-
<span class="cline-any cline-no"> </span>
|
|
239
|
-
<span class="cline-any cline-no"> </span>
|
|
240
|
-
<span class="cline-any cline-no"> </span>
|
|
241
|
-
<span class="cline-any cline-no"> </span>
|
|
242
|
-
<span class="cline-any cline-no"> </span>
|
|
243
|
-
<span class="cline-any cline-no"> </span>
|
|
244
|
-
<span class="cline-any cline-no"> </span>
|
|
245
|
-
<span class="cline-any cline-no"> </span>
|
|
246
|
-
<span class="cline-any cline-no"> </span>
|
|
247
|
-
<span class="cline-any cline-no"> </span>
|
|
248
271
|
<span class="cline-any cline-yes">1x</span>
|
|
249
272
|
<span class="cline-any cline-yes">1x</span>
|
|
250
273
|
<span class="cline-any cline-no"> </span>
|
|
251
274
|
<span class="cline-any cline-no"> </span>
|
|
275
|
+
<span class="cline-any cline-yes">23x</span>
|
|
276
|
+
<span class="cline-any cline-yes">1x</span>
|
|
277
|
+
<span class="cline-any cline-yes">1x</span>
|
|
278
|
+
<span class="cline-any cline-yes">23x</span>
|
|
279
|
+
<span class="cline-any cline-yes">23x</span>
|
|
280
|
+
<span class="cline-any cline-yes">23x</span>
|
|
281
|
+
<span class="cline-any cline-yes">23x</span>
|
|
282
|
+
<span class="cline-any cline-yes">23x</span>
|
|
252
283
|
<span class="cline-any cline-no"> </span>
|
|
253
284
|
<span class="cline-any cline-no"> </span>
|
|
254
285
|
<span class="cline-any cline-no"> </span>
|
|
255
286
|
<span class="cline-any cline-no"> </span>
|
|
256
287
|
<span class="cline-any cline-no"> </span>
|
|
257
|
-
<span class="cline-any cline-
|
|
258
|
-
<span class="cline-any cline-
|
|
259
|
-
<span class="cline-any cline-
|
|
260
|
-
<span class="cline-any cline-no"> </span>
|
|
261
|
-
<span class="cline-any cline-no"> </span>
|
|
262
|
-
<span class="cline-any cline-no"> </span>
|
|
263
|
-
<span class="cline-any cline-no"> </span>
|
|
264
|
-
<span class="cline-any cline-no"> </span>
|
|
265
|
-
<span class="cline-any cline-no"> </span>
|
|
288
|
+
<span class="cline-any cline-yes">23x</span>
|
|
289
|
+
<span class="cline-any cline-yes">23x</span>
|
|
290
|
+
<span class="cline-any cline-yes">23x</span>
|
|
266
291
|
<span class="cline-any cline-yes">1x</span>
|
|
267
292
|
<span class="cline-any cline-yes">1x</span>
|
|
268
|
-
<span class="cline-any cline-yes">60x</span>
|
|
269
|
-
<span class="cline-any cline-yes">60x</span>
|
|
270
|
-
<span class="cline-any cline-yes">60x</span>
|
|
271
|
-
<span class="cline-any cline-no"> </span>
|
|
272
|
-
<span class="cline-any cline-no"> </span>
|
|
273
|
-
<span class="cline-any cline-no"> </span>
|
|
274
293
|
<span class="cline-any cline-no"> </span>
|
|
275
294
|
<span class="cline-any cline-no"> </span>
|
|
276
295
|
<span class="cline-any cline-no"> </span>
|
|
277
296
|
<span class="cline-any cline-no"> </span>
|
|
278
297
|
<span class="cline-any cline-no"> </span>
|
|
279
|
-
<span class="cline-any cline-yes">60x</span>
|
|
280
|
-
<span class="cline-any cline-yes">60x</span>
|
|
281
|
-
<span class="cline-any cline-yes">1x</span>
|
|
282
|
-
<span class="cline-any cline-yes">1x</span>
|
|
283
298
|
<span class="cline-any cline-no"> </span>
|
|
284
299
|
<span class="cline-any cline-no"> </span>
|
|
285
300
|
<span class="cline-any cline-no"> </span>
|
|
@@ -295,21 +310,16 @@
|
|
|
295
310
|
<span class="cline-any cline-no"> </span>
|
|
296
311
|
<span class="cline-any cline-no"> </span>
|
|
297
312
|
<span class="cline-any cline-no"> </span>
|
|
313
|
+
<span class="cline-any cline-yes">1x</span>
|
|
314
|
+
<span class="cline-any cline-yes">1x</span>
|
|
315
|
+
<span class="cline-any cline-yes">14x</span>
|
|
298
316
|
<span class="cline-any cline-no"> </span>
|
|
299
317
|
<span class="cline-any cline-no"> </span>
|
|
300
318
|
<span class="cline-any cline-no"> </span>
|
|
301
319
|
<span class="cline-any cline-no"> </span>
|
|
302
320
|
<span class="cline-any cline-no"> </span>
|
|
303
|
-
<span class="cline-any cline-yes">
|
|
304
|
-
<span class="cline-any cline-yes">
|
|
305
|
-
<span class="cline-any cline-yes">15x</span>
|
|
306
|
-
<span class="cline-any cline-yes">1x</span>
|
|
307
|
-
<span class="cline-any cline-yes">1x</span>
|
|
308
|
-
<span class="cline-any cline-yes">1x</span>
|
|
309
|
-
<span class="cline-any cline-yes">1x</span>
|
|
310
|
-
<span class="cline-any cline-yes">1x</span>
|
|
311
|
-
<span class="cline-any cline-yes">15x</span>
|
|
312
|
-
<span class="cline-any cline-yes">15x</span>
|
|
321
|
+
<span class="cline-any cline-yes">14x</span>
|
|
322
|
+
<span class="cline-any cline-yes">14x</span>
|
|
313
323
|
<span class="cline-any cline-yes">1x</span>
|
|
314
324
|
<span class="cline-any cline-yes">1x</span>
|
|
315
325
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -322,13 +332,18 @@
|
|
|
322
332
|
constructor(baseUrl) {
|
|
323
333
|
this.#baseUrl = InsigniaClient._resolve(baseUrl);
|
|
324
334
|
}
|
|
335
|
+
|
|
336
|
+
/** For building direct links (e.g. a PDF endpoint meant for <a href>/window.open, not a JSON fetch) — see Users.js's payments().invoiceUrl(). */
|
|
337
|
+
get baseUrl() {
|
|
338
|
+
return this.#baseUrl;
|
|
339
|
+
}
|
|
325
340
|
|
|
326
341
|
static _resolve(baseUrl) {
|
|
327
342
|
const envBaseUrl = typeof process !== 'undefined'
|
|
328
|
-
? process.env?.INSIGNIA_EDUCATION_API_BASE_URL
|
|
329
|
-
|
|
343
|
+
? process.env?.INSIGNIA_EDUCATION_API_BASE_URL ?? null
|
|
344
|
+
: null;
|
|
330
345
|
|
|
331
|
-
baseUrl = baseUrl
|
|
346
|
+
baseUrl = baseUrl ?? envBaseUrl ?? 'https://insigniaeducation.com';
|
|
332
347
|
baseUrl = baseUrl.replace(/\/$/, '');
|
|
333
348
|
return baseUrl;
|
|
334
349
|
}
|
|
@@ -342,67 +357,67 @@
|
|
|
342
357
|
if (this.#baseUrl.includes('ngrok')) <span class="branch-0 cbranch-no" title="branch not covered" >headers['ngrok-skip-browser-warning'] = 'true';</span>
|
|
343
358
|
|
|
344
359
|
const cookie = this.#cookieHeader();
|
|
345
|
-
if (cookie)
|
|
360
|
+
if (cookie) headers.Cookie = cookie;
|
|
346
361
|
|
|
347
362
|
return headers;
|
|
348
363
|
}
|
|
349
364
|
|
|
350
365
|
#cookieHeader() {
|
|
351
|
-
if (typeof window !== 'undefined' || this.#cookies.size === 0) return null
|
|
352
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
353
|
-
<span class="cstat-no" title="statement not covered" > return Array.from(this.#cookies.entries())</span>
|
|
354
|
-
<span class="cstat-no" title="statement not covered" > .map(([name, value]) => `${name}=${value}`)</span>
|
|
355
|
-
<span class="cstat-no" title="statement not covered" > .join('; ');</span>
|
|
356
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
366
|
+
if (typeof window !== 'undefined' || this.#cookies.size === 0) return null;
|
|
357
367
|
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
<span class="cstat-no" title="statement not covered" > const setCookies = typeof headers?.getSetCookie === 'function'</span>
|
|
363
|
-
<span class="cstat-no" title="statement not covered" > ? headers.getSetCookie()</span>
|
|
364
|
-
<span class="cstat-no" title="statement not covered" > : [headers?.get?.('set-cookie')].filter(Boolean);</span>
|
|
365
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
366
|
-
<span class="cstat-no" title="statement not covered" > for (const setCookie of setCookies) {</span>
|
|
367
|
-
<span class="cstat-no" title="statement not covered" > const [pair] = setCookie.split(';');</span>
|
|
368
|
-
<span class="cstat-no" title="statement not covered" > const separator = pair.indexOf('=');</span>
|
|
369
|
-
<span class="cstat-no" title="statement not covered" > if (separator === -1) continue;</span>
|
|
370
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
371
|
-
<span class="cstat-no" title="statement not covered" > this.#cookies.set(pair.slice(0, separator), pair.slice(separator + 1));</span>
|
|
372
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
373
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
368
|
+
return Array.from(this.#cookies.entries())
|
|
369
|
+
.map(([name, value]) => `${name}=${value}`)
|
|
370
|
+
.join('; ');
|
|
371
|
+
}
|
|
374
372
|
|
|
375
|
-
|
|
376
|
-
<span class="
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
<span class="
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
<span class="
|
|
387
|
-
|
|
388
|
-
|
|
373
|
+
#storeCookies(response) {
|
|
374
|
+
if (typeof window !== 'undefined') <span class="branch-0 cbranch-no" title="branch not covered" >return;</span>
|
|
375
|
+
|
|
376
|
+
const headers = response.headers;
|
|
377
|
+
const setCookies = typeof headers?.getSetCookie === 'function'
|
|
378
|
+
? headers.getSetCookie()
|
|
379
|
+
: [headers<span class="branch-0 cbranch-no" title="branch not covered" >?.get?.('set-cookie')]</span>.filter(Boolean);
|
|
380
|
+
|
|
381
|
+
for (const setCookie of setCookies) {
|
|
382
|
+
const [pair] = setCookie.split(';');
|
|
383
|
+
const separator = pair.indexOf('=');
|
|
384
|
+
if (separator === -1) <span class="branch-0 cbranch-no" title="branch not covered" >continue;</span>
|
|
385
|
+
|
|
386
|
+
this.#cookies.set(pair.slice(0, separator), pair.slice(separator + 1));
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
async #parseResponse(response) {
|
|
391
|
+
if ([204, 205].includes(response.status)) return null;
|
|
392
|
+
|
|
393
|
+
try {
|
|
394
|
+
if (typeof response.text === 'function') {
|
|
395
|
+
const text = await response.text();
|
|
396
|
+
return text === '' ? null<span class="branch-0 cbranch-no" title="branch not covered" > : JSON.parse(text);</span>
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
return await response.json();
|
|
400
|
+
} catch (error) {
|
|
401
|
+
if (error instanceof SyntaxError && error.message.includes('Unexpected end')) {
|
|
402
|
+
return null;
|
|
403
|
+
<span class="branch-0 cbranch-no" title="branch not covered" > }</span>
|
|
389
404
|
<span class="cstat-no" title="statement not covered" > throw error;</span>
|
|
390
405
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
391
|
-
|
|
406
|
+
}
|
|
392
407
|
|
|
393
408
|
async #request(method, path, body = null) {
|
|
394
409
|
const options = { method, headers: this.#headers(), credentials: 'include' };
|
|
395
410
|
if (body !== null) options.body = JSON.stringify(body);
|
|
396
|
-
const response = await fetch(`${this.#baseUrl}${path}`, options)
|
|
397
|
-
|
|
398
|
-
<span class="
|
|
411
|
+
const response = await fetch(`${this.#baseUrl}${path}`, options);
|
|
412
|
+
this.#storeCookies(response);
|
|
413
|
+
if (!response.ok) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
399
414
|
<span class="cstat-no" title="statement not covered" > const err = new Error(`HTTP ${response.status}`);</span>
|
|
400
415
|
<span class="cstat-no" title="statement not covered" > err.status = response.status;</span>
|
|
401
416
|
<span class="cstat-no" title="statement not covered" > try { err.data = await this.#parseResponse(response); } catch { /* body wasn't parseable — leave err.data unset */ }</span>
|
|
402
417
|
<span class="cstat-no" title="statement not covered" > throw err;</span>
|
|
403
418
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
404
|
-
|
|
405
|
-
return data?.success
|
|
419
|
+
const data = await this.#parseResponse(response);
|
|
420
|
+
return data?.success ? data.response : data;
|
|
406
421
|
}
|
|
407
422
|
|
|
408
423
|
<span class="fstat-no" title="function not covered" > async upload(path, formData) {</span>
|
|
@@ -428,18 +443,18 @@
|
|
|
428
443
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
429
444
|
|
|
430
445
|
get(path, params = null) {
|
|
431
|
-
if (params && typeof params === 'object') {
|
|
432
|
-
const qs = new URLSearchParams(
|
|
433
|
-
Object.entries(params).filter(([, v]) => v !== undefined && v !== null)
|
|
434
|
-
).toString()
|
|
435
|
-
|
|
436
|
-
}
|
|
446
|
+
if (params<span class="branch-0 cbranch-no" title="branch not covered" > && typeof params === 'object')</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
447
|
+
<span class="cstat-no" title="statement not covered" > const qs = new URLSearchParams(</span>
|
|
448
|
+
<span class="cstat-no" title="statement not covered" > Object.entries(params).filter(([, v]) => v !== undefined && v !== null)</span>
|
|
449
|
+
<span class="cstat-no" title="statement not covered" > ).toString();</span>
|
|
450
|
+
<span class="cstat-no" title="statement not covered" > if (qs) path += (path.includes('?') ? '&' : '?') + qs;</span>
|
|
451
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
437
452
|
return this.#request('GET', path);
|
|
438
453
|
}
|
|
439
454
|
post(path, body = null) { return this.#request('POST', path, body); }
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
455
|
+
put(path, body = null) { return this.#request('PUT', path, body); }
|
|
456
|
+
patch(path, body = null){ return this.#request('PATCH', path, body); }
|
|
457
|
+
del(path) { return this.#request('DELETE', path); }
|
|
443
458
|
}
|
|
444
459
|
</pre></td></tr></table></pre>
|
|
445
460
|
|
|
@@ -448,7 +463,7 @@
|
|
|
448
463
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
449
464
|
Code coverage generated by
|
|
450
465
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
451
|
-
at 2026-08-
|
|
466
|
+
at 2026-08-12T00:21:43.076Z
|
|
452
467
|
</div>
|
|
453
468
|
<script src="../prettify.js"></script>
|
|
454
469
|
<script>
|