@insignia-education/api-sdk-js 0.13.0 → 0.14.0

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.
Files changed (47) hide show
  1. package/coverage/clover.xml +126 -951
  2. package/coverage/coverage-final.json +1 -32
  3. package/coverage/lcov-report/Client.js.html +108 -12
  4. package/coverage/lcov-report/index.html +20 -65
  5. package/coverage/lcov-report/src/Client.js.html +76 -76
  6. package/coverage/lcov-report/src/api/index.html +1 -1
  7. package/coverage/lcov-report/src/api/index.js.html +1 -1
  8. package/coverage/lcov-report/src/api/v1/Accounts.js.html +1 -1
  9. package/coverage/lcov-report/src/api/v1/Auth.js.html +1 -1
  10. package/coverage/lcov-report/src/api/v1/Categories.js.html +1 -1
  11. package/coverage/lcov-report/src/api/v1/Changelogs.js.html +1 -1
  12. package/coverage/lcov-report/src/api/v1/Configs.js.html +1 -1
  13. package/coverage/lcov-report/src/api/v1/ContactForms.js.html +1 -1
  14. package/coverage/lcov-report/src/api/v1/ConversationalTopics.js.html +1 -1
  15. package/coverage/lcov-report/src/api/v1/Countries.js.html +1 -1
  16. package/coverage/lcov-report/src/api/v1/Coupons.js.html +1 -1
  17. package/coverage/lcov-report/src/api/v1/Courses.js.html +17 -8
  18. package/coverage/lcov-report/src/api/v1/Currencies.js.html +1 -1
  19. package/coverage/lcov-report/src/api/v1/Files.js.html +1 -1
  20. package/coverage/lcov-report/src/api/v1/Forums.js.html +1 -1
  21. package/coverage/lcov-report/src/api/v1/Hashes.js.html +1 -1
  22. package/coverage/lcov-report/src/api/v1/Insignias.js.html +1 -1
  23. package/coverage/lcov-report/src/api/v1/Languages.js.html +1 -1
  24. package/coverage/lcov-report/src/api/v1/MailBlacklist.js.html +1 -1
  25. package/coverage/lcov-report/src/api/v1/Organizations.js.html +1 -1
  26. package/coverage/lcov-report/src/api/v1/PaymentMethods.js.html +1 -1
  27. package/coverage/lcov-report/src/api/v1/Payments.js.html +121 -0
  28. package/coverage/lcov-report/src/api/v1/Quizzes.js.html +1 -1
  29. package/coverage/lcov-report/src/api/v1/ShortLinks.js.html +1 -1
  30. package/coverage/lcov-report/src/api/v1/Surveys.js.html +1 -1
  31. package/coverage/lcov-report/src/api/v1/Taxes.js.html +1 -1
  32. package/coverage/lcov-report/src/api/v1/Teacher.js.html +22 -10
  33. package/coverage/lcov-report/src/api/v1/UserTypes.js.html +1 -1
  34. package/coverage/lcov-report/src/api/v1/Users.js.html +26 -8
  35. package/coverage/lcov-report/src/api/v1/Zoom.js.html +1 -1
  36. package/coverage/lcov-report/src/api/v1/index.html +51 -36
  37. package/coverage/lcov-report/src/api/v1/index.js.html +10 -4
  38. package/coverage/lcov-report/src/index.html +15 -15
  39. package/coverage/lcov-report/src/index.js.html +1 -1
  40. package/coverage/lcov-report/tests/helpers.js.html +1 -1
  41. package/coverage/lcov-report/tests/index.html +1 -1
  42. package/coverage/lcov.info +129 -1690
  43. package/coverage/test-report.html +1 -1
  44. package/package.json +1 -1
  45. package/src/api/v1/Payments.js +12 -0
  46. package/src/api/v1/Users.js +4 -0
  47. package/src/api/v1/index.js +2 -0
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">97.72% </span>
26
+ <span class="strong">76.66% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>86/88</span>
28
+ <span class='fraction'>92/120</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">87.5% </span>
33
+ <span class="strong">81.39% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>35/40</span>
35
+ <span class='fraction'>35/43</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">92.85% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>13/13</span>
42
+ <span class='fraction'>13/14</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">97.72% </span>
47
+ <span class="strong">76.66% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>86/88</span>
49
+ <span class='fraction'>92/120</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 high'></div>
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>
@@ -151,7 +151,39 @@
151
151
  <a name='L86'></a><a href='#L86'>86</a>
