@md2do/core 0.2.2 → 0.2.3

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 (44) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/coverage/coverage-final.json +9 -9
  3. package/coverage/index.html +14 -14
  4. package/coverage/lcov-report/index.html +14 -14
  5. package/coverage/lcov-report/src/filters/index.html +1 -1
  6. package/coverage/lcov-report/src/filters/index.ts.html +1 -1
  7. package/coverage/lcov-report/src/index.html +1 -1
  8. package/coverage/lcov-report/src/index.ts.html +1 -1
  9. package/coverage/lcov-report/src/parser/index.html +9 -9
  10. package/coverage/lcov-report/src/parser/index.ts.html +334 -124
  11. package/coverage/lcov-report/src/parser/patterns.ts.html +1 -1
  12. package/coverage/lcov-report/src/scanner/index.html +7 -7
  13. package/coverage/lcov-report/src/scanner/index.ts.html +208 -70
  14. package/coverage/lcov-report/src/sorting/index.html +1 -1
  15. package/coverage/lcov-report/src/sorting/index.ts.html +1 -1
  16. package/coverage/lcov-report/src/utils/dates.ts.html +21 -21
  17. package/coverage/lcov-report/src/utils/id.ts.html +8 -8
  18. package/coverage/lcov-report/src/utils/index.html +1 -1
  19. package/coverage/lcov-report/src/writer/index.html +1 -1
  20. package/coverage/lcov-report/src/writer/index.ts.html +1 -1
  21. package/coverage/lcov.info +479 -342
  22. package/coverage/src/filters/index.html +1 -1
  23. package/coverage/src/filters/index.ts.html +1 -1
  24. package/coverage/src/index.html +1 -1
  25. package/coverage/src/index.ts.html +1 -1
  26. package/coverage/src/parser/index.html +9 -9
  27. package/coverage/src/parser/index.ts.html +334 -124
  28. package/coverage/src/parser/patterns.ts.html +1 -1
  29. package/coverage/src/scanner/index.html +7 -7
  30. package/coverage/src/scanner/index.ts.html +208 -70
  31. package/coverage/src/sorting/index.html +1 -1
  32. package/coverage/src/sorting/index.ts.html +1 -1
  33. package/coverage/src/utils/dates.ts.html +21 -21
  34. package/coverage/src/utils/id.ts.html +8 -8
  35. package/coverage/src/utils/index.html +1 -1
  36. package/coverage/src/writer/index.html +1 -1
  37. package/coverage/src/writer/index.ts.html +1 -1
  38. package/dist/index.js +88 -0
  39. package/dist/index.mjs +88 -0
  40. package/package.json +1 -1
  41. package/src/parser/index.ts +70 -0
  42. package/src/scanner/index.ts +46 -0
  43. package/tests/parser/index.test.ts +107 -1
  44. package/tests/scanner/index.test.ts +94 -4
@@ -25,14 +25,14 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>269/269</span>
28
+ <span class='fraction'>339/339</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">95.08% </span>
33
+ <span class="strong">96.05% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>58/61</span>
35
+ <span class='fraction'>73/76</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>269/269</span>
49
+ <span class='fraction'>339/339</span>
50
50
  </div>
51
51
 
52
52
 
@@ -332,7 +332,77 @@
332
332
  <a name='L267'></a><a href='#L267'>267</a>
333
333
  <a name='L268'></a><a href='#L268'>268</a>
334
334
  <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
336
406
  <span class="cline-any cline-yes">1x</span>
337
407
  <span class="cline-any cline-yes">1x</span>
338
408
  <span class="cline-any cline-yes">1x</span>
@@ -353,9 +423,9 @@
353
423
  <span class="cline-any cline-yes">1x</span>
354
424
  <span class="cline-any cline-yes">1x</span>
355
425
  <span class="cline-any cline-yes">1x</span>
356
- <span class="cline-any cline-yes">101x</span>
357
- <span class="cline-any cline-yes">101x</span>
358
- <span class="cline-any cline-yes">101x</span>
426
+ <span class="cline-any cline-yes">124x</span>
427
+ <span class="cline-any cline-yes">124x</span>
428
+ <span class="cline-any cline-yes">124x</span>
359
429
  <span class="cline-any cline-yes">1x</span>
360
430
  <span class="cline-any cline-yes">1x</span>
361
431
  <span class="cline-any cline-yes">1x</span>
