manner.js 1.0.46 → 1.1.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 (30) hide show
  1. package/coverage/clover.xml +78 -87
  2. package/coverage/coverage-final.json +4 -6
  3. package/coverage/lcov-report/class/Blocks.js.html +1 -1
  4. package/coverage/lcov-report/class/ByteArray.js.html +286 -0
  5. package/coverage/lcov-report/class/MultiFetch.js.html +38 -11
  6. package/coverage/lcov-report/class/Prevents.js.html +18 -18
  7. package/coverage/lcov-report/class/Tackles.js.html +1 -1
  8. package/coverage/lcov-report/class/index.html +38 -23
  9. package/coverage/lcov-report/index.html +29 -29
  10. package/coverage/lcov-report/lib/byteArray.js.html +1 -1
  11. package/coverage/lcov-report/lib/errorHandle.js.html +1 -1
  12. package/coverage/lcov-report/lib/formatHttpDate.js.html +1 -1
  13. package/coverage/lcov-report/lib/formatHttpKey.js.html +1 -1
  14. package/coverage/lcov-report/lib/getDateString.js.html +1 -1
  15. package/coverage/lcov-report/lib/getOwnIpAddresses.js.html +1 -1
  16. package/coverage/lcov-report/lib/index.html +9 -54
  17. package/coverage/lcov-report/lib/isIntranetIpv4Address.js.html +1 -1
  18. package/coverage/lcov-report/lib/isIpv6Address.js.html +4 -4
  19. package/coverage/lcov-report/lib/nonZeroByteArray.js.html +1 -1
  20. package/coverage/lcov-report/lib/parseHttpDate.js.html +1 -1
  21. package/coverage/lcov-report/lib/wrapIpv6.js.html +1 -1
  22. package/coverage/lcov.info +167 -181
  23. package/package.json +3 -3
  24. package/server/class/ByteArray.js +1 -0
  25. package/server/class/MultiFetch.js +1 -1
  26. package/server/class/Prevents.js +1 -1
  27. package/server/index.js +1 -1
  28. package/server/lib/addToLog.js +1 -1
  29. package/server/lib/appendToLog.js +1 -1
  30. package/server/lib/checkLogPath.js +1 -1
