@calmo/task-runner 1.2.0 → 1.2.1

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/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## <small>1.2.1 (2026-01-18)</small>
2
+
3
+ * Merge branch 'main' into docs-add-status-badges-11560890930810516706 ([8baab4c](https://github.com/thalesraymond/task-runner/commit/8baab4c))
4
+ * Merge pull request #30 from thalesraymond/docs-add-status-badges-11560890930810516706 ([aac9c4b](https://github.com/thalesraymond/task-runner/commit/aac9c4b)), closes [#30](https://github.com/thalesraymond/task-runner/issues/30)
5
+ * Merge pull request #31 from thalesraymond/005-concurrency-control ([db15b27](https://github.com/thalesraymond/task-runner/commit/db15b27)), closes [#31](https://github.com/thalesraymond/task-runner/issues/31)
6
+ * Merge pull request #34 from thalesraymond/task-runner-performance-optimization-3405178555713715639 ([bb76050](https://github.com/thalesraymond/task-runner/commit/bb76050)), closes [#34](https://github.com/thalesraymond/task-runner/issues/34)
7
+ * Merge remote-tracking branch 'origin/main' into 005-concurrency-control ([63d3cbe](https://github.com/thalesraymond/task-runner/commit/63d3cbe))
8
+ * Update specs/005-concurrency-control/checklists/requirements.md ([97496b1](https://github.com/thalesraymond/task-runner/commit/97496b1))
9
+ * Update specs/005-concurrency-control/contracts/api.ts ([a05cbb5](https://github.com/thalesraymond/task-runner/commit/a05cbb5))
10
+ * perf: optimize task scheduling to prevent pipeline stalls ([37c52f7](https://github.com/thalesraymond/task-runner/commit/37c52f7))
11
+ * docs: ✏️ clarify edge case handling for negative concurrency val ([05187c4](https://github.com/thalesraymond/task-runner/commit/05187c4))
12
+ * docs: ✏️ concurrency control spec, plan, and tasks ([f27464c](https://github.com/thalesraymond/task-runner/commit/f27464c))
13
+ * docs: ✏️ fix ambiguos docs ([a3aae83](https://github.com/thalesraymond/task-runner/commit/a3aae83))
14
+ * docs: ✏️ spec ([cdb7287](https://github.com/thalesraymond/task-runner/commit/cdb7287))
15
+ * docs(readme): add status badges ([b549b05](https://github.com/thalesraymond/task-runner/commit/b549b05))
16
+
1
17
  ## 1.2.0 (2026-01-18)
2
18
 
3
19
  * Merge branch 'main' into 004-pre-execution-validation-14850747355617832302 ([cc01409](https://github.com/thalesraymond/task-runner/commit/cc01409))
package/GEMINI.md CHANGED
@@ -6,6 +6,7 @@ Auto-generated from all feature plans. Last updated: 2026-01-17
6
6
  - TypeScript 5.9.3 + vitest 4.0.17 (for testing) (004-pre-execution-validation)
7
7
  - TypeScript 5.9.3 + vitest 4.0.17, AbortSignal/AbortController (standard Web APIs) (002-task-cancellation)
8
8
  - N/A (in-memory context object) (002-task-cancellation)
9
+ - N/A (in-memory queue for tasks) (005-concurrency-control)
9
10
 
10
11
  - TypeScript 5.9.3 + vitest 4.0.17 (003-refactor-file-structure)
11
12
 
@@ -27,10 +28,10 @@ tests/
27
28
  : Follow standard conventions
28
29
 
29
30
  ## Recent Changes
31
+ - 005-concurrency-control: Added TypeScript 5.9.3 + vitest 4.0.17
30
32
  - 002-task-cancellation: Added TypeScript 5.9.3 + vitest 4.0.17, AbortSignal/AbortController (standard Web APIs)
31
33
  - 004-pre-execution-validation: Added TypeScript 5.9.3 + vitest 4.0.17 (for testing)
32
34
 
33
- - 003-refactor-file-structure: Added TypeScript 5.9.3 + vitest 4.0.17
34
35
 
35
36
 
36
37
  <!-- MANUAL ADDITIONS START -->
package/README.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Generic Task Runner
2
2
 
3
+ [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=thalesraymond_task-runner&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=thalesraymond_task-runner)
4
+ [![codecov](https://codecov.io/gh/thalesraymond/task-runner/graph/badge.svg)](https://codecov.io/gh/thalesraymond/task-runner)
5
+ [![CI](https://github.com/thalesraymond/task-runner/actions/workflows/ci.yml/badge.svg)](https://github.com/thalesraymond/task-runner/actions/workflows/ci.yml)
6
+ [![npm version](https://badge.fury.io/js/@calmo%2Ftask-runner.svg)](https://www.npmjs.com/package/@calmo/task-runner)
7
+
3
8
  A lightweight, type-safe, and domain-agnostic task orchestration engine. It resolves a Directed Acyclic Graph (DAG) of steps, executes independent tasks in parallel, and manages a shared context across the pipeline.
4
9
 
5
10
  ## Features
@@ -448,7 +448,7 @@ export class TaskGraphValidator implements ITaskGraphValidator {
448
448
  <div class='footer quiet pad2 space-top1 center small'>
449
449
  Code coverage generated by
450
450
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
451
- at 2026-01-18T03:56:21.880Z
451
+ at 2026-01-18T05:09:17.333Z
452
452
  </div>
453
453
  <script src="prettify.js"></script>
454
454
  <script>
@@ -25,28 +25,28 @@
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'>67/67</span>
28
+ <span class='fraction'>78/78</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>27/27</span>
35
+ <span class='fraction'>33/33</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>12/12</span>
42
+ <span class='fraction'>14/14</span>
43
43
  </div>
44
44
 
45
45
 
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'>66/66</span>
49
+ <span class='fraction'>76/76</span>
50
50
  </div>
51
51
 
52
52
 
@@ -300,7 +300,29 @@
300
300
  <a name='L235'></a><a href='#L235'>235</a>
301
301
  <a name='L236'></a><a href='#L236'>236</a>
302
302
  <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
304
326
  <span class="cline-any cline-neutral">&nbsp;</span>
305
327
  <span class="cline-any cline-neutral">&nbsp;</span>
306
328
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -483,21 +505,16 @@
483
505
  <span class="cline-any cline-yes">15x</span>
484
506
  <span class="cline-any cline-neutral">&nbsp;</span>
485
507
  <span class="cline-any cline-yes">15x</span>
486
- <span class="cline-any cline-neutral">&nbsp;</span>
487
508
  <span class="cline-any cline-yes">15x</span>
488
- <span class="cline-any cline-yes">22x</span>
489
- <span class="cline-any cline-yes">71x</span>
490
509
  <span class="cline-any cline-neutral">&nbsp;</span>
491
510
  <span class="cline-any cline-neutral">&nbsp;</span>
492
- <span class="cline-any cline-yes">22x</span>
493
- <span class="cline-any cline-yes">49x</span>
494
- <span class="cline-any cline-yes">49x</span>
511
+ <span class="cline-any cline-yes">15x</span>
495
512
  <span class="cline-any cline-yes">35x</span>
513
+ <span class="cline-any cline-yes">98x</span>
496
514
  <span class="cline-any cline-neutral">&nbsp;</span>
497
515
  <span class="cline-any cline-neutral">&nbsp;</span>
498
516
  <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-neutral">&nbsp;</span>
500
- <span class="cline-any cline-yes">22x</span>
517
+ <span class="cline-any cline-yes">35x</span>
501
518
  <span class="cline-any cline-yes">49x</span>
502
519
  <span class="cline-any cline-yes">49x</span>
503
520
  <span class="cline-any cline-yes">39x</span>
@@ -512,10 +529,21 @@
512
529
  <span class="cline-any cline-neutral">&nbsp;</span>
513
530
  <span class="cline-any cline-neutral">&nbsp;</span>
514
531
  <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-yes">22x</span>
516
532
  <span class="cline-any cline-neutral">&nbsp;</span>
533
+ <span class="cline-any cline-yes">35x</span>
534
+ <span class="cline-any cline-yes">98x</span>
535
+ <span class="cline-any cline-yes">43x</span>
536
+ <span class="cline-any cline-yes">98x</span>
537
+ <span class="cline-any cline-yes">29x</span>
538
+ <span class="cline-any cline-neutral">&nbsp;</span>
539
+ <span class="cline-any cline-neutral">&nbsp;</span>
540
+ <span class="cline-any cline-neutral">&nbsp;</span>
541
+ <span class="cline-any cline-neutral">&nbsp;</span>
542
+ <span class="cline-any cline-yes">35x</span>
517
543
  <span class="cline-any cline-yes">26x</span>
518
544
  <span class="cline-any cline-yes">26x</span>
545
+ <span class="cline-any cline-neutral">&nbsp;</span>
546
+ <span class="cline-any cline-yes">26x</span>
519
547
  <span class="cline-any cline-yes">26x</span>
520
548
  <span class="cline-any cline-yes">26x</span>
521
549
  <span class="cline-any cline-yes">24x</span>
@@ -532,6 +560,22 @@
532
560
  <span class="cline-any cline-neutral">&nbsp;</span>
533
561
  <span class="cline-any cline-neutral">&nbsp;</span>
534
562
  <span class="cline-any cline-neutral">&nbsp;</span>
563
+ <span class="cline-any cline-yes">26x</span>
564
+ <span class="cline-any cline-yes">26x</span>
565
+ <span class="cline-any cline-neutral">&nbsp;</span>
566
+ <span class="cline-any cline-yes">26x</span>
567
+ <span class="cline-any cline-neutral">&nbsp;</span>
568
+ <span class="cline-any cline-neutral">&nbsp;</span>
569
+ <span class="cline-any cline-neutral">&nbsp;</span>
570
+ <span class="cline-any cline-neutral">&nbsp;</span>
571
+ <span class="cline-any cline-yes">15x</span>
572
+ <span class="cline-any cline-neutral">&nbsp;</span>
573
+ <span class="cline-any cline-yes">15x</span>
574
+ <span class="cline-any cline-neutral">&nbsp;</span>
575
+ <span class="cline-any cline-yes">20x</span>
576
+ <span class="cline-any cline-neutral">&nbsp;</span>
577
+ <span class="cline-any cline-yes">20x</span>
578
+ <span class="cline-any cline-neutral">&nbsp;</span>
535
579
  <span class="cline-any cline-neutral">&nbsp;</span>
536
580
  <span class="cline-any cline-yes">15x</span>
537
581
  <span class="cline-any cline-yes">15x</span>
@@ -720,20 +764,15 @@ export class TaskRunner&lt;TContext&gt; {
720
764
  this.emit("workflowStart", { context: this.context, steps });
721
765
  &nbsp;
722
766
  const results = new Map&lt;string, TaskResult&gt;();
767
+ const executingPromises = new Set&lt;Promise&lt;void&gt;&gt;();
723
768
  &nbsp;
724
- while (results.size &lt; steps.length) {
769
+ // Helper to process pending steps and launch ready ones
770
+ const processPendingSteps = () =&gt; {
725
771
  const pendingSteps = steps.filter(
726
772
  (step) =&gt; !results.has(step.name) &amp;&amp; !this.running.has(step.name)
727
773
  );
728
774
  &nbsp;
729
- const readySteps = pendingSteps.filter((step) =&gt; {
730
- const deps = step.dependencies ?? [];
731
- return deps.every(
732
- (dep) =&gt; results.has(dep) &amp;&amp; results.get(dep)?.status === "success"
733
- );
734
- });
735
- &nbsp;
736
- // Skip tasks with failed dependencies
775
+ // 1. Identify and mark skipped tasks
737
776
  for (const step of pendingSteps) {
738
777
  const deps = step.dependencies ?? [];
739
778
  const failedDep = deps.find(
@@ -749,10 +788,21 @@ export class TaskRunner&lt;TContext&gt; {
749
788
  }
750
789
  }
751
790
  &nbsp;
752
- await Promise.all(
753
- readySteps.map(async (step) =&gt; {
754
- this.running.add(step.name);
755
- this.emit("taskStart", { step });
791
+ // Re-filter pending steps as some might have been skipped above
792
+ const readySteps = steps.filter((step) =&gt; {
793
+ if (results.has(step.name) || this.running.has(step.name)) return false;
794
+ const deps = step.dependencies ?? [];
795
+ return deps.every(
796
+ (dep) =&gt; results.has(dep) &amp;&amp; results.get(dep)?.status === "success"
797
+ );
798
+ });
799
+ &nbsp;
800
+ // 2. Launch ready tasks
801
+ for (const step of readySteps) {
802
+ this.running.add(step.name);
803
+ this.emit("taskStart", { step });
804
+ &nbsp;
805
+ const taskPromise = (async () =&gt; {
756
806
  try {
757
807
  const result = await step.run(this.context);
758
808
  results.set(step.name, result);
@@ -766,8 +816,24 @@ export class TaskRunner&lt;TContext&gt; {
766
816
  const result = results.get(step.name)!;
767
817
  this.emit("taskEnd", { step, result });
768
818
  }
769
- })
770
- );
819
+ })();
820
+ &nbsp;
821
+ // Wrap the task promise to ensure we can track it in the Set
822
+ const trackedPromise = taskPromise.then(() =&gt; {
823
+ executingPromises.delete(trackedPromise);
824
+ });
825
+ executingPromises.add(trackedPromise);
826
+ }
827
+ };
828
+ &nbsp;
829
+ // Initial check to start independent tasks
830
+ processPendingSteps();
831
+ &nbsp;
832
+ while (results.size &lt; steps.length &amp;&amp; executingPromises.size &gt; 0) {
833
+ // Wait for the next task to finish
834
+ await Promise.race(executingPromises);
835
+ // After a task finishes, check for new work
836
+ processPendingSteps();
771
837
  }
772
838
  &nbsp;
773
839
  this.emit("workflowEnd", { context: this.context, results });
@@ -781,7 +847,7 @@ export class TaskRunner&lt;TContext&gt; {
781
847
  <div class='footer quiet pad2 space-top1 center small'>
782
848
  Code coverage generated by
783
849
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
784
- at 2026-01-18T03:56:21.880Z
850
+ at 2026-01-18T05:09:17.333Z
785
851
  </div>
786
852
  <script src="prettify.js"></script>
787
853
  <script>
@@ -1,3 +1,3 @@
1
1
  {"/home/runner/work/task-runner/task-runner/src/TaskGraphValidator.ts": {"path":"/home/runner/work/task-runner/task-runner/src/TaskGraphValidator.ts","statementMap":{"0":{"start":{"line":18,"column":42},"end":{"line":18,"column":null}},"1":{"start":{"line":21,"column":24},"end":{"line":21,"column":null}},"2":{"start":{"line":22,"column":8},"end":{"line":32,"column":null}},"3":{"start":{"line":23,"column":12},"end":{"line":31,"column":null}},"4":{"start":{"line":24,"column":16},"end":{"line":28,"column":null}},"5":{"start":{"line":30,"column":16},"end":{"line":30,"column":null}},"6":{"start":{"line":35,"column":8},"end":{"line":45,"column":null}},"7":{"start":{"line":36,"column":12},"end":{"line":44,"column":null}},"8":{"start":{"line":37,"column":16},"end":{"line":43,"column":null}},"9":{"start":{"line":38,"column":20},"end":{"line":42,"column":null}},"10":{"start":{"line":49,"column":39},"end":{"line":49,"column":null}},"11":{"start":{"line":49,"column":56},"end":{"line":49,"column":87}},"12":{"start":{"line":51,"column":8},"end":{"line":56,"column":null}},"13":{"start":{"line":52,"column":12},"end":{"line":55,"column":null}},"14":{"start":{"line":59,"column":30},"end":{"line":59,"column":null}},"15":{"start":{"line":60,"column":8},"end":{"line":62,"column":null}},"16":{"start":{"line":61,"column":12},"end":{"line":61,"column":null}},"17":{"start":{"line":64,"column":24},"end":{"line":64,"column":null}},"18":{"start":{"line":65,"column":31},"end":{"line":65,"column":null}},"19":{"start":{"line":67,"column":8},"end":{"line":88,"column":null}},"20":{"start":{"line":68,"column":12},"end":{"line":70,"column":null}},"21":{"start":{"line":69,"column":16},"end":{"line":69,"column":null}},"22":{"start":{"line":72,"column":35},"end":{"line":72,"column":null}},"23":{"start":{"line":73,"column":12},"end":{"line":87,"column":null}},"24":{"start":{"line":76,"column":35},"end":{"line":76,"column":null}},"25":{"start":{"line":77,"column":40},"end":{"line":77,"column":null}},"26":{"start":{"line":78,"column":34},"end":{"line":78,"column":null}},"27":{"start":{"line":80,"column":16},"end":{"line":84,"column":null}},"28":{"start":{"line":86,"column":16},"end":{"line":86,"column":null}},"29":{"start":{"line":90,"column":8},"end":{"line":93,"column":null}},"30":{"start":{"line":103,"column":8},"end":{"line":103,"column":null}},"31":{"start":{"line":104,"column":8},"end":{"line":104,"column":null}},"32":{"start":{"line":105,"column":8},"end":{"line":105,"column":null}},"33":{"start":{"line":107,"column":29},"end":{"line":107,"column":null}},"34":{"start":{"line":108,"column":8},"end":{"line":120,"column":null}},"35":{"start":{"line":109,"column":12},"end":{"line":119,"column":null}},"36":{"start":{"line":113,"column":16},"end":{"line":113,"column":null}},"37":{"start":{"line":114,"column":12},"end":{"line":119,"column":null}},"38":{"start":{"line":117,"column":16},"end":{"line":117,"column":null}},"39":{"start":{"line":118,"column":16},"end":{"line":118,"column":null}},"40":{"start":{"line":122,"column":8},"end":{"line":122,"column":null}},"41":{"start":{"line":123,"column":8},"end":{"line":123,"column":null}},"42":{"start":{"line":124,"column":8},"end":{"line":124,"column":null}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":17,"column":4},"end":{"line":17,"column":13}},"loc":{"start":{"line":17,"column":53},"end":{"line":94,"column":null}},"line":17},"1":{"name":"(anonymous_1)","decl":{"start":{"line":49,"column":51},"end":{"line":49,"column":56}},"loc":{"start":{"line":49,"column":56},"end":{"line":49,"column":87}},"line":49},"2":{"name":"(anonymous_2)","decl":{"start":{"line":96,"column":12},"end":{"line":96,"column":null}},"loc":{"start":{"line":102,"column":15},"end":{"line":125,"column":null}},"line":102}},"branchMap":{"0":{"loc":{"start":{"line":23,"column":12},"end":{"line":31,"column":null}},"type":"if","locations":[{"start":{"line":23,"column":12},"end":{"line":31,"column":null}},{"start":{"line":29,"column":19},"end":{"line":31,"column":null}}],"line":23},"1":{"loc":{"start":{"line":37,"column":16},"end":{"line":43,"column":null}},"type":"if","locations":[{"start":{"line":37,"column":16},"end":{"line":43,"column":null}},{"start":{},"end":{}}],"line":37},"2":{"loc":{"start":{"line":51,"column":8},"end":{"line":56,"column":null}},"type":"if","locations":[{"start":{"line":51,"column":8},"end":{"line":56,"column":null}},{"start":{},"end":{}}],"line":51},"3":{"loc":{"start":{"line":68,"column":12},"end":{"line":70,"column":null}},"type":"if","locations":[{"start":{"line":68,"column":12},"end":{"line":70,"column":null}},{"start":{},"end":{}}],"line":68},"4":{"loc":{"start":{"line":73,"column":12},"end":{"line":87,"column":null}},"type":"if","locations":[{"start":{"line":73,"column":12},"end":{"line":87,"column":null}},{"start":{},"end":{}}],"line":73},"5":{"loc":{"start":{"line":109,"column":12},"end":{"line":119,"column":null}},"type":"if","locations":[{"start":{"line":109,"column":12},"end":{"line":119,"column":null}},{"start":{"line":114,"column":12},"end":{"line":119,"column":null}}],"line":109},"6":{"loc":{"start":{"line":110,"column":16},"end":{"line":111,"column":null}},"type":"binary-expr","locations":[{"start":{"line":110,"column":16},"end":{"line":110,"column":null}},{"start":{"line":111,"column":16},"end":{"line":111,"column":null}}],"line":110},"7":{"loc":{"start":{"line":114,"column":12},"end":{"line":119,"column":null}},"type":"if","locations":[{"start":{"line":114,"column":12},"end":{"line":119,"column":null}},{"start":{},"end":{}}],"line":114}},"s":{"0":29,"1":29,"2":29,"3":61,"4":3,"5":58,"6":29,"7":61,"8":41,"9":5,"10":29,"11":7,"12":29,"13":4,"14":25,"15":25,"16":54,"17":25,"18":25,"19":25,"20":49,"21":3,"22":46,"23":46,"24":4,"25":4,"26":4,"27":4,"28":4,"29":25,"30":51,"31":51,"32":51,"33":51,"34":51,"35":33,"36":5,"37":28,"38":4,"39":4,"40":42,"41":42,"42":42},"f":{"0":29,"1":7,"2":51},"b":{"0":[3,58],"1":[5,36],"2":[4,25],"3":[3,46],"4":[4,42],"5":[5,28],"6":[33,5],"7":[4,24]},"meta":{"lastBranch":8,"lastFunction":3,"lastStatement":43,"seen":{"f:17:4:17:13":0,"s:18:42:18:Infinity":0,"s:21:24:21:Infinity":1,"s:22:8:32:Infinity":2,"b:23:12:31:Infinity:29:19:31:Infinity":0,"s:23:12:31:Infinity":3,"s:24:16:28:Infinity":4,"s:30:16:30:Infinity":5,"s:35:8:45:Infinity":6,"s:36:12:44:Infinity":7,"b:37:16:43:Infinity:undefined:undefined:undefined:undefined":1,"s:37:16:43:Infinity":8,"s:38:20:42:Infinity":9,"s:49:39:49:Infinity":10,"f:49:51:49:56":1,"s:49:56:49:87":11,"b:51:8:56:Infinity:undefined:undefined:undefined:undefined":2,"s:51:8:56:Infinity":12,"s:52:12:55:Infinity":13,"s:59:30:59:Infinity":14,"s:60:8:62:Infinity":15,"s:61:12:61:Infinity":16,"s:64:24:64:Infinity":17,"s:65:31:65:Infinity":18,"s:67:8:88:Infinity":19,"b:68:12:70:Infinity:undefined:undefined:undefined:undefined":3,"s:68:12:70:Infinity":20,"s:69:16:69:Infinity":21,"s:72:35:72:Infinity":22,"b:73:12:87:Infinity:undefined:undefined:undefined:undefined":4,"s:73:12:87:Infinity":23,"s:76:35:76:Infinity":24,"s:77:40:77:Infinity":25,"s:78:34:78:Infinity":26,"s:80:16:84:Infinity":27,"s:86:16:86:Infinity":28,"s:90:8:93:Infinity":29,"f:96:12:96:Infinity":2,"s:103:8:103:Infinity":30,"s:104:8:104:Infinity":31,"s:105:8:105:Infinity":32,"s:107:29:107:Infinity":33,"s:108:8:120:Infinity":34,"b:109:12:119:Infinity:114:12:119:Infinity":5,"s:109:12:119:Infinity":35,"b:110:16:110:Infinity:111:16:111:Infinity":6,"s:113:16:113:Infinity":36,"b:114:12:119:Infinity:undefined:undefined:undefined:undefined":7,"s:114:12:119:Infinity":37,"s:117:16:117:Infinity":38,"s:118:16:118:Infinity":39,"s:122:8:122:Infinity":40,"s:123:8:123:Infinity":41,"s:124:8:124:Infinity":42}}}
2
- ,"/home/runner/work/task-runner/task-runner/src/TaskRunner.ts": {"path":"/home/runner/work/task-runner/task-runner/src/TaskRunner.ts","statementMap":{"0":{"start":{"line":54,"column":20},"end":{"line":54,"column":null}},"1":{"start":{"line":55,"column":45},"end":{"line":55,"column":null}},"2":{"start":{"line":56,"column":22},"end":{"line":56,"column":null}},"3":{"start":{"line":61,"column":22},"end":{"line":61,"column":41}},"4":{"start":{"line":72,"column":4},"end":{"line":76,"column":null}},"5":{"start":{"line":75,"column":6},"end":{"line":75,"column":null}},"6":{"start":{"line":78,"column":5},"end":{"line":80,"column":null}},"7":{"start":{"line":92,"column":4},"end":{"line":96,"column":null}},"8":{"start":{"line":93,"column":7},"end":{"line":95,"column":null}},"9":{"start":{"line":108,"column":22},"end":{"line":108,"column":null}},"10":{"start":{"line":111,"column":4},"end":{"line":123,"column":null}},"11":{"start":{"line":112,"column":6},"end":{"line":122,"column":null}},"12":{"start":{"line":113,"column":8},"end":{"line":121,"column":null}},"13":{"start":{"line":114,"column":10},"end":{"line":114,"column":null}},"14":{"start":{"line":117,"column":10},"end":{"line":120,"column":null}},"15":{"start":{"line":135,"column":33},"end":{"line":140,"column":null}},"16":{"start":{"line":136,"column":34},"end":{"line":139,"column":8}},"17":{"start":{"line":142,"column":29},"end":{"line":142,"column":null}},"18":{"start":{"line":143,"column":4},"end":{"line":179,"column":null}},"19":{"start":{"line":145,"column":28},"end":{"line":145,"column":null}},"20":{"start":{"line":146,"column":37},"end":{"line":146,"column":null}},"21":{"start":{"line":148,"column":6},"end":{"line":170,"column":null}},"22":{"start":{"line":149,"column":8},"end":{"line":149,"column":null}},"23":{"start":{"line":150,"column":8},"end":{"line":169,"column":null}},"24":{"start":{"line":153,"column":26},"end":{"line":153,"column":null}},"25":{"start":{"line":155,"column":12},"end":{"line":155,"column":null}},"26":{"start":{"line":155,"column":32},"end":{"line":155,"column":52}},"27":{"start":{"line":156,"column":12},"end":{"line":156,"column":null}},"28":{"start":{"line":160,"column":22},"end":{"line":160,"column":null}},"29":{"start":{"line":161,"column":12},"end":{"line":161,"column":null}},"30":{"start":{"line":162,"column":12},"end":{"line":162,"column":null}},"31":{"start":{"line":165,"column":22},"end":{"line":165,"column":null}},"32":{"start":{"line":166,"column":12},"end":{"line":166,"column":null}},"33":{"start":{"line":167,"column":12},"end":{"line":167,"column":null}},"34":{"start":{"line":173,"column":23},"end":{"line":173,"column":null}},"35":{"start":{"line":174,"column":28},"end":{"line":174,"column":null}},"36":{"start":{"line":175,"column":30},"end":{"line":175,"column":null}},"37":{"start":{"line":178,"column":6},"end":{"line":178,"column":null}},"38":{"start":{"line":181,"column":4},"end":{"line":181,"column":null}},"39":{"start":{"line":183,"column":20},"end":{"line":183,"column":null}},"40":{"start":{"line":185,"column":4},"end":{"line":232,"column":null}},"41":{"start":{"line":186,"column":27},"end":{"line":188,"column":null}},"42":{"start":{"line":187,"column":18},"end":{"line":187,"column":null}},"43":{"start":{"line":190,"column":25},"end":{"line":195,"column":null}},"44":{"start":{"line":191,"column":21},"end":{"line":191,"column":null}},"45":{"start":{"line":192,"column":8},"end":{"line":194,"column":null}},"46":{"start":{"line":193,"column":19},"end":{"line":193,"column":null}},"47":{"start":{"line":198,"column":6},"end":{"line":211,"column":null}},"48":{"start":{"line":199,"column":21},"end":{"line":199,"column":null}},"49":{"start":{"line":200,"column":26},"end":{"line":202,"column":null}},"50":{"start":{"line":201,"column":19},"end":{"line":201,"column":null}},"51":{"start":{"line":203,"column":8},"end":{"line":210,"column":null}},"52":{"start":{"line":204,"column":37},"end":{"line":207,"column":null}},"53":{"start":{"line":208,"column":10},"end":{"line":208,"column":null}},"54":{"start":{"line":209,"column":10},"end":{"line":209,"column":null}},"55":{"start":{"line":213,"column":6},"end":{"line":231,"column":null}},"56":{"start":{"line":215,"column":10},"end":{"line":215,"column":null}},"57":{"start":{"line":216,"column":10},"end":{"line":216,"column":null}},"58":{"start":{"line":217,"column":10},"end":{"line":229,"column":null}},"59":{"start":{"line":218,"column":27},"end":{"line":218,"column":null}},"60":{"start":{"line":219,"column":12},"end":{"line":219,"column":null}},"61":{"start":{"line":221,"column":12},"end":{"line":224,"column":null}},"62":{"start":{"line":226,"column":12},"end":{"line":226,"column":null}},"63":{"start":{"line":227,"column":27},"end":{"line":227,"column":null}},"64":{"start":{"line":228,"column":12},"end":{"line":228,"column":null}},"65":{"start":{"line":234,"column":4},"end":{"line":234,"column":null}},"66":{"start":{"line":235,"column":4},"end":{"line":235,"column":null}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":61,"column":2},"end":{"line":61,"column":22}},"loc":{"start":{"line":61,"column":41},"end":{"line":61,"column":null}},"line":61},"1":{"name":"(anonymous_1)","decl":{"start":{"line":68,"column":9},"end":{"line":68,"column":null}},"loc":{"start":{"line":71,"column":10},"end":{"line":81,"column":null}},"line":71},"2":{"name":"(anonymous_2)","decl":{"start":{"line":88,"column":9},"end":{"line":88,"column":null}},"loc":{"start":{"line":91,"column":10},"end":{"line":97,"column":null}},"line":91},"3":{"name":"(anonymous_3)","decl":{"start":{"line":104,"column":10},"end":{"line":104,"column":null}},"loc":{"start":{"line":107,"column":10},"end":{"line":124,"column":null}},"line":107},"4":{"name":"(anonymous_4)","decl":{"start":{"line":133,"column":8},"end":{"line":133,"column":16}},"loc":{"start":{"line":133,"column":79},"end":{"line":236,"column":null}},"line":133},"5":{"name":"(anonymous_5)","decl":{"start":{"line":136,"column":23},"end":{"line":136,"column":24}},"loc":{"start":{"line":136,"column":34},"end":{"line":139,"column":8}},"line":136},"6":{"name":"(anonymous_6)","decl":{"start":{"line":155,"column":25},"end":{"line":155,"column":26}},"loc":{"start":{"line":155,"column":32},"end":{"line":155,"column":52}},"line":155},"7":{"name":"(anonymous_7)","decl":{"start":{"line":187,"column":8},"end":{"line":187,"column":9}},"loc":{"start":{"line":187,"column":18},"end":{"line":187,"column":null}},"line":187},"8":{"name":"(anonymous_8)","decl":{"start":{"line":190,"column":45},"end":{"line":190,"column":46}},"loc":{"start":{"line":190,"column":55},"end":{"line":195,"column":7}},"line":190},"9":{"name":"(anonymous_9)","decl":{"start":{"line":193,"column":10},"end":{"line":193,"column":11}},"loc":{"start":{"line":193,"column":19},"end":{"line":193,"column":null}},"line":193},"10":{"name":"(anonymous_10)","decl":{"start":{"line":201,"column":10},"end":{"line":201,"column":11}},"loc":{"start":{"line":201,"column":19},"end":{"line":201,"column":null}},"line":201},"11":{"name":"(anonymous_11)","decl":{"start":{"line":214,"column":23},"end":{"line":214,"column":30}},"loc":{"start":{"line":214,"column":39},"end":{"line":230,"column":9}},"line":214}},"branchMap":{"0":{"loc":{"start":{"line":72,"column":4},"end":{"line":76,"column":null}},"type":"if","locations":[{"start":{"line":72,"column":4},"end":{"line":76,"column":null}},{"start":{},"end":{}}],"line":72},"1":{"loc":{"start":{"line":92,"column":4},"end":{"line":96,"column":null}},"type":"if","locations":[{"start":{"line":92,"column":4},"end":{"line":96,"column":null}},{"start":{},"end":{}}],"line":92},"2":{"loc":{"start":{"line":111,"column":4},"end":{"line":123,"column":null}},"type":"if","locations":[{"start":{"line":111,"column":4},"end":{"line":123,"column":null}},{"start":{},"end":{}}],"line":111},"3":{"loc":{"start":{"line":138,"column":22},"end":{"line":138,"column":null}},"type":"binary-expr","locations":[{"start":{"line":138,"column":22},"end":{"line":138,"column":43}},{"start":{"line":138,"column":43},"end":{"line":138,"column":null}}],"line":138},"4":{"loc":{"start":{"line":143,"column":4},"end":{"line":179,"column":null}},"type":"if","locations":[{"start":{"line":143,"column":4},"end":{"line":179,"column":null}},{"start":{},"end":{}}],"line":143},"5":{"loc":{"start":{"line":150,"column":8},"end":{"line":169,"column":null}},"type":"switch","locations":[{"start":{"line":151,"column":10},"end":{"line":157,"column":null}},{"start":{"line":158,"column":10},"end":{"line":163,"column":null}},{"start":{"line":164,"column":10},"end":{"line":168,"column":null}}],"line":150},"6":{"loc":{"start":{"line":187,"column":18},"end":{"line":187,"column":null}},"type":"binary-expr","locations":[{"start":{"line":187,"column":18},"end":{"line":187,"column":45}},{"start":{"line":187,"column":45},"end":{"line":187,"column":null}}],"line":187},"7":{"loc":{"start":{"line":191,"column":21},"end":{"line":191,"column":null}},"type":"binary-expr","locations":[{"start":{"line":191,"column":21},"end":{"line":191,"column":42}},{"start":{"line":191,"column":42},"end":{"line":191,"column":null}}],"line":191},"8":{"loc":{"start":{"line":193,"column":19},"end":{"line":193,"column":null}},"type":"binary-expr","locations":[{"start":{"line":193,"column":19},"end":{"line":193,"column":39}},{"start":{"line":193,"column":39},"end":{"line":193,"column":null}}],"line":193},"9":{"loc":{"start":{"line":199,"column":21},"end":{"line":199,"column":null}},"type":"binary-expr","locations":[{"start":{"line":199,"column":21},"end":{"line":199,"column":42}},{"start":{"line":199,"column":42},"end":{"line":199,"column":null}}],"line":199},"10":{"loc":{"start":{"line":201,"column":19},"end":{"line":201,"column":null}},"type":"binary-expr","locations":[{"start":{"line":201,"column":19},"end":{"line":201,"column":39}},{"start":{"line":201,"column":39},"end":{"line":201,"column":null}}],"line":201},"11":{"loc":{"start":{"line":203,"column":8},"end":{"line":210,"column":null}},"type":"if","locations":[{"start":{"line":203,"column":8},"end":{"line":210,"column":null}},{"start":{},"end":{}}],"line":203},"12":{"loc":{"start":{"line":223,"column":21},"end":{"line":223,"column":null}},"type":"cond-expr","locations":[{"start":{"line":223,"column":42},"end":{"line":223,"column":54}},{"start":{"line":223,"column":54},"end":{"line":223,"column":null}}],"line":223}},"s":{"0":22,"1":22,"2":22,"3":22,"4":12,"5":11,"6":12,"7":2,"8":1,"9":88,"10":88,"11":13,"12":13,"13":13,"14":1,"15":21,"16":43,"17":21,"18":21,"19":6,"20":6,"21":6,"22":6,"23":6,"24":2,"25":2,"26":6,"27":2,"28":2,"29":2,"30":2,"31":2,"32":2,"33":2,"34":6,"35":6,"36":6,"37":6,"38":15,"39":15,"40":15,"41":22,"42":71,"43":22,"44":49,"45":49,"46":35,"47":22,"48":49,"49":49,"50":39,"51":49,"52":6,"53":6,"54":6,"55":22,"56":26,"57":26,"58":26,"59":26,"60":24,"61":2,"62":26,"63":26,"64":26,"65":15,"66":15},"f":{"0":22,"1":12,"2":2,"3":88,"4":21,"5":43,"6":6,"7":71,"8":49,"9":35,"10":39,"11":26},"b":{"0":[11,1],"1":[1,1],"2":[13,75],"3":[43,21],"4":[6,15],"5":[2,2,2],"6":[71,49],"7":[49,18],"8":[35,17],"9":[49,18],"10":[39,18],"11":[6,43],"12":[1,1]},"meta":{"lastBranch":13,"lastFunction":12,"lastStatement":67,"seen":{"s:54:20:54:Infinity":0,"s:55:45:55:Infinity":1,"s:56:22:56:Infinity":2,"f:61:2:61:22":0,"s:61:22:61:41":3,"f:68:9:68:Infinity":1,"b:72:4:76:Infinity:undefined:undefined:undefined:undefined":0,"s:72:4:76:Infinity":4,"s:75:6:75:Infinity":5,"s:78:5:80:Infinity":6,"f:88:9:88:Infinity":2,"b:92:4:96:Infinity:undefined:undefined:undefined:undefined":1,"s:92:4:96:Infinity":7,"s:93:7:95:Infinity":8,"f:104:10:104:Infinity":3,"s:108:22:108:Infinity":9,"b:111:4:123:Infinity:undefined:undefined:undefined:undefined":2,"s:111:4:123:Infinity":10,"s:112:6:122:Infinity":11,"s:113:8:121:Infinity":12,"s:114:10:114:Infinity":13,"s:117:10:120:Infinity":14,"f:133:8:133:16":4,"s:135:33:140:Infinity":15,"f:136:23:136:24":5,"s:136:34:139:8":16,"b:138:22:138:43:138:43:138:Infinity":3,"s:142:29:142:Infinity":17,"b:143:4:179:Infinity:undefined:undefined:undefined:undefined":4,"s:143:4:179:Infinity":18,"s:145:28:145:Infinity":19,"s:146:37:146:Infinity":20,"s:148:6:170:Infinity":21,"s:149:8:149:Infinity":22,"b:151:10:157:Infinity:158:10:163:Infinity:164:10:168:Infinity":5,"s:150:8:169:Infinity":23,"s:153:26:153:Infinity":24,"s:155:12:155:Infinity":25,"f:155:25:155:26":6,"s:155:32:155:52":26,"s:156:12:156:Infinity":27,"s:160:22:160:Infinity":28,"s:161:12:161:Infinity":29,"s:162:12:162:Infinity":30,"s:165:22:165:Infinity":31,"s:166:12:166:Infinity":32,"s:167:12:167:Infinity":33,"s:173:23:173:Infinity":34,"s:174:28:174:Infinity":35,"s:175:30:175:Infinity":36,"s:178:6:178:Infinity":37,"s:181:4:181:Infinity":38,"s:183:20:183:Infinity":39,"s:185:4:232:Infinity":40,"s:186:27:188:Infinity":41,"f:187:8:187:9":7,"s:187:18:187:Infinity":42,"b:187:18:187:45:187:45:187:Infinity":6,"s:190:25:195:Infinity":43,"f:190:45:190:46":8,"s:191:21:191:Infinity":44,"b:191:21:191:42:191:42:191:Infinity":7,"s:192:8:194:Infinity":45,"f:193:10:193:11":9,"s:193:19:193:Infinity":46,"b:193:19:193:39:193:39:193:Infinity":8,"s:198:6:211:Infinity":47,"s:199:21:199:Infinity":48,"b:199:21:199:42:199:42:199:Infinity":9,"s:200:26:202:Infinity":49,"f:201:10:201:11":10,"s:201:19:201:Infinity":50,"b:201:19:201:39:201:39:201:Infinity":10,"b:203:8:210:Infinity:undefined:undefined:undefined:undefined":11,"s:203:8:210:Infinity":51,"s:204:37:207:Infinity":52,"s:208:10:208:Infinity":53,"s:209:10:209:Infinity":54,"s:213:6:231:Infinity":55,"f:214:23:214:30":11,"s:215:10:215:Infinity":56,"s:216:10:216:Infinity":57,"s:217:10:229:Infinity":58,"s:218:27:218:Infinity":59,"s:219:12:219:Infinity":60,"s:221:12:224:Infinity":61,"b:223:42:223:54:223:54:223:Infinity":12,"s:226:12:226:Infinity":62,"s:227:27:227:Infinity":63,"s:228:12:228:Infinity":64,"s:234:4:234:Infinity":65,"s:235:4:235:Infinity":66}}}
2
+ ,"/home/runner/work/task-runner/task-runner/src/TaskRunner.ts": {"path":"/home/runner/work/task-runner/task-runner/src/TaskRunner.ts","statementMap":{"0":{"start":{"line":54,"column":20},"end":{"line":54,"column":null}},"1":{"start":{"line":55,"column":45},"end":{"line":55,"column":null}},"2":{"start":{"line":56,"column":22},"end":{"line":56,"column":null}},"3":{"start":{"line":61,"column":22},"end":{"line":61,"column":41}},"4":{"start":{"line":72,"column":4},"end":{"line":76,"column":null}},"5":{"start":{"line":75,"column":6},"end":{"line":75,"column":null}},"6":{"start":{"line":78,"column":5},"end":{"line":80,"column":null}},"7":{"start":{"line":92,"column":4},"end":{"line":96,"column":null}},"8":{"start":{"line":93,"column":7},"end":{"line":95,"column":null}},"9":{"start":{"line":108,"column":22},"end":{"line":108,"column":null}},"10":{"start":{"line":111,"column":4},"end":{"line":123,"column":null}},"11":{"start":{"line":112,"column":6},"end":{"line":122,"column":null}},"12":{"start":{"line":113,"column":8},"end":{"line":121,"column":null}},"13":{"start":{"line":114,"column":10},"end":{"line":114,"column":null}},"14":{"start":{"line":117,"column":10},"end":{"line":120,"column":null}},"15":{"start":{"line":135,"column":33},"end":{"line":140,"column":null}},"16":{"start":{"line":136,"column":34},"end":{"line":139,"column":8}},"17":{"start":{"line":142,"column":29},"end":{"line":142,"column":null}},"18":{"start":{"line":143,"column":4},"end":{"line":179,"column":null}},"19":{"start":{"line":145,"column":28},"end":{"line":145,"column":null}},"20":{"start":{"line":146,"column":37},"end":{"line":146,"column":null}},"21":{"start":{"line":148,"column":6},"end":{"line":170,"column":null}},"22":{"start":{"line":149,"column":8},"end":{"line":149,"column":null}},"23":{"start":{"line":150,"column":8},"end":{"line":169,"column":null}},"24":{"start":{"line":153,"column":26},"end":{"line":153,"column":null}},"25":{"start":{"line":155,"column":12},"end":{"line":155,"column":null}},"26":{"start":{"line":155,"column":32},"end":{"line":155,"column":52}},"27":{"start":{"line":156,"column":12},"end":{"line":156,"column":null}},"28":{"start":{"line":160,"column":22},"end":{"line":160,"column":null}},"29":{"start":{"line":161,"column":12},"end":{"line":161,"column":null}},"30":{"start":{"line":162,"column":12},"end":{"line":162,"column":null}},"31":{"start":{"line":165,"column":22},"end":{"line":165,"column":null}},"32":{"start":{"line":166,"column":12},"end":{"line":166,"column":null}},"33":{"start":{"line":167,"column":12},"end":{"line":167,"column":null}},"34":{"start":{"line":173,"column":23},"end":{"line":173,"column":null}},"35":{"start":{"line":174,"column":28},"end":{"line":174,"column":null}},"36":{"start":{"line":175,"column":30},"end":{"line":175,"column":null}},"37":{"start":{"line":178,"column":6},"end":{"line":178,"column":null}},"38":{"start":{"line":181,"column":4},"end":{"line":181,"column":null}},"39":{"start":{"line":183,"column":20},"end":{"line":183,"column":null}},"40":{"start":{"line":184,"column":30},"end":{"line":184,"column":null}},"41":{"start":{"line":187,"column":32},"end":{"line":244,"column":null}},"42":{"start":{"line":188,"column":27},"end":{"line":190,"column":null}},"43":{"start":{"line":189,"column":18},"end":{"line":189,"column":null}},"44":{"start":{"line":193,"column":6},"end":{"line":206,"column":null}},"45":{"start":{"line":194,"column":21},"end":{"line":194,"column":null}},"46":{"start":{"line":195,"column":26},"end":{"line":197,"column":null}},"47":{"start":{"line":196,"column":19},"end":{"line":196,"column":null}},"48":{"start":{"line":198,"column":8},"end":{"line":205,"column":null}},"49":{"start":{"line":199,"column":37},"end":{"line":202,"column":null}},"50":{"start":{"line":203,"column":10},"end":{"line":203,"column":null}},"51":{"start":{"line":204,"column":10},"end":{"line":204,"column":null}},"52":{"start":{"line":209,"column":25},"end":{"line":215,"column":null}},"53":{"start":{"line":210,"column":8},"end":{"line":210,"column":null}},"54":{"start":{"line":210,"column":67},"end":{"line":210,"column":null}},"55":{"start":{"line":211,"column":21},"end":{"line":211,"column":null}},"56":{"start":{"line":212,"column":8},"end":{"line":214,"column":null}},"57":{"start":{"line":213,"column":19},"end":{"line":213,"column":null}},"58":{"start":{"line":218,"column":6},"end":{"line":243,"column":null}},"59":{"start":{"line":219,"column":8},"end":{"line":219,"column":null}},"60":{"start":{"line":220,"column":8},"end":{"line":220,"column":null}},"61":{"start":{"line":222,"column":14},"end":{"line":236,"column":null}},"62":{"start":{"line":223,"column":10},"end":{"line":235,"column":null}},"63":{"start":{"line":224,"column":27},"end":{"line":224,"column":null}},"64":{"start":{"line":225,"column":12},"end":{"line":225,"column":null}},"65":{"start":{"line":227,"column":12},"end":{"line":230,"column":null}},"66":{"start":{"line":232,"column":12},"end":{"line":232,"column":null}},"67":{"start":{"line":233,"column":27},"end":{"line":233,"column":null}},"68":{"start":{"line":234,"column":12},"end":{"line":234,"column":null}},"69":{"start":{"line":239,"column":31},"end":{"line":241,"column":null}},"70":{"start":{"line":240,"column":10},"end":{"line":240,"column":null}},"71":{"start":{"line":242,"column":8},"end":{"line":242,"column":null}},"72":{"start":{"line":247,"column":4},"end":{"line":247,"column":null}},"73":{"start":{"line":249,"column":4},"end":{"line":254,"column":null}},"74":{"start":{"line":251,"column":6},"end":{"line":251,"column":null}},"75":{"start":{"line":253,"column":6},"end":{"line":253,"column":null}},"76":{"start":{"line":256,"column":4},"end":{"line":256,"column":null}},"77":{"start":{"line":257,"column":4},"end":{"line":257,"column":null}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":61,"column":2},"end":{"line":61,"column":22}},"loc":{"start":{"line":61,"column":41},"end":{"line":61,"column":null}},"line":61},"1":{"name":"(anonymous_1)","decl":{"start":{"line":68,"column":9},"end":{"line":68,"column":null}},"loc":{"start":{"line":71,"column":10},"end":{"line":81,"column":null}},"line":71},"2":{"name":"(anonymous_2)","decl":{"start":{"line":88,"column":9},"end":{"line":88,"column":null}},"loc":{"start":{"line":91,"column":10},"end":{"line":97,"column":null}},"line":91},"3":{"name":"(anonymous_3)","decl":{"start":{"line":104,"column":10},"end":{"line":104,"column":null}},"loc":{"start":{"line":107,"column":10},"end":{"line":124,"column":null}},"line":107},"4":{"name":"(anonymous_4)","decl":{"start":{"line":133,"column":8},"end":{"line":133,"column":16}},"loc":{"start":{"line":133,"column":79},"end":{"line":258,"column":null}},"line":133},"5":{"name":"(anonymous_5)","decl":{"start":{"line":136,"column":23},"end":{"line":136,"column":24}},"loc":{"start":{"line":136,"column":34},"end":{"line":139,"column":8}},"line":136},"6":{"name":"(anonymous_6)","decl":{"start":{"line":155,"column":25},"end":{"line":155,"column":26}},"loc":{"start":{"line":155,"column":32},"end":{"line":155,"column":52}},"line":155},"7":{"name":"(anonymous_7)","decl":{"start":{"line":187,"column":32},"end":{"line":187,"column":38}},"loc":{"start":{"line":187,"column":38},"end":{"line":244,"column":null}},"line":187},"8":{"name":"(anonymous_8)","decl":{"start":{"line":189,"column":8},"end":{"line":189,"column":9}},"loc":{"start":{"line":189,"column":18},"end":{"line":189,"column":null}},"line":189},"9":{"name":"(anonymous_9)","decl":{"start":{"line":196,"column":10},"end":{"line":196,"column":11}},"loc":{"start":{"line":196,"column":19},"end":{"line":196,"column":null}},"line":196},"10":{"name":"(anonymous_10)","decl":{"start":{"line":209,"column":38},"end":{"line":209,"column":39}},"loc":{"start":{"line":209,"column":48},"end":{"line":215,"column":7}},"line":209},"11":{"name":"(anonymous_11)","decl":{"start":{"line":213,"column":10},"end":{"line":213,"column":11}},"loc":{"start":{"line":213,"column":19},"end":{"line":213,"column":null}},"line":213},"12":{"name":"(anonymous_12)","decl":{"start":{"line":222,"column":29},"end":{"line":222,"column":41}},"loc":{"start":{"line":222,"column":41},"end":{"line":236,"column":11}},"line":222},"13":{"name":"(anonymous_13)","decl":{"start":{"line":239,"column":48},"end":{"line":239,"column":54}},"loc":{"start":{"line":239,"column":54},"end":{"line":241,"column":9}},"line":239}},"branchMap":{"0":{"loc":{"start":{"line":72,"column":4},"end":{"line":76,"column":null}},"type":"if","locations":[{"start":{"line":72,"column":4},"end":{"line":76,"column":null}},{"start":{},"end":{}}],"line":72},"1":{"loc":{"start":{"line":92,"column":4},"end":{"line":96,"column":null}},"type":"if","locations":[{"start":{"line":92,"column":4},"end":{"line":96,"column":null}},{"start":{},"end":{}}],"line":92},"2":{"loc":{"start":{"line":111,"column":4},"end":{"line":123,"column":null}},"type":"if","locations":[{"start":{"line":111,"column":4},"end":{"line":123,"column":null}},{"start":{},"end":{}}],"line":111},"3":{"loc":{"start":{"line":138,"column":22},"end":{"line":138,"column":null}},"type":"binary-expr","locations":[{"start":{"line":138,"column":22},"end":{"line":138,"column":43}},{"start":{"line":138,"column":43},"end":{"line":138,"column":null}}],"line":138},"4":{"loc":{"start":{"line":143,"column":4},"end":{"line":179,"column":null}},"type":"if","locations":[{"start":{"line":143,"column":4},"end":{"line":179,"column":null}},{"start":{},"end":{}}],"line":143},"5":{"loc":{"start":{"line":150,"column":8},"end":{"line":169,"column":null}},"type":"switch","locations":[{"start":{"line":151,"column":10},"end":{"line":157,"column":null}},{"start":{"line":158,"column":10},"end":{"line":163,"column":null}},{"start":{"line":164,"column":10},"end":{"line":168,"column":null}}],"line":150},"6":{"loc":{"start":{"line":189,"column":18},"end":{"line":189,"column":null}},"type":"binary-expr","locations":[{"start":{"line":189,"column":18},"end":{"line":189,"column":45}},{"start":{"line":189,"column":45},"end":{"line":189,"column":null}}],"line":189},"7":{"loc":{"start":{"line":194,"column":21},"end":{"line":194,"column":null}},"type":"binary-expr","locations":[{"start":{"line":194,"column":21},"end":{"line":194,"column":42}},{"start":{"line":194,"column":42},"end":{"line":194,"column":null}}],"line":194},"8":{"loc":{"start":{"line":196,"column":19},"end":{"line":196,"column":null}},"type":"binary-expr","locations":[{"start":{"line":196,"column":19},"end":{"line":196,"column":39}},{"start":{"line":196,"column":39},"end":{"line":196,"column":null}}],"line":196},"9":{"loc":{"start":{"line":198,"column":8},"end":{"line":205,"column":null}},"type":"if","locations":[{"start":{"line":198,"column":8},"end":{"line":205,"column":null}},{"start":{},"end":{}}],"line":198},"10":{"loc":{"start":{"line":210,"column":8},"end":{"line":210,"column":null}},"type":"if","locations":[{"start":{"line":210,"column":8},"end":{"line":210,"column":null}},{"start":{},"end":{}}],"line":210},"11":{"loc":{"start":{"line":210,"column":12},"end":{"line":210,"column":67}},"type":"binary-expr","locations":[{"start":{"line":210,"column":12},"end":{"line":210,"column":38}},{"start":{"line":210,"column":38},"end":{"line":210,"column":67}}],"line":210},"12":{"loc":{"start":{"line":211,"column":21},"end":{"line":211,"column":null}},"type":"binary-expr","locations":[{"start":{"line":211,"column":21},"end":{"line":211,"column":42}},{"start":{"line":211,"column":42},"end":{"line":211,"column":null}}],"line":211},"13":{"loc":{"start":{"line":213,"column":19},"end":{"line":213,"column":null}},"type":"binary-expr","locations":[{"start":{"line":213,"column":19},"end":{"line":213,"column":39}},{"start":{"line":213,"column":39},"end":{"line":213,"column":null}}],"line":213},"14":{"loc":{"start":{"line":229,"column":21},"end":{"line":229,"column":null}},"type":"cond-expr","locations":[{"start":{"line":229,"column":42},"end":{"line":229,"column":54}},{"start":{"line":229,"column":54},"end":{"line":229,"column":null}}],"line":229},"15":{"loc":{"start":{"line":249,"column":11},"end":{"line":249,"column":70}},"type":"binary-expr","locations":[{"start":{"line":249,"column":11},"end":{"line":249,"column":42}},{"start":{"line":249,"column":42},"end":{"line":249,"column":70}}],"line":249}},"s":{"0":22,"1":22,"2":22,"3":22,"4":12,"5":11,"6":12,"7":2,"8":1,"9":88,"10":88,"11":13,"12":13,"13":13,"14":1,"15":21,"16":43,"17":21,"18":21,"19":6,"20":6,"21":6,"22":6,"23":6,"24":2,"25":2,"26":6,"27":2,"28":2,"29":2,"30":2,"31":2,"32":2,"33":2,"34":6,"35":6,"36":6,"37":6,"38":15,"39":15,"40":15,"41":15,"42":35,"43":98,"44":35,"45":49,"46":49,"47":39,"48":49,"49":6,"50":6,"51":6,"52":35,"53":98,"54":55,"55":43,"56":98,"57":29,"58":35,"59":26,"60":26,"61":26,"62":26,"63":26,"64":24,"65":2,"66":26,"67":26,"68":26,"69":26,"70":26,"71":26,"72":15,"73":15,"74":20,"75":20,"76":15,"77":15},"f":{"0":22,"1":12,"2":2,"3":88,"4":21,"5":43,"6":6,"7":35,"8":98,"9":39,"10":98,"11":29,"12":26,"13":26},"b":{"0":[11,1],"1":[1,1],"2":[13,75],"3":[43,21],"4":[6,15],"5":[2,2,2],"6":[98,50],"7":[49,18],"8":[39,18],"9":[6,43],"10":[55,43],"11":[98,44],"12":[43,18],"13":[29,12],"14":[1,1],"15":[15,20]},"meta":{"lastBranch":16,"lastFunction":14,"lastStatement":78,"seen":{"s:54:20:54:Infinity":0,"s:55:45:55:Infinity":1,"s:56:22:56:Infinity":2,"f:61:2:61:22":0,"s:61:22:61:41":3,"f:68:9:68:Infinity":1,"b:72:4:76:Infinity:undefined:undefined:undefined:undefined":0,"s:72:4:76:Infinity":4,"s:75:6:75:Infinity":5,"s:78:5:80:Infinity":6,"f:88:9:88:Infinity":2,"b:92:4:96:Infinity:undefined:undefined:undefined:undefined":1,"s:92:4:96:Infinity":7,"s:93:7:95:Infinity":8,"f:104:10:104:Infinity":3,"s:108:22:108:Infinity":9,"b:111:4:123:Infinity:undefined:undefined:undefined:undefined":2,"s:111:4:123:Infinity":10,"s:112:6:122:Infinity":11,"s:113:8:121:Infinity":12,"s:114:10:114:Infinity":13,"s:117:10:120:Infinity":14,"f:133:8:133:16":4,"s:135:33:140:Infinity":15,"f:136:23:136:24":5,"s:136:34:139:8":16,"b:138:22:138:43:138:43:138:Infinity":3,"s:142:29:142:Infinity":17,"b:143:4:179:Infinity:undefined:undefined:undefined:undefined":4,"s:143:4:179:Infinity":18,"s:145:28:145:Infinity":19,"s:146:37:146:Infinity":20,"s:148:6:170:Infinity":21,"s:149:8:149:Infinity":22,"b:151:10:157:Infinity:158:10:163:Infinity:164:10:168:Infinity":5,"s:150:8:169:Infinity":23,"s:153:26:153:Infinity":24,"s:155:12:155:Infinity":25,"f:155:25:155:26":6,"s:155:32:155:52":26,"s:156:12:156:Infinity":27,"s:160:22:160:Infinity":28,"s:161:12:161:Infinity":29,"s:162:12:162:Infinity":30,"s:165:22:165:Infinity":31,"s:166:12:166:Infinity":32,"s:167:12:167:Infinity":33,"s:173:23:173:Infinity":34,"s:174:28:174:Infinity":35,"s:175:30:175:Infinity":36,"s:178:6:178:Infinity":37,"s:181:4:181:Infinity":38,"s:183:20:183:Infinity":39,"s:184:30:184:Infinity":40,"s:187:32:244:Infinity":41,"f:187:32:187:38":7,"s:188:27:190:Infinity":42,"f:189:8:189:9":8,"s:189:18:189:Infinity":43,"b:189:18:189:45:189:45:189:Infinity":6,"s:193:6:206:Infinity":44,"s:194:21:194:Infinity":45,"b:194:21:194:42:194:42:194:Infinity":7,"s:195:26:197:Infinity":46,"f:196:10:196:11":9,"s:196:19:196:Infinity":47,"b:196:19:196:39:196:39:196:Infinity":8,"b:198:8:205:Infinity:undefined:undefined:undefined:undefined":9,"s:198:8:205:Infinity":48,"s:199:37:202:Infinity":49,"s:203:10:203:Infinity":50,"s:204:10:204:Infinity":51,"s:209:25:215:Infinity":52,"f:209:38:209:39":10,"b:210:8:210:Infinity:undefined:undefined:undefined:undefined":10,"s:210:8:210:Infinity":53,"b:210:12:210:38:210:38:210:67":11,"s:210:67:210:Infinity":54,"s:211:21:211:Infinity":55,"b:211:21:211:42:211:42:211:Infinity":12,"s:212:8:214:Infinity":56,"f:213:10:213:11":11,"s:213:19:213:Infinity":57,"b:213:19:213:39:213:39:213:Infinity":13,"s:218:6:243:Infinity":58,"s:219:8:219:Infinity":59,"s:220:8:220:Infinity":60,"s:222:14:236:Infinity":61,"f:222:29:222:41":12,"s:223:10:235:Infinity":62,"s:224:27:224:Infinity":63,"s:225:12:225:Infinity":64,"s:227:12:230:Infinity":65,"b:229:42:229:54:229:54:229:Infinity":14,"s:232:12:232:Infinity":66,"s:233:27:233:Infinity":67,"s:234:12:234:Infinity":68,"s:239:31:241:Infinity":69,"f:239:48:239:54":13,"s:240:10:240:Infinity":70,"s:242:8:242:Infinity":71,"s:247:4:247:Infinity":72,"s:249:4:254:Infinity":73,"b:249:11:249:42:249:42:249:70":15,"s:251:6:251:Infinity":74,"s:253:6:253:Infinity":75,"s:256:4:256:Infinity":76,"s:257:4:257:Infinity":77}}}
3
3
  }
@@ -25,28 +25,28 @@
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'>110/110</span>
28
+ <span class='fraction'>121/121</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>43/43</span>
35
+ <span class='fraction'>49/49</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>15/15</span>
42
+ <span class='fraction'>17/17</span>
43
43
  </div>
44
44
 
45
45
 
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'>108/108</span>
49
+ <span class='fraction'>118/118</span>
50
50
  </div>
51
51
 
52
52
 
@@ -99,13 +99,13 @@
99
99
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
100
100
  </td>
101
101
  <td data-value="100" class="pct high">100%</td>
102
- <td data-value="67" class="abs high">67/67</td>
102
+ <td data-value="78" class="abs high">78/78</td>
103
103
  <td data-value="100" class="pct high">100%</td>
104
- <td data-value="27" class="abs high">27/27</td>
104
+ <td data-value="33" class="abs high">33/33</td>
105
105
  <td data-value="100" class="pct high">100%</td>
106
- <td data-value="12" class="abs high">12/12</td>
106
+ <td data-value="14" class="abs high">14/14</td>
107
107
  <td data-value="100" class="pct high">100%</td>
108
- <td data-value="66" class="abs high">66/66</td>
108
+ <td data-value="76" class="abs high">76/76</td>
109
109
  </tr>
110
110
 
111
111
  </tbody>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2026-01-18T03:56:21.880Z
119
+ at 2026-01-18T05:09:17.333Z
120
120
  </div>
121
121
  <script src="prettify.js"></script>
122
122
  <script>
@@ -448,7 +448,7 @@ export class TaskGraphValidator implements ITaskGraphValidator {
448
448
  <div class='footer quiet pad2 space-top1 center small'>
449
449
  Code coverage generated by
450
450
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
451
- at 2026-01-18T03:56:21.886Z
451
+ at 2026-01-18T05:09:17.338Z
452
452
  </div>
453
453
  <script src="prettify.js"></script>
454
454
  <script>