@@ -370,11 +440,11 @@
370
440
  <span class="cline-any cline-yes">1x</span>
371
441
  <span class="cline-any cline-yes">1x</span>
372
442
  <span class="cline-any cline-yes">1x</span>
373
- <span class="cline-any cline-yes">102x</span>
374
- <span class="cline-any cline-yes">102x</span>
375
- <span class="cline-any cline-yes">102x</span>
376
- <span class="cline-any cline-yes">85x</span>
377
- <span class="cline-any cline-yes">85x</span>
443
+ <span class="cline-any cline-yes">125x</span>
444
+ <span class="cline-any cline-yes">125x</span>
445
+ <span class="cline-any cline-yes">125x</span>
446
+ <span class="cline-any cline-yes">108x</span>
447
+ <span class="cline-any cline-yes">108x</span>
378
448
  <span class="cline-any cline-yes">1x</span>
379
449
  <span class="cline-any cline-yes">1x</span>
380
450
  <span class="cline-any cline-yes">1x</span>
@@ -387,11 +457,11 @@
387
457
  <span class="cline-any cline-yes">1x</span>
388
458
  <span class="cline-any cline-yes">1x</span>
389
459
  <span class="cline-any cline-yes">1x</span>
390
- <span class="cline-any cline-yes">101x</span>
391
- <span class="cline-any cline-yes">101x</span>
392
- <span class="cline-any cline-yes">101x</span>
393
- <span class="cline-any cline-yes">101x</span>
394
- <span class="cline-any cline-yes">101x</span>
460
+ <span class="cline-any cline-yes">124x</span>
461
+ <span class="cline-any cline-yes">124x</span>
462
+ <span class="cline-any cline-yes">124x</span>
463
+ <span class="cline-any cline-yes">124x</span>
464
+ <span class="cline-any cline-yes">124x</span>
395
465
  <span class="cline-any cline-yes">1x</span>
396
466
  <span class="cline-any cline-yes">1x</span>
397
467
  <span class="cline-any cline-yes">1x</span>
@@ -403,9 +473,9 @@
403
473
  <span class="cline-any cline-yes">1x</span>
404
474
  <span class="cline-any cline-yes">1x</span>
405
475
  <span class="cline-any cline-yes">1x</span>
406
- <span class="cline-any cline-yes">100x</span>
407
- <span class="cline-any cline-yes">100x</span>
408
- <span class="cline-any cline-yes">100x</span>
476
+ <span class="cline-any cline-yes">123x</span>
477
+ <span class="cline-any cline-yes">123x</span>
478
+ <span class="cline-any cline-yes">123x</span>
409
479
  <span class="cline-any cline-yes">1x</span>
410
480
  <span class="cline-any cline-yes">1x</span>
411
481
  <span class="cline-any cline-yes">1x</span>
@@ -417,12 +487,12 @@
417
487
  <span class="cline-any cline-yes">1x</span>
418
488
  <span class="cline-any cline-yes">1x</span>
419
489
  <span class="cline-any cline-yes">1x</span>
420
- <span class="cline-any cline-yes">100x</span>
421
- <span class="cline-any cline-yes">100x</span>
422
- <span class="cline-any cline-yes">7x</span>
423
- <span class="cline-any cline-yes">7x</span>
424
- <span class="cline-any cline-yes">92x</span>
425
- <span class="cline-any cline-yes">100x</span>
490
+ <span class="cline-any cline-yes">123x</span>
491
+ <span class="cline-any cline-yes">123x</span>
492
+ <span class="cline-any cline-yes">8x</span>
493
+ <span class="cline-any cline-yes">8x</span>
494
+ <span class="cline-any cline-yes">115x</span>
495
+ <span class="cline-any cline-yes">123x</span>
426
496
  <span class="cline-any cline-yes">1x</span>
427
497
  <span class="cline-any cline-yes">1x</span>
428
498
  <span class="cline-any cline-yes">1x</span>
@@ -435,26 +505,26 @@
435
505
  <span class="cline-any cline-yes">1x</span>
436
506
  <span class="cline-any cline-yes">1x</span>
437
507
  <span class="cline-any cline-yes">1x</span>