@@ -0,0 +1,286 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for class/ByteArray.js</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">class</a> ByteArray.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">85.71% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>24/28</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">45.45% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>5/11</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>4/4</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">85.18% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>23/27</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
134
+ <span class="cline-any cline-neutral">&nbsp;</span>
135
+ <span class="cline-any cline-yes">2x</span>
136
+ <span class="cline-any cline-neutral">&nbsp;</span>
137
+ <span class="cline-any cline-neutral">&nbsp;</span>
138
+ <span class="cline-any cline-neutral">&nbsp;</span>
139
+ <span class="cline-any cline-yes">2x</span>
140
+ <span class="cline-any cline-yes">2x</span>
141
+ <span class="cline-any cline-neutral">&nbsp;</span>
142
+ <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-neutral">&nbsp;</span>
144
+ <span class="cline-any cline-neutral">&nbsp;</span>
145
+ <span class="cline-any cline-neutral">&nbsp;</span>
146
+ <span class="cline-any cline-neutral">&nbsp;</span>
147
+ <span class="cline-any cline-neutral">&nbsp;</span>
148
+ <span class="cline-any cline-neutral">&nbsp;</span>
149
+ <span class="cline-any cline-yes">2x</span>
150
+ <span class="cline-any cline-yes">2x</span>
151
+ <span class="cline-any cline-no">&nbsp;</span>
152
+ <span class="cline-any cline-neutral">&nbsp;</span>
153
+ <span class="cline-any cline-yes">2x</span>
154
+ <span class="cline-any cline-no">&nbsp;</span>
155
+ <span class="cline-any cline-neutral">&nbsp;</span>
156
+ <span class="cline-any cline-yes">2x</span>
157
+ <span class="cline-any cline-no">&nbsp;</span>
158
+ <span class="cline-any cline-neutral">&nbsp;</span>
159
+ <span class="cline-any cline-yes">2x</span>
160
+ <span class="cline-any cline-no">&nbsp;</span>
161
+ <span class="cline-any cline-neutral">&nbsp;</span>
162
+ <span class="cline-any cline-neutral">&nbsp;</span>
163
+ <span class="cline-any cline-neutral">&nbsp;</span>
164
+ <span class="cline-any cline-neutral">&nbsp;</span>
165
+ <span class="cline-any cline-neutral">&nbsp;</span>
166
+ <span class="cline-any cline-neutral">&nbsp;</span>
167
+ <span class="cline-any cline-neutral">&nbsp;</span>
168
+ <span class="cline-any cline-neutral">&nbsp;</span>
169
+ <span class="cline-any cline-neutral">&nbsp;</span>
170
+ <span class="cline-any cline-yes">2x</span>
171
+ <span class="cline-any cline-yes">2x</span>
172
+ <span class="cline-any cline-yes">2x</span>
173
+ <span class="cline-any cline-yes">2x</span>
174
+ <span class="cline-any cline-yes">2x</span>
175
+ <span class="cline-any cline-yes">6x</span>
176
+ <span class="cline-any cline-yes">6x</span>
177
+ <span class="cline-any cline-yes">6x</span>
178
+ <span class="cline-any cline-neutral">&nbsp;</span>
179
+ <span class="cline-any cline-neutral">&nbsp;</span>
180
+ <span class="cline-any cline-yes">2x</span>
181
+ <span class="cline-any cline-yes">2x</span>
182
+ <span class="cline-any cline-neutral">&nbsp;</span>
183
+ <span class="cline-any cline-neutral">&nbsp;</span>
184
+ <span class="cline-any cline-neutral">&nbsp;</span>
185
+ <span class="cline-any cline-neutral">&nbsp;</span>
186
+ <span class="cline-any cline-neutral">&nbsp;</span>
187
+ <span class="cline-any cline-neutral">&nbsp;</span>
188
+ <span class="cline-any cline-neutral">&nbsp;</span>
189
+ <span class="cline-any cline-neutral">&nbsp;</span>
190
+ <span class="cline-any cline-yes">2x</span>
191
+ <span class="cline-any cline-yes">2x</span>
192
+ <span class="cline-any cline-yes">2x</span>
193
+ <span class="cline-any cline-yes">8x</span>
194
+ <span class="cline-any cline-neutral">&nbsp;</span>
195
+ <span class="cline-any cline-yes">2x</span>
196
+ <span class="cline-any cline-neutral">&nbsp;</span>
197
+ <span class="cline-any cline-neutral">&nbsp;</span>
198
+ <span class="cline-any cline-neutral">&nbsp;</span>
199
+ <span class="cline-any cline-neutral">&nbsp;</span>
200
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">class ByteArray {
201
+ constructor(options = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
202
+ const defaultOptions = {
203
+ size: 256n,
204
+ shift: 0n,
205
+ };
206
+ this.options = Object.assign(defaultOptions, options);
207
+ this.dealOptions();
208
+ }
209
+ &nbsp;
210
+ dealOptions() {
211
+ const {
212
+ options: {
213
+ size,
214
+ shift,
215
+ },
216
+ } = this;
217
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof size !== 'bigint') {
218
+ <span class="cstat-no" title="statement not covered" > throw new Error('[Error] The option size should be of type bigInt.');</span>
219
+ }
220
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!(size &gt; 0n)) {
221
+ <span class="cstat-no" title="statement not covered" > throw new Error('[Error] Option size should be a positive integer.');</span>
222
+ }
223
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof shift !== 'bigint') {
224
+ <span class="cstat-no" title="statement not covered" > throw new Error('[Error] The option shift should be of type bigInt.');</span>
225
+ }
226
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!(size &gt;= 0n)) {
227
+ <span class="cstat-no" title="statement not covered" > throw new Error('[Error] Option shift should be greater than or equal to zero.');</span>
228
+ }
229
+ }
230
+ &nbsp;
231
+ fromInt(n) {
232
+ const {
233
+ options: {
234
+ size,
235
+ shift,
236
+ },
237
+ } = this;
238
+ n = BigInt(n);
239
+ const ans = [];
240
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (n &gt; (size - 2n - shift)) {
241
+ while (n &gt; size - shift) {
242
+ const q = n % (size - shift);
243
+ ans.push(Number(q + shift));
244
+ n = n / (size - shift);
245
+ }
246
+ }
247
+ ans.push(Number(n + shift));
248
+ return ans;
249
+ }
250
+ &nbsp;
251
+ toInt(buf) {
252
+ const {
253
+ options: {
254
+ size,
255
+ shift,
256
+ },
257
+ } = this;
258
+ let n = 0n;
259
+ for (let i = 0n; i &lt; buf.length; i += 1n) {
260
+ n += (BigInt(buf[i]) - shift) * (size - shift) ** i;
261
+ }
262
+ return n;
263
+ }
264
+ }
265
+ &nbsp;
266
+ export default ByteArray;
267
+ &nbsp;</pre></td></tr></table></pre>
268
+
269
+ <div class='push'></div><!-- for sticky footer -->
270
+ </div><!-- /wrapper -->
271
+ <div class='footer quiet pad2 space-top1 center small'>
272
+ Code coverage generated by
273
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
274
+ at 2026-06-19T09:10:54.003Z
275
+ </div>
276
+ <script src="../prettify.js"></script>
277
+ <script>
278
+ window.onload = function () {
279
+ prettyPrint();
280
+ };
281
+ </script>
282
+ <script src="../sorter.js"></script>
283
+ <script src="../block-navigation.js"></script>
284
+ </body>
285
+ </html>
286
+
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">55.88% </span>
26
+ <span class="strong">58.33% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>19/34</span>
28
+ <span class='fraction'>21/36</span>
29
29
  </div>
