@lexho111/plainblog 0.6.0 → 0.6.2

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 (36) hide show
  1. package/Blog.js +1 -6
  2. package/blog_test_empty.db +0 -0
  3. package/blog_test_load.db +0 -0
  4. package/coverage/clover.xml +638 -630
  5. package/coverage/coverage-final.json +14 -14
  6. package/coverage/lcov-report/index.html +36 -36
  7. package/coverage/lcov-report/package/Article.js.html +20 -20
  8. package/coverage/lcov-report/package/Blog.js.html +378 -339
  9. package/coverage/lcov-report/package/Formatter.js.html +2 -2
  10. package/coverage/lcov-report/package/build-scripts.js.html +1 -1
  11. package/coverage/lcov-report/package/build-styles.js.html +1 -1
  12. package/coverage/lcov-report/package/index.html +19 -19
  13. package/coverage/lcov-report/package/model/APIModel.js.html +8 -8
  14. package/coverage/lcov-report/package/model/DataModel.js.html +34 -16
  15. package/coverage/lcov-report/package/model/DatabaseModel.js.html +14 -11
  16. package/coverage/lcov-report/package/model/FileAdapter.js.html +26 -23
  17. package/coverage/lcov-report/package/model/FileModel.js.html +20 -17
  18. package/coverage/lcov-report/package/model/SequelizeAdapter.js.html +36 -36
  19. package/coverage/lcov-report/package/model/SqliteAdapter.js.html +11 -11
  20. package/coverage/lcov-report/package/model/datastructures/ArrayList.js.html +2 -2
  21. package/coverage/lcov-report/package/model/datastructures/ArrayListHashMap.js.html +1 -1
  22. package/coverage/lcov-report/package/model/datastructures/BinarySearchTree.js.html +71 -68
  23. package/coverage/lcov-report/package/model/datastructures/BinarySearchTreeHashMap.js.html +28 -19
  24. package/coverage/lcov-report/package/model/datastructures/FileList.js.html +1 -1
  25. package/coverage/lcov-report/package/model/datastructures/index.html +21 -21
  26. package/coverage/lcov-report/package/model/index.html +26 -26
  27. package/coverage/lcov-report/package/utilities.js.html +19 -19
  28. package/coverage/lcov.info +1193 -1178
  29. package/model/DataModel.js +1 -1
  30. package/model/DatabaseModel.js +1 -1
  31. package/model/FileAdapter.js +1 -1
  32. package/model/FileModel.js +1 -1
  33. package/model/datastructures/BinarySearchTree.js +1 -1
  34. package/model/datastructures/BinarySearchTreeHashMap.js +1 -1
  35. package/package.json +2 -4
  36. package/public/scripts.min.js +2 -2
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">64.44% </span>
26
+ <span class="strong">68.88% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>29/45</span>
28
+ <span class='fraction'>31/45</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">54.54% </span>
33
+ <span class="strong">59.09% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>12/22</span>
35
+ <span class='fraction'>13/22</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">62.79% </span>
47
+ <span class="strong">67.44% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>27/43</span>
49
+ <span class='fraction'>29/43</span>
50
50
  </div>
51
51
 
52
52
 
@@ -220,8 +220,8 @@
220
220
  <span class="cline-any cline-neutral">&nbsp;</span>
221
221
  <span class="cline-any cline-neutral">&nbsp;</span>
222
222
  <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-yes">2x</span>
224
- <span class="cline-any cline-yes">2x</span>
223
+ <span class="cline-any cline-yes">3x</span>
224
+ <span class="cline-any cline-yes">3x</span>
225
225
  <span class="cline-any cline-neutral">&nbsp;</span>
226
226
  <span class="cline-any cline-neutral">&nbsp;</span>
227
227
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -233,14 +233,14 @@
233
233
  <span class="cline-any cline-neutral">&nbsp;</span>
234
234
  <span class="cline-any cline-neutral">&nbsp;</span>