508
+ <span class="cline-any cline-yes">129x</span>
509
+ <span class="cline-any cline-yes">129x</span>
510
+ <span class="cline-any cline-yes">129x</span>
511
+ <span class="cline-any cline-yes">129x</span>
512
+ <span class="cline-any cline-yes">129x</span>
513
+ <span class="cline-any cline-yes">129x</span>
514
+ <span class="cline-any cline-yes">23x</span>
515
+ <span class="cline-any cline-yes">23x</span>
516
+ <span class="cline-any cline-yes">23x</span>
438
517
  <span class="cline-any cline-yes">106x</span>
439
518
  <span class="cline-any cline-yes">106x</span>
440
519
  <span class="cline-any cline-yes">106x</span>
441
- <span class="cline-any cline-yes">106x</span>
442
- <span class="cline-any cline-yes">106x</span>
443
- <span class="cline-any cline-yes">106x</span>
444
- <span class="cline-any cline-yes">4x</span>
445
- <span class="cline-any cline-yes">4x</span>
446
- <span class="cline-any cline-yes">4x</span>
447
- <span class="cline-any cline-yes">102x</span>
448
- <span class="cline-any cline-yes">102x</span>
449
- <span class="cline-any cline-yes">102x</span>
450
- <span class="cline-any cline-yes">106x</span>
520
+ <span class="cline-any cline-yes">129x</span>
451
521
  <span class="cline-any cline-yes">5x</span>
452
522
  <span class="cline-any cline-yes">5x</span>
453
523
  <span class="cline-any cline-yes">5x</span>
454
- <span class="cline-any cline-yes">97x</span>
455
- <span class="cline-any cline-yes">97x</span>
456
- <span class="cline-any cline-yes">97x</span>
457
- <span class="cline-any cline-yes">106x</span>
524
+ <span class="cline-any cline-yes">101x</span>
525
+ <span class="cline-any cline-yes">101x</span>
526
+ <span class="cline-any cline-yes">101x</span>
527
+ <span class="cline-any cline-yes">129x</span>
458
528
  <span class="cline-any cline-yes">19x</span>
459
529
  <span class="cline-any cline-yes">6x</span>
460
530
  <span class="cline-any cline-yes">6x</span>
@@ -472,9 +542,9 @@
472
542
  <span class="cline-any cline-yes">13x</span>
473
543
  <span class="cline-any cline-yes">19x</span>
474
544
  <span class="cline-any cline-yes">19x</span>
475
- <span class="cline-any cline-yes">78x</span>
476
- <span class="cline-any cline-yes">78x</span>
477
- <span class="cline-any cline-yes">78x</span>
545
+ <span class="cline-any cline-yes">82x</span>
546
+ <span class="cline-any cline-yes">82x</span>
547
+ <span class="cline-any cline-yes">82x</span>
478
548
  <span class="cline-any cline-yes">1x</span>
479
549
  <span class="cline-any cline-yes">1x</span>
480
550
  <span class="cline-any cline-yes">1x</span>
@@ -495,27 +565,27 @@
495
565
  <span class="cline-any cline-yes">1x</span>
496
566
  <span class="cline-any cline-yes">1x</span>
497
567
  <span class="cline-any cline-yes">1x</span>
498
- <span class="cline-any cline-yes">109x</span>
499
- <span class="cline-any cline-yes">109x</span>
500
- <span class="cline-any cline-yes">109x</span>
501
- <span class="cline-any cline-yes">109x</span>
502
- <span class="cline-any cline-yes">109x</span>
503
- <span class="cline-any cline-yes">109x</span>
504
- <span class="cline-any cline-yes">109x</span>
505
- <span class="cline-any cline-yes">109x</span>
506
- <span class="cline-any cline-yes">109x</span>
507
- <span class="cline-any cline-yes">109x</span>
508
- <span class="cline-any cline-yes">109x</span>
509
- <span class="cline-any cline-yes">109x</span>
510
- <span class="cline-any cline-yes">109x</span>
511
- <span class="cline-any cline-yes">109x</span>
512
- <span class="cline-any cline-yes">109x</span>
513
- <span class="cline-any cline-yes">109x</span>
514
- <span class="cline-any cline-yes">109x</span>
515
- <span class="cline-any cline-yes">109x</span>
516
- <span class="cline-any cline-yes">109x</span>
517
- <span class="cline-any cline-yes">109x</span>
518
- <span class="cline-any cline-yes">109x</span>
568
+ <span class="cline-any cline-yes">132x</span>
569
+ <span class="cline-any cline-yes">132x</span>
570
+ <span class="cline-any cline-yes">132x</span>
571
+ <span class="cline-any cline-yes">132x</span>
572
+ <span class="cline-any cline-yes">132x</span>
573
+ <span class="cline-any cline-yes">132x</span>
574
+ <span class="cline-any cline-yes">132x</span>
575
+ <span class="cline-any cline-yes">132x</span>
576
+ <span class="cline-any cline-yes">132x</span>
577
+ <span class="cline-any cline-yes">132x</span>
578
+ <span class="cline-any cline-yes">132x</span>
579
+ <span class="cline-any cline-yes">132x</span>
580
+ <span class="cline-any cline-yes">132x</span>
581
+ <span class="cline-any cline-yes">132x</span>
582
+ <span class="cline-any cline-yes">132x</span>
583
+ <span class="cline-any cline-yes">132x</span>
584
+ <span class="cline-any cline-yes">132x</span>
585
+ <span class="cline-any cline-yes">132x</span>
586
+ <span class="cline-any cline-yes">132x</span>
587
+ <span class="cline-any cline-yes">132x</span>
588
+ <span class="cline-any cline-yes">132x</span>
519
589
  <span class="cline-any cline-yes">1x</span>
