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.
- package/coverage/clover.xml +78 -87
- package/coverage/coverage-final.json +4 -6
- package/coverage/lcov-report/class/Blocks.js.html +1 -1
- package/coverage/lcov-report/class/ByteArray.js.html +286 -0
- package/coverage/lcov-report/class/MultiFetch.js.html +38 -11
- package/coverage/lcov-report/class/Prevents.js.html +18 -18
- package/coverage/lcov-report/class/Tackles.js.html +1 -1
- package/coverage/lcov-report/class/index.html +38 -23
- package/coverage/lcov-report/index.html +29 -29
- package/coverage/lcov-report/lib/byteArray.js.html +1 -1
- package/coverage/lcov-report/lib/errorHandle.js.html +1 -1
- package/coverage/lcov-report/lib/formatHttpDate.js.html +1 -1
- package/coverage/lcov-report/lib/formatHttpKey.js.html +1 -1
- package/coverage/lcov-report/lib/getDateString.js.html +1 -1
- package/coverage/lcov-report/lib/getOwnIpAddresses.js.html +1 -1
- package/coverage/lcov-report/lib/index.html +9 -54
- package/coverage/lcov-report/lib/isIntranetIpv4Address.js.html +1 -1
- package/coverage/lcov-report/lib/isIpv6Address.js.html +4 -4
- package/coverage/lcov-report/lib/nonZeroByteArray.js.html +1 -1
- package/coverage/lcov-report/lib/parseHttpDate.js.html +1 -1
- package/coverage/lcov-report/lib/wrapIpv6.js.html +1 -1
- package/coverage/lcov.info +167 -181
- package/package.json +3 -3
- package/server/class/ByteArray.js +1 -0
- package/server/class/MultiFetch.js +1 -1
- package/server/class/Prevents.js +1 -1
- package/server/index.js +1 -1
- package/server/lib/addToLog.js +1 -1
- package/server/lib/appendToLog.js +1 -1
- 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"> </span>
|
|
134
|
+
<span class="cline-any cline-neutral"> </span>
|
|
135
|
+
<span class="cline-any cline-yes">2x</span>
|
|
136
|
+
<span class="cline-any cline-neutral"> </span>
|
|
137
|
+
<span class="cline-any cline-neutral"> </span>
|
|
138
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
142
|
+
<span class="cline-any cline-neutral"> </span>
|
|
143
|
+
<span class="cline-any cline-neutral"> </span>
|
|
144
|
+
<span class="cline-any cline-neutral"> </span>
|
|
145
|
+
<span class="cline-any cline-neutral"> </span>
|
|
146
|
+
<span class="cline-any cline-neutral"> </span>
|
|
147
|
+
<span class="cline-any cline-neutral"> </span>
|
|
148
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
152
|
+
<span class="cline-any cline-neutral"> </span>
|
|
153
|
+
<span class="cline-any cline-yes">2x</span>
|
|
154
|
+
<span class="cline-any cline-no"> </span>
|
|
155
|
+
<span class="cline-any cline-neutral"> </span>
|
|
156
|
+
<span class="cline-any cline-yes">2x</span>
|
|
157
|
+
<span class="cline-any cline-no"> </span>
|
|
158
|
+
<span class="cline-any cline-neutral"> </span>
|
|
159
|
+
<span class="cline-any cline-yes">2x</span>
|
|
160
|
+
<span class="cline-any cline-no"> </span>
|
|
161
|
+
<span class="cline-any cline-neutral"> </span>
|
|
162
|
+
<span class="cline-any cline-neutral"> </span>
|
|
163
|
+
<span class="cline-any cline-neutral"> </span>
|
|
164
|
+
<span class="cline-any cline-neutral"> </span>
|
|
165
|
+
<span class="cline-any cline-neutral"> </span>
|
|
166
|
+
<span class="cline-any cline-neutral"> </span>
|
|
167
|
+
<span class="cline-any cline-neutral"> </span>
|
|
168
|
+
<span class="cline-any cline-neutral"> </span>
|
|
169
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
179
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
183
|
+
<span class="cline-any cline-neutral"> </span>
|
|
184
|
+
<span class="cline-any cline-neutral"> </span>
|
|
185
|
+
<span class="cline-any cline-neutral"> </span>
|
|
186
|
+
<span class="cline-any cline-neutral"> </span>
|
|
187
|
+
<span class="cline-any cline-neutral"> </span>
|
|
188
|
+
<span class="cline-any cline-neutral"> </span>
|
|
189
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
195
|
+
<span class="cline-any cline-yes">2x</span>
|
|
196
|
+
<span class="cline-any cline-neutral"> </span>
|
|
197
|
+
<span class="cline-any cline-neutral"> </span>
|
|
198
|
+
<span class="cline-any cline-neutral"> </span>
|
|
199
|
+
<span class="cline-any cline-neutral"> </span>
|
|
200
|
+
<span class="cline-any cline-neutral"> </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
|
+
|
|
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 > 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 >= 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
|
+
|
|
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 > (size - 2n - shift)) {
|
|
241
|
+
while (n > 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
|
+
|
|
251
|
+
toInt(buf) {
|
|
252
|
+
const {
|
|
253
|
+
options: {
|
|
254
|
+
size,
|
|
255
|
+
shift,
|
|
256
|
+
},
|
|
257
|
+
} = this;
|
|
258
|
+
let n = 0n;
|
|
259
|
+
for (let i = 0n; i < buf.length; i += 1n) {
|
|
260
|
+
n += (BigInt(buf[i]) - shift) * (size - shift) ** i;
|
|
261
|
+
}
|
|
262
|
+
return n;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
export default ByteArray;
|
|
267
|
+
</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">
|
|
26
|
+
<span class="strong">58.33% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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'>
|
|
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">
|
|
47
|
+
<span class="strong">58.33% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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
|
|
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"> </span>
|
|
132
141
|
<span class="cline-any cline-neutral"> </span>
|
|
133
142
|
<span class="cline-any cline-neutral"> </span>
|
|
134
143
|
<span class="cline-any cline-neutral"> </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"> </span>
|
|
144
152
|
<span class="cline-any cline-neutral"> </span>
|
|
153
|
+
<span class="cline-any cline-yes">1x</span>
|
|
154
|
+
<span class="cline-any cline-neutral"> </span>
|
|
155
|
+
<span class="cline-any cline-neutral"> </span>
|
|
156
|
+
<span class="cline-any cline-neutral"> </span>
|
|
157
|
+
<span class="cline-any cline-neutral"> </span>
|
|
158
|
+
<span class="cline-any cline-neutral"> </span>
|
|
159
|
+
<span class="cline-any cline-neutral"> </span>
|
|
160
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
146
164
|
<span class="cline-any cline-neutral"> </span>
|
|
147
165
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -177,9 +195,9 @@
|
|
|
177
195
|
<span class="cline-any cline-neutral"> </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">
|
|
198
|
+
<span class="cline-any cline-yes">15x</span>
|
|
181
199
|
<span class="cline-any cline-neutral"> </span>
|
|
182
|
-
<span class="cline-any cline-yes">
|
|
200
|
+
<span class="cline-any cline-yes">5x</span>
|
|
183
201
|
<span class="cline-any cline-neutral"> </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
|
|
|
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
|
+
|
|
230
|
+
getRandomIndex() {
|
|
231
|
+
const {
|
|
232
|
+
bases: {
|
|
233
|
+
length,
|
|
234
|
+
},
|
|
235
|
+
} = this;
|
|
236
|
+
return Math.ceil(length * Math.random());
|
|
210
237
|
}
|
|
211
238
|
|
|
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
|
|
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">
|
|
26
|
+
<span class="strong">64% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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'>
|
|
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">
|
|
47
|
+
<span class="strong">64% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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"> </span>
|
|
170
170
|
<span class="cline-any cline-neutral"> </span>
|
|
171
171
|
<span class="cline-any cline-neutral"> </span>
|
|
172
|
-
<span class="cline-any cline-neutral"> </span>
|
|
173
|
-
<span class="cline-any cline-neutral"> </span>
|
|
174
|
-
<span class="cline-any cline-neutral"> </span>
|
|
175
172
|
<span class="cline-any cline-yes">1x</span>
|
|
176
173
|
<span class="cline-any cline-no"> </span>
|
|
177
174
|
<span class="cline-any cline-neutral"> </span>
|
|
175
|
+
<span class="cline-any cline-yes">1x</span>
|
|
176
|
+
<span class="cline-any cline-no"> </span>
|
|
178
177
|
<span class="cline-any cline-neutral"> </span>
|
|
179
|
-
<span class="cline-any cline-
|
|
178
|
+
<span class="cline-any cline-yes">1x</span>
|
|
179
|
+
<span class="cline-any cline-no"> </span>
|
|
180
180
|
<span class="cline-any cline-neutral"> </span>
|
|
181
181
|
<span class="cline-any cline-yes">1x</span>
|
|
182
182
|
<span class="cline-any cline-no"> </span>
|
|
@@ -260,15 +260,15 @@ class Prevents extends Tackles {
|
|
|
260
260
|
}
|
|
261
261
|
|
|
262
262
|
dealParams(threshold, interval) {
|
|
263
|
-
|
|
264
|
-
|
|
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 > 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
|
-
|
|
270
|
-
|
|
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 > 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,
|
|
290
|
+
ipRouter.attach(ip, 1n);
|
|
291
291
|
const { interval, } = this;
|
|
292
292
|
setTimeout(<span class="fstat-no" title="function not covered" >()</span> => {
|
|
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 +=
|
|
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
|
|
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
|
|
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">
|
|
26
|
+
<span class="strong">67.87% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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">
|
|
33
|
+
<span class="strong">47.91% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
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">
|
|
40
|
+
<span class="strong">90.47% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
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">
|
|
47
|
+
<span class="strong">67.68% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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="
|
|
99
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
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="
|
|
102
|
-
<td data-value="
|
|
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="
|
|
107
|
-
<td data-value="
|
|
108
|
-
<td data-value="
|
|
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="
|
|
114
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
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="
|
|
117
|
-
<td data-value="
|
|
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="
|
|
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="
|
|
123
|
-
<td data-value="
|
|
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
|
|
164
|
+
at 2026-06-19T09:10:54.003Z
|
|
150
165
|
</div>
|
|
151
166
|
<script src="../prettify.js"></script>
|
|
152
167
|
<script>
|