@insignia-education/api-sdk-js 0.15.61 → 0.15.63

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 (90) hide show
  1. package/.github/workflows/npm-publish-github-packages.yml +95 -12
  2. package/coverage/clover.xml +132 -1512
  3. package/coverage/coverage-final.json +1 -47
  4. package/coverage/lcov-report/Client.js.html +463 -0
  5. package/coverage/lcov-report/index.html +20 -65
  6. package/coverage/lcov-report/src/Client.js.html +141 -132
  7. package/coverage/lcov-report/src/api/index.html +1 -1
  8. package/coverage/lcov-report/src/api/index.js.html +8 -8
  9. package/coverage/lcov-report/src/api/v1/Accounts.js.html +3 -3
  10. package/coverage/lcov-report/src/api/v1/Admin.js.html +3 -3
  11. package/coverage/lcov-report/src/api/v1/Auth.js.html +7 -7
  12. package/coverage/lcov-report/src/api/v1/Categories.js.html +8 -8
  13. package/coverage/lcov-report/src/api/v1/Changelogs.js.html +8 -8
  14. package/coverage/lcov-report/src/api/v1/Configs.js.html +8 -8
  15. package/coverage/lcov-report/src/api/v1/ContactForms.js.html +8 -8
  16. package/coverage/lcov-report/src/api/v1/ConversationalTopics.js.html +8 -8
  17. package/coverage/lcov-report/src/api/v1/Countries.js.html +8 -8
  18. package/coverage/lcov-report/src/api/v1/Coupons.js.html +16 -16
  19. package/coverage/lcov-report/src/api/v1/Courses.js.html +27 -27
  20. package/coverage/lcov-report/src/api/v1/Currencies.js.html +10 -10
  21. package/coverage/lcov-report/src/api/v1/Dashboard.js.html +3 -3
  22. package/coverage/lcov-report/src/api/v1/EducationCenter.js.html +3 -3
  23. package/coverage/lcov-report/src/api/v1/Employee.js.html +5 -5
  24. package/coverage/lcov-report/src/api/v1/Files.js.html +8 -8
  25. package/coverage/lcov-report/src/api/v1/Forums.js.html +8 -8
  26. package/coverage/lcov-report/src/api/v1/Hashes.js.html +16 -13
  27. package/coverage/lcov-report/src/api/v1/Insignias.js.html +8 -8
  28. package/coverage/lcov-report/src/api/v1/Languages.js.html +8 -8
  29. package/coverage/lcov-report/src/api/v1/MailBlacklist.js.html +8 -8
  30. package/coverage/lcov-report/src/api/v1/MailingLists.js.html +3 -3
  31. package/coverage/lcov-report/src/api/v1/Offers.js.html +16 -16
  32. package/coverage/lcov-report/src/api/v1/Organizations.js.html +52 -52
  33. package/coverage/lcov-report/src/api/v1/PaymentMethods.js.html +7 -7
  34. package/coverage/lcov-report/src/api/v1/Payments.js.html +3 -3
  35. package/coverage/lcov-report/src/api/v1/Premiums.js.html +3 -3
  36. package/coverage/lcov-report/src/api/v1/Quizzes.js.html +42 -42
  37. package/coverage/lcov-report/src/api/v1/Sales.js.html +3 -3
  38. package/coverage/lcov-report/src/api/v1/Search.js.html +3 -3
  39. package/coverage/lcov-report/src/api/v1/ShortLinks.js.html +8 -8
  40. package/coverage/lcov-report/src/api/v1/Surveys.js.html +8 -8
  41. package/coverage/lcov-report/src/api/v1/Taxes.js.html +8 -8
  42. package/coverage/lcov-report/src/api/v1/Teacher.js.html +100 -70
  43. package/coverage/lcov-report/src/api/v1/Telegram.js.html +3 -3
  44. package/coverage/lcov-report/src/api/v1/TwoFactor.js.html +3 -3
  45. package/coverage/lcov-report/src/api/v1/UserSessionTypes.js.html +3 -3
  46. package/coverage/lcov-report/src/api/v1/UserTypes.js.html +8 -8
  47. package/coverage/lcov-report/src/api/v1/Users.js.html +112 -16
  48. package/coverage/lcov-report/src/api/v1/Utm.js.html +3 -3
  49. package/coverage/lcov-report/src/api/v1/Webauthn.js.html +3 -3
  50. package/coverage/lcov-report/src/api/v1/Zoom.js.html +19 -19
  51. package/coverage/lcov-report/src/api/v1/index.html +154 -184
  52. package/coverage/lcov-report/src/api/v1/index.js.html +52 -64
  53. package/coverage/lcov-report/src/index.html +21 -21
  54. package/coverage/lcov-report/src/index.js.html +3 -3
  55. package/coverage/lcov-report/tests/helpers.js.html +11 -11
  56. package/coverage/lcov-report/tests/index.html +7 -7
  57. package/coverage/lcov.info +146 -2451
  58. package/coverage/test-report.html +1 -10
  59. package/jest.config.mjs +12 -1
  60. package/package.json +2 -2
  61. package/src/api/v1/Coupons.js +11 -0
  62. package/src/api/v1/Courses.js +2 -0
  63. package/src/api/v1/Hashes.js +3 -2
  64. package/src/api/v1/Telegram.js +6 -0
  65. package/src/api/v1/Users.js +12 -0
  66. package/src/api/v1/index.js +0 -4
  67. package/tests/integration/api/v1/accounts.test.js +5 -11
  68. package/tests/integration/api/v1/auth/login.test.js +18 -34
  69. package/tests/integration/api/v1/conversational-topics.test.js +3 -5
  70. package/tests/integration/api/v1/countries.test.js +1 -1
  71. package/tests/integration/api/v1/coupons.test.js +2 -9
  72. package/tests/integration/api/v1/currencies/index.test.js +1 -1
  73. package/tests/integration/api/v1/files.test.js +18 -15
  74. package/tests/integration/api/v1/hashes.test.js +2 -10
  75. package/tests/integration/api/v1/mail-blacklist.test.js +2 -9
  76. package/tests/integration/api/v1/offers.test.js +2 -9
  77. package/tests/integration/api/v1/organizations.test.js +8 -8
  78. package/tests/integration/api/v1/quizzes/index.test.js +0 -2
  79. package/tests/integration/api/v1/short-links.test.js +2 -9
  80. package/tests/integration/api/v1/taxes.test.js +2 -3
  81. package/tests/integration/api/v1/teacher/index.test.js +1 -1
  82. package/tests/integration/api/v1/telegram.test.js +33 -0
  83. package/tests/integration/api/v1/user-types.test.js +2 -4
  84. package/tests/integration/api/v1/users/index.test.js +10 -13
  85. package/tests/integration/api/v1/users/telegram.test.js +36 -0
  86. package/tests/integration/api/v1/zoom.test.js +2 -9
  87. package/src/api/v1/Categories.js +0 -12
  88. package/src/api/v1/Configs.js +0 -12
  89. package/tests/integration/api/v1/categories.test.js +0 -19
  90. package/tests/integration/api/v1/configs.test.js +0 -20