520
590
  <span class="cline-any cline-yes">1x</span>
521
591
  <span class="cline-any cline-yes">1x</span>
@@ -535,72 +605,142 @@
535
605
  <span class="cline-any cline-yes">1x</span>
536
606
  <span class="cline-any cline-yes">1x</span>
537
607
  <span class="cline-any cline-yes">1x</span>
538
- <span class="cline-any cline-yes">116x</span>
539
- <span class="cline-any cline-yes">116x</span>
540
- <span class="cline-any cline-yes">116x</span>
541
- <span class="cline-any cline-yes">116x</span>
542
- <span class="cline-any cline-yes">116x</span>
543
- <span class="cline-any cline-yes">116x</span>
544
- <span class="cline-any cline-yes">116x</span>
545
- <span class="cline-any cline-yes">116x</span>
546
- <span class="cline-any cline-yes">116x</span>
547
- <span class="cline-any cline-yes">116x</span>
608
+ <span class="cline-any cline-yes">145x</span>
609
+ <span class="cline-any cline-yes">145x</span>
610
+ <span class="cline-any cline-yes">145x</span>
611
+ <span class="cline-any cline-yes">145x</span>
612
+ <span class="cline-any cline-yes">145x</span>
613
+ <span class="cline-any cline-yes">145x</span>
614
+ <span class="cline-any cline-yes">145x</span>
615
+ <span class="cline-any cline-yes">145x</span>
616
+ <span class="cline-any cline-yes">145x</span>
617
+ <span class="cline-any cline-yes">145x</span>
618
+ <span class="cline-any cline-yes">2x</span>
619
+ <span class="cline-any cline-yes">2x</span>
620
+ <span class="cline-any cline-yes">2x</span>
621
+ <span class="cline-any cline-yes">2x</span>
622
+ <span class="cline-any cline-yes">2x</span>
623
+ <span class="cline-any cline-yes">2x</span>
624
+ <span class="cline-any cline-yes">2x</span>
625
+ <span class="cline-any cline-yes">2x</span>
626
+ <span class="cline-any cline-yes">2x</span>
627
+ <span class="cline-any cline-yes">143x</span>
628
+ <span class="cline-any cline-yes">143x</span>
629
+ <span class="cline-any cline-yes">145x</span>
630
+ <span class="cline-any cline-yes">2x</span>
631
+ <span class="cline-any cline-yes">2x</span>
632
+ <span class="cline-any cline-yes">2x</span>
633
+ <span class="cline-any cline-yes">2x</span>
634
+ <span class="cline-any cline-yes">2x</span>
635
+ <span class="cline-any cline-yes">2x</span>
636
+ <span class="cline-any cline-yes">2x</span>
637
+ <span class="cline-any cline-yes">2x</span>
638
+ <span class="cline-any cline-yes">2x</span>
639
+ <span class="cline-any cline-yes">141x</span>
640
+ <span class="cline-any cline-yes">141x</span>
641
+ <span class="cline-any cline-yes">145x</span>
642
+ <span class="cline-any cline-yes">1x</span>
643
+ <span class="cline-any cline-yes">1x</span>
644
+ <span class="cline-any cline-yes">1x</span>
645
+ <span class="cline-any cline-yes">1x</span>
646
+ <span class="cline-any cline-yes">1x</span>
647
+ <span class="cline-any cline-yes">1x</span>
648
+ <span class="cline-any cline-yes">1x</span>
649
+ <span class="cline-any cline-yes">1x</span>
650
+ <span class="cline-any cline-yes">140x</span>
651
+ <span class="cline-any cline-yes">140x</span>
652
+ <span class="cline-any cline-yes">145x</span>
653
+ <span class="cline-any cline-yes">1x</span>
654
+ <span class="cline-any cline-yes">1x</span>
655
+ <span class="cline-any cline-yes">1x</span>
656
+ <span class="cline-any cline-yes">1x</span>
657
+ <span class="cline-any cline-yes">1x</span>
658
+ <span class="cline-any cline-yes">1x</span>
659
+ <span class="cline-any cline-yes">1x</span>
660
+ <span class="cline-any cline-yes">1x</span>
661
+ <span class="cline-any cline-yes">139x</span>
662
+ <span class="cline-any cline-yes">139x</span>
663
+ <span class="cline-any cline-yes">139x</span>
664
+ <span class="cline-any cline-yes">145x</span>
548
665
  <span class="cline-any cline-yes">20x</span>
