@zajno/common 1.5.4 → 1.5.7
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 +451 -366
- package/coverage/coverage-final.json +38 -37
- package/coverage/lcov-report/async/index.html +12 -7
- package/coverage/lcov-report/async/timeout.ts.html +24 -19
- package/coverage/lcov-report/block-navigation.js +8 -0
- package/coverage/lcov-report/disposer.ts.html +376 -0
- package/coverage/lcov-report/enumHelper.ts.html +454 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +59 -39
- package/coverage/lcov-report/logger/index.html +116 -0
- package/coverage/lcov-report/logger/index.ts.html +298 -0
- package/coverage/lcov-report/parallel.ts.html +388 -0
- package/coverage/lcov-report/queue/index.html +116 -0
- package/coverage/lcov-report/queue/parallel.ts.html +409 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +26 -0
- package/coverage/lcov-report/src/__tests__/helpers/index.html +8 -3
- package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +8 -3
- package/coverage/lcov-report/src/async/arrays.ts.html +15 -10
- package/coverage/lcov-report/src/async/index.html +13 -8
- package/coverage/lcov-report/src/async/timeout.ts.html +24 -19
- package/coverage/lcov-report/src/cache.ts.html +15 -10
- package/coverage/lcov-report/src/dates/calc.ts.html +10 -5
- package/coverage/lcov-report/src/dates/convert.ts.html +9 -4
- package/coverage/lcov-report/src/dates/datex.ts.html +8 -3
- package/coverage/lcov-report/src/dates/format.ts.html +10 -5
- package/coverage/lcov-report/src/dates/index.html +19 -14
- package/coverage/lcov-report/src/dates/index.ts.html +8 -3
- package/coverage/lcov-report/src/dates/parse.ts.html +9 -4
- package/coverage/lcov-report/src/dates/period.ts.html +8 -3
- package/coverage/lcov-report/src/dates/shift.ts.html +9 -4
- package/coverage/lcov-report/src/dates/types.ts.html +8 -3
- package/coverage/lcov-report/src/dates/yearDate.ts.html +10 -5
- package/coverage/lcov-report/src/disposer.ts.html +65 -21
- package/coverage/lcov-report/src/enumHelper.ts.html +12 -7
- package/coverage/lcov-report/src/event.ts.html +50 -21
- package/coverage/lcov-report/src/fields/index.html +21 -16
- package/coverage/lcov-report/src/fields/update.ts.html +49 -23
- package/coverage/lcov-report/src/functions.ts.html +10 -5
- package/coverage/lcov-report/src/index.html +52 -47
- package/coverage/lcov-report/src/lazy.light.ts.html +9 -4
- package/coverage/lcov-report/src/logger/batch.ts.html +9 -4
- package/coverage/lcov-report/src/logger/console.ts.html +16 -11
- package/coverage/lcov-report/src/logger/index.html +13 -8
- package/coverage/lcov-report/src/logger/index.ts.html +38 -33
- package/coverage/lcov-report/src/logger/named.ts.html +26 -21
- package/coverage/lcov-report/src/logger/proxy.ts.html +20 -15
- package/coverage/lcov-report/src/math/arrays.ts.html +33 -28
- package/coverage/lcov-report/src/math/calc.ts.html +18 -13
- package/coverage/lcov-report/src/math/distribution.ts.html +10 -5
- package/coverage/lcov-report/src/math/index.html +16 -11
- package/coverage/lcov-report/src/math/index.ts.html +14 -9
- package/coverage/lcov-report/src/observersMap.ts.html +12 -7
- package/coverage/lcov-report/src/observingCache.ts.html +12 -7
- package/coverage/lcov-report/src/queue/index.html +116 -0
- package/coverage/lcov-report/src/queue/parallel.ts.html +499 -0
- package/coverage/lcov-report/src/tempoCache.ts.html +9 -4
- package/coverage/lcov-report/src/transitionObserver.ts.html +14 -9
- package/coverage/lcov-report/src/types.ts.html +13 -8
- package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +8 -3
- package/coverage/lcov-report/src/validation/creditCard.ts.html +8 -3
- package/coverage/lcov-report/src/validation/helpers.ts.html +13 -8
- package/coverage/lcov-report/src/validation/index.html +11 -6
- package/coverage/lcov-report/src/validation/index.ts.html +8 -3
- package/coverage/lcov-report/src/validation/types.ts.html +8 -3
- package/coverage/lcov-report/src/validation/validators.ts.html +10 -5
- package/coverage/lcov-report/src/validation/wrappers.ts.html +8 -3
- package/coverage/lcov-report/src/viewModels/CommonModel.ts.html +10 -5
- package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +8 -3
- package/coverage/lcov-report/src/viewModels/LoadingModel.ts.html +10 -5
- package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +13 -8
- package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +8 -3
- package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +10 -5
- package/coverage/lcov-report/src/viewModels/TextModel.ts.html +13 -8
- package/coverage/lcov-report/src/viewModels/Validatable.ts.html +12 -7
- package/coverage/lcov-report/src/viewModels/index.html +22 -17
- package/coverage/lcov-report/src/viewModels/wrappers.ts.html +8 -3
- package/coverage/lcov.info +598 -556
- package/lib/async/arrays.extend.js +4 -4
- package/lib/async/arrays.extend.js.map +1 -1
- package/lib/cache.js +6 -6
- package/lib/cache.js.map +1 -1
- package/lib/dates/calc.js +7 -7
- package/lib/dates/calc.js.map +1 -1
- package/lib/dates/convert.js +11 -11
- package/lib/dates/convert.js.map +1 -1
- package/lib/dates/format.js +6 -6
- package/lib/dates/format.js.map +1 -1
- package/lib/dates/period.js +2 -2
- package/lib/dates/period.js.map +1 -1
- package/lib/dates/shift.js +5 -5
- package/lib/dates/shift.js.map +1 -1
- package/lib/dates/yearDate.js +2 -2
- package/lib/dates/yearDate.js.map +1 -1
- package/lib/disposer.d.ts +4 -2
- package/lib/disposer.d.ts.map +1 -1
- package/lib/disposer.js +10 -5
- package/lib/disposer.js.map +1 -1
- package/lib/enumHelper.d.ts +2 -2
- package/lib/enumHelper.d.ts.map +1 -1
- package/lib/enumHelper.js.map +1 -1
- package/lib/event.d.ts.map +1 -1
- package/lib/event.js +8 -2
- package/lib/event.js.map +1 -1
- package/lib/fields/update.d.ts +5 -4
- package/lib/fields/update.d.ts.map +1 -1
- package/lib/fields/update.js +13 -7
- package/lib/fields/update.js.map +1 -1
- package/lib/lazy.js +2 -2
- package/lib/lazy.js.map +1 -1
- package/lib/logger/file.js.map +1 -1
- package/lib/logger/index.d.ts +1 -1
- package/lib/logger/index.d.ts.map +1 -1
- package/lib/logger/index.js +1 -1
- package/lib/logger/index.js.map +1 -1
- package/lib/math/arrays.js +2 -2
- package/lib/math/arrays.js.map +1 -1
- package/lib/models/EntityWithStatus.js.map +1 -1
- package/lib/observersMap.js +2 -2
- package/lib/observersMap.js.map +1 -1
- package/lib/observingCache.js +1 -1
- package/lib/observingCache.js.map +1 -1
- package/lib/pool.js +1 -1
- package/lib/pool.js.map +1 -1
- package/lib/queue/parallel.d.ts +22 -0
- package/lib/queue/parallel.d.ts.map +1 -0
- package/lib/queue/parallel.js +117 -0
- package/lib/queue/parallel.js.map +1 -0
- package/lib/services/localization/LocalizationManager.js +1 -1
- package/lib/services/localization/LocalizationManager.js.map +1 -1
- package/lib/services/storage/web/localStorage.js +1 -1
- package/lib/services/storage/web/localStorage.js.map +1 -1
- package/lib/services/storage/web/sessionStorage.js +1 -1
- package/lib/services/storage/web/sessionStorage.js.map +1 -1
- package/lib/transitionObserver.js +3 -3
- package/lib/transitionObserver.js.map +1 -1
- package/lib/validation/validators.js +1 -1
- package/lib/validation/validators.js.map +1 -1
- package/lib/validation/wrappers.js +1 -1
- package/lib/validation/wrappers.js.map +1 -1
- package/lib/viewModels/CommonModel.js +1 -1
- package/lib/viewModels/CommonModel.js.map +1 -1
- package/lib/viewModels/FlagModel.js +1 -1
- package/lib/viewModels/FlagModel.js.map +1 -1
- package/lib/viewModels/MultiSelectModel.js +5 -5
- package/lib/viewModels/MultiSelectModel.js.map +1 -1
- package/lib/viewModels/NumberModel.js +1 -1
- package/lib/viewModels/NumberModel.js.map +1 -1
- package/lib/viewModels/PromptModal.js +1 -1
- package/lib/viewModels/PromptModal.js.map +1 -1
- package/lib/viewModels/SelectModel.js +4 -4
- package/lib/viewModels/SelectModel.js.map +1 -1
- package/lib/viewModels/TextModel.js +3 -3
- package/lib/viewModels/TextModel.js.map +1 -1
- package/lib/viewModels/Validatable.js +3 -3
- package/lib/viewModels/Validatable.js.map +1 -1
- package/lib/viewModels/ValueModel.js +1 -1
- package/lib/viewModels/ValueModel.js.map +1 -1
- package/package.json +10 -11
- package/src/.DS_Store +0 -0
- package/src/disposer.ts +19 -6
- package/src/enumHelper.ts +2 -2
- package/src/event.ts +8 -0
- package/src/fields/update.ts +18 -11
- package/src/queue/__tests__/parallel.test.ts +57 -0
- package/src/queue/parallel.ts +138 -0
- package/src/services/storage/web/localStorage.ts +1 -1
- package/src/services/storage/web/sessionStorage.ts +1 -1
- package/src/validation/__tests__/validator.test.ts +12 -0
- package/src/validation/validators.ts +1 -1
- package/yarn.lock +1066 -1441
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">81.
|
|
26
|
+
<span class="strong">81.13% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>1440/1775</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">73.88% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>659/892</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">70.
|
|
40
|
+
<span class="strong">70.06% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>344/491</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">81.
|
|
47
|
+
<span class="strong">81.55% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>1366/1675</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -54,6 +54,12 @@
|
|
|
54
54
|
<p class="quiet">
|
|
55
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
56
|
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
57
63
|
</div>
|
|
58
64
|
<div class='status-line high'></div>
|
|
59
65
|
<div class="pad1">
|
|
@@ -74,17 +80,17 @@
|
|
|
74
80
|
</thead>
|
|
75
81
|
<tbody><tr>
|
|
76
82
|
<td class="file medium" data-value="src"><a href="src/index.html">src</a></td>
|
|
77
|
-
<td data-value="77.
|
|
83
|
+
<td data-value="77.47" class="pic medium">
|
|
78
84
|
<div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div>
|
|
79
85
|
</td>
|
|
80
|
-
<td data-value="77.
|
|
81
|
-
<td data-value="
|
|
82
|
-
<td data-value="
|
|
83
|
-
<td data-value="
|
|
84
|
-
<td data-value="
|
|
85
|
-
<td data-value="
|
|
86
|
-
<td data-value="77.
|
|
87
|
-
<td data-value="
|
|
86
|
+
<td data-value="77.47" class="pct medium">77.47%</td>
|
|
87
|
+
<td data-value="475" class="abs medium">368/475</td>
|
|
88
|
+
<td data-value="65.59" class="pct medium">65.59%</td>
|
|
89
|
+
<td data-value="186" class="abs medium">122/186</td>
|
|
90
|
+
<td data-value="73.1" class="pct medium">73.1%</td>
|
|
91
|
+
<td data-value="145" class="abs medium">106/145</td>
|
|
92
|
+
<td data-value="77.53" class="pct medium">77.53%</td>
|
|
93
|
+
<td data-value="454" class="abs medium">352/454</td>
|
|
88
94
|
</tr>
|
|
89
95
|
|
|
90
96
|
<tr>
|
|
@@ -109,8 +115,8 @@
|
|
|
109
115
|
</td>
|
|
110
116
|
<td data-value="29.41" class="pct low">29.41%</td>
|
|
111
117
|
<td data-value="51" class="abs low">15/51</td>
|
|
112
|
-
<td data-value="
|
|
113
|
-
<td data-value="
|
|
118
|
+
<td data-value="18.18" class="pct low">18.18%</td>
|
|
119
|
+
<td data-value="11" class="abs low">2/11</td>
|
|
114
120
|
<td data-value="27.27" class="pct low">27.27%</td>
|
|
115
121
|
<td data-value="11" class="abs low">3/11</td>
|
|
116
122
|
<td data-value="31.91" class="pct low">31.91%</td>
|
|
@@ -124,8 +130,8 @@
|
|
|
124
130
|
</td>
|
|
125
131
|
<td data-value="100" class="pct high">100%</td>
|
|
126
132
|
<td data-value="340" class="abs high">340/340</td>
|
|
127
|
-
<td data-value="98.
|
|
128
|
-
<td data-value="
|
|
133
|
+
<td data-value="98.06" class="pct high">98.06%</td>
|
|
134
|
+
<td data-value="258" class="abs high">253/258</td>
|
|
129
135
|
<td data-value="100" class="pct high">100%</td>
|
|
130
136
|
<td data-value="59" class="abs high">59/59</td>
|
|
131
137
|
<td data-value="100" class="pct high">100%</td>
|
|
@@ -134,17 +140,17 @@
|
|
|
134
140
|
|
|
135
141
|
<tr>
|
|
136
142
|
<td class="file medium" data-value="src/fields"><a href="src/fields/index.html">src/fields</a></td>
|
|
137
|
-
<td data-value="75.
|
|
143
|
+
<td data-value="75.44" class="pic medium">
|
|
138
144
|
<div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div>
|
|
139
145
|
</td>
|
|
140
|
-
<td data-value="75.
|
|
141
|
-
<td data-value="
|
|
142
|
-
<td data-value="
|
|
143
|
-
<td data-value="
|
|
146
|
+
<td data-value="75.44" class="pct medium">75.44%</td>
|
|
147
|
+
<td data-value="57" class="abs medium">43/57</td>
|
|
148
|
+
<td data-value="81.48" class="pct high">81.48%</td>
|
|
149
|
+
<td data-value="81" class="abs high">66/81</td>
|
|
144
150
|
<td data-value="45.45" class="pct low">45.45%</td>
|
|
145
151
|
<td data-value="11" class="abs low">5/11</td>
|
|
146
|
-
<td data-value="
|
|
147
|
-
<td data-value="
|
|
152
|
+
<td data-value="79.59" class="pct medium">79.59%</td>
|
|
153
|
+
<td data-value="49" class="abs medium">39/49</td>
|
|
148
154
|
</tr>
|
|
149
155
|
|
|
150
156
|
<tr>
|
|
@@ -154,8 +160,8 @@
|
|
|
154
160
|
</td>
|
|
155
161
|
<td data-value="73.58" class="pct medium">73.58%</td>
|
|
156
162
|
<td data-value="106" class="abs medium">78/106</td>
|
|
157
|
-
<td data-value="
|
|
158
|
-
<td data-value="
|
|
163
|
+
<td data-value="65" class="pct medium">65%</td>
|
|
164
|
+
<td data-value="40" class="abs medium">26/40</td>
|
|
159
165
|
<td data-value="68.57" class="pct medium">68.57%</td>
|
|
160
166
|
<td data-value="35" class="abs medium">24/35</td>
|
|
161
167
|
<td data-value="71.13" class="pct medium">71.13%</td>
|
|
@@ -169,14 +175,29 @@
|
|
|
169
175
|
</td>
|
|
170
176
|
<td data-value="99.53" class="pct high">99.53%</td>
|
|
171
177
|
<td data-value="212" class="abs high">211/212</td>
|
|
172
|
-
<td data-value="
|
|
173
|
-
<td data-value="
|
|
178
|
+
<td data-value="94.87" class="pct high">94.87%</td>
|
|
179
|
+
<td data-value="117" class="abs high">111/117</td>
|
|
174
180
|
<td data-value="97.5" class="pct high">97.5%</td>
|
|
175
181
|
<td data-value="40" class="abs high">39/40</td>
|
|
176
182
|
<td data-value="99.49" class="pct high">99.49%</td>
|
|
177
183
|
<td data-value="196" class="abs high">195/196</td>
|
|
178
184
|
</tr>
|
|
179
185
|
|
|
186
|
+
<tr>
|
|
187
|
+
<td class="file medium" data-value="src/queue"><a href="src/queue/index.html">src/queue</a></td>
|
|
188
|
+
<td data-value="76.39" class="pic medium">
|
|
189
|
+
<div class="chart"><div class="cover-fill" style="width: 76%"></div><div class="cover-empty" style="width: 24%"></div></div>
|
|
190
|
+
</td>
|
|
191
|
+
<td data-value="76.39" class="pct medium">76.39%</td>
|
|
192
|
+
<td data-value="72" class="abs medium">55/72</td>
|
|
193
|
+
<td data-value="44.44" class="pct low">44.44%</td>
|
|
194
|
+
<td data-value="54" class="abs low">24/54</td>
|
|
195
|
+
<td data-value="66.67" class="pct medium">66.67%</td>
|
|
196
|
+
<td data-value="15" class="abs medium">10/15</td>
|
|
197
|
+
<td data-value="78.26" class="pct medium">78.26%</td>
|
|
198
|
+
<td data-value="69" class="abs medium">54/69</td>
|
|
199
|
+
</tr>
|
|
200
|
+
|
|
180
201
|
<tr>
|
|
181
202
|
<td class="file medium" data-value="src/validation"><a href="src/validation/index.html">src/validation</a></td>
|
|
182
203
|
<td data-value="53.33" class="pic medium">
|
|
@@ -184,8 +205,8 @@
|
|
|
184
205
|
</td>
|
|
185
206
|
<td data-value="53.33" class="pct medium">53.33%</td>
|
|
186
207
|
<td data-value="90" class="abs medium">48/90</td>
|
|
187
|
-
<td data-value="9.
|
|
188
|
-
<td data-value="
|
|
208
|
+
<td data-value="9.84" class="pct low">9.84%</td>
|
|
209
|
+
<td data-value="61" class="abs low">6/61</td>
|
|
189
210
|
<td data-value="17.24" class="pct low">17.24%</td>
|
|
190
211
|
<td data-value="29" class="abs low">5/29</td>
|
|
191
212
|
<td data-value="53.93" class="pct medium">53.93%</td>
|
|
@@ -199,8 +220,8 @@
|
|
|
199
220
|
</td>
|
|
200
221
|
<td data-value="75.34" class="pct medium">75.34%</td>
|
|
201
222
|
<td data-value="365" class="abs medium">275/365</td>
|
|
202
|
-
<td data-value="
|
|
203
|
-
<td data-value="
|
|
223
|
+
<td data-value="58.33" class="pct medium">58.33%</td>
|
|
224
|
+
<td data-value="84" class="abs medium">49/84</td>
|
|
204
225
|
<td data-value="63.19" class="pct medium">63.19%</td>
|
|
205
226
|
<td data-value="144" class="abs medium">91/144</td>
|
|
206
227
|
<td data-value="76.05" class="pct medium">76.05%</td>
|
|
@@ -214,10 +235,9 @@
|
|
|
214
235
|
</div><!-- /wrapper -->
|
|
215
236
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
216
237
|
Code coverage generated by
|
|
217
|
-
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
218
|
-
at
|
|
238
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
239
|
+
at 2022-07-22T12:10:16.518Z
|
|
219
240
|
</div>
|
|
220
|
-
</div>
|
|
221
241
|
<script src="prettify.js"></script>
|
|
222
242
|
<script>
|
|
223
243
|
window.onload = function () {
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for logger</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> logger</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">73.17% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>30/41</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">60% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>9/15</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">40% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>4/10</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">75% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>27/36</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 oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line medium'></div>
|
|
65
|
+
<div class="pad1">
|
|
66
|
+
<table class="coverage-summary">
|
|
67
|
+
<thead>
|
|
68
|
+
<tr>
|
|
69
|
+
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
|
70
|
+
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
|
71
|
+
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
|
72
|
+
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
73
|
+
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
|
74
|
+
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
75
|
+
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
|
76
|
+
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
77
|
+
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
|
78
|
+
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
79
|
+
</tr>
|
|
80
|
+
</thead>
|
|
81
|
+
<tbody><tr>
|
|
82
|
+
<td class="file medium" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
|
|
83
|
+
<td data-value="73.17" class="pic medium">
|
|
84
|
+
<div class="chart"><div class="cover-fill" style="width: 73%"></div><div class="cover-empty" style="width: 27%"></div></div>
|
|
85
|
+
</td>
|
|
86
|
+
<td data-value="73.17" class="pct medium">73.17%</td>
|
|
87
|
+
<td data-value="41" class="abs medium">30/41</td>
|
|
88
|
+
<td data-value="60" class="pct medium">60%</td>
|
|
89
|
+
<td data-value="15" class="abs medium">9/15</td>
|
|
90
|
+
<td data-value="40" class="pct low">40%</td>
|
|
91
|
+
<td data-value="10" class="abs low">4/10</td>
|
|
92
|
+
<td data-value="75" class="pct medium">75%</td>
|
|
93
|
+
<td data-value="36" class="abs medium">27/36</td>
|
|
94
|
+
</tr>
|
|
95
|
+
|
|
96
|
+
</tbody>
|
|
97
|
+
</table>
|
|
98
|
+
</div>
|
|
99
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
100
|
+
</div><!-- /wrapper -->
|
|
101
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
|
+
Code coverage generated by
|
|
103
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
+
at 2022-07-22T09:50:25.760Z
|
|
105
|
+
</div>
|
|
106
|
+
<script src="../prettify.js"></script>
|
|
107
|
+
<script>
|
|
108
|
+
window.onload = function () {
|
|
109
|
+
prettyPrint();
|
|
110
|
+
};
|
|
111
|
+
</script>
|
|
112
|
+
<script src="../sorter.js"></script>
|
|
113
|
+
<script src="../block-navigation.js"></script>
|
|
114
|
+
</body>
|
|
115
|
+
</html>
|
|
116
|
+
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for logger/index.ts</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">logger</a> index.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">73.17% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>30/41</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">60% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>9/15</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">40% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>4/10</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">75% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>27/36</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 oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line medium'></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>
|
|
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
138
|
+
<span class="cline-any cline-neutral"> </span>
|
|
139
|
+
<span class="cline-any cline-yes">1x</span>
|
|
140
|
+
<span class="cline-any cline-yes">1x</span>
|
|
141
|
+
<span class="cline-any cline-yes">1x</span>
|
|
142
|
+
<span class="cline-any cline-yes">1x</span>
|
|
143
|
+
<span class="cline-any cline-neutral"> </span>
|
|
144
|
+
<span class="cline-any cline-yes">1x</span>
|
|
145
|
+
<span class="cline-any cline-yes">1x</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-neutral"> </span>
|
|
150
|
+
<span class="cline-any cline-yes">1x</span>
|
|
151
|
+
<span class="cline-any cline-neutral"> </span>
|
|
152
|
+
<span class="cline-any cline-yes">1x</span>
|
|
153
|
+
<span class="cline-any cline-neutral"> </span>
|
|
154
|
+
<span class="cline-any cline-yes">1x</span>
|
|
155
|
+
<span class="cline-any cline-yes">2x</span>
|
|
156
|
+
<span class="cline-any cline-yes">2x</span>
|
|
157
|
+
<span class="cline-any cline-yes">2x</span>
|
|
158
|
+
<span class="cline-any cline-yes">2x</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-no"> </span>
|
|
163
|
+
<span class="cline-any cline-no"> </span>
|
|
164
|
+
<span class="cline-any cline-no"> </span>
|
|
165
|
+
<span class="cline-any cline-no"> </span>
|
|
166
|
+
<span class="cline-any cline-neutral"> </span>
|
|
167
|
+
<span class="cline-any cline-no"> </span>
|
|
168
|
+
<span class="cline-any cline-neutral"> </span>
|
|
169
|
+
<span class="cline-any cline-no"> </span>
|
|
170
|
+
<span class="cline-any cline-neutral"> </span>
|
|
171
|
+
<span class="cline-any cline-neutral"> </span>
|
|
172
|
+
<span class="cline-any cline-yes">1x</span>
|
|
173
|
+
<span class="cline-any cline-yes">1x</span>
|
|
174
|
+
<span class="cline-any cline-no"> </span>
|
|
175
|
+
<span class="cline-any cline-neutral"> </span>
|
|
176
|
+
<span class="cline-any cline-neutral"> </span>
|
|
177
|
+
<span class="cline-any cline-yes">1x</span>
|
|
178
|
+
<span class="cline-any cline-neutral"> </span>
|
|
179
|
+
<span class="cline-any cline-yes">1x</span>
|
|
180
|
+
<span class="cline-any cline-no"> </span>
|
|
181
|
+
<span class="cline-any cline-neutral"> </span>
|
|
182
|
+
<span class="cline-any cline-yes">1x</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-yes">1x</span>
|
|
187
|
+
<span class="cline-any cline-neutral"> </span>
|
|
188
|
+
<span class="cline-any cline-yes">1x</span>
|
|
189
|
+
<span class="cline-any cline-neutral"> </span>
|
|
190
|
+
<span class="cline-any cline-yes">1x</span>
|
|
191
|
+
<span class="cline-any cline-neutral"> </span>
|
|
192
|
+
<span class="cline-any cline-neutral"> </span>
|
|
193
|
+
<span class="cline-any cline-yes">3x</span>
|
|
194
|
+
<span class="cline-any cline-yes">3x</span>
|
|
195
|
+
<span class="cline-any cline-neutral"> </span>
|
|
196
|
+
<span class="cline-any cline-yes">2x</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-yes">1x</span>
|
|
201
|
+
<span class="cline-any cline-neutral"> </span>
|
|
202
|
+
<span class="cline-any cline-neutral"> </span>
|
|
203
|
+
<span class="cline-any cline-neutral"> </span>
|
|
204
|
+
<span class="cline-any cline-no"> </span>
|
|
205
|
+
<span class="cline-any cline-neutral"> </span>
|
|
206
|
+
<span class="cline-any cline-neutral"> </span>
|
|
207
|
+
<span class="cline-any cline-neutral"> </span>
|
|
208
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { Getter } from '../types';
|
|
209
|
+
import { ILogger, LoggerFunction } from './abstractions';
|
|
210
|
+
import { CONSOLE, ConsoleLogger } from './console';
|
|
211
|
+
import { ProxyLogger } from './proxy';
|
|
212
|
+
import { batchLoggers } from './batch';
|
|
213
|
+
import { removeItem } from '../math';
|
|
214
|
+
|
|
215
|
+
export { <span class="fstat-no" title="function not covered" >NamedLogger </span>} from './named';
|
|
216
|
+
export { ILogger, LoggerFunction, <span class="fstat-no" title="function not covered" >ConsoleLogger,</span> <span class="fstat-no" title="function not covered" >batchLoggers </span>};
|
|
217
|
+
|
|
218
|
+
// TBD Introduce more logger types ?
|
|
219
|
+
export type LoggerTypes = 'console';
|
|
220
|
+
|
|
221
|
+
let Mode: LoggerTypes | false | Getter<ILogger> = process.env.COMMON_UTILS_LOGGER as LoggerTypes || false;
|
|
222
|
+
|
|
223
|
+
const proxies: ProxyLogger[] = [];
|
|
224
|
+
|
|
225
|
+
export function createLogger(name: string, mode: typeof Mode = undefined): ILogger {
|
|
226
|
+
const result = _createImplementation(mode);
|
|
227
|
+
const proxy = new ProxyLogger(result, name);
|
|
228
|
+
proxies.push(proxy);
|
|
229
|
+
return proxy;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
export function <span class="fstat-no" title="function not covered" >detachLogger(</span>instance: ILogger, terminate = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span> {
|
|
233
|
+
const item = <span class="cstat-no" title="statement not covered" >removeItem(proxies, instance as ProxyLogger);</span>
|
|
234
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (item) {</span>
|
|
235
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (terminate) {</span>
|
|
236
|
+
<span class="cstat-no" title="statement not covered" > item.disable();</span>
|
|
237
|
+
}
|
|
238
|
+
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
239
|
+
}
|
|
240
|
+
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
export function setMode(mode: typeof Mode) {
|
|
244
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (Mode === mode) {
|
|
245
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
Mode = mode;
|
|
249
|
+
|
|
250
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!Mode) {
|
|
251
|
+
<span class="cstat-no" title="statement not covered" > proxies.forEach(<span class="fstat-no" title="function not covered" >l </span>=> <span class="cstat-no" title="statement not covered" >l.disable())</span>;</span>
|
|
252
|
+
} else {
|
|
253
|
+
proxies.forEach(l => l.setLogger(_createImplementation()));
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
export function <span class="fstat-no" title="function not covered" >getMode(</span>) { <span class="cstat-no" title="statement not covered" >return Mode; </span>}
|
|
258
|
+
|
|
259
|
+
const logger: ILogger = createLogger(null, false);
|
|
260
|
+
|
|
261
|
+
export default logger;
|
|
262
|
+
|
|
263
|
+
function _createImplementation(overrideMode: typeof Mode = undefined): ILogger {
|
|
264
|
+
const mode = overrideMode !== undefined ? overrideMode : Mode;
|
|
265
|
+
switch (mode) {
|
|
266
|
+
case 'console': {
|
|
267
|
+
return CONSOLE;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
case false: {
|
|
271
|
+
return null;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
<span class="branch-2 cbranch-no" title="branch not covered" > default: {</span>
|
|
275
|
+
<span class="cstat-no" title="statement not covered" > return Getter.getValue(mode as Getter<ILogger>);</span>
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
</pre></td></tr></table></pre>
|
|
280
|
+
|
|
281
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
282
|
+
</div><!-- /wrapper -->
|
|
283
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
284
|
+
Code coverage generated by
|
|
285
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
286
|
+
at 2022-07-22T09:50:25.760Z
|
|
287
|
+
</div>
|
|
288
|
+
<script src="../prettify.js"></script>
|
|
289
|
+
<script>
|
|
290
|
+
window.onload = function () {
|
|
291
|
+
prettyPrint();
|
|
292
|
+
};
|
|
293
|
+
</script>
|
|
294
|
+
<script src="../sorter.js"></script>
|
|
295
|
+
<script src="../block-navigation.js"></script>
|
|
296
|
+
</body>
|
|
297
|
+
</html>
|
|
298
|
+
|