30
30
 
31
31
 
@@ -39,14 +39,14 @@
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/3</span>
42
+ <span class='fraction'>4/4</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">55.88% </span>
47
+ <span class="strong">58.33% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>19/34</span>
49
+ <span class='fraction'>21/36</span>
50
50
  </div>
51
51
 
52
52
 
@@ -128,7 +128,16 @@
128
128
  <a name='L63'></a><a href='#L63'>63</a>
129
129
  <a name='L64'></a><a href='#L64'>64</a>
130
130
  <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
132
141
  <span class="cline-any cline-neutral">&nbsp;</span>
133
142
  <span class="cline-any cline-neutral">&nbsp;</span>
134
143
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -139,9 +148,18 @@
139
148
  <span class="cline-any cline-yes">1x</span>
140
149
  <span class="cline-any cline-yes">1x</span>
141
150
  <span class="cline-any cline-yes">1x</span>
142
- <span class="cline-any cline-yes">1x</span>
143
151
  <span class="cline-any cline-no">&nbsp;</span>
144
152
  <span class="cline-any cline-neutral">&nbsp;</span>
153
+ <span class="cline-any cline-yes">1x</span>
154
+ <span class="cline-any cline-neutral">&nbsp;</span>
155
+ <span class="cline-any cline-neutral">&nbsp;</span>
156
+ <span class="cline-any cline-neutral">&nbsp;</span>
157
+ <span class="cline-any cline-neutral">&nbsp;</span>
158
+ <span class="cline-any cline-neutral">&nbsp;</span>
159
+ <span class="cline-any cline-neutral">&nbsp;</span>
160
+ <span class="cline-any cline-neutral">&nbsp;</span>
161
+ <span class="cline-any cline-yes">1x</span>
162
+ <span class="cline-any cline-yes">1x</span>
145
163
  <span class="cline-any cline-neutral">&nbsp;</span>