@@ -30,16 +30,16 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">75% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>2/2</span>
35
+ <span class='fraction'>3/4</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">40% </span>
40
+ <span class="strong">60% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/5</span>
42
+ <span class='fraction'>3/5</span>
43
43
  </div>
44
44
 
45
45
 
@@ -78,8 +78,8 @@
78
78
  <span class="cline-any cline-yes">1x</span>
79
79
  <span class="cline-any cline-yes">1x</span>
80
80
  <span class="cline-any cline-yes">1x</span>
81
- <span class="cline-any cline-yes">1x</span>
82
- <span class="cline-any cline-yes">1x</span>
81
+ <span class="cline-any cline-yes">30x</span>
82
+ <span class="cline-any cline-yes">30x</span>
83
83
  <span class="cline-any cline-yes">1x</span>
84
84
  <span class="cline-any cline-yes">1x</span>
85
85
  <span class="cline-any cline-yes">1x</span>
@@ -92,7 +92,7 @@
92
92
  this.#client = client;
93
93
  }
94
94
  &nbsp;
95
- <span class="fstat-no" title="function not covered" > get(id = null) { return id ? this.#client.get(`/changelogs/${id}`) : this.#client.get('/changelogs'); }</span>
95
+ get(id = null) { return id<span class="branch-0 cbranch-no" title="branch not covered" > ? this.#client.get(`/changelogs/${id}`) </span>: this.#client.get('/changelogs'); }
96
96
  <span class="fstat-no" title="function not covered" > approve(id) { return this.#client.post(`/changelogs/${id}/approve`); }</span>
97
97
  <span class="fstat-no" title="function not covered" > reject(id, data) { return this.#client.post(`/changelogs/${id}/reject`, data); }</span>
98
98
  }
@@ -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-08-03T13:22:45.069Z
106
+ at 2026-08-09T19:41:47.271Z
107
107
  </div>
108
108
  <script src="../../../prettify.js"></script>
109
109
  <script>
@@ -30,16 +30,16 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">75% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>2/2</span>
35
+ <span class='fraction'>3/4</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">33.33% </span>
40
+ <span class="strong">50% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/6</span>
42
+ <span class='fraction'>3/6</span>
43
43
  </div>
44
44
 
45
45
 
@@ -79,8 +79,8 @@
79
79
  <span class="cline-any cline-yes">1x</span>
80
80
  <span class="cline-any cline-yes">1x</span>
81
81
  <span class="cline-any cline-yes">1x</span>
82
- <span class="cline-any cline-yes">1x</span>
83
- <span class="cline-any cline-yes">1x</span>
82
+ <span class="cline-any cline-yes">31x</span>
83
+ <span class="cline-any cline-yes">31x</span>
84
84
  <span class="cline-any cline-yes">1x</span>
85
85
  <span class="cline-any cline-yes">1x</span>
86
86
  <span class="cline-any cline-yes">1x</span>
@@ -94,7 +94,7 @@
94
94
  this.#client = client;
95
95
  }
96
96
  &nbsp;
97
- <span class="fstat-no" title="function not covered" > get(id = null) { return id ? this.#client.get(`/configs/${id}`) : this.#client.get('/configs'); }</span>
97
+ get(id = null) { return id<span class="branch-0 cbranch-no" title="branch not covered" > ? this.#client.get(`/configs/${id}`) </span>: this.#client.get('/configs'); }
98
98
  <span class="fstat-no" title="function not covered" > create(data) { return this.#client.put('/configs', data); }</span>
99
99
  <span class="fstat-no" title="function not covered" > edit(id, data) { return this.#client.patch(`/configs/${id}`, data); }</span>
100
100
  <span class="fstat-no" title="function not covered" > delete(id) { return this.#client.del(`/configs/${id}`); }</span>
@@ -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-08-03T13:22:45.069Z
109
+ at 2026-08-09T19:05:44.671Z
110
110
  </div>
111
111
  <script src="../../../prettify.js"></script>
112
112
  <script>
@@ -30,16 +30,16 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">75% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>2/2</span>
35
+ <span class='fraction'>3/4</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">33.33% </span>
40
+ <span class="strong">50% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/6</span>
42
+ <span class='fraction'>3/6</span>
43
43
  </div>
44
44
 
45
45
 
@@ -79,8 +79,8 @@
79
79
  <span class="cline-any cline-yes">1x</span>
80
80
  <span class="cline-any cline-yes">1x</span>
81
81
  <span class="cline-any cline-yes">1x</span>
82
- <span class="cline-any cline-yes">1x</span>
83
- <span class="cline-any cline-yes">1x</span>
82
+ <span class="cline-any cline-yes">30x</span>
83
+ <span class="cline-any cline-yes">30x</span>
84
84
  <span class="cline-any cline-yes">1x</span>
85
85
  <span class="cline-any cline-yes">1x</span>
86
86
  <span class="cline-any cline-yes">1x</span>
@@ -94,7 +94,7 @@
94
94
  this.#client = client;
95
95
  }
96
96
  &nbsp;
97
- <span class="fstat-no" title="function not covered" > get(id = null) { return id ? this.#client.get(`/contact-forms/${id}`) : this.#client.get('/contact-forms'); }</span>
97
+ get(id = null) { return id<span class="branch-0 cbranch-no" title="branch not covered" > ? this.#client.get(`/contact-forms/${id}`) </span>: this.#client.get('/contact-forms'); }
98
98
  <span class="fstat-no" title="function not covered" > create(data) { return this.#client.put('/contact-forms', data); }</span>
99
99
  <span class="fstat-no" title="function not covered" > answer(id, data) { return this.#client.post(`/contact-forms/${id}/answer`, data); }</span>
100
100
  <span class="fstat-no" title="function not covered" > delete(id) { return this.#client.del(`/contact-forms/${id}`); }</span>
@@ -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-08-03T13:22:45.069Z
109
+ at 2026-08-09T19:41:47.271Z
110
110
  </div>
111
111
  <script src="../../../prettify.js"></script>
112
112
  <script>
@@ -30,16 +30,16 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">75% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>2/2</span>
35
+ <span class='fraction'>3/4</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">33.33% </span>
40
+ <span class="strong">50% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/6</span>
42
+ <span class='fraction'>3/6</span>
43
43
  </div>
44
44
 
45
45
 
@@ -79,8 +79,8 @@
79
79
  <span class="cline-any cline-yes">1x</span>
80
80
  <span class="cline-any cline-yes">1x</span>
81
81
  <span class="cline-any cline-yes">1x</span>
82
- <span class="cline-any cline-yes">1x</span>
83
- <span class="cline-any cline-yes">1x</span>
82
+ <span class="cline-any cline-yes">30x</span>
83
+ <span class="cline-any cline-yes">30x</span>
84
84
  <span class="cline-any cline-yes">1x</span>
85
85
  <span class="cline-any cline-yes">1x</span>
86
86
  <span class="cline-any cline-yes">1x</span>
@@ -94,7 +94,7 @@
94
94
  this.#client = client;
95
95
  }
96
96
  &nbsp;
97
- <span class="fstat-no" title="function not covered" > get(id = null) { return id ? this.#client.get(`/conversational-topics/${id}`) : this.#client.get('/conversational-topics'); }</span>
97
+ get(id = null) { return id<span class="branch-0 cbranch-no" title="branch not covered" > ? this.#client.get(`/conversational-topics/${id}`) </span>: this.#client.get('/conversational-topics'); }
98
98
  <span class="fstat-no" title="function not covered" > create(data) { return this.#client.put('/conversational-topics', data); }</span>
99
99
  <span class="fstat-no" title="function not covered" > edit(id, data) { return this.#client.patch(`/conversational-topics/${id}`, data); }</span>
100
100
  <span class="fstat-no" title="function not covered" > delete(id) { return this.#client.del(`/conversational-topics/${id}`); }</span>
@@ -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-08-03T13:22:45.069Z
109
+ at 2026-08-09T19:41:47.271Z
110
110
  </div>
111
111
  <script src="../../../prettify.js"></script>
112
112
  <script>
@@ -30,16 +30,16 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">75% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>2/2</span>
35
+ <span class='fraction'>3/4</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">66.66% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/3</span>
42
+ <span class='fraction'>3/3</span>
43
43
  </div>
44
44
 
45
45
 
@@ -76,8 +76,8 @@
76
76
  <span class="cline-any cline-yes">1x</span>
77
77
  <span class="cline-any cline-yes">1x</span>
78
78
  <span class="cline-any cline-yes">1x</span>
79
- <span class="cline-any cline-yes">1x</span>
80
- <span class="cline-any cline-yes">1x</span>
79
+ <span class="cline-any cline-yes">30x</span>
80
+ <span class="cline-any cline-yes">30x</span>
81
81
  <span class="cline-any cline-yes">1x</span>
82
82
  <span class="cline-any cline-yes">1x</span>
83
83
  <span class="cline-any cline-yes">1x</span>
@@ -88,7 +88,7 @@
88
88
  this.#client = client;
89
89
  }
90
90
  &nbsp;
91
- <span class="fstat-no" title="function not covered" > get(id = null) { return id ? this.#client.get(`/countries/${id}`) : this.#client.get('/countries'); }</span>
91
+ get(id = null) { return id<span class="branch-0 cbranch-no" title="branch not covered" > ? this.#client.get(`/countries/${id}`) </span>: this.#client.get('/countries'); }
92
92
  }
93
93
  &nbsp;</pre></td></tr></table></pre>
94
94
 
@@ -97,7 +97,7 @@
97
97
  <div class='footer quiet pad2 space-top1 center small'>
98
98
  Code coverage generated by
99
99
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
100
- at 2026-08-03T13:22:45.069Z
100
+ at 2026-08-09T19:41:47.271Z
101
101
  </div>
102
102
  <script src="../../../prettify.js"></script>
103
103
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">84.21% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>16/19</span>
28
+ <span class='fraction'>19/19</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">75% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>2/2</span>
35
+ <span class='fraction'>3/4</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">28.57% </span>
40
+ <span class="strong">42.85% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/7</span>
42
+ <span class='fraction'>3/7</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">84.21% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>16/19</span>
49
+ <span class='fraction'>19/19</span>
50
50
  </div>
51
51
 
52
52
 
@@ -86,14 +86,14 @@
86
86
  <span class="cline-any cline-yes">1x</span>
87
87
  <span class="cline-any cline-yes">1x</span>
88
88
  <span class="cline-any cline-yes">1x</span>
89
+ <span class="cline-any cline-yes">30x</span>
90
+ <span class="cline-any cline-yes">30x</span>
91
+ <span class="cline-any cline-yes">1x</span>
89
92
  <span class="cline-any cline-yes">1x</span>
90
93
  <span class="cline-any cline-yes">1x</span>
91
94
  <span class="cline-any cline-yes">1x</span>
92
95
  <span class="cline-any cline-yes">1x</span>
93
96
  <span class="cline-any cline-yes">1x</span>
94
- <span class="cline-any cline-no">&nbsp;</span>
95
- <span class="cline-any cline-no">&nbsp;</span>
96
- <span class="cline-any cline-no">&nbsp;</span>
97
97
  <span class="cline-any cline-yes">1x</span>
98
98
  <span class="cline-any cline-yes">1x</span>
99
99
  <span class="cline-any cline-yes">1x</span>
@@ -109,10 +109,10 @@
109
109
  }
110
110
  &nbsp;
111
111
  /** Employee/sales-only paginated + cod-searchable list when called without an id. */
112
- <span class="fstat-no" title="function not covered" > get(id = null, { search = null, page = 1, perPage = 15 } = {}) {</span>
113
- <span class="cstat-no" title="statement not covered" > if (id) return this.#client.get(`/coupons/${id}`);</span>
114
- <span class="cstat-no" title="statement not covered" > return this.#client.get('/coupons', { search, page, per_page: perPage });</span>
115
- <span class="cstat-no" title="statement not covered" > }</span>
112
+ get(id = null, { search = null, page = 1, perPage = 15 } = {}) {
113
+ if (id) <span class="branch-0 cbranch-no" title="branch not covered" >return this.#client.get(`/coupons/${id}`);</span>
114
+ return this.#client.get('/coupons', { search, page, per_page: perPage });
115
+ }
116
116
  <span class="fstat-no" title="function not covered" > create(data) { return this.#client.put('/coupons', data); }</span>
117
117
  <span class="fstat-no" title="function not covered" > edit(id, data) { return this.#client.patch(`/coupons/${id}`, data); }</span>
118
118
  <span class="fstat-no" title="function not covered" > delete(id) { return this.#client.del(`/coupons/${id}`); }</span>
@@ -127,7 +127,7 @@
127
127
  <div class='footer quiet pad2 space-top1 center small'>
128
128
  Code coverage generated by
129
129
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
130
- at 2026-08-03T13:22:45.069Z
130
+ at 2026-08-09T19:41:47.271Z
131
131
  </div>
132
132
  <script src="../../../prettify.js"></script>
133
133
  <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.49% </span>
26
+ <span class="strong">32.47% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>31/117</span>
28
+ <span class='fraction'>38/117</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">85.71% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>2/2</span>
35
+ <span class='fraction'>6/7</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">14.28% </span>
40
+ <span class="strong">28.57% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/14</span>
42
+ <span class='fraction'>4/14</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">26.49% </span>
47
+ <span class="strong">32.47% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>31/117</span>
49
+ <span class='fraction'>38/117</span>
50
50
  </div>
51
51
 
52
52
 
@@ -184,19 +184,19 @@
184
184
  <span class="cline-any cline-yes">1x</span>
185
185
  <span class="cline-any cline-yes">1x</span>
186
186
  <span class="cline-any cline-yes">1x</span>
187
+ <span class="cline-any cline-yes">30x</span>
188
+ <span class="cline-any cline-yes">30x</span>
187
189
  <span class="cline-any cline-yes">1x</span>
188
190
  <span class="cline-any cline-yes">1x</span>
189
191
  <span class="cline-any cline-yes">1x</span>
190
192
  <span class="cline-any cline-yes">1x</span>
191
- <span class="cline-any cline-yes">1x</span>
192
- <span class="cline-any cline-yes">1x</span>
193
- <span class="cline-any cline-no">&nbsp;</span>
194
- <span class="cline-any cline-no">&nbsp;</span>
195
- <span class="cline-any cline-no">&nbsp;</span>
196
- <span class="cline-any cline-no">&nbsp;</span>
197
- <span class="cline-any cline-no">&nbsp;</span>
198
- <span class="cline-any cline-no">&nbsp;</span>
199
- <span class="cline-any cline-no">&nbsp;</span>
193
+ <span class="cline-any cline-yes">5x</span>
194
+ <span class="cline-any cline-yes">4x</span>
195
+ <span class="cline-any cline-yes">4x</span>
196
+ <span class="cline-any cline-yes">4x</span>
197
+ <span class="cline-any cline-yes">4x</span>
198
+ <span class="cline-any cline-yes">5x</span>
199
+ <span class="cline-any cline-yes">5x</span>
200
200
  <span class="cline-any cline-yes">1x</span>
201
201
  <span class="cline-any cline-yes">1x</span>
202
202
  <span class="cline-any cline-yes">1x</span>
@@ -304,16 +304,16 @@
304
304
  this.#client = client;
305
305
  }
306
306
  &nbsp;
307
- <span class="fstat-no" title="function not covered" > getByCod(cod) { return this.#client.get(`/courses/cod/${cod}`); }</span>
307
+ getByCod(cod) { return this.#client.get(`/courses/cod/${cod}`); }
308
308
  &nbsp;
309
- <span class="fstat-no" title="function not covered" > get(id = null, { page = 1, perPage = 15 } = {}) {</span>
310
- <span class="cstat-no" title="statement not covered" > if (id) return this.#client.get(`/courses/${id}`);</span>
311
- <span class="cstat-no" title="statement not covered" > const params = new URLSearchParams();</span>
312
- <span class="cstat-no" title="statement not covered" > if (page) params.set('page', page);</span>
313
- <span class="cstat-no" title="statement not covered" > if (perPage) params.set('per_page', perPage);</span>
314
- <span class="cstat-no" title="statement not covered" > const qs = params.toString();</span>
315
- <span class="cstat-no" title="statement not covered" > return this.#client.get(qs ? `/courses?${qs}` : '/courses');</span>
316
- <span class="cstat-no" title="statement not covered" > }</span>
309
+ get(id = null, { page = 1, perPage = 15 } = {}) {
310
+ if (id) return this.#client.get(`/courses/${id}`);
311
+ const params = new URLSearchParams();
312
+ if (page) params.set('page', page);
313
+ if (perPage) params.set('per_page', perPage);
314
+ const qs = params.toString();
315
+ return this.#client.get(qs ? `/courses?${qs}`<span class="branch-0 cbranch-no" title="branch not covered" > : '/courses')</span>;
316
+ }
317
317
  &nbsp;
318
318
  /** Fetch all courses in a single unpaginated request (per_page=0). */
319
319
  <span class="fstat-no" title="function not covered" > getAll() {</span>
@@ -421,7 +421,7 @@
421
421
  <div class='footer quiet pad2 space-top1 center small'>
422
422
  Code coverage generated by
423
423
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
424
- at 2026-08-03T13:22:45.069Z
424
+ at 2026-08-09T19:41:47.271Z
425
425
  </div>
426
426
  <script src="../../../prettify.js"></script>
427
427
  <script>
@@ -30,16 +30,16 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">83.33% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>2/2</span>
35
+ <span class='fraction'>5/6</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">40% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/5</span>
42
+ <span class='fraction'>5/5</span>
43
43
  </div>
44
44
 
45
45
 
@@ -78,8 +78,8 @@
78
78
  <span class="cline-any cline-yes">1x</span>
79
79
  <span class="cline-any cline-yes">1x</span>
80
80
  <span class="cline-any cline-yes">1x</span>
81
- <span class="cline-any cline-yes">1x</span>
82
- <span class="cline-any cline-yes">1x</span>
81
+ <span class="cline-any cline-yes">30x</span>
82
+ <span class="cline-any cline-yes">30x</span>
83
83
  <span class="cline-any cline-yes">1x</span>
84
84
  <span class="cline-any cline-yes">1x</span>
85
85
  <span class="cline-any cline-yes">1x</span>
@@ -92,9 +92,9 @@
92
92
  this.#client = client;
93
93
  }
94
94
  &nbsp;
95
- <span class="fstat-no" title="function not covered" > get(id = null) { return id ? this.#client.get(`/currencies/${id}`) : this.#client.get('/currencies'); }</span>
96
- <span class="fstat-no" title="function not covered" > getValues() { return this.#client.get('/currencies/values'); }</span>
97
- <span class="fstat-no" title="function not covered" > getHistory(id) { return this.#client.get(`/currencies/${id}/history`); }</span>
95
+ get(id = null) { return id<span class="branch-0 cbranch-no" title="branch not covered" > ? this.#client.get(`/currencies/${id}`) </span>: this.#client.get('/currencies'); }
96
+ getValues() { return this.#client.get('/currencies/values'); }
97
+ getHistory(id) { return this.#client.get(`/currencies/${id}/history`); }
98
98
  }
99
99
  &nbsp;</pre></td></tr></table></pre>
100
100
 
@@ -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-08-03T13:22:45.069Z
106
+ at 2026-08-09T19:41:47.271Z
107
107
  </div>
108
108
  <script src="../../../prettify.js"></script>
109
109
  <script>
@@ -77,8 +77,8 @@
77
77
  <span class="cline-any cline-yes">1x</span>
78
78
  <span class="cline-any cline-yes">1x</span>
79
79
  <span class="cline-any cline-yes">1x</span>
80
- <span class="cline-any cline-yes">1x</span>
81
- <span class="cline-any cline-yes">1x</span>
80
+ <span class="cline-any cline-yes">30x</span>
81
+ <span class="cline-any cline-yes">30x</span>
82
82
  <span class="cline-any cline-yes">1x</span>
83
83
  <span class="cline-any cline-yes">1x</span>
84
84
  <span class="cline-any cline-yes">1x</span>
@@ -100,7 +100,7 @@
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
103
- at 2026-08-03T13:22:45.069Z
103
+ at 2026-08-09T19:41:47.271Z
104
104
  </div>
105
105
  <script src="../../../prettify.js"></script>
106
106
  <script>
@@ -77,8 +77,8 @@
77
77
  <span class="cline-any cline-yes">1x</span>
78
78
  <span class="cline-any cline-yes">1x</span>
79
79
  <span class="cline-any cline-yes">1x</span>
80
- <span class="cline-any cline-yes">1x</span>
81
- <span class="cline-any cline-yes">1x</span>
80
+ <span class="cline-any cline-yes">30x</span>
81
+ <span class="cline-any cline-yes">30x</span>
82
82
  <span class="cline-any cline-yes">1x</span>
83
83
  <span class="cline-any cline-yes">1x</span>
84
84
  <span class="cline-any cline-yes">1x</span>
@@ -100,7 +100,7 @@
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
103
- at 2026-08-03T13:22:45.069Z
103
+ at 2026-08-09T19:41:47.271Z
104
104
  </div>
105
105
  <script src="../../../prettify.js"></script>
106
106
  <script>
@@ -95,8 +95,8 @@
95
95
  <span class="cline-any cline-yes">1x</span>
96
96
  <span class="cline-any cline-yes">1x</span>
97
97
  <span class="cline-any cline-yes">1x</span>
98
- <span class="cline-any cline-yes">1x</span>
99
- <span class="cline-any cline-yes">1x</span>
98
+ <span class="cline-any cline-yes">30x</span>
99
+ <span class="cline-any cline-yes">30x</span>
100
100
  <span class="cline-any cline-yes">1x</span>
101
101
  <span class="cline-any cline-yes">1x</span>
102
102
  <span class="cline-any cline-no">&nbsp;</span>
@@ -131,8 +131,8 @@
131
131
  <span class="cstat-no" title="statement not covered" > return {</span>
132
132
  <span class="cstat-no" title="statement not covered" > /** All teachers' sessions for a given date (YYYY-MM-DD). */</span>
133
133
  <span class="cstat-no" title="statement not covered" > sessions: (date) =&gt; this.#client.get(`${base}/sessions`, { date }),</span>
134
- <span class="cstat-no" title="statement not covered" > /** All teachers' individual sessions for the 7-day window starting at `start` (YYYY-MM-DD, Monday). */</span>
135
- <span class="cstat-no" title="statement not covered" > weekSessions: (start) =&gt; this.#client.get(`${base}/sessions/week`, { start }),</span>
134
+ <span class="cstat-no" title="statement not covered" > /** Every teacher's recurring weekly availability for individual sessions (day-of-week templates, not booked dates). */</span>
135
+ <span class="cstat-no" title="statement not covered" > individualAvailability: () =&gt; this.#client.get(`${base}/teachers/individual-availability`),</span>
136
136
  <span class="cstat-no" title="statement not covered" > /** All sessions for one course_date, any teacher. */</span>
137
137
  <span class="cstat-no" title="statement not covered" > courseDateSessions: (courseDateId) =&gt; this.#client.get(`${base}/course-dates/${courseDateId}/sessions`),</span>
138
138
  <span class="cstat-no" title="statement not covered" > /** Mark a student's attendance on any teacher's session. */</span>
@@ -154,7 +154,7 @@
154
154
  <div class='footer quiet pad2 space-top1 center small'>
155
155
  Code coverage generated by
156
156
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
157
- at 2026-08-03T13:22:45.069Z
157
+ at 2026-08-09T19:41:47.271Z
158
158
  </div>
159
159
  <script src="../../../prettify.js"></script>
160
160
  <script>
@@ -32,14 +32,14 @@
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>2/2</span>
35
+ <span class='fraction'>4/4</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">25% </span>
40
+ <span class="strong">50% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/8</span>
42
+ <span class='fraction'>4/8</span>
43
43
  </div>
44
44
 
45
45
 
@@ -92,8 +92,8 @@
92
92
  <span class="cline-any cline-yes">1x</span>
93
93
  <span class="cline-any cline-yes">1x</span>
94
94
  <span class="cline-any cline-yes">1x</span>
95
- <span class="cline-any cline-yes">1x</span>
96
- <span class="cline-any cline-yes">1x</span>
95
+ <span class="cline-any cline-yes">30x</span>
96
+ <span class="cline-any cline-yes">30x</span>
97
97
  <span class="cline-any cline-yes">1x</span>
98
98
  <span class="cline-any cline-yes">1x</span>
99
99
  <span class="cline-any cline-yes">1x</span>
@@ -121,13 +121,13 @@
121
121
  }
122
122
  &nbsp;
123
123
  /** List files in a directory. params: { organization_id, directory, per_page } */
124
- <span class="fstat-no" title="function not covered" > list(params = {}) { return this.#client.get('/files', params); }</span>
124
+ list(params = {}) { return this.#client.get('/files', params); }
125
125
  &nbsp;
126
126
  /** Get a single file record by ID. */
127
127
  <span class="fstat-no" title="function not covered" > get(id) { return this.#client.get(`/files/${id}`); }</span>
128
128
  &nbsp;
129
129
  /** Upload a file (FormData). Supports: file, folder, organization_id, filename, generate_webp, … */
130
- <span class="fstat-no" title="function not covered" > upload(formData) { return this.#client.upload('/files', formData); }</span>
130
+ upload(formData) { return this.#client.upload('/files', formData); }
131
131
  &nbsp;
132
132
  /** Create a logical folder (JSON PUT, no file involved). body: { path } */
133
133
  <span class="fstat-no" title="function not covered" > createFolder(body) { return this.#client.put('/files/folder', body); }</span>
@@ -145,7 +145,7 @@
145
145
  <div class='footer quiet pad2 space-top1 center small'>
146
146
  Code coverage generated by
147
147
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
148
- at 2026-08-03T13:22:45.069Z
148
+ at 2026-08-09T19:41:47.271Z
149
149
  </div>
150
150
  <script src="../../../prettify.js"></script>
151
151
  <script>