235
235
  <span class="cline-any cline-neutral">&nbsp;</span>
236
- <span class="cline-any cline-yes">2x</span>
236
+ <span class="cline-any cline-yes">3x</span>
237
237
  <span class="cline-any cline-neutral">&nbsp;</span>
238
238
  <span class="cline-any cline-neutral">&nbsp;</span>
239
239
  <span class="cline-any cline-neutral">&nbsp;</span>
240
- <span class="cline-any cline-yes">6x</span>
240
+ <span class="cline-any cline-yes">9x</span>
241
241
  <span class="cline-any cline-neutral">&nbsp;</span>
242
- <span class="cline-any cline-yes">2x</span>
243
- <span class="cline-any cline-yes">2x</span>
242
+ <span class="cline-any cline-yes">3x</span>
243
+ <span class="cline-any cline-yes">3x</span>
244
244
  <span class="cline-any cline-neutral">&nbsp;</span>
245
245
  <span class="cline-any cline-no">&nbsp;</span>
246
246
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -261,14 +261,14 @@
261
261
  <span class="cline-any cline-no">&nbsp;</span>
262
262
  <span class="cline-any cline-neutral">&nbsp;</span>
263
263
  <span class="cline-any cline-neutral">&nbsp;</span>
264
- <span class="cline-any cline-yes">2x</span>
265
- <span class="cline-any cline-yes">2x</span>
266
- <span class="cline-any cline-yes">2x</span>
264
+ <span class="cline-any cline-yes">3x</span>
265
+ <span class="cline-any cline-yes">3x</span>
266
+ <span class="cline-any cline-yes">3x</span>
267
267
  <span class="cline-any cline-neutral">&nbsp;</span>
268
268
  <span class="cline-any cline-neutral">&nbsp;</span>
269
269
  <span class="cline-any cline-neutral">&nbsp;</span>
270
- <span class="cline-any cline-yes">2x</span>
271
- <span class="cline-any cline-yes">2x</span>
270
+ <span class="cline-any cline-yes">3x</span>
271
+ <span class="cline-any cline-yes">3x</span>
272
272
  <span class="cline-any cline-neutral">&nbsp;</span>
273
273
  <span class="cline-any cline-neutral">&nbsp;</span>
274
274
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -287,7 +287,7 @@
287
287
  <span class="cline-any cline-neutral">&nbsp;</span>
288
288
  <span class="cline-any cline-neutral">&nbsp;</span>
289
289
  <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-yes">2x</span>
290
+ <span class="cline-any cline-yes">3x</span>
291
291
  <span class="cline-any cline-neutral">&nbsp;</span>
292
292
  <span class="cline-any cline-neutral">&nbsp;</span>
293
293
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -298,14 +298,14 @@
298
298
  <span class="cline-any cline-neutral">&nbsp;</span>
299
299
  <span class="cline-any cline-neutral">&nbsp;</span>
300
300
  <span class="cline-any cline-neutral">&nbsp;</span>
301
- <span class="cline-any cline-yes">2x</span>
302
- <span class="cline-any cline-yes">2x</span>
301
+ <span class="cline-any cline-yes">3x</span>
302
+ <span class="cline-any cline-yes">3x</span>
303
303
  <span class="cline-any cline-neutral">&nbsp;</span>
304
304
  <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-yes">2x</span>
306
- <span class="cline-any cline-yes">2x</span>
307
- <span class="cline-any cline-no">&nbsp;</span>
308
- <span class="cline-any cline-no">&nbsp;</span>
305
+ <span class="cline-any cline-yes">3x</span>
306
+ <span class="cline-any cline-yes">3x</span>
307
+ <span class="cline-any cline-yes">1x</span>
308
+ <span class="cline-any cline-yes">1x</span>
309
309
  <span class="cline-any cline-neutral">&nbsp;</span>
310
310
  <span class="cline-any cline-neutral">&nbsp;</span>