549
666
  <span class="cline-any cline-yes">20x</span>
550
- <span class="cline-any cline-yes">96x</span>
551
- <span class="cline-any cline-yes">96x</span>
552
- <span class="cline-any cline-yes">96x</span>
553
- <span class="cline-any cline-yes">96x</span>
554
- <span class="cline-any cline-yes">96x</span>
555
- <span class="cline-any cline-yes">96x</span>
556
- <span class="cline-any cline-yes">96x</span>
557
- <span class="cline-any cline-yes">96x</span>
558
- <span class="cline-any cline-yes">96x</span>
559
- <span class="cline-any cline-yes">96x</span>
560
- <span class="cline-any cline-yes">96x</span>
561
- <span class="cline-any cline-yes">96x</span>
562
- <span class="cline-any cline-yes">96x</span>
563
- <span class="cline-any cline-yes">96x</span>
564
- <span class="cline-any cline-yes">96x</span>
565
- <span class="cline-any cline-yes">96x</span>
566
- <span class="cline-any cline-yes">116x</span>
667
+ <span class="cline-any cline-yes">119x</span>
668
+ <span class="cline-any cline-yes">119x</span>
669
+ <span class="cline-any cline-yes">119x</span>
670
+ <span class="cline-any cline-yes">119x</span>
671
+ <span class="cline-any cline-yes">119x</span>
672
+ <span class="cline-any cline-yes">119x</span>
673
+ <span class="cline-any cline-yes">119x</span>
674
+ <span class="cline-any cline-yes">119x</span>
675
+ <span class="cline-any cline-yes">119x</span>
676
+ <span class="cline-any cline-yes">119x</span>
677
+ <span class="cline-any cline-yes">119x</span>
678
+ <span class="cline-any cline-yes">119x</span>
679
+ <span class="cline-any cline-yes">119x</span>
680
+ <span class="cline-any cline-yes">119x</span>
681
+ <span class="cline-any cline-yes">119x</span>
682
+ <span class="cline-any cline-yes">119x</span>
683
+ <span class="cline-any cline-yes">145x</span>
567
684
  <span class="cline-any cline-yes">4x</span>
568
685
  <span class="cline-any cline-yes">4x</span>
569
686
  <span class="cline-any cline-yes">4x</span>
570
687
  <span class="cline-any cline-yes">4x</span>
571
688
  <span class="cline-any cline-yes">4x</span>
572
689
  <span class="cline-any cline-yes">4x</span>