152
152
  <a name='L87'></a><a href='#L87'>87</a>
153
153
  <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
155
187
  <span class="cline-any cline-yes">1x</span>
156
188
  <span class="cline-any cline-yes">1x</span>
157
189
  <span class="cline-any cline-yes">1x</span>
@@ -230,10 +262,42 @@
230
262
  <span class="cline-any cline-yes">23x</span>
231
263
  <span class="cline-any cline-yes">23x</span>
232
264
  <span class="cline-any cline-yes">23x</span>
265
+ <span class="cline-any cline-no">&nbsp;</span>
266
+ <span class="cline-any cline-no">&nbsp;</span>
267
+ <span class="cline-any cline-no">&nbsp;</span>
268
+ <span class="cline-any cline-no">&nbsp;</span>
269
+ <span class="cline-any cline-no">&nbsp;</span>
233
270
  <span class="cline-any cline-yes">23x</span>
234
271
  <span class="cline-any cline-yes">23x</span>
272
+ <span class="cline-any cline-yes">23x</span>
273
+ <span class="cline-any cline-yes">1x</span>
274
+ <span class="cline-any cline-yes">1x</span>
275
+ <span class="cline-any cline-no">&nbsp;</span>
276
+ <span class="cline-any cline-no">&nbsp;</span>
277
+ <span class="cline-any cline-no">&nbsp;</span>
278
+ <span class="cline-any cline-no">&nbsp;</span>
279
+ <span class="cline-any cline-no">&nbsp;</span>
280
+ <span class="cline-any cline-no">&nbsp;</span>
281
+ <span class="cline-any cline-no">&nbsp;</span>
282
+ <span class="cline-any cline-no">&nbsp;</span>
283
+ <span class="cline-any cline-no">&nbsp;</span>
284
+ <span class="cline-any cline-no">&nbsp;</span>
285
+ <span class="cline-any cline-no">&nbsp;</span>
286
+ <span class="cline-any cline-no">&nbsp;</span>
287
+ <span class="cline-any cline-no">&nbsp;</span>
288
+ <span class="cline-any cline-no">&nbsp;</span>
289
+ <span class="cline-any cline-no">&nbsp;</span>
290
+ <span class="cline-any cline-no">&nbsp;</span>
235
291
  <span class="cline-any cline-yes">1x</span>
236
292
  <span class="cline-any cline-yes">1x</span>
293
+ <span class="cline-any cline-yes">14x</span>
294
+ <span class="cline-any cline-no">&nbsp;</span>
295
+ <span class="cline-any cline-no">&nbsp;</span>
296
+ <span class="cline-any cline-no">&nbsp;</span>
297
+ <span class="cline-any cline-no">&nbsp;</span>
298
+ <span class="cline-any cline-no">&nbsp;</span>
299
+ <span class="cline-any cline-yes">14x</span>
300
+ <span class="cline-any cline-yes">14x</span>
237
301
  <span class="cline-any cline-yes">1x</span>
238
302
  <span class="cline-any cline-yes">1x</span>
239
303
  <span class="cline-any cline-yes">1x</span>
@@ -317,11 +381,43 @@
317
381
  if (body !== null) options.body = JSON.stringify(body);
318
382
  const response = await fetch(`${this.#baseUrl}${path}`, options);
319
383
  this.#storeCookies(response);
384
+ if (!response.ok) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
385
+ <span class="cstat-no" title="statement not covered" > const err = new Error(`HTTP ${response.status}`);</span>
386
+ <span class="cstat-no" title="statement not covered" > err.status = response.status;</span>
387
+ <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>
388
+ <span class="cstat-no" title="statement not covered" > throw err;</span>
389
+ <span class="cstat-no" title="statement not covered" > }</span>
320
390
  const data = await this.#parseResponse(response);
321
391
  return data?.success ? data.response : data;
322
392
  }
323
393
  &nbsp;