311
311
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -317,16 +317,16 @@
317
317
  <span class="cline-any cline-neutral">&nbsp;</span>
318
318
  <span class="cline-any cline-neutral">&nbsp;</span>
319
319
  <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-yes">2x</span>
321
- <span class="cline-any cline-yes">2x</span>
322
- <span class="cline-any cline-yes">2x</span>
320
+ <span class="cline-any cline-yes">3x</span>
321
+ <span class="cline-any cline-yes">3x</span>
322
+ <span class="cline-any cline-yes">3x</span>
323
323
  <span class="cline-any cline-no">&nbsp;</span>
324
324
  <span class="cline-any cline-neutral">&nbsp;</span>
325
325
  <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-yes">2x</span>
326
+ <span class="cline-any cline-yes">3x</span>
327
327
  <span class="cline-any cline-no">&nbsp;</span>
328
328
  <span class="cline-any cline-neutral">&nbsp;</span>
329
- <span class="cline-any cline-yes">2x</span>
329
+ <span class="cline-any cline-yes">3x</span>
330
330
  <span class="cline-any cline-neutral">&nbsp;</span>
331
331
  <span class="cline-any cline-neutral">&nbsp;</span>
332
332
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -335,7 +335,7 @@
335
335
  <span class="cline-any cline-neutral">&nbsp;</span>
336
336
  <span class="cline-any cline-neutral">&nbsp;</span>
337
337
  <span class="cline-any cline-neutral">&nbsp;</span>
338
- <span class="cline-any cline-yes">2x</span>
338
+ <span class="cline-any cline-yes">3x</span>
339
339
  <span class="cline-any cline-yes">4x</span>
340
340
  <span class="cline-any cline-neutral">&nbsp;</span>
341
341
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -354,9 +354,9 @@
354
354
  <span class="cline-any cline-neutral">&nbsp;</span>
355
355
  <span class="cline-any cline-neutral">&nbsp;</span>
356
356
  <span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-yes">2x</span>
357
+ <span class="cline-any cline-yes">3x</span>
358
358
  <span class="cline-any cline-neutral">&nbsp;</span>
359
- <span class="cline-any cline-yes">2x</span>
359
+ <span class="cline-any cline-yes">3x</span>
360
360
  <span class="cline-any cline-neutral">&nbsp;</span>
361
361
  <span class="cline-any cline-neutral">&nbsp;</span>
