feat: progress

This commit is contained in:
2026-06-26 04:21:49 +02:00
parent d1a1fbf85a
commit a9925ac2ec
33 changed files with 4608 additions and 811 deletions
+222 -116
View File
@@ -1,29 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1782247323626" clover="3.2.0">
<project timestamp="1782247323626" name="All files">
<metrics statements="116" coveredstatements="105" conditionals="29" coveredconditionals="27" methods="58" coveredmethods="49" elements="203" coveredelements="181" complexity="0" loc="116" ncloc="116" packages="3" files="7" classes="7"/>
<coverage generated="1782440391724" clover="3.2.0">
<project timestamp="1782440391724" name="All files">
<metrics statements="207" coveredstatements="118" conditionals="48" coveredconditionals="23" methods="107" coveredmethods="19" elements="362" coveredelements="160" complexity="0" loc="207" ncloc="207" packages="4" files="11" classes="11"/>
<package name="src">
<metrics statements="6" coveredstatements="2" conditionals="2" coveredconditionals="1" methods="4" coveredmethods="2"/>
<metrics statements="9" coveredstatements="4" conditionals="2" coveredconditionals="0" methods="4" coveredmethods="1"/>
<file name="index.ts" path="/home/anton/Projects/fluent/src/index.ts">
<metrics statements="2" coveredstatements="2" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
<line num="4" count="1" type="stmt"/>
<line num="5" count="1" type="stmt"/>
</file>
<file name="internal.ts" path="/home/anton/Projects/fluent/src/internal.ts">
<metrics statements="6" coveredstatements="2" conditionals="2" coveredconditionals="1" methods="4" coveredmethods="2"/>
<line num="8" count="4" type="stmt"/>
<metrics statements="6" coveredstatements="1" conditionals="2" coveredconditionals="0" methods="4" coveredmethods="1"/>
<line num="8" count="1" type="stmt"/>
<line num="14" count="0" type="stmt"/>
<line num="15" count="0" type="stmt"/>
<line num="23" count="53" type="cond" truecount="1" falsecount="1"/>
<line num="23" count="0" type="cond" truecount="0" falsecount="2"/>
<line num="24" count="0" type="stmt"/>
<line num="26" count="0" type="stmt"/>
</file>
<file name="registry.ts" path="/home/anton/Projects/fluent/src/registry.ts">
<metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
<line num="10" count="1" type="stmt"/>
</file>
</package>
<package name="src.base">
<metrics statements="7" coveredstatements="7" conditionals="0" coveredconditionals="0" methods="3" coveredmethods="3"/>
<file name="index.ts" path="/home/anton/Projects/fluent/src/base/index.ts">
<metrics statements="6" coveredstatements="6" conditionals="0" coveredconditionals="0" methods="2" coveredmethods="2"/>
<line num="18" count="4" type="stmt"/>
<line num="20" count="66" type="stmt"/>
<line num="22" count="66" type="stmt"/>
<line num="24" count="71" type="stmt"/>
<line num="27" count="66" type="stmt"/>
<line num="30" count="4" type="stmt"/>
<line num="31" count="1" type="stmt"/>
<line num="33" count="2" type="stmt"/>
<line num="35" count="2" type="stmt"/>
<line num="37" count="10" type="stmt"/>
<line num="40" count="2" type="stmt"/>
<line num="43" count="1" type="stmt"/>
</file>
<file name="mixin.ts" path="/home/anton/Projects/fluent/src/base/mixin.ts">
<metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="1"/>
@@ -31,121 +40,218 @@
</file>
</package>
<package name="src.mixin">
<metrics statements="103" coveredstatements="96" conditionals="27" coveredconditionals="26" methods="51" coveredmethods="44"/>
<metrics statements="159" coveredstatements="80" conditionals="36" coveredconditionals="13" methods="89" coveredmethods="9"/>
<file name="array.ts" path="/home/anton/Projects/fluent/src/mixin/array.ts">
<metrics statements="41" coveredstatements="40" conditionals="13" coveredconditionals="12" methods="24" coveredmethods="23"/>
<line num="133" count="36" type="cond" truecount="2" falsecount="0"/>
<line num="315" count="1" type="stmt"/>
<line num="316" count="36" type="cond" truecount="2" falsecount="0"/>
<line num="318" count="29" type="stmt"/>
<line num="319" count="4" type="stmt"/>
<line num="322" count="29" type="stmt"/>
<line num="323" count="1" type="stmt"/>
<line num="324" count="1" type="stmt"/>
<line num="327" count="29" type="stmt"/>
<line num="328" count="1" type="stmt"/>
<line num="329" count="1" type="cond" truecount="1" falsecount="1"/>
<line num="330" count="1" type="stmt"/>
<line num="335" count="29" type="stmt"/>
<line num="336" count="1" type="stmt"/>
<line num="339" count="29" type="stmt"/>
<line num="340" count="1" type="stmt"/>
<line num="342" count="29" type="stmt"/>
<line num="343" count="29" type="stmt"/>
<line num="345" count="1" type="stmt"/>
<line num="346" count="5" type="cond" truecount="2" falsecount="0"/>
<line num="351" count="29" type="stmt"/>
<line num="355" count="1" type="stmt"/>
<line num="357" count="29" type="stmt"/>
<line num="358" count="29" type="stmt"/>
<line num="363" count="1" type="stmt"/>
<line num="367" count="29" type="stmt"/>
<line num="368" count="1" type="stmt"/>
<line num="371" count="29" type="stmt"/>
<line num="378" count="1" type="stmt"/>
<line num="379" count="8" type="stmt"/>
<line num="382" count="29" type="stmt"/>
<line num="383" count="29" type="stmt"/>
<line num="385" count="16" type="cond" truecount="1" falsecount="0"/>
<line num="390" count="1" type="stmt"/>
<line num="392" count="8" type="cond" truecount="2" falsecount="0"/>
<line num="397" count="18" type="cond" truecount="1" falsecount="0"/>
<line num="402" count="11" type="stmt"/>
<line num="405" count="16" type="cond" truecount="1" falsecount="0"/>
<line num="410" count="10" type="stmt"/>
<line num="414" count="29" type="stmt"/>
<line num="415" count="0" type="stmt"/>
<metrics statements="41" coveredstatements="19" conditionals="13" coveredconditionals="4" methods="24" coveredmethods="3"/>
<line num="133" count="2" type="cond" truecount="2" falsecount="0"/>
<line num="463" count="1" type="stmt"/>
<line num="464" count="2" type="cond" truecount="2" falsecount="0"/>
<line num="466" count="1" type="stmt"/>
<line num="467" count="0" type="stmt"/>
<line num="470" count="1" type="stmt"/>
<line num="471" count="0" type="stmt"/>
<line num="472" count="0" type="stmt"/>
<line num="475" count="1" type="stmt"/>
<line num="476" count="0" type="stmt"/>
<line num="477" count="0" type="cond" truecount="0" falsecount="2"/>
<line num="478" count="0" type="stmt"/>
<line num="485" count="1" type="stmt"/>
<line num="486" count="0" type="stmt"/>
<line num="489" count="1" type="stmt"/>
<line num="490" count="0" type="stmt"/>
<line num="492" count="1" type="stmt"/>
<line num="493" count="1" type="stmt"/>
<line num="495" count="0" type="stmt"/>
<line num="496" count="0" type="cond" truecount="0" falsecount="2"/>
<line num="501" count="1" type="stmt"/>
<line num="505" count="1" type="stmt"/>
<line num="507" count="1" type="stmt"/>
<line num="508" count="1" type="stmt"/>
<line num="513" count="0" type="stmt"/>
<line num="517" count="1" type="stmt"/>
<line num="518" count="0" type="stmt"/>
<line num="521" count="1" type="stmt"/>
<line num="528" count="0" type="stmt"/>
<line num="529" count="0" type="stmt"/>
<line num="532" count="1" type="stmt"/>
<line num="533" count="1" type="stmt"/>
<line num="535" count="0" type="cond" truecount="0" falsecount="1"/>
<line num="540" count="0" type="stmt"/>
<line num="541" count="0" type="cond" truecount="0" falsecount="2"/>
<line num="545" count="0" type="cond" truecount="0" falsecount="1"/>
<line num="550" count="0" type="stmt"/>
<line num="553" count="0" type="cond" truecount="0" falsecount="1"/>
<line num="558" count="0" type="stmt"/>
<line num="562" count="1" type="stmt"/>
<line num="563" count="0" type="stmt"/>
</file>
<file name="awaited.ts" path="/home/anton/Projects/fluent/src/mixin/awaited.ts">
<metrics statements="26" coveredstatements="24" conditionals="7" coveredconditionals="7" methods="11" coveredmethods="9"/>
<metrics statements="26" coveredstatements="2" conditionals="7" coveredconditionals="1" methods="11" coveredmethods="1"/>
<line num="14" count="0" type="stmt"/>
<line num="18" count="0" type="stmt"/>
<line num="48" count="1" type="stmt"/>
<line num="49" count="5" type="cond" truecount="2" falsecount="0"/>
<line num="51" count="3" type="stmt"/>
<line num="52" count="1" type="stmt"/>
<line num="55" count="3" type="stmt"/>
<line num="58" count="1" type="stmt"/>
<line num="59" count="1" type="stmt"/>
<line num="62" count="1" type="stmt"/>
<line num="64" count="1" type="stmt"/>
<line num="66" count="2" type="cond" truecount="2" falsecount="0"/>
<line num="67" count="1" type="stmt"/>
<line num="68" count="1" type="stmt"/>
<line num="69" count="1" type="stmt"/>
<line num="72" count="1" type="stmt"/>
<line num="73" count="1" type="stmt"/>
<line num="74" count="1" type="stmt"/>
<line num="75" count="1" type="stmt"/>
<line num="80" count="1" type="stmt"/>
<line num="84" count="1" type="stmt"/>
<line num="87" count="1" type="stmt"/>
<line num="88" count="1" type="stmt"/>
<line num="94" count="1" type="stmt"/>
<line num="96" count="1" type="stmt"/>
<line num="100" count="1" type="stmt"/>
<line num="49" count="2" type="cond" truecount="1" falsecount="1"/>
<line num="51" count="0" type="stmt"/>
<line num="52" count="0" type="stmt"/>
<line num="55" count="0" type="stmt"/>
<line num="58" count="0" type="stmt"/>
<line num="59" count="0" type="stmt"/>
<line num="62" count="0" type="stmt"/>
<line num="64" count="0" type="stmt"/>
<line num="66" count="0" type="cond" truecount="0" falsecount="2"/>
<line num="67" count="0" type="stmt"/>
<line num="68" count="0" type="stmt"/>
<line num="69" count="0" type="stmt"/>
<line num="72" count="0" type="stmt"/>
<line num="73" count="0" type="stmt"/>
<line num="74" count="0" type="stmt"/>
<line num="75" count="0" type="stmt"/>
<line num="80" count="0" type="stmt"/>
<line num="84" count="0" type="stmt"/>
<line num="87" count="0" type="stmt"/>
<line num="88" count="0" type="stmt"/>
<line num="94" count="0" type="stmt"/>
<line num="96" count="0" type="stmt"/>
<line num="100" count="0" type="stmt"/>
</file>
<file name="base.ts" path="/home/anton/Projects/fluent/src/mixin/base.ts">
<metrics statements="6" coveredstatements="6" conditionals="0" coveredconditionals="0" methods="3" coveredmethods="3"/>
<line num="43" count="2" type="stmt"/>
<line num="44" count="12" type="stmt"/>
<line num="45" count="1" type="stmt"/>
<line num="46" count="1" type="stmt"/>
<line num="49" count="12" type="stmt"/>
<line num="50" count="4" type="stmt"/>
<metrics statements="6" coveredstatements="3" conditionals="0" coveredconditionals="0" methods="3" coveredmethods="1"/>
<line num="47" count="1" type="stmt"/>
<line num="48" count="2" type="stmt"/>
<line num="49" count="0" type="stmt"/>
<line num="50" count="0" type="stmt"/>
<line num="53" count="2" type="stmt"/>
<line num="54" count="0" type="stmt"/>
</file>
<file name="math.ts" path="/home/anton/Projects/fluent/src/mixin/math.ts">
<metrics statements="56" coveredstatements="45" conditionals="9" coveredconditionals="5" methods="38" coveredmethods="2"/>
<line num="104" count="1" type="stmt"/>
<line num="106" count="1" type="stmt"/>
<line num="107" count="2" type="cond" truecount="2" falsecount="0"/>
<line num="108" count="1" type="stmt"/>
<line num="109" count="1" type="stmt"/>
<line num="110" count="1" type="stmt"/>
<line num="111" count="1" type="stmt"/>
<line num="112" count="1" type="stmt"/>
<line num="113" count="1" type="stmt"/>
<line num="114" count="1" type="stmt"/>
<line num="115" count="1" type="stmt"/>
<line num="116" count="0" type="cond" truecount="0" falsecount="2"/>
<line num="117" count="0" type="stmt"/>
<line num="118" count="0" type="stmt"/>
<line num="121" count="1" type="stmt"/>
<line num="125" count="0" type="stmt"/>
<line num="128" count="1" type="stmt"/>
<line num="129" count="1" type="stmt"/>
<line num="130" count="1" type="stmt"/>
<line num="131" count="1" type="stmt"/>
<line num="133" count="1" type="stmt"/>
<line num="134" count="1" type="stmt"/>
<line num="135" count="1" type="stmt"/>
<line num="137" count="1" type="stmt"/>
<line num="138" count="0" type="stmt"/>
<line num="139" count="1" type="stmt"/>
<line num="140" count="0" type="stmt"/>
<line num="141" count="1" type="stmt"/>
<line num="142" count="0" type="stmt"/>
<line num="143" count="1" type="stmt"/>
<line num="144" count="0" type="stmt"/>
<line num="146" count="1" type="stmt"/>
<line num="147" count="0" type="stmt"/>
<line num="149" count="1" type="stmt"/>
<line num="150" count="1" type="stmt"/>
<line num="151" count="1" type="stmt"/>
<line num="152" count="1" type="stmt"/>
<line num="153" count="1" type="stmt"/>
<line num="154" count="1" type="stmt"/>
<line num="155" count="1" type="stmt"/>
<line num="157" count="1" type="stmt"/>
<line num="158" count="1" type="stmt"/>
<line num="159" count="1" type="stmt"/>
<line num="160" count="1" type="stmt"/>
<line num="161" count="1" type="stmt"/>
<line num="162" count="1" type="stmt"/>
<line num="164" count="1" type="stmt"/>
<line num="165" count="1" type="stmt"/>
<line num="167" count="1" type="stmt"/>
<line num="168" count="1" type="stmt"/>
<line num="169" count="1" type="stmt"/>
<line num="170" count="0" type="stmt"/>
<line num="171" count="0" type="stmt"/>
<line num="173" count="1" type="cond" truecount="1" falsecount="1"/>
<line num="175" count="7" type="stmt"/>
<line num="177" count="1" type="stmt"/>
</file>
<file name="optional.ts" path="/home/anton/Projects/fluent/src/mixin/optional.ts">
<metrics statements="30" coveredstatements="26" conditionals="7" coveredconditionals="7" methods="13" coveredmethods="9"/>
<line num="16" count="18" type="cond" truecount="2" falsecount="0"/>
<line num="157" count="1" type="stmt"/>
<line num="158" count="18" type="cond" truecount="2" falsecount="0"/>
<line num="159" count="5" type="stmt"/>
<line num="160" count="1" type="stmt"/>
<line num="163" count="5" type="stmt"/>
<metrics statements="30" coveredstatements="11" conditionals="7" coveredconditionals="3" methods="13" coveredmethods="2"/>
<line num="16" count="2" type="cond" truecount="2" falsecount="0"/>
<line num="164" count="1" type="stmt"/>
<line num="166" count="5" type="stmt"/>
<line num="167" count="5" type="stmt"/>
<line num="169" count="1" type="stmt"/>
<line num="173" count="5" type="stmt"/>
<line num="165" count="2" type="cond" truecount="1" falsecount="1"/>
<line num="166" count="0" type="stmt"/>
<line num="167" count="0" type="stmt"/>
<line num="170" count="0" type="stmt"/>
<line num="171" count="0" type="stmt"/>
<line num="173" count="0" type="stmt"/>
<line num="174" count="0" type="stmt"/>
<line num="176" count="5" type="stmt"/>
<line num="177" count="5" type="stmt"/>
<line num="179" count="0" type="stmt"/>
<line num="183" count="13" type="stmt"/>
<line num="184" count="1" type="stmt"/>
<line num="187" count="13" type="stmt"/>
<line num="188" count="1" type="stmt"/>
<line num="191" count="13" type="stmt"/>
<line num="192" count="13" type="stmt"/>
<line num="194" count="1" type="stmt"/>
<line num="198" count="13" type="stmt"/>
<line num="199" count="0" type="stmt"/>
<line num="201" count="13" type="stmt"/>
<line num="202" count="13" type="stmt"/>
<line num="204" count="0" type="stmt"/>
<line num="209" count="18" type="stmt"/>
<line num="213" count="3" type="cond" truecount="2" falsecount="0"/>
<line num="214" count="2" type="stmt"/>
<line num="176" count="0" type="stmt"/>
<line num="180" count="0" type="stmt"/>
<line num="181" count="0" type="stmt"/>
<line num="183" count="0" type="stmt"/>
<line num="184" count="0" type="stmt"/>
<line num="186" count="0" type="stmt"/>
<line num="190" count="2" type="stmt"/>
<line num="191" count="0" type="stmt"/>
<line num="194" count="2" type="stmt"/>
<line num="195" count="0" type="stmt"/>
<line num="198" count="2" type="stmt"/>
<line num="199" count="2" type="stmt"/>
<line num="201" count="0" type="stmt"/>
<line num="205" count="2" type="stmt"/>
<line num="206" count="0" type="stmt"/>
<line num="208" count="2" type="stmt"/>
<line num="209" count="2" type="stmt"/>
<line num="211" count="0" type="stmt"/>
<line num="216" count="2" type="stmt"/>
<line num="220" count="0" type="cond" truecount="0" falsecount="2"/>
<line num="221" count="0" type="stmt"/>
</file>
</package>
<package name="src.mixin.math">
<metrics statements="32" coveredstatements="27" conditionals="10" coveredconditionals="10" methods="11" coveredmethods="6"/>
<file name="swizzle.ts" path="/home/anton/Projects/fluent/src/mixin/math/swizzle.ts">
<metrics statements="32" coveredstatements="27" conditionals="10" coveredconditionals="10" methods="11" coveredmethods="6"/>
<line num="156" count="1" type="stmt"/>
<line num="163" count="1" type="stmt"/>
<line num="164" count="1" type="stmt"/>
<line num="166" count="1" type="stmt"/>
<line num="167" count="2097152" type="stmt"/>
<line num="168" count="2396744" type="stmt"/>
<line num="169" count="2396744" type="cond" truecount="2" falsecount="0"/>
<line num="170" count="2097151" type="stmt"/>
<line num="173" count="2097152" type="stmt"/>
<line num="174" count="2097152" type="stmt"/>
<line num="175" count="11487560" type="cond" truecount="2" falsecount="0"/>
<line num="176" count="1435945" type="stmt"/>
<line num="177" count="10051615" type="cond" truecount="2" falsecount="0"/>
<line num="178" count="1136352" type="stmt"/>
<line num="182" count="960800" type="stmt"/>
<line num="183" count="6725600" type="stmt"/>
<line num="184" count="6565468" type="stmt"/>
<line num="186" count="960800" type="cond" truecount="4" falsecount="0"/>
<line num="187" count="21840" type="stmt"/>
<line num="188" count="152880" type="stmt"/>
<line num="189" count="145632" type="stmt"/>
<line num="190" count="21840" type="stmt"/>
<line num="193" count="0" type="stmt"/>
<line num="196" count="2396744" type="stmt"/>
<line num="198" count="1" type="stmt"/>
<line num="200" count="0" type="stmt"/>
<line num="203" count="1" type="stmt"/>
<line num="205" count="0" type="stmt"/>
<line num="208" count="1" type="stmt"/>
<line num="210" count="0" type="stmt"/>
<line num="213" count="1" type="stmt"/>
<line num="215" count="0" type="stmt"/>
</file>
</package>
</project>
File diff suppressed because one or more lines are too long
+46 -31
View File
@@ -23,30 +23,30 @@
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">90.32% </span>
<span class="strong">50.4% </span>
<span class="quiet">Statements</span>
<span class='fraction'>112/124</span>
<span class='fraction'>124/246</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">93.1% </span>
<span class="strong">47.91% </span>
<span class="quiet">Branches</span>
<span class='fraction'>27/29</span>
<span class='fraction'>23/48</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">84.48% </span>
<span class="strong">17.75% </span>
<span class="quiet">Functions</span>
<span class='fraction'>49/58</span>
<span class='fraction'>19/107</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">90.51% </span>
<span class="strong">57% </span>
<span class="quiet">Lines</span>
<span class='fraction'>105/116</span>
<span class='fraction'>118/207</span>
</div>
@@ -61,7 +61,7 @@
</div>
</template>
</div>
<div class='status-line high'></div>
<div class='status-line medium'></div>
<div class="pad1">
<table class="coverage-summary">
<thead>
@@ -80,17 +80,17 @@
</thead>
<tbody><tr>
<td class="file low" data-value="src"><a href="src/index.html">src</a></td>
<td data-value="33.33" class="pic low">
<div class="chart"><div class="cover-fill" style="width: 33%"></div><div class="cover-empty" style="width: 67%"></div></div>
<td data-value="44.44" class="pic low">
<div class="chart"><div class="cover-fill" style="width: 44%"></div><div class="cover-empty" style="width: 56%"></div></div>
</td>
<td data-value="33.33" class="pct low">33.33%</td>
<td data-value="6" class="abs low">2/6</td>
<td data-value="50" class="pct medium">50%</td>
<td data-value="2" class="abs medium">1/2</td>
<td data-value="50" class="pct medium">50%</td>
<td data-value="4" class="abs medium">2/4</td>
<td data-value="33.33" class="pct low">33.33%</td>
<td data-value="6" class="abs low">2/6</td>
<td data-value="44.44" class="pct low">44.44%</td>
<td data-value="9" class="abs low">4/9</td>
<td data-value="0" class="pct low">0%</td>
<td data-value="2" class="abs low">0/2</td>
<td data-value="25" class="pct low">25%</td>
<td data-value="4" class="abs low">1/4</td>
<td data-value="44.44" class="pct low">44.44%</td>
<td data-value="9" class="abs low">4/9</td>
</tr>
<tr>
@@ -109,18 +109,33 @@
</tr>
<tr>
<td class="file high" data-value="src/mixin"><a href="src/mixin/index.html">src/mixin</a></td>
<td data-value="92.79" class="pic high">
<div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
<td class="file low" data-value="src/mixin"><a href="src/mixin/index.html">src/mixin</a></td>
<td data-value="42.26" class="pic low">
<div class="chart"><div class="cover-fill" style="width: 42%"></div><div class="cover-empty" style="width: 58%"></div></div>
</td>
<td data-value="92.79" class="pct high">92.79%</td>
<td data-value="111" class="abs high">103/111</td>
<td data-value="96.29" class="pct high">96.29%</td>
<td data-value="27" class="abs high">26/27</td>
<td data-value="86.27" class="pct high">86.27%</td>
<td data-value="51" class="abs high">44/51</td>
<td data-value="93.2" class="pct high">93.2%</td>
<td data-value="103" class="abs high">96/103</td>
<td data-value="42.26" class="pct low">42.26%</td>
<td data-value="194" class="abs low">82/194</td>
<td data-value="36.11" class="pct low">36.11%</td>
<td data-value="36" class="abs low">13/36</td>
<td data-value="10.11" class="pct low">10.11%</td>
<td data-value="89" class="abs low">9/89</td>
<td data-value="50.31" class="pct medium">50.31%</td>
<td data-value="159" class="abs medium">80/159</td>
</tr>
<tr>
<td class="file high" data-value="src/mixin/math"><a href="src/mixin/math/index.html">src/mixin/math</a></td>
<td data-value="86.11" class="pic high">
<div class="chart"><div class="cover-fill" style="width: 86%"></div><div class="cover-empty" style="width: 14%"></div></div>
</td>
<td data-value="86.11" class="pct high">86.11%</td>
<td data-value="36" class="abs high">31/36</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="10" class="abs high">10/10</td>
<td data-value="54.54" class="pct medium">54.54%</td>
<td data-value="11" class="abs medium">6/11</td>
<td data-value="84.37" class="pct high">84.37%</td>
<td data-value="32" class="abs high">27/32</td>
</tr>
</tbody>
@@ -131,7 +146,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
at 2026-06-23T20:42:03.618Z
at 2026-06-26T02:19:51.712Z
</div>
<script src="prettify.js"></script>
<script>
+1 -1
View File
@@ -116,7 +116,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
at 2026-06-23T20:42:03.618Z
at 2026-06-26T02:19:51.712Z
</div>
<script src="../../prettify.js"></script>
<script>
+52 -13
View File
@@ -94,7 +94,20 @@
<a name='L29'></a><a href='#L29'>29</a>
<a name='L30'></a><a href='#L30'>30</a>
<a name='L31'></a><a href='#L31'>31</a>
<a name='L32'></a><a href='#L32'>32</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<a name='L32'></a><a href='#L32'>32</a>
<a name='L33'></a><a href='#L33'>33</a>
<a name='L34'></a><a href='#L34'>34</a>
<a name='L35'></a><a href='#L35'>35</a>
<a name='L36'></a><a href='#L36'>36</a>
<a name='L37'></a><a href='#L37'>37</a>
<a name='L38'></a><a href='#L38'>38</a>
<a name='L39'></a><a href='#L39'>39</a>
<a name='L40'></a><a href='#L40'>40</a>
<a name='L41'></a><a href='#L41'>41</a>
<a name='L42'></a><a href='#L42'>42</a>
<a name='L43'></a><a href='#L43'>43</a>
<a name='L44'></a><a href='#L44'>44</a>
<a name='L45'></a><a href='#L45'>45</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
@@ -111,19 +124,32 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">4x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">66x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">66x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">71x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">66x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">4x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">10x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { DefaultRegistry, Methods, Registry } from "../registry";
import type { shim } from "./mixin";
@@ -137,14 +163,27 @@ export type Base&lt;T&gt; = T extends { [shim]: { value: infer U } }
export type Fluent&lt;
T,
Reg extends Registry = DefaultRegistry,
&gt; = Base&lt;T&gt; &amp; Methods&lt;T, Reg&gt;;
&gt; = Base&lt;T&gt; &amp; Methods&lt;T, Reg&gt; extends infer U
? U &amp;
Pick&lt;
{
/**
* Immediate casts and conversions to other types.
*/
to: unknown;
&nbsp;
[K: PropertyKey]: unknown;
},
keyof U
&gt;
: never;
&nbsp;
export function makeFluent&lt;const Reg extends Registry&gt;(
registry: Reg,
) {
const fluent = &lt;const T&gt;(value: T) =&gt; {
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
const f = { value } as never as Fluent&lt;T, Reg&gt;;
const f = { value } as unknown as Fluent&lt;T, Reg&gt;;
&nbsp;
for (const mixin of registry) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
@@ -163,7 +202,7 @@ export function makeFluent&lt;const Reg extends Registry&gt;(
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
at 2026-06-23T20:42:03.618Z
at 2026-06-26T02:19:51.712Z
</div>
<script src="../../prettify.js"></script>
<script>
+1 -1
View File
@@ -244,7 +244,7 @@ export type Instansiate&lt;
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
at 2026-06-23T20:42:03.618Z
at 2026-06-26T02:19:51.712Z
</div>
<script src="../../prettify.js"></script>
<script>
+50 -20
View File
@@ -23,30 +23,30 @@
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">33.33% </span>
<span class="strong">44.44% </span>
<span class="quiet">Statements</span>
<span class='fraction'>2/6</span>
<span class='fraction'>4/9</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">50% </span>
<span class="strong">0% </span>
<span class="quiet">Branches</span>
<span class='fraction'>1/2</span>
<span class='fraction'>0/2</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">50% </span>
<span class="strong">25% </span>
<span class="quiet">Functions</span>
<span class='fraction'>2/4</span>
<span class='fraction'>1/4</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">33.33% </span>
<span class="strong">44.44% </span>
<span class="quiet">Lines</span>
<span class='fraction'>2/6</span>
<span class='fraction'>4/9</span>
</div>
@@ -79,18 +79,48 @@
</tr>
</thead>
<tbody><tr>
<td class="file low" data-value="internal.ts"><a href="internal.ts.html">internal.ts</a></td>
<td data-value="33.33" class="pic low">
<div class="chart"><div class="cover-fill" style="width: 33%"></div><div class="cover-empty" style="width: 67%"></div></div>
<td class="file high" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="33.33" class="pct low">33.33%</td>
<td data-value="6" class="abs low">2/6</td>
<td data-value="50" class="pct medium">50%</td>
<td data-value="2" class="abs medium">1/2</td>
<td data-value="50" class="pct medium">50%</td>
<td data-value="4" class="abs medium">2/4</td>
<td data-value="33.33" class="pct low">33.33%</td>
<td data-value="6" class="abs low">2/6</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
</tr>
<tr>
<td class="file low" data-value="internal.ts"><a href="internal.ts.html">internal.ts</a></td>
<td data-value="16.66" class="pic low">
<div class="chart"><div class="cover-fill" style="width: 16%"></div><div class="cover-empty" style="width: 84%"></div></div>
</td>
<td data-value="16.66" class="pct low">16.66%</td>
<td data-value="6" class="abs low">1/6</td>
<td data-value="0" class="pct low">0%</td>
<td data-value="2" class="abs low">0/2</td>
<td data-value="25" class="pct low">25%</td>
<td data-value="4" class="abs low">1/4</td>
<td data-value="16.66" class="pct low">16.66%</td>
<td data-value="6" class="abs low">1/6</td>
</tr>
<tr>
<td class="file high" data-value="registry.ts"><a href="registry.ts.html">registry.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="1" class="abs high">1/1</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="1" class="abs high">1/1</td>
</tr>
</tbody>
@@ -101,7 +131,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
at 2026-06-23T20:42:03.618Z
at 2026-06-26T02:19:51.712Z
</div>
<script src="../prettify.js"></script>
<script>
+100
View File
@@ -0,0 +1,100 @@
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for src/index.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> index.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>2/2</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>2/2</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
<div class="quiet">
Filter:
<input type="search" id="fileSearch">
</div>
</template>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { makeFluent } from "./base";
import { DEFAULT_REGISTRY } from "./registry";
&nbsp;
export const fluent = makeFluent(DEFAULT_REGISTRY);
export const $ = fluent;
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
at 2026-06-26T02:19:51.712Z
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="../sorter.js"></script>
<script src="../block-navigation.js"></script>
</body>
</html>
+14 -14
View File
@@ -23,30 +23,30 @@
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">33.33% </span>
<span class="strong">16.66% </span>
<span class="quiet">Statements</span>
<span class='fraction'>2/6</span>
<span class='fraction'>1/6</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">50% </span>
<span class="strong">0% </span>
<span class="quiet">Branches</span>
<span class='fraction'>1/2</span>
<span class='fraction'>0/2</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">50% </span>
<span class="strong">25% </span>
<span class="quiet">Functions</span>
<span class='fraction'>2/4</span>
<span class='fraction'>1/4</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">33.33% </span>
<span class="strong">16.66% </span>
<span class="quiet">Lines</span>
<span class='fraction'>2/6</span>
<span class='fraction'>1/6</span>
</div>
@@ -129,7 +129,7 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">4x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
@@ -144,7 +144,7 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">53x</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
@@ -190,7 +190,7 @@ export interface Identity extends HKT {
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
export const never = undefined as never;
&nbsp;
export type Constraint&lt;T, U extends T&gt; = U;
export type MaxDepth = 20;
&nbsp;
export class AssertionError extends Error {
<span class="fstat-no" title="function not covered" > public c</span>onstructor(msg?: string) {
@@ -199,11 +199,11 @@ export class AssertionError extends Error {
}
}
&nbsp;
export function assert(
export function <span class="fstat-no" title="function not covered" >assert(</span>
condition: unknown,
msg?: string,
): asserts condition {
<span class="missing-if-branch" title="if path not taken" >I</span>if (!Boolean(condition))
<span class="cstat-no" title="statement not covered" > if (!Boolean(condition))</span>
<span class="cstat-no" title="statement not covered" > throw new AssertionError(</span>
["Assertion error", msg]
.<span class="fstat-no" title="function not covered" >filter((v</span>) =&gt; <span class="cstat-no" title="statement not covered" >v !== undefined)</span>
@@ -247,7 +247,7 @@ export interface HidePrototype {
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
at 2026-06-23T20:42:03.618Z
at 2026-06-26T02:19:51.712Z
</div>
<script src="../prettify.js"></script>
<script>
File diff suppressed because it is too large Load Diff
+67 -67
View File
@@ -23,30 +23,30 @@
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">93.1% </span>
<span class="strong">10.34% </span>
<span class="quiet">Statements</span>
<span class='fraction'>27/29</span>
<span class='fraction'>3/29</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="strong">14.28% </span>
<span class="quiet">Branches</span>
<span class='fraction'>7/7</span>
<span class='fraction'>1/7</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">81.81% </span>
<span class="strong">9.09% </span>
<span class="quiet">Functions</span>
<span class='fraction'>9/11</span>
<span class='fraction'>1/11</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">92.3% </span>
<span class="strong">7.69% </span>
<span class="quiet">Lines</span>
<span class='fraction'>24/26</span>
<span class='fraction'>2/26</span>
</div>
@@ -61,7 +61,7 @@
</div>
</template>
</div>
<div class='status-line high'></div>
<div class='status-line low'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
@@ -247,58 +247,58 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">5x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
@@ -383,58 +383,58 @@ interface BaseFluent&lt;T&gt; {
}
&nbsp;
export const AsyncMixin = Mixin&lt;AsyncMixin&gt;((value, $, fluent) =&gt; {
if (!(value instanceof Promise)) return;
<span class="missing-if-branch" title="else path not taken" >E</span>if (!(value instanceof Promise)) return;
&nbsp;
$.then = (callback: (value: unknown) =&gt; unknown) =&gt; {
return fluent(value.then(callback));
<span class="cstat-no" title="statement not covered" > $.<span class="fstat-no" title="function not covered" >then = (c</span>allback: (value: unknown) =&gt; unknown) =&gt; {</span>
<span class="cstat-no" title="statement not covered" > return fluent(value.then(callback));</span>
};
&nbsp;
Object.defineProperty($, "awaited", {
<span class="cstat-no" title="statement not covered" > Object.defineProperty($, "awaited", {</span>
enumerable: true,
get() {
let v: Promise&lt;BaseFluent&lt;unknown&gt;&gt; = value.then((v) =&gt;
fluent(v),
<span class="fstat-no" title="function not covered" > get() {</span>
let v: Promise&lt;BaseFluent&lt;unknown&gt;&gt; = <span class="cstat-no" title="statement not covered" >value.<span class="fstat-no" title="function not covered" >then((v</span>) =&gt;</span>
<span class="cstat-no" title="statement not covered" > fluent(v),</span>
);
&nbsp;
const path: PropertyKey[] = [];
const path: PropertyKey[] = <span class="cstat-no" title="statement not covered" >[];</span>
// eslint-disable-next-line no-empty-pattern
const proxy = new Proxy((...[]: unknown[]) =&gt; proxy, {
get: (_, key) =&gt; {
if (key === "value")
return v.then((v) =&gt; v.value);
path.push(key);
return proxy;
const proxy = <span class="cstat-no" title="statement not covered" >new <span class="fstat-no" title="function not covered" >Proxy((.</span>..[]: unknown[]) =&gt; <span class="cstat-no" title="statement not covered" >proxy, {</span></span>
<span class="fstat-no" title="function not covered" > get: (_</span>, key) =&gt; {
<span class="cstat-no" title="statement not covered" > if (key === "value")</span>
<span class="cstat-no" title="statement not covered" > return v.<span class="fstat-no" title="function not covered" >then((v</span>) =&gt; <span class="cstat-no" title="statement not covered" >v.value)</span>;</span>
<span class="cstat-no" title="statement not covered" > path.push(key);</span>
<span class="cstat-no" title="statement not covered" > return proxy;</span>
},
apply: (target, thisArg, args: unknown[]) =&gt; {
v = v.then((v) =&gt; {
let obj: unknown = v;
for (const node of path) {
assert(
<span class="fstat-no" title="function not covered" > apply: (t</span>arget, thisArg, args: unknown[]) =&gt; {
<span class="cstat-no" title="statement not covered" > v = v.<span class="fstat-no" title="function not covered" >then((v</span>) =&gt; {</span>
let obj: unknown = <span class="cstat-no" title="statement not covered" >v;</span>
<span class="cstat-no" title="statement not covered" > for (const node of path) {</span>
<span class="cstat-no" title="statement not covered" > assert(</span>
typeof obj === "object" &amp;&amp;
obj !== null &amp;&amp;
node in obj,
);
assertType&lt;Record&lt;PropertyKey, unknown&gt;&gt;(
<span class="cstat-no" title="statement not covered" > assertType&lt;Record&lt;PropertyKey, unknown&gt;&gt;(</span>
obj,
);
&nbsp;
obj = obj[node];
<span class="cstat-no" title="statement not covered" > obj = obj[node];</span>
}
&nbsp;
assert(typeof obj === "function");
assertType&lt;
<span class="cstat-no" title="statement not covered" > assert(typeof obj === "function");</span>
<span class="cstat-no" title="statement not covered" > assertType&lt;</span>
(
...args: unknown[]
) =&gt; BaseFluent&lt;unknown&gt;
&gt;(obj);
&nbsp;
return obj(...args);
<span class="cstat-no" title="statement not covered" > return obj(...args);</span>
});
return target.apply(thisArg, args);
<span class="cstat-no" title="statement not covered" > return target.apply(thisArg, args);</span>
},
});
&nbsp;
return proxy;
<span class="cstat-no" title="statement not covered" > return proxy;</span>
},
});
});
@@ -478,7 +478,7 @@ if (import.meta.vitest) {
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
at 2026-06-23T20:42:03.618Z
at 2026-06-26T02:19:51.712Z
</div>
<script src="../../prettify.js"></script>
<script>
+35 -23
View File
@@ -23,9 +23,9 @@
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="strong">50% </span>
<span class="quiet">Statements</span>
<span class='fraction'>6/6</span>
<span class='fraction'>3/6</span>
</div>
@@ -37,16 +37,16 @@
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="strong">33.33% </span>
<span class="quiet">Functions</span>
<span class='fraction'>3/3</span>
<span class='fraction'>1/3</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="strong">50% </span>
<span class="quiet">Lines</span>
<span class='fraction'>6/6</span>
<span class='fraction'>3/6</span>
</div>
@@ -61,7 +61,7 @@
</div>
</template>
</div>
<div class='status-line high'></div>
<div class='status-line medium'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
@@ -145,7 +145,11 @@
<a name='L80'></a><a href='#L80'>80</a>
<a name='L81'></a><a href='#L81'>81</a>
<a name='L82'></a><a href='#L82'>82</a>
<a name='L83'></a><a href='#L83'>83</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<a name='L83'></a><a href='#L83'>83</a>
<a name='L84'></a><a href='#L84'>84</a>
<a name='L85'></a><a href='#L85'>85</a>
<a name='L86'></a><a href='#L86'>86</a>
<a name='L87'></a><a href='#L87'>87</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
@@ -187,14 +191,18 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-yes">12x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">12x</span>
<span class="cline-any cline-yes">4x</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
@@ -239,13 +247,15 @@ export interface Base extends Mixin.HKT {
* modifying the value.
* @param callback The interospective callback
* @see `transform` to modify
* @from {@link Base `Base`}
* @example
* ```ts
* let x;
* const value = $(10).tap(v =&gt; { x = ++v }).value;
*
* expect(x).toBe(11);
* expect(value).toBe(10);
* @from {@link Base `Base`}
* ```
*/
tap(
callback: (value: Readonly&lt;T&gt;) =&gt; void,
@@ -255,12 +265,14 @@ export interface Base extends Mixin.HKT {
* `callback` using the outputted return value as a new value.
* A.K.A., _transform_ the current value using a callback
* @param callback The transformative callback
* @from {@link Base `Base`}
* @example
* ```ts
* const value = $("Hello")
* .transform(v =&gt; v.toUpperCase())
* .value;
* expect(value).toBe("HELLO");
* @from {@link Base `Base`}
* ```
*/
transform&lt;U&gt;(
callback: (value: T) =&gt; U,
@@ -270,13 +282,13 @@ export interface Base extends Mixin.HKT {
}
&nbsp;
export const Base = Mixin&lt;Base&gt;((value, $, fluent) =&gt; {
$.tap = (callback: (value: unknown) =&gt; void) =&gt; {
callback(value);
return fluent(value);
$.<span class="fstat-no" title="function not covered" >tap = (c</span>allback: (value: unknown) =&gt; void) =&gt; {
<span class="cstat-no" title="statement not covered" > callback(value);</span>
<span class="cstat-no" title="statement not covered" > return fluent(value);</span>
};
&nbsp;
$.transform = (callback: (value: unknown) =&gt; unknown) =&gt; {
return fluent(callback(value));
$.<span class="fstat-no" title="function not covered" >transform = (c</span>allback: (value: unknown) =&gt; unknown) =&gt; {
<span class="cstat-no" title="statement not covered" > return fluent(callback(value));</span>
};
});
&nbsp;
@@ -316,7 +328,7 @@ if (import.meta.vitest) {
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
at 2026-06-23T20:42:03.618Z
at 2026-06-26T02:19:51.712Z
</div>
<script src="../../prettify.js"></script>
<script>
+67 -52
View File
@@ -23,30 +23,30 @@
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">92.79% </span>
<span class="strong">42.26% </span>
<span class="quiet">Statements</span>
<span class='fraction'>103/111</span>
<span class='fraction'>82/194</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">96.29% </span>
<span class="strong">36.11% </span>
<span class="quiet">Branches</span>
<span class='fraction'>26/27</span>
<span class='fraction'>13/36</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">86.27% </span>
<span class="strong">10.11% </span>
<span class="quiet">Functions</span>
<span class='fraction'>44/51</span>
<span class='fraction'>9/89</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">93.2% </span>
<span class="strong">50.31% </span>
<span class="quiet">Lines</span>
<span class='fraction'>96/103</span>
<span class='fraction'>80/159</span>
</div>
@@ -61,7 +61,7 @@
</div>
</template>
</div>
<div class='status-line high'></div>
<div class='status-line low'></div>
<div class="pad1">
<table class="coverage-summary">
<thead>
@@ -79,63 +79,78 @@
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="array.ts"><a href="array.ts.html">array.ts</a></td>
<td data-value="95.55" class="pic high">
<div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
<td class="file low" data-value="array.ts"><a href="array.ts.html">array.ts</a></td>
<td data-value="44.44" class="pic low">
<div class="chart"><div class="cover-fill" style="width: 44%"></div><div class="cover-empty" style="width: 56%"></div></div>
</td>
<td data-value="95.55" class="pct high">95.55%</td>
<td data-value="45" class="abs high">43/45</td>
<td data-value="92.3" class="pct high">92.3%</td>
<td data-value="13" class="abs high">12/13</td>
<td data-value="95.83" class="pct high">95.83%</td>
<td data-value="24" class="abs high">23/24</td>
<td data-value="97.56" class="pct high">97.56%</td>
<td data-value="41" class="abs high">40/41</td>
<td data-value="44.44" class="pct low">44.44%</td>
<td data-value="45" class="abs low">20/45</td>
<td data-value="30.76" class="pct low">30.76%</td>
<td data-value="13" class="abs low">4/13</td>
<td data-value="12.5" class="pct low">12.5%</td>
<td data-value="24" class="abs low">3/24</td>
<td data-value="46.34" class="pct low">46.34%</td>
<td data-value="41" class="abs low">19/41</td>
</tr>
<tr>
<td class="file high" data-value="awaited.ts"><a href="awaited.ts.html">awaited.ts</a></td>
<td data-value="93.1" class="pic high">
<div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
<td class="file low" data-value="awaited.ts"><a href="awaited.ts.html">awaited.ts</a></td>
<td data-value="10.34" class="pic low">
<div class="chart"><div class="cover-fill" style="width: 10%"></div><div class="cover-empty" style="width: 90%"></div></div>
</td>
<td data-value="93.1" class="pct high">93.1%</td>
<td data-value="29" class="abs high">27/29</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="7" class="abs high">7/7</td>
<td data-value="81.81" class="pct high">81.81%</td>
<td data-value="11" class="abs high">9/11</td>
<td data-value="92.3" class="pct high">92.3%</td>
<td data-value="26" class="abs high">24/26</td>
<td data-value="10.34" class="pct low">10.34%</td>
<td data-value="29" class="abs low">3/29</td>
<td data-value="14.28" class="pct low">14.28%</td>
<td data-value="7" class="abs low">1/7</td>
<td data-value="9.09" class="pct low">9.09%</td>
<td data-value="11" class="abs low">1/11</td>
<td data-value="7.69" class="pct low">7.69%</td>
<td data-value="26" class="abs low">2/26</td>
</tr>
<tr>
<td class="file high" data-value="base.ts"><a href="base.ts.html">base.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
<td class="file medium" data-value="base.ts"><a href="base.ts.html">base.ts</a></td>
<td data-value="50" class="pic medium">
<div class="chart"><div class="cover-fill" style="width: 50%"></div><div class="cover-empty" style="width: 50%"></div></div>
</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="6" class="abs high">6/6</td>
<td data-value="50" class="pct medium">50%</td>
<td data-value="6" class="abs medium">3/6</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="0" class="abs high">0/0</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="3" class="abs high">3/3</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="6" class="abs high">6/6</td>
<td data-value="33.33" class="pct low">33.33%</td>
<td data-value="3" class="abs low">1/3</td>
<td data-value="50" class="pct medium">50%</td>
<td data-value="6" class="abs medium">3/6</td>
</tr>
<tr>
<td class="file high" data-value="optional.ts"><a href="optional.ts.html">optional.ts</a></td>
<td data-value="87.09" class="pic high">
<div class="chart"><div class="cover-fill" style="width: 87%"></div><div class="cover-empty" style="width: 13%"></div></div>
<td class="file medium" data-value="math.ts"><a href="math.ts.html">math.ts</a></td>
<td data-value="54.21" class="pic medium">
<div class="chart"><div class="cover-fill" style="width: 54%"></div><div class="cover-empty" style="width: 46%"></div></div>
</td>
<td data-value="87.09" class="pct high">87.09%</td>
<td data-value="31" class="abs high">27/31</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="7" class="abs high">7/7</td>
<td data-value="69.23" class="pct medium">69.23%</td>
<td data-value="13" class="abs medium">9/13</td>
<td data-value="86.66" class="pct high">86.66%</td>
<td data-value="30" class="abs high">26/30</td>
<td data-value="54.21" class="pct medium">54.21%</td>
<td data-value="83" class="abs medium">45/83</td>
<td data-value="55.55" class="pct medium">55.55%</td>
<td data-value="9" class="abs medium">5/9</td>
<td data-value="5.26" class="pct low">5.26%</td>
<td data-value="38" class="abs low">2/38</td>
<td data-value="80.35" class="pct high">80.35%</td>
<td data-value="56" class="abs high">45/56</td>
</tr>
<tr>
<td class="file low" data-value="optional.ts"><a href="optional.ts.html">optional.ts</a></td>
<td data-value="35.48" class="pic low">
<div class="chart"><div class="cover-fill" style="width: 35%"></div><div class="cover-empty" style="width: 65%"></div></div>
</td>
<td data-value="35.48" class="pct low">35.48%</td>
<td data-value="31" class="abs low">11/31</td>
<td data-value="42.85" class="pct low">42.85%</td>
<td data-value="7" class="abs low">3/7</td>
<td data-value="15.38" class="pct low">15.38%</td>
<td data-value="13" class="abs low">2/13</td>
<td data-value="36.66" class="pct low">36.66%</td>
<td data-value="30" class="abs low">11/30</td>
</tr>
</tbody>
@@ -146,7 +161,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
at 2026-06-23T20:42:03.618Z
at 2026-06-26T02:19:51.712Z
</div>
<script src="../../prettify.js"></script>
<script>
File diff suppressed because it is too large Load Diff
+116
View File
@@ -0,0 +1,116 @@
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for src/mixin/math</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../../../prettify.css" />
<link rel="stylesheet" href="../../../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../../../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="../../../index.html">All files</a> src/mixin/math</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">86.11% </span>
<span class="quiet">Statements</span>
<span class='fraction'>31/36</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>10/10</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">54.54% </span>
<span class="quiet">Functions</span>
<span class='fraction'>6/11</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">84.37% </span>
<span class="quiet">Lines</span>
<span class='fraction'>27/32</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
<div class="quiet">
Filter:
<input type="search" id="fileSearch">
</div>
</template>
</div>
<div class='status-line high'></div>
<div class="pad1">
<table class="coverage-summary">
<thead>
<tr>
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="swizzle.ts"><a href="swizzle.ts.html">swizzle.ts</a></td>
<td data-value="86.11" class="pic high">
<div class="chart"><div class="cover-fill" style="width: 86%"></div><div class="cover-empty" style="width: 14%"></div></div>
</td>
<td data-value="86.11" class="pct high">86.11%</td>
<td data-value="36" class="abs high">31/36</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="10" class="abs high">10/10</td>
<td data-value="54.54" class="pct medium">54.54%</td>
<td data-value="11" class="abs medium">6/11</td>
<td data-value="84.37" class="pct high">84.37%</td>
<td data-value="32" class="abs high">27/32</td>
</tr>
</tbody>
</table>
</div>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
at 2026-06-26T02:19:51.712Z
</div>
<script src="../../../prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="../../../sorter.js"></script>
<script src="../../../block-navigation.js"></script>
</body>
</html>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+172
View File
@@ -0,0 +1,172 @@
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for src/registry.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> registry.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>1/1</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>0/0</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>1/1</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
<template id="filterTemplate">
<div class="quiet">
Filter:
<input type="search" id="fileSearch">
</div>
</template>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a>
<a name='L7'></a><a href='#L7'>7</a>
<a name='L8'></a><a href='#L8'>8</a>
<a name='L9'></a><a href='#L9'>9</a>
<a name='L10'></a><a href='#L10'>10</a>
<a name='L11'></a><a href='#L11'>11</a>
<a name='L12'></a><a href='#L12'>12</a>
<a name='L13'></a><a href='#L13'>13</a>
<a name='L14'></a><a href='#L14'>14</a>
<a name='L15'></a><a href='#L15'>15</a>
<a name='L16'></a><a href='#L16'>16</a>
<a name='L17'></a><a href='#L17'>17</a>
<a name='L18'></a><a href='#L18'>18</a>
<a name='L19'></a><a href='#L19'>19</a>
<a name='L20'></a><a href='#L20'>20</a>
<a name='L21'></a><a href='#L21'>21</a>
<a name='L22'></a><a href='#L22'>22</a>
<a name='L23'></a><a href='#L23'>23</a>
<a name='L24'></a><a href='#L24'>24</a>
<a name='L25'></a><a href='#L25'>25</a>
<a name='L26'></a><a href='#L26'>26</a>
<a name='L27'></a><a href='#L27'>27</a>
<a name='L28'></a><a href='#L28'>28</a>
<a name='L29'></a><a href='#L29'>29</a>
<a name='L30'></a><a href='#L30'>30</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Mixin, type Instansiate } from "./base/mixin";
import { Array } from "./mixin/array";
import { AsyncMixin as Async } from "./mixin/awaited";
import { Base } from "./mixin/base";
import { Math } from "./mixin/math";
import { Optional } from "./mixin/optional";
&nbsp;
export type Registry = readonly Mixin[];
&nbsp;
export const DEFAULT_REGISTRY = [
Async,
Array,
Base,
Optional,
Math,
] as const satisfies Registry;
export type DefaultRegistry = typeof DEFAULT_REGISTRY;
&nbsp;
export type Methods&lt;
T,
Reg extends Registry,
TReg extends Registry = Reg,
TOut extends Record&lt;PropertyKey, unknown&gt; = Record&lt;never, never&gt;,
&gt; = TReg extends readonly [
infer M extends Mixin,
...infer Rest extends Registry,
]
? Methods&lt;T, Reg, Rest, TOut &amp; Instansiate&lt;M, T, Reg&gt;&gt;
: TOut;
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
at 2026-06-26T02:19:51.712Z
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
prettyPrint();
};
</script>
<script src="../sorter.js"></script>
<script src="../block-navigation.js"></script>
</body>
</html>