573
- <span class="cline-any cline-yes">96x</span>
574
- <span class="cline-any cline-yes">96x</span>
575
- <span class="cline-any cline-yes">96x</span>
576
- <span class="cline-any cline-yes">96x</span>
577
- <span class="cline-any cline-yes">96x</span>
578
- <span class="cline-any cline-yes">96x</span>
579
- <span class="cline-any cline-yes">96x</span>
580
- <span class="cline-any cline-yes">96x</span>
581
- <span class="cline-any cline-yes">96x</span>
582
- <span class="cline-any cline-yes">96x</span>
583
- <span class="cline-any cline-yes">96x</span>
584
- <span class="cline-any cline-yes">96x</span>
585
- <span class="cline-any cline-yes">96x</span>
586
- <span class="cline-any cline-yes">96x</span>
587
- <span class="cline-any cline-yes">96x</span>
588
- <span class="cline-any cline-yes">96x</span>
589
- <span class="cline-any cline-yes">96x</span>
590
- <span class="cline-any cline-yes">96x</span>
591
- <span class="cline-any cline-yes">116x</span>
592
- <span class="cline-any cline-yes">116x</span>
593
- <span class="cline-any cline-yes">116x</span>
594
- <span class="cline-any cline-yes">116x</span>
595
- <span class="cline-any cline-yes">116x</span>
596
- <span class="cline-any cline-yes">116x</span>
597
- <span class="cline-any cline-yes">116x</span>
598
- <span class="cline-any cline-yes">116x</span>
599
- <span class="cline-any cline-yes">96x</span>
600
- <span class="cline-any cline-yes">116x</span>
601
- <span class="cline-any cline-yes">96x</span>
602
- <span class="cline-any cline-yes">96x</span>
603
- <span class="cline-any cline-yes">96x</span>
690
+ <span class="cline-any cline-yes">119x</span>
691
+ <span class="cline-any cline-yes">119x</span>
692
+ <span class="cline-any cline-yes">119x</span>
693
+ <span class="cline-any cline-yes">145x</span>
694
+ <span class="cline-any cline-yes">58x</span>
695
+ <span class="cline-any cline-yes">58x</span>
696
+ <span class="cline-any cline-yes">58x</span>
697
+ <span class="cline-any cline-yes">58x</span>
698
+ <span class="cline-any cline-yes">58x</span>
699
+ <span class="cline-any cline-yes">58x</span>
700
+ <span class="cline-any cline-yes">58x</span>
701
+ <span class="cline-any cline-yes">58x</span>
702
+ <span class="cline-any cline-yes">119x</span>
703
+ <span class="cline-any cline-yes">119x</span>
704
+ <span class="cline-any cline-yes">145x</span>
705
+ <span class="cline-any cline-yes">8x</span>
706
+ <span class="cline-any cline-yes">8x</span>
707
+ <span class="cline-any cline-yes">8x</span>
708
+ <span class="cline-any cline-yes">8x</span>
709
+ <span class="cline-any cline-yes">8x</span>
710
+ <span class="cline-any cline-yes">8x</span>
711
+ <span class="cline-any cline-yes">8x</span>
712
+ <span class="cline-any cline-yes">8x</span>
713
+ <span class="cline-any cline-yes">119x</span>
714
+ <span class="cline-any cline-yes">119x</span>
715
+ <span class="cline-any cline-yes">119x</span>
716
+ <span class="cline-any cline-yes">119x</span>
717
+ <span class="cline-any cline-yes">119x</span>
718
+ <span class="cline-any cline-yes">119x</span>
719
+ <span class="cline-any cline-yes">119x</span>
720
+ <span class="cline-any cline-yes">119x</span>
721
+ <span class="cline-any cline-yes">119x</span>
722
+ <span class="cline-any cline-yes">119x</span>
723
+ <span class="cline-any cline-yes">119x</span>
724
+ <span class="cline-any cline-yes">119x</span>
725
+ <span class="cline-any cline-yes">119x</span>
726
+ <span class="cline-any cline-yes">119x</span>
727
+ <span class="cline-any cline-yes">119x</span>
728
+ <span class="cline-any cline-yes">119x</span>
729
+ <span class="cline-any cline-yes">119x</span>
730
+ <span class="cline-any cline-yes">119x</span>
731
+ <span class="cline-any cline-yes">145x</span>
732
+ <span class="cline-any cline-yes">145x</span>
733
+ <span class="cline-any cline-yes">145x</span>
734
+ <span class="cline-any cline-yes">145x</span>
735
+ <span class="cline-any cline-yes">145x</span>
736
+ <span class="cline-any cline-yes">145x</span>
737
+ <span class="cline-any cline-yes">145x</span>
738
+ <span class="cline-any cline-yes">145x</span>
739
+ <span class="cline-any cline-yes">119x</span>
740
+ <span class="cline-any cline-yes">145x</span>
741
+ <span class="cline-any cline-yes">119x</span>
742
+ <span class="cline-any cline-yes">119x</span>
743
+ <span class="cline-any cline-yes">119x</span>
604
744
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type {
605
745
  Task,
606
746
  ParsingContext,
@@ -810,6 +950,53 @@ export function parseTask(
810
950
  context: ParsingContext,
811
951
  ): { task: Task | null; warnings: Warning[] } {
812
952
  const warnings: Warning[] = [];
953
+ &nbsp;
954
+ // Detect malformed checkboxes and provide helpful warnings
955
+ // Check for asterisk/plus bullet markers (not supported)
956
+ if (/^\s*[*+]\s+\[[ xX]\]/.test(line)) {
957
+ warnings.push({
958
+ file,
959
+ line: lineNumber,
960
+ text: line.trim(),
961
+ reason:
962
+ 'Unsupported bullet marker (* or +). Use dash (-) for task lists.',
963
+ });
964
+ return { task: null, warnings };
965
+ }
966
+ &nbsp;
967
+ // Check for extra spaces inside checkbox: [x ] or [ x]
968
+ if (/^\s*-\s+\[[xX]\s+\]/.test(line) || /^\s*-\s+\[\s+[xX]\]/.test(line)) {
969
+ warnings.push({
970
+ file,
971
+ line: lineNumber,
972
+ text: line.trim(),
973
+ reason:
974
+ 'Malformed checkbox with extra spaces. Use [x] or [ ] without extra spaces.',
975
+ });
976
+ return { task: null, warnings };
977
+ }
978
+ &nbsp;
979
+ // Check for missing space after checkbox: [x]Task
980
+ if (/^\s*-\s+\[[ xX]\][^\s]/.test(line)) {
981
+ warnings.push({
982
+ file,
983
+ line: lineNumber,
984
+ text: line.trim(),
985
+ reason: 'Missing space after checkbox. Use "- [x] Task" format.',
986
+ });
987
+ return { task: null, warnings };
988
+ }
989
+ &nbsp;
990
+ // Check for missing space before checkbox: -[x]
991
+ if (/^\s*-\[[ xX]\]/.test(line)) {
992
+ warnings.push({
993
+ file,
994
+ line: lineNumber,
995
+ text: line.trim(),
996
+ reason: 'Missing space before checkbox. Use "- [x] Task" format.',
997
+ });
998
+ return { task: null, warnings };
999
+ }
813
1000
  &nbsp;
814
1001
  // Check if line is a task
815
1002
  const taskMatch = line.match(PATTERNS.TASK_CHECKBOX);
@@ -839,6 +1026,29 @@ export function parseTask(
839
1026
  line: lineNumber,
840
1027
  });
841
1028
  }