362
362
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -454,9 +454,9 @@ export default class SequelizeAdapter {
454
454
  &nbsp;
455
455
  // Check for and create the initial blog title right after syncing.
456
456
  const blogInfoCount = await this.BlogInfo.count();
457
- <span class="missing-if-branch" title="if path not taken" >I</span>if (blogInfoCount === 0) {
458
- <span class="cstat-no" title="statement not covered" > await this.BlogInfo.create({ title: "My Default Blog Title" });</span>
459
- <span class="cstat-no" title="statement not covered" > console.log("initialized blog title in database.");</span>
457
+ if (blogInfoCount === 0) {
458
+ await this.BlogInfo.create({ title: "My Default Blog Title" });
459
+ console.log("initialized blog title in database.");
460
460
  }
461
461
  }
462
462
  &nbsp;
@@ -523,7 +523,7 @@ export default class SequelizeAdapter {
523
523
  <div class='footer quiet pad2 space-top1 center small'>
524
524
  Code coverage generated by
525
525
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
526
- at 2026-01-17T17:30:57.244Z
526
+ at 2026-01-18T09:48:57.520Z
527
527
  </div>
528
528
  <script src="../../prettify.js"></script>
529
529
  <script>
@@ -122,18 +122,18 @@
122
122
  <span class="cline-any cline-neutral">&nbsp;</span>
123
123
  <span class="cline-any cline-neutral">&nbsp;</span>
124
124
  <span class="cline-any cline-neutral">&nbsp;</span>
125
- <span class="cline-any cline-yes">2x</span>
126
- <span class="cline-any cline-yes">2x</span>
125
+ <span class="cline-any cline-yes">3x</span>
126
+ <span class="cline-any cline-yes">3x</span>
127
127
  <span class="cline-any cline-neutral">&nbsp;</span>
128
128
  <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-yes">2x</span>
129
+ <span class="cline-any cline-yes">3x</span>
130
130
  <span class="cline-any cline-neutral">&nbsp;</span>
131
131
  <span class="cline-any cline-neutral">&nbsp;</span>
132
132
  <span class="cline-any cline-neutral">&nbsp;</span>
133
133
  <span class="cline-any cline-neutral">&nbsp;</span>
134
- <span class="cline-any cline-yes">2x</span>
135
- <span class="cline-any cline-yes">2x</span>
136
- <span class="cline-any cline-yes">2x</span>
134
+ <span class="cline-any cline-yes">3x</span>
135
+ <span class="cline-any cline-yes">3x</span>
136
+ <span class="cline-any cline-yes">3x</span>
137
137
  <span class="cline-any cline-neutral">&nbsp;</span>
138
138
  <span class="cline-any cline-no">&nbsp;</span>
139
139
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -152,15 +152,15 @@
152
152
  <span class="cline-any cline-neutral">&nbsp;</span>
153
153
  <span class="cline-any cline-neutral">&nbsp;</span>
154
154
  <span class="cline-any cline-neutral">&nbsp;</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>
155
+ <span class="cline-any cline-yes">3x</span>
156
+ <span class="cline-any cline-yes">3x</span>
157
+ <span class="cline-any cline-yes">3x</span>
158
158
  <span class="cline-any cline-neutral">&nbsp;</span>
159
159
  <span class="cline-any cline-neutral">&nbsp;</span>
160
160
  <span class="cline-any cline-neutral">&nbsp;</span>
161
161
  <span class="cline-any cline-neutral">&nbsp;</span>
162
162
  <span class="cline-any cline-neutral">&nbsp;</span>
163
- <span class="cline-any cline-yes">2x</span>
163
+ <span class="cline-any cline-yes">3x</span>
164
164
  <span class="cline-any cline-neutral">&nbsp;</span>
165
165
  <span class="cline-any cline-no">&nbsp;</span>
166
166
  <span class="cline-any cline-no">&nbsp;</span>
@@ -232,7 +232,7 @@ export default class SqliteAdapter extends SequelizeAdapter {
232
232
  <div class='footer quiet pad2 space-top1 center small'>
233
233
  Code coverage generated by
234
234
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
235
- at 2026-01-17T17:30:57.244Z
235
+ at 2026-01-18T09:48:57.520Z
236
236
  </div>
237
237
  <script src="../../prettify.js"></script>
238
238
  <script>
@@ -224,7 +224,7 @@
224
224
  <span class="cline-any cline-neutral">&nbsp;</span>
225
225
  <span class="cline-any cline-neutral">&nbsp;</span>
226
226
  <span class="cline-any cline-yes">101000x</span>
227
- <span class="cline-any cline-yes">500516060x</span>
227
+ <span class="cline-any cline-yes">500493140x</span>
228
228
  <span class="cline-any cline-neutral">&nbsp;</span>
229
229
  <span class="cline-any cline-neutral">&nbsp;</span>
230
230
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -424,7 +424,7 @@
424
424
  <div class='footer quiet pad2 space-top1 center small'>
425
425
  Code coverage generated by
426
426
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
427
- at 2026-01-17T17:30:57.244Z
427
+ at 2026-01-18T09:48:57.520Z
428
428
  </div>
429
429
  <script src="../../../prettify.js"></script>
430
430
  <script>
@@ -181,7 +181,7 @@ export default class ArrayListHashMap extends ArrayList {
181
181
  <div class='footer quiet pad2 space-top1 center small'>
182
182
  Code coverage generated by
183
183
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
184
- at 2026-01-17T17:30:57.244Z
184
+ at 2026-01-18T09:48:57.520Z
185
185
  </div>
186
186
  <script src="../../../prettify.js"></script>
187
187
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">74.12% </span>
26
+ <span class="strong">69.93% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>106/143</span>
28
+ <span class='fraction'>100/143</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">69% </span>
33
+ <span class="strong">66% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>69/100</span>
35
+ <span class='fraction'>66/100</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">77.16% </span>
47
+ <span class="strong">73.22% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>98/127</span>
49
+ <span class='fraction'>93/127</span>
50
50
  </div>
51
51
 
52
52
 
@@ -339,22 +339,24 @@
339
339
  <a name='L274'></a><a href='#L274'>274</a>
340
340
  <a name='L275'></a><a href='#L275'>275</a>
341
341
  <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
343
344
  <span class="cline-any cline-neutral">&nbsp;</span>
344
345
  <span class="cline-any cline-neutral">&nbsp;</span>
345
- <span class="cline-any cline-yes">5x</span>
346
346
  <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-yes">6x</span>
347
348
  <span class="cline-any cline-neutral">&nbsp;</span>
348
349
  <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-yes">622038x</span>
350
- <span class="cline-any cline-yes">622038x</span>
351
- <span class="cline-any cline-yes">622038x</span>
352
350
  <span class="cline-any cline-neutral">&nbsp;</span>
351
+ <span class="cline-any cline-yes">631237x</span>
352
+ <span class="cline-any cline-yes">631237x</span>
353
+ <span class="cline-any cline-yes">631237x</span>
353
354
  <span class="cline-any cline-neutral">&nbsp;</span>
354
355
  <span class="cline-any cline-neutral">&nbsp;</span>
355
356
  <span class="cline-any cline-neutral">&nbsp;</span>
356
357
  <span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-yes">46x</span>
358
+ <span class="cline-any cline-neutral">&nbsp;</span>
359
+ <span class="cline-any cline-yes">50x</span>
358
360
  <span class="cline-any cline-neutral">&nbsp;</span>
359
361
  <span class="cline-any cline-neutral">&nbsp;</span>
360
362
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -367,27 +369,27 @@
367
369
  <span class="cline-any cline-neutral">&nbsp;</span>
368
370
  <span class="cline-any cline-neutral">&nbsp;</span>
369
371
  <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-yes">622038x</span>
371
- <span class="cline-any cline-yes">622038x</span>
372
- <span class="cline-any cline-yes">42x</span>
373
- <span class="cline-any cline-yes">42x</span>
372
+ <span class="cline-any cline-yes">631237x</span>
373
+ <span class="cline-any cline-yes">631237x</span>
374
+ <span class="cline-any cline-yes">45x</span>
375
+ <span class="cline-any cline-yes">45x</span>
374
376
  <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-yes">621996x</span>
376
- <span class="cline-any cline-yes">621996x</span>
377
- <span class="cline-any cline-yes">621996x</span>
377
+ <span class="cline-any cline-yes">631192x</span>
378
+ <span class="cline-any cline-yes">631192x</span>
379
+ <span class="cline-any cline-yes">631192x</span>
378
380
  <span class="cline-any cline-neutral">&nbsp;</span>
379
- <span class="cline-any cline-yes">61493053x</span>
380
- <span class="cline-any cline-yes">5775568x</span>
381
- <span class="cline-any cline-yes">308800x</span>
382
- <span class="cline-any cline-yes">308800x</span>
381
+ <span class="cline-any cline-yes">61568770x</span>
382
+ <span class="cline-any cline-yes">5672142x</span>
383
+ <span class="cline-any cline-yes">313477x</span>
384
+ <span class="cline-any cline-yes">313477x</span>
383
385
  <span class="cline-any cline-neutral">&nbsp;</span>
384
- <span class="cline-any cline-yes">5466768x</span>
386
+ <span class="cline-any cline-yes">5358665x</span>
385
387
  <span class="cline-any cline-neutral">&nbsp;</span>
386
- <span class="cline-any cline-yes">55717485x</span>
387
- <span class="cline-any cline-yes">313196x</span>
388
- <span class="cline-any cline-yes">313196x</span>
388
+ <span class="cline-any cline-yes">55896628x</span>
389
+ <span class="cline-any cline-yes">317715x</span>
390
+ <span class="cline-any cline-yes">317715x</span>
389
391
  <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-yes">55404289x</span>
392
+ <span class="cline-any cline-yes">55578913x</span>
391
393
  <span class="cline-any cline-neutral">&nbsp;</span>
392
394
  <span class="cline-any cline-neutral">&nbsp;</span>
393
395
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -442,13 +444,13 @@
442
444
  <span class="cline-any cline-neutral">&nbsp;</span>
443
445
  <span class="cline-any cline-yes">46x</span>
444
446
  <span class="cline-any cline-yes">46x</span>
445
- <span class="cline-any cline-yes">119192x</span>
446
- <span class="cline-any cline-yes">119192x</span>
447
- <span class="cline-any cline-yes">119192x</span>
447
+ <span class="cline-any cline-yes">119230x</span>
448
+ <span class="cline-any cline-yes">119230x</span>
449
+ <span class="cline-any cline-yes">119230x</span>
448
450
  <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-yes">119192x</span>
450
- <span class="cline-any cline-yes">119192x</span>
451
- <span class="cline-any cline-yes">119192x</span>
451
+ <span class="cline-any cline-yes">119230x</span>
452
+ <span class="cline-any cline-yes">119230x</span>
453
+ <span class="cline-any cline-yes">119230x</span>
452
454
  <span class="cline-any cline-neutral">&nbsp;</span>
453
455
  <span class="cline-any cline-neutral">&nbsp;</span>
454
456
  <span class="cline-any cline-no">&nbsp;</span>
@@ -497,7 +499,7 @@
497
499
  <span class="cline-any cline-neutral">&nbsp;</span>
498
500
  <span class="cline-any cline-neutral">&nbsp;</span>
499
501
  <span class="cline-any cline-yes">1509x</span>
500
- <span class="cline-any cline-yes">1488x</span>
502
+ <span class="cline-any cline-yes">1484x</span>
501
503
  <span class="cline-any cline-neutral">&nbsp;</span>
502
504
  <span class="cline-any cline-neutral">&nbsp;</span>
503
505
  <span class="cline-any cline-yes">1509x</span>
@@ -511,7 +513,7 @@
511
513
  <span class="cline-any cline-neutral">&nbsp;</span>
512
514
  <span class="cline-any cline-neutral">&nbsp;</span>
513
515
  <span class="cline-any cline-yes">1509x</span>
514
- <span class="cline-any cline-yes">1493x</span>
516
+ <span class="cline-any cline-yes">1497x</span>
515
517
  <span class="cline-any cline-neutral">&nbsp;</span>
516
518
  <span class="cline-any cline-neutral">&nbsp;</span>
517
519
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -543,12 +545,12 @@
543
545
  <span class="cline-any cline-neutral">&nbsp;</span>
544
546
  <span class="cline-any cline-yes">8x</span>
545
547
  <span class="cline-any cline-neutral">&nbsp;</span>
546
- <span class="cline-any cline-yes">4x</span>
547
- <span class="cline-any cline-yes">7x</span>
548
- <span class="cline-any cline-yes">3x</span>
549
- <span class="cline-any cline-yes">3x</span>
550
- <span class="cline-any cline-yes">3x</span>
551
- <span class="cline-any cline-yes">3x</span>
548
+ <span class="cline-any cline-yes">2x</span>
549
+ <span class="cline-any cline-yes">2x</span>
550
+ <span class="cline-any cline-no">&nbsp;</span>
551
+ <span class="cline-any cline-no">&nbsp;</span>
552
+ <span class="cline-any cline-no">&nbsp;</span>
553
+ <span class="cline-any cline-no">&nbsp;</span>
552
554
  <span class="cline-any cline-neutral">&nbsp;</span>
553
555
  <span class="cline-any cline-no">&nbsp;</span>
554
556
  <span class="cline-any cline-no">&nbsp;</span>
@@ -556,34 +558,34 @@
556
558
  <span class="cline-any cline-neutral">&nbsp;</span>
557
559
  <span class="cline-any cline-neutral">&nbsp;</span>
558
560
  <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-yes">4x</span>
560
- <span class="cline-any cline-yes">4x</span>
561
- <span class="cline-any cline-yes">4x</span>
562
- <span class="cline-any cline-yes">8x</span>
563
- <span class="cline-any cline-yes">8x</span>
561
+ <span class="cline-any cline-yes">6x</span>
562
+ <span class="cline-any cline-yes">6x</span>
563
+ <span class="cline-any cline-yes">6x</span>
564
+ <span class="cline-any cline-yes">18x</span>
565
+ <span class="cline-any cline-yes">18x</span>
564
566
  <span class="cline-any cline-yes">2x</span>
565
567
  <span class="cline-any cline-yes">2x</span>
566
568
  <span class="cline-any cline-yes">2x</span>
567
569
  <span class="cline-any cline-yes">2x</span>
568
570
  <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-yes">6x</span>
570
- <span class="cline-any cline-yes">4x</span>
571
+ <span class="cline-any cline-yes">16x</span>
572
+ <span class="cline-any cline-yes">8x</span>
571
573
  <span class="cline-any cline-neutral">&nbsp;</span>
572
574
  <span class="cline-any cline-neutral">&nbsp;</span>
573
575
  <span class="cline-any cline-neutral">&nbsp;</span>
574
576
  <span class="cline-any cline-neutral">&nbsp;</span>
575
- <span class="cline-any cline-yes">6x</span>
576
- <span class="cline-any cline-no">&nbsp;</span>
577
+ <span class="cline-any cline-yes">16x</span>
578
+ <span class="cline-any cline-yes">4x</span>
577
579
  <span class="cline-any cline-neutral">&nbsp;</span>
578
580
  <span class="cline-any cline-neutral">&nbsp;</span>
579
581
  <span class="cline-any cline-neutral">&nbsp;</span>
580
582
  <span class="cline-any cline-yes">8x</span>
581
583
  <span class="cline-any cline-neutral">&nbsp;</span>
582
584
  <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-yes">6x</span>
584
585
  <span class="cline-any cline-yes">4x</span>
585
586
  <span class="cline-any cline-yes">2x</span>
586
587
  <span class="cline-any cline-no">&nbsp;</span>
588
+ <span class="cline-any cline-no">&nbsp;</span>
587
589
  <span class="cline-any cline-yes">2x</span>
588
590
  <span class="cline-any cline-no">&nbsp;</span>
589
591
  <span class="cline-any cline-no">&nbsp;</span>
@@ -604,18 +606,19 @@
604
606
  <span class="cline-any cline-no">&nbsp;</span>
605
607
  <span class="cline-any cline-no">&nbsp;</span>
606
608
  <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-yes">2x</span>
609
+ <span class="cline-any cline-no">&nbsp;</span>
608
610
  <span class="cline-any cline-neutral">&nbsp;</span>
609
611
  <span class="cline-any cline-neutral">&nbsp;</span>
610
612
  <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-yes">20x</span>
613
+ <span class="cline-any cline-yes">24x</span>
612
614
  <span class="cline-any cline-neutral">&nbsp;</span>
613
615
  <span class="cline-any cline-neutral">&nbsp;</span>
614
616
  <span class="cline-any cline-neutral">&nbsp;</span>
615
617
  <span class="cline-any cline-yes">4x</span>
616
618
  <span class="cline-any cline-neutral">&nbsp;</span>
617
619
  <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import createDebug from "debug";
620
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">//import createDebug from "debug";
621
+ import { debuglog as createDebug } from "node:util";
619
622
  import Article from "../../Article.js";
620
623
  &nbsp;
621
624
  const debug = createDebug("plainblog:BinarySearchTree");
@@ -820,12 +823,12 @@ export class BinarySearchTree {
820
823
  if (date !== null) {
821
824
  // Optimized search using BST property (Date)
822
825
  while (current) {
823
- if (current.article.id == id) break;
824
- parent = current;
825
- if (date &lt; current.article.createdAt) {
826
- current = current.left;
827
- isLeftChild = true;
828
- } else <span class="missing-if-branch" title="else path not taken" >E</span>{
826
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (current.article.id == id) break;
827
+ <span class="cstat-no" title="statement not covered" > parent = current;</span>
828
+ <span class="cstat-no" title="statement not covered" > if (date &lt; current.article.createdAt) {</span>
829
+ <span class="cstat-no" title="statement not covered" > current = current.left;</span>
830
+ <span class="cstat-no" title="statement not covered" > isLeftChild = true;</span>
831
+ } else {
829
832
  <span class="cstat-no" title="statement not covered" > current = current.right;</span>
830
833
  <span class="cstat-no" title="statement not covered" > isLeftChild = false;</span>
831
834
  }
@@ -848,8 +851,8 @@ export class BinarySearchTree {
848
851
  parent: item.node,
849
852
  isLeft: false,
850
853
  });
851
- <span class="missing-if-branch" title="if path not taken" >I</span>if (item.node.left)
852
- <span class="cstat-no" title="statement not covered" > stack.push({ node: item.node.left, parent: item.node, isLeft: true });</span>
854
+ if (item.node.left)
855
+ stack.push({ node: item.node.left, parent: item.node, isLeft: true });
853
856
  }
854
857
  }
855
858
  &nbsp;
@@ -857,9 +860,9 @@ export class BinarySearchTree {
857
860
  &nbsp;
858
861
  // 2. Delete node
859
862
  if (!current.left &amp;&amp; !current.right) {
860
- if (!parent) return null; // Root was deleted
861
- if (isLeftChild) parent.left = null;
862
- else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="else path not taken" >E</span>parent.right = null;</span>
863
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!parent) return null; // Root was deleted
864
+ <span class="cstat-no" title="statement not covered" > if (isLeftChild) <span class="cstat-no" title="statement not covered" >parent.left = null;</span></span>
865
+ else <span class="cstat-no" title="statement not covered" >parent.right = null;</span>
863
866
  } else <span class="missing-if-branch" title="if path not taken" >I</span>if (!current.right) {
864
867
  <span class="cstat-no" title="statement not covered" > if (!parent) <span class="cstat-no" title="statement not covered" >return current.left;</span></span>
865
868
  <span class="cstat-no" title="statement not covered" > if (isLeftChild) <span class="cstat-no" title="statement not covered" >parent.left = current.left;</span></span>
@@ -880,7 +883,7 @@ export class BinarySearchTree {
880
883
  <span class="cstat-no" title="statement not covered" > if (successorParent === current) <span class="cstat-no" title="statement not covered" >successorParent.right = successor.right;</span></span>
881
884
  else <span class="cstat-no" title="statement not covered" >successorParent.left = successor.right;</span>
882
885
  }
883
- return root;
886
+ <span class="cstat-no" title="statement not covered" > return root;</span>
884
887
  }
885
888
  &nbsp;
886
889
  clear() {
@@ -898,7 +901,7 @@ export class BinarySearchTree {
898
901
  <div class='footer quiet pad2 space-top1 center small'>
899
902
  Code coverage generated by
900
903
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
901
- at 2026-01-17T17:30:57.244Z
904
+ at 2026-01-18T09:48:57.520Z
902
905
  </div>
903
906
  <script src="../../../prettify.js"></script>
904
907
  <script>