324
- get(path) { return this.#request('GET', path); }
394
+ <span class="fstat-no" title="function not covered" > async upload(path, formData) {</span>
395
+ <span class="cstat-no" title="statement not covered" > const headers = { 'Accept': 'application/json' };</span>
396
+ <span class="cstat-no" title="statement not covered" > const cookie = this.#cookieHeader();</span>
397
+ <span class="cstat-no" title="statement not covered" > if (cookie) headers.Cookie = cookie;</span>
398
+ <span class="cstat-no" title="statement not covered" > const response = await fetch(`${this.#baseUrl}${path}`, {</span>
399
+ <span class="cstat-no" title="statement not covered" > method: 'PUT', headers, credentials: 'include', body: formData,</span>
400
+ <span class="cstat-no" title="statement not covered" > });</span>
401
+ <span class="cstat-no" title="statement not covered" > this.#storeCookies(response);</span>
402
+ <span class="cstat-no" title="statement not covered" > if (!response.ok) {</span>
403
+ <span class="cstat-no" title="statement not covered" > const err = new Error(`HTTP ${response.status}`);</span>
404
+ <span class="cstat-no" title="statement not covered" > err.status = response.status;</span>
405
+ <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>
406
+ <span class="cstat-no" title="statement not covered" > throw err;</span>
407
+ <span class="cstat-no" title="statement not covered" > }</span>
408
+ <span class="cstat-no" title="statement not covered" > const data = await this.#parseResponse(response);</span>
409
+ <span class="cstat-no" title="statement not covered" > return data?.success ? data.response : data;</span>
410
+ <span class="cstat-no" title="statement not covered" > }</span>
411
+ &nbsp;
412
+ get(path, params = null) {
413
+ if (params<span class="branch-0 cbranch-no" title="branch not covered" > &amp;&amp; typeof params === 'object')</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
414
+ <span class="cstat-no" title="statement not covered" > const qs = new URLSearchParams(</span>
415
+ <span class="cstat-no" title="statement not covered" > Object.entries(params).filter(([, v]) =&gt; v !== undefined &amp;&amp; v !== null)</span>
416
+ <span class="cstat-no" title="statement not covered" > ).toString();</span>
417
+ <span class="cstat-no" title="statement not covered" > if (qs) path += (path.includes('?') ? '&amp;' : '?') + qs;</span>
418
+ <span class="cstat-no" title="statement not covered" > }</span>
419
+ return this.#request('GET', path);
420
+ }
325
421
  post(path, body = null) { return this.#request('POST', path, body); }
326
422
  put(path, body = null) { return this.#request('PUT', path, body); }
327
423
  patch(path, body = null){ return this.#request('PATCH', path, body); }
@@ -334,7 +430,7 @@
334
430
  <div class='footer quiet pad2 space-top1 center small'>
335
431
  Code coverage generated by
336
432
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
337
- at 2026-05-17T20:36:22.634Z
433
+ at 2026-07-22T13:53:47.220Z
338
434
  </div>
339
435
  <script src="prettify.js"></script>
340
436
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">76.19% </span>
26
+ <span class="strong">76.66% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>640/840</span>
28
+ <span class='fraction'>92/120</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">80% </span>
33
+ <span class="strong">81.39% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>148/185</span>
35
+ <span class='fraction'>35/43</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">50.89% </span>
40
+ <span class="strong">92.85% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>114/224</span>
42
+ <span class='fraction'>13/14</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">76.19% </span>
47
+ <span class="strong">76.66% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>640/840</span>
49
+ <span class='fraction'>92/120</span>
50
50
  </div>
51
51
 
52
52
 
@@ -79,63 +79,18 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
- <td class="file high" data-value="src"><a href="src/index.html">src</a></td>
83
- <td data-value="88.28" class="pic high">
84
- <div class="chart"><div class="cover-fill" style="width: 88%"></div><div class="cover-empty" style="width: 12%"></div></div>
82
+ <td class="file medium" data-value="Client.js"><a href="Client.js.html">Client.js</a></td>
83
+ <td data-value="76.66" class="pic medium">
84
+ <div class="chart"><div class="cover-fill" style="width: 76%"></div><div class="cover-empty" style="width: 24%"></div></div>
85
85
  </td>
86
- <td data-value="88.28" class="pct high">88.28%</td>
87
- <td data-value="128" class="abs high">113/128</td>
88
- <td data-value="81.81" class="pct high">81.81%</td>
89
- <td data-value="55" class="abs high">45/55</td>
90
- <td data-value="100" class="pct high">100%</td>
91
- <td data-value="15" class="abs high">15/15</td>
92
- <td data-value="88.28" class="pct high">88.28%</td>
93
- <td data-value="128" class="abs high">113/128</td>
94
- </tr>
95
-
96
- <tr>
97
- <td class="file high" data-value="src/api"><a href="src/api/index.html">src/api</a></td>
98
- <td data-value="100" class="pic high">
99
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
100
- </td>
101
- <td data-value="100" class="pct high">100%</td>
102
- <td data-value="14" class="abs high">14/14</td>
103
- <td data-value="100" class="pct high">100%</td>
104
- <td data-value="4" class="abs high">4/4</td>
105
- <td data-value="100" class="pct high">100%</td>
106
- <td data-value="2" class="abs high">2/2</td>
107
- <td data-value="100" class="pct high">100%</td>
108
- <td data-value="14" class="abs high">14/14</td>
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="72.87" class="pic medium">
114
- <div class="chart"><div class="cover-fill" style="width: 72%"></div><div class="cover-empty" style="width: 28%"></div></div>
115
- </td>
116
- <td data-value="72.87" class="pct medium">72.87%</td>
117
- <td data-value="682" class="abs medium">497/682</td>
118
- <td data-value="78.04" class="pct medium">78.04%</td>
119
- <td data-value="123" class="abs medium">96/123</td>
120
- <td data-value="46.07" class="pct low">46.07%</td>
121
- <td data-value="204" class="abs low">94/204</td>
122
- <td data-value="72.87" class="pct medium">72.87%</td>
123
- <td data-value="682" class="abs medium">497/682</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="16" class="abs high">16/16</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="16" class="abs high">16/16</td>
86
+ <td data-value="76.66" class="pct medium">76.66%</td>
87
+ <td data-value="120" class="abs medium">92/120</td>
88
+ <td data-value="81.39" class="pct high">81.39%</td>
89
+ <td data-value="43" class="abs high">35/43</td>
90
+ <td data-value="92.85" class="pct high">92.85%</td>
91
+ <td data-value="14" class="abs high">13/14</td>
92
+ <td data-value="76.66" class="pct medium">76.66%</td>
93
+ <td data-value="120" class="abs medium">92/120</td>
139
94
  </tr>
140
95
 
141
96
  </tbody>
@@ -146,7 +101,7 @@
146
101
  <div class='footer quiet pad2 space-top1 center small'>
147
102
  Code coverage generated by
148
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
- at 2026-07-20T23:00:44.070Z
104
+ at 2026-07-22T13:53:47.220Z
150
105
  </div>
151
106
  <script src="prettify.js"></script>
152
107
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">87.5% </span>
26
+ <span class="strong">90% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>105/120</span>
28
+ <span class='fraction'>108/120</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">81.48% </span>
33
+ <span class="strong">83.01% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>44/54</span>
35
+ <span class='fraction'>44/53</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">87.5% </span>
47
+ <span class="strong">90% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>105/120</span>
49
+ <span class='fraction'>108/120</span>
50
50
  </div>
51
51
 
52
52
 
@@ -202,50 +202,50 @@
202
202
  <span class="cline-any cline-yes">147x</span>
203
203
  <span class="cline-any cline-yes">1x</span>
204
204
  <span class="cline-any cline-yes">1x</span>
205
- <span class="cline-any cline-yes">91x</span>
206
- <span class="cline-any cline-yes">91x</span>
207
- <span class="cline-any cline-yes">91x</span>
208
- <span class="cline-any cline-yes">91x</span>
209
- <span class="cline-any cline-yes">91x</span>
210
- <span class="cline-any cline-yes">91x</span>
211
- <span class="cline-any cline-yes">91x</span>
212
- <span class="cline-any cline-yes">91x</span>
213
- <span class="cline-any cline-yes">91x</span>
214
- <span class="cline-any cline-yes">91x</span>
215
- <span class="cline-any cline-yes">1x</span>
216
- <span class="cline-any cline-yes">1x</span>
217
- <span class="cline-any cline-yes">91x</span>
218
- <span class="cline-any cline-yes">18x</span>
219
- <span class="cline-any cline-yes">18x</span>
220
- <span class="cline-any cline-yes">18x</span>
221
- <span class="cline-any cline-yes">18x</span>
222
- <span class="cline-any cline-yes">18x</span>
223
- <span class="cline-any cline-yes">1x</span>
224
- <span class="cline-any cline-yes">1x</span>
225
- <span class="cline-any cline-yes">73x</span>
226
- <span class="cline-any cline-yes">73x</span>
227
- <span class="cline-any cline-yes">73x</span>
228
- <span class="cline-any cline-yes">73x</span>
229
- <span class="cline-any cline-yes">51x</span>
230
- <span class="cline-any cline-yes">73x</span>
231
- <span class="cline-any cline-yes">73x</span>
232
- <span class="cline-any cline-yes">73x</span>
233
- <span class="cline-any cline-yes">18x</span>
234
- <span class="cline-any cline-yes">18x</span>
235
- <span class="cline-any cline-yes">18x</span>
236
- <span class="cline-any cline-yes">18x</span>
237
- <span class="cline-any cline-yes">18x</span>
238
- <span class="cline-any cline-yes">18x</span>
239
- <span class="cline-any cline-yes">73x</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">73x</span>
243
- <span class="cline-any cline-yes">72x</span>
244
- <span class="cline-any cline-yes">72x</span>
245
- <span class="cline-any cline-yes">73x</span>
246
- <span class="cline-any cline-yes">51x</span>
247
- <span class="cline-any cline-yes">51x</span>
248
- <span class="cline-any cline-yes">51x</span>
205
+ <span class="cline-any cline-yes">98x</span>
206
+ <span class="cline-any cline-yes">98x</span>
207
+ <span class="cline-any cline-yes">98x</span>
208
+ <span class="cline-any cline-yes">98x</span>
209
+ <span class="cline-any cline-yes">98x</span>
210
+ <span class="cline-any cline-yes">98x</span>
211
+ <span class="cline-any cline-yes">98x</span>
212
+ <span class="cline-any cline-yes">98x</span>
213
+ <span class="cline-any cline-yes">98x</span>
214
+ <span class="cline-any cline-yes">98x</span>
215
+ <span class="cline-any cline-yes">1x</span>
216
+ <span class="cline-any cline-yes">1x</span>
217
+ <span class="cline-any cline-yes">99x</span>
218
+ <span class="cline-any cline-yes">30x</span>
219
+ <span class="cline-any cline-yes">30x</span>
220
+ <span class="cline-any cline-yes">30x</span>
221
+ <span class="cline-any cline-yes">30x</span>
222
+ <span class="cline-any cline-yes">30x</span>
223
+ <span class="cline-any cline-yes">1x</span>
224
+ <span class="cline-any cline-yes">1x</span>
225
+ <span class="cline-any cline-yes">85x</span>
226
+ <span class="cline-any cline-yes">85x</span>
227
+ <span class="cline-any cline-yes">85x</span>
228
+ <span class="cline-any cline-yes">85x</span>
229
+ <span class="cline-any cline-yes">63x</span>
230
+ <span class="cline-any cline-yes">85x</span>
231
+ <span class="cline-any cline-yes">85x</span>
232
+ <span class="cline-any cline-yes">85x</span>
233
+ <span class="cline-any cline-yes">22x</span>
234
+ <span class="cline-any cline-yes">22x</span>
235
+ <span class="cline-any cline-yes">22x</span>
236
+ <span class="cline-any cline-yes">22x</span>
237
+ <span class="cline-any cline-yes">22x</span>
238
+ <span class="cline-any cline-yes">22x</span>
239
+ <span class="cline-any cline-yes">85x</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">85x</span>
243
+ <span class="cline-any cline-yes">84x</span>
244
+ <span class="cline-any cline-yes">84x</span>
245
+ <span class="cline-any cline-yes">85x</span>
246
+ <span class="cline-any cline-yes">63x</span>
247
+ <span class="cline-any cline-yes">63x</span>
248
+ <span class="cline-any cline-yes">63x</span>
249
249
  <span class="cline-any cline-yes">21x</span>
250
250
  <span class="cline-any cline-yes">21x</span>
251
251
  <span class="cline-any cline-yes">23x</span>
@@ -254,22 +254,24 @@
254
254
  <span class="cline-any cline-yes">1x</span>
255
255
  <span class="cline-any cline-no">&nbsp;</span>
256
256
  <span class="cline-any cline-no">&nbsp;</span>
257
- <span class="cline-any cline-yes">73x</span>
257
+ <span class="cline-any cline-yes">85x</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">98x</span>
261
+ <span class="cline-any cline-yes">98x</span>
262
+ <span class="cline-any cline-yes">98x</span>
263
+ <span class="cline-any cline-yes">84x</span>
264
+ <span class="cline-any cline-yes">88x</span>
265
+ <span class="cline-any cline-yes">14x</span>
266
+ <span class="cline-any cline-yes">14x</span>
267
+ <span class="cline-any cline-yes">14x</span>
268
+ <span class="cline-any cline-yes">14x</span>
269
+ <span class="cline-any cline-yes">14x</span>
270
+ <span class="cline-any cline-yes">70x</span>
271
+ <span class="cline-any cline-yes">98x</span>
272
+ <span class="cline-any cline-yes">98x</span>
258
273
  <span class="cline-any cline-yes">1x</span>
259
274
  <span class="cline-any cline-yes">1x</span>
260
- <span class="cline-any cline-yes">91x</span>
261
- <span class="cline-any cline-yes">91x</span>
262
- <span class="cline-any cline-yes">91x</span>
263
- <span class="cline-any cline-yes">70x</span>
264
- <span class="cline-any cline-yes">83x</span>
265
- <span class="cline-any cline-yes">10x</span>
266
- <span class="cline-any cline-yes">10x</span>
267
- <span class="cline-any cline-yes">10x</span>
268
- <span class="cline-any cline-yes">10x</span>
269
- <span class="cline-any cline-yes">10x</span>
270
- <span class="cline-any cline-yes">60x</span>
271
- <span class="cline-any cline-yes">91x</span>
272
- <span class="cline-any cline-yes">91x</span>
273
275
  <span class="cline-any cline-yes">1x</span>
274
276
  <span class="cline-any cline-yes">1x</span>
275
277
  <span class="cline-any cline-yes">1x</span>
@@ -283,21 +285,19 @@
283
285
  <span class="cline-any cline-no">&nbsp;</span>
284
286
  <span class="cline-any cline-no">&nbsp;</span>
285
287
  <span class="cline-any cline-no">&nbsp;</span>
286
- <span class="cline-any cline-no">&nbsp;</span>
287
- <span class="cline-any cline-no">&nbsp;</span>
288
- <span class="cline-any cline-no">&nbsp;</span>
289
288
  <span class="cline-any cline-yes">1x</span>
290
289
  <span class="cline-any cline-yes">1x</span>
291
290
  <span class="cline-any cline-yes">1x</span>
292
291
  <span class="cline-any cline-yes">1x</span>
293
- <span class="cline-any cline-yes">59x</span>
292
+ <span class="cline-any cline-yes">1x</span>
293
+ <span class="cline-any cline-yes">64x</span>
294
294
  <span class="cline-any cline-no">&nbsp;</span>
295
295
  <span class="cline-any cline-no">&nbsp;</span>
296
296
  <span class="cline-any cline-no">&nbsp;</span>
297
297
  <span class="cline-any cline-no">&nbsp;</span>
298
298
  <span class="cline-any cline-no">&nbsp;</span>
299
- <span class="cline-any cline-yes">59x</span>
300
- <span class="cline-any cline-yes">59x</span>
299
+ <span class="cline-any cline-yes">64x</span>
300
+ <span class="cline-any cline-yes">64x</span>
301
301
  <span class="cline-any cline-yes">1x</span>
302
302
  <span class="cline-any cline-yes">1x</span>
303
303
  <span class="cline-any cline-yes">1x</span>
@@ -397,16 +397,16 @@
397
397
  if (cookie) headers.Cookie = cookie;
398
398
  const response = await fetch(`${this.#baseUrl}${path}`, {
399
399
  method: 'PUT', headers, credentials: 'include', body: formData,
400
- })<span class="branch-0 cbranch-no" title="branch not covered" >;</span>
401
- <span class="cstat-no" title="statement not covered" > this.#storeCookies(response);</span>
402
- <span class="cstat-no" title="statement not covered" > if (!response.ok) {</span>
400
+ });
401
+ this.#storeCookies(response);
402
+ if (!response.ok) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
403
403
  <span class="cstat-no" title="statement not covered" > const err = new Error(`HTTP ${response.status}`);</span>
404
404
  <span class="cstat-no" title="statement not covered" > err.status = response.status;</span>
405
405
  <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>
406
406
  <span class="cstat-no" title="statement not covered" > throw err;</span>
407
407
  <span class="cstat-no" title="statement not covered" > }</span>
408
- <span class="cstat-no" title="statement not covered" > const data = await this.#parseResponse(response);</span>
409
- return data?.success<span class="branch-0 cbranch-no" title="branch not covered" > ? data.response<span class="branch-0 cbranch-no" title="branch not covered" > </span>: data;</span>
408
+ const data = await this.#parseResponse(response);
409
+ return data?.success ? data.response<span class="branch-0 cbranch-no" title="branch not covered" > : data;</span>
410
410
  }