146
164
  <span class="cline-any cline-neutral">&nbsp;</span>
147
165
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -177,9 +195,9 @@
177
195
  <span class="cline-any cline-neutral">&nbsp;</span>
178
196
  <span class="cline-any cline-yes">20x</span>
179
197
  <span class="cline-any cline-yes">20x</span>
180
- <span class="cline-any cline-yes">16x</span>
198
+ <span class="cline-any cline-yes">15x</span>
181
199
  <span class="cline-any cline-neutral">&nbsp;</span>
182
- <span class="cline-any cline-yes">4x</span>
200
+ <span class="cline-any cline-yes">5x</span>
183
201
  <span class="cline-any cline-neutral">&nbsp;</span>
184
202
  <span class="cline-any cline-yes">20x</span>
185
203
  <span class="cline-any cline-yes">20x</span>
@@ -201,12 +219,21 @@ import { Ipv4Router, Ipv6Router, } from 'advising.js';
201
219
  &nbsp;
202
220
  class MultiFetch {
203
221
  constructor(bases, interval) {
204
- this.index = -1;
205
222
  this.dealParams(bases, interval);
206
223
  this.bases = bases;
207
224
  <span class="missing-if-branch" title="if path not taken" >I</span>if (interval !== undefined) {
208
225
  <span class="cstat-no" title="statement not covered" > this.interval = interval;</span>
209
226
  }
227
+ this.index = this.getRandomIndex();
228
+ }
229
+ &nbsp;
230
+ getRandomIndex() {
231
+ const {
232
+ bases: {
233
+ length,
234
+ },
235
+ } = this;
236
+ return Math.ceil(length * Math.random());
210
237
  }
211
238
  &nbsp;
212
239
  dealParams(bases, interval) {
@@ -265,7 +292,7 @@ export default MultiFetch;
265
292
  <div class='footer quiet pad2 space-top1 center small'>
266
293
  Code coverage generated by
267
294
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
268
- at 2025-08-02T14:12:39.629Z
295
+ at 2026-06-19T09:10:54.003Z
269
296
  </div>
270
297
  <script src="../prettify.js"></script>
271
298
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">65.21% </span>
26
+ <span class="strong">64% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>30/46</span>
28
+ <span class='fraction'>32/50</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">50% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>14/28</span>
35
+ <span class='fraction'>16/32</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">65.21% </span>
47
+ <span class="strong">64% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>30/46</span>
49
+ <span class='fraction'>32/50</span>
50
50
  </div>
51
51
 
52
52
 
@@ -169,14 +169,14 @@
169
169
  <span class="cline-any cline-neutral">&nbsp;</span>
170
170
  <span class="cline-any cline-neutral">&nbsp;</span>
171
171
  <span class="cline-any cline-neutral">&nbsp;</span>
172
- <span class="cline-any cline-neutral">&nbsp;</span>
173
- <span class="cline-any cline-neutral">&nbsp;</span>
174
- <span class="cline-any cline-neutral">&nbsp;</span>
175
172
  <span class="cline-any cline-yes">1x</span>
176
173
  <span class="cline-any cline-no">&nbsp;</span>
177
174
  <span class="cline-any cline-neutral">&nbsp;</span>
175
+ <span class="cline-any cline-yes">1x</span>
176
+ <span class="cline-any cline-no">&nbsp;</span>
178
177
  <span class="cline-any cline-neutral">&nbsp;</span>
179
- <span class="cline-any cline-neutral">&nbsp;</span>
178
+ <span class="cline-any cline-yes">1x</span>
179
+ <span class="cline-any cline-no">&nbsp;</span>
180
180
  <span class="cline-any cline-neutral">&nbsp;</span>
181
181
  <span class="cline-any cline-yes">1x</span>
182
182
  <span class="cline-any cline-no">&nbsp;</span>
@@ -260,15 +260,15 @@ class Prevents extends Tackles {
260
260
  }
261
261
  &nbsp;
262
262
  dealParams(threshold, interval) {
263
- //if (Number.isInteger(threshold)) {
264
- //throw new Error('[Error] The parameter threshold should be of integer type.');
265
- //}
263
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!Number.isInteger(threshold)) {
264
+ <span class="cstat-no" title="statement not covered" > throw new Error('[Error] The parameter threshold should be of integer type.');</span>
265
+ }
266
266
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!(threshold &gt; 0)) {
267
267
  <span class="cstat-no" title="statement not covered" > throw new Error('[Error] The parameter threshold should be of positive integer type.');</span>
268
268
  }
269
- //if (!Number.isInteger(interval)) {
270
- //throw new Error('[Error] The parameter interval should be of integer type.');
271
- //}
269
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!Number.isInteger(interval)) {
270
+ <span class="cstat-no" title="statement not covered" > throw new Error('[Error] The parameter interval should be of integer type.');</span>
271
+ }
272
272
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!(interval &gt; 0)) {
273
273
  <span class="cstat-no" title="statement not covered" > throw new Error('[Error] The parameter interval should be of positive integer type.');</span>
274
274
  }