1029
+ &nbsp;
1030
+ // Warn about missing dates
1031
+ // Incomplete tasks without any date (no explicit due date and no context date)
1032
+ if (!completed &amp;&amp; !dueDateResult.date &amp;&amp; !context.currentDate) {
1033
+ warnings.push({
1034
+ file,
1035
+ line: lineNumber,
1036
+ text: fullText.trim(),
1037
+ reason:
1038
+ 'Task has no due date. Add [due: YYYY-MM-DD] or place under a heading with a date.',
1039
+ });
1040
+ }
1041
+ &nbsp;
1042
+ // Completed tasks should have completion dates
1043
+ if (completed &amp;&amp; !completedDate) {
1044
+ warnings.push({
1045
+ file,
1046
+ line: lineNumber,
1047
+ text: fullText.trim(),
1048
+ reason:
1049
+ 'Completed task missing completion date. Add [completed: YYYY-MM-DD].',
1050
+ });
1051
+ }
842
1052
  &nbsp;
843
1053
  // Clean text (remove metadata markers)
844
1054
  const cleanText = cleanTaskText(fullText);
@@ -877,7 +1087,7 @@ export function parseTask(
877
1087
  <div class='footer quiet pad2 space-top1 center small'>
878
1088
  Code coverage generated by
879
1089
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
880
- at 2026-01-22T01:16:22.196Z
1090
+ at 2026-01-26T03:50:53.053Z
881
1091
  </div>
882
1092
  <script src="../../prettify.js"></script>
883
1093
  <script>
@@ -646,7 +646,7 @@ export const PATTERNS = {
646
646
  <div class='footer quiet pad2 space-top1 center small'>
647
647
  Code coverage generated by
648
648
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
649
- at 2026-01-22T01:16:22.196Z
649
+ at 2026-01-26T03:50:53.053Z
650
650
  </div>
651
651
  <script src="../../prettify.js"></script>
652
652
  <script>