411
411
  &nbsp;
412
412
  get(path, params = null) {
@@ -430,7 +430,7 @@
430
430
  <div class='footer quiet pad2 space-top1 center small'>
431
431
  Code coverage generated by
432
432
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
433
- at 2026-07-20T23:00:44.070Z
433
+ at 2026-07-22T13:50:57.219Z
434
434
  </div>
435
435
  <script src="../prettify.js"></script>
436
436
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2026-07-20T23:00:44.070Z
104
+ at 2026-07-22T13:50:57.219Z
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -112,7 +112,7 @@ export default class InsigniaApi extends Insignia {
112
112
  <div class='footer quiet pad2 space-top1 center small'>
113
113
  Code coverage generated by
114
114
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
115
- at 2026-07-20T23:00:44.070Z
115
+ at 2026-07-22T13:50:57.219Z
116
116
  </div>
117
117
  <script src="../../prettify.js"></script>
118
118
  <script>
@@ -136,7 +136,7 @@
136
136
  <div class='footer quiet pad2 space-top1 center small'>
137
137
  Code coverage generated by
138
138
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
139
- at 2026-07-20T23:00:44.070Z
139
+ at 2026-07-22T13:50:57.219Z
140
140
  </div>
141
141
  <script src="../../../prettify.js"></script>
142
142
  <script>
@@ -136,7 +136,7 @@
136
136
  <div class='footer quiet pad2 space-top1 center small'>
137
137
  Code coverage generated by
138
138
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
139
- at 2026-07-20T23:00:44.070Z
139
+ at 2026-07-22T13:50:57.219Z
140
140
  </div>
141
141
  <script src="../../../prettify.js"></script>
142
142
  <script>
@@ -106,7 +106,7 @@
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
- at 2026-07-20T23:00:44.070Z
109
+ at 2026-07-22T13:50:57.219Z
110
110
  </div>
111
111
  <script src="../../../prettify.js"></script>
112
112
  <script>
@@ -103,7 +103,7 @@
103
103
  <div class='footer quiet pad2 space-top1 center small'>
104
104
  Code coverage generated by
105
105
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
106
- at 2026-07-20T23:00:44.070Z
106
+ at 2026-07-22T13:50:57.219Z
107
107
  </div>
108
108
  <script src="../../../prettify.js"></script>
109
109
  <script>
@@ -106,7 +106,7 @@
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
- at 2026-07-20T23:00:44.070Z
109
+ at 2026-07-22T13:50:57.219Z
110
110
  </div>
111
111
  <script src="../../../prettify.js"></script>
112
112
  <script>
@@ -106,7 +106,7 @@
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
- at 2026-07-20T23:00:44.070Z
109
+ at 2026-07-22T13:50:57.219Z
110
110
  </div>
111
111
  <script src="../../../prettify.js"></script>
112
112
  <script>