@@ -287,14 +287,14 @@ class Prevents extends Tackles {
287
287
  let ans = true;
288
288
  const prevent = ipRouter.gain(ip);
289
289
  if (prevent === undefined) {
290
- ipRouter.attach(ip, 1);
290
+ ipRouter.attach(ip, 1n);
291
291
  const { interval, } = this;
292
292
  setTimeout(<span class="fstat-no" title="function not covered" >()</span> =&gt; {
293
293
  <span class="cstat-no" title="statement not covered" > super.cleanTackle(ip);</span>
294
294
  }, interval);
295
295
  } else {
296
296
  let count = prevent;
297
- count += 1;
297
+ count += 1n;
298
298
  ipRouter.revise(ip, count);
299
299
  const ifModifiedSince = req.headers['if-modified-since'];
300
300
  <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof ifModifiedSince === 'string') {
@@ -343,7 +343,7 @@ export default Prevents;
343
343
  <div class='footer quiet pad2 space-top1 center small'>
344
344
  Code coverage generated by
345
345
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
346
- at 2025-08-02T14:12:39.629Z
346
+ at 2026-06-19T09:10:54.003Z
347
347
  </div>
348
348
  <script src="../prettify.js"></script>
349
349
  <script>
@@ -184,7 +184,7 @@ export default Tackles;
184
184
  <div class='footer quiet pad2 space-top1 center small'>
185
185
  Code coverage generated by
186
186
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
187
- at 2025-08-02T14:12:39.629Z
187
+ at 2026-06-19T09:10:54.003Z
188
188
  </div>
189
189
  <script src="../prettify.js"></script>
190
190
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">64.12% </span>
26
+ <span class="strong">67.87% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>84/131</span>
28
+ <span class='fraction'>112/165</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">48.14% </span>
33
+ <span class="strong">47.91% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>39/81</span>
35
+ <span class='fraction'>46/96</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">87.5% </span>
40
+ <span class="strong">90.47% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>14/16</span>
42
+ <span class='fraction'>19/21</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">64.12% </span>
47
+ <span class="strong">67.68% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>84/131</span>
49
+ <span class='fraction'>111/164</span>
50
50
  </div>
51
51
 
52
52
 
@@ -93,34 +93,49 @@
93
93
  <td data-value="34" class="abs medium">27/34</td>
94
94
  </tr>
95
95
 
96
+ <tr>
97
+ <td class="file high" data-value="ByteArray.js"><a href="ByteArray.js.html">ByteArray.js</a></td>
98
+ <td data-value="85.71" class="pic high">
99
+ <div class="chart"><div class="cover-fill" style="width: 85%"></div><div class="cover-empty" style="width: 15%"></div></div>
100
+ </td>
101
+ <td data-value="85.71" class="pct high">85.71%</td>
102
+ <td data-value="28" class="abs high">24/28</td>
103
+ <td data-value="45.45" class="pct low">45.45%</td>
104
+ <td data-value="11" class="abs low">5/11</td>
105
+ <td data-value="100" class="pct high">100%</td>
106
+ <td data-value="4" class="abs high">4/4</td>
107
+ <td data-value="85.18" class="pct high">85.18%</td>
108
+ <td data-value="27" class="abs high">23/27</td>
109
+ </tr>
110
+
96
111
  <tr>
97
112
  <td class="file medium" data-value="MultiFetch.js"><a href="MultiFetch.js.html">MultiFetch.js</a></td>
98
- <td data-value="55.88" class="pic medium">
99
- <div class="chart"><div class="cover-fill" style="width: 55%"></div><div class="cover-empty" style="width: 45%"></div></div>
113
+ <td data-value="58.33" class="pic medium">
114
+ <div class="chart"><div class="cover-fill" style="width: 58%"></div><div class="cover-empty" style="width: 42%"></div></div>
100
115
  </td>
101
- <td data-value="55.88" class="pct medium">55.88%</td>
102
- <td data-value="34" class="abs medium">19/34</td>
116
+ <td data-value="58.33" class="pct medium">58.33%</td>
117
+ <td data-value="36" class="abs medium">21/36</td>
103
118
  <td data-value="40" class="pct low">40%</td>
104
119
  <td data-value="25" class="abs low">10/25</td>
105
120
  <td data-value="100" class="pct high">100%</td>
106
- <td data-value="3" class="abs high">3/3</td>
107
- <td data-value="55.88" class="pct medium">55.88%</td>
108
- <td data-value="34" class="abs medium">19/34</td>
121
+ <td data-value="4" class="abs high">4/4</td>
122
+ <td data-value="58.33" class="pct medium">58.33%</td>
123
+ <td data-value="36" class="abs medium">21/36</td>
109
124
  </tr>
110
125
 
111
126
  <tr>
112
127
  <td class="file medium" data-value="Prevents.js"><a href="Prevents.js.html">Prevents.js</a></td>
113
- <td data-value="65.21" class="pic medium">
114
- <div class="chart"><div class="cover-fill" style="width: 65%"></div><div class="cover-empty" style="width: 35%"></div></div>
128
+ <td data-value="64" class="pic medium">
129
+ <div class="chart"><div class="cover-fill" style="width: 64%"></div><div class="cover-empty" style="width: 36%"></div></div>
115
130
  </td>
116
- <td data-value="65.21" class="pct medium">65.21%</td>
117
- <td data-value="46" class="abs medium">30/46</td>
131
+ <td data-value="64" class="pct medium">64%</td>
132
+ <td data-value="50" class="abs medium">32/50</td>
118
133
  <td data-value="50" class="pct medium">50%</td>
119
- <td data-value="28" class="abs medium">14/28</td>
134
+ <td data-value="32" class="abs medium">16/32</td>
120
135
  <td data-value="80" class="pct high">80%</td>
121
136
  <td data-value="5" class="abs high">4/5</td>
122
- <td data-value="65.21" class="pct medium">65.21%</td>
123
- <td data-value="46" class="abs medium">30/46</td>
137
+ <td data-value="64" class="pct medium">64%</td>
138
+ <td data-value="50" class="abs medium">32/50</td>
124
139
  </tr>
125
140
 
126
141
  <tr>
@@ -146,7 +161,7 @@
146
161
  <div class='footer quiet pad2 space-top1 center small'>
147
162
  Code coverage generated by
148
163
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
- at 2025-08-02T14:12:39.629Z
164
+ at 2026-06-19T09:10:54.003Z
150
165
  </div>
151
166
  <script src="../prettify.js"></script>
152
167
  <script>