feat: 公共方法增加错误降级不冒泡错误
This commit is contained in:
parent
8c7e5947cd
commit
c55bbde5a8
File diff suppressed because one or more lines are too long
|
|
@ -23,30 +23,30 @@
|
|||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">49.43% </span>
|
||||
<span class="strong">51.53% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>2635/5330</span>
|
||||
<span class='fraction'>2834/5499</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">87.24% </span>
|
||||
<span class="strong">85.41% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>513/588</span>
|
||||
<span class='fraction'>568/665</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">41.97% </span>
|
||||
<span class="strong">51.19% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>123/293</span>
|
||||
<span class='fraction'>150/293</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">49.43% </span>
|
||||
<span class="strong">51.53% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>2635/5330</span>
|
||||
<span class='fraction'>2834/5499</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -61,7 +61,7 @@
|
|||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<div class='status-line medium'></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
|
|
@ -79,33 +79,33 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td class="file medium" data-value="src"><a href="src/index.html">src</a></td>
|
||||
<td data-value="50.39" class="pic medium">
|
||||
<div class="chart"><div class="cover-fill" style="width: 50%"></div><div class="cover-empty" style="width: 50%"></div></div>
|
||||
<td class="file low" data-value="src"><a href="src/index.html">src</a></td>
|
||||
<td data-value="37.57" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 37%"></div><div class="cover-empty" style="width: 63%"></div></div>
|
||||
</td>
|
||||
<td data-value="50.39" class="pct medium">50.39%</td>
|
||||
<td data-value="252" class="abs medium">127/252</td>
|
||||
<td data-value="37.57" class="pct low">37.57%</td>
|
||||
<td data-value="338" class="abs low">127/338</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="21" class="abs low">0/21</td>
|
||||
<td data-value="50.39" class="pct medium">50.39%</td>
|
||||
<td data-value="252" class="abs medium">127/252</td>
|
||||
<td data-value="37.57" class="pct low">37.57%</td>
|
||||
<td data-value="338" class="abs low">127/338</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file medium" data-value="src/core"><a href="src/core/index.html">src/core</a></td>
|
||||
<td data-value="60.64" class="pic medium">
|
||||
<div class="chart"><div class="cover-fill" style="width: 60%"></div><div class="cover-empty" style="width: 40%"></div></div>
|
||||
<td data-value="69.23" class="pic medium">
|
||||
<div class="chart"><div class="cover-fill" style="width: 69%"></div><div class="cover-empty" style="width: 31%"></div></div>
|
||||
</td>
|
||||
<td data-value="60.64" class="pct medium">60.64%</td>
|
||||
<td data-value="1606" class="abs medium">974/1606</td>
|
||||
<td data-value="85.78" class="pct high">85.78%</td>
|
||||
<td data-value="197" class="abs high">169/197</td>
|
||||
<td data-value="52" class="pct medium">52%</td>
|
||||
<td data-value="100" class="abs medium">52/100</td>
|
||||
<td data-value="60.64" class="pct medium">60.64%</td>
|
||||
<td data-value="1606" class="abs medium">974/1606</td>
|
||||
<td data-value="69.23" class="pct medium">69.23%</td>
|
||||
<td data-value="1690" class="abs medium">1170/1690</td>
|
||||
<td data-value="80.43" class="pct high">80.43%</td>
|
||||
<td data-value="276" class="abs high">222/276</td>
|
||||
<td data-value="79" class="pct medium">79%</td>
|
||||
<td data-value="100" class="abs medium">79/100</td>
|
||||
<td data-value="69.23" class="pct medium">69.23%</td>
|
||||
<td data-value="1690" class="abs medium">1170/1690</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
|
@ -125,17 +125,17 @@
|
|||
|
||||
<tr>
|
||||
<td class="file high" data-value="src/utils"><a href="src/utils/index.html">src/utils</a></td>
|
||||
<td data-value="97.36" class="pic high">
|
||||
<td data-value="97.71" class="pic high">
|
||||
<div class="chart"><div class="cover-fill" style="width: 97%"></div><div class="cover-empty" style="width: 3%"></div></div>
|
||||
</td>
|
||||
<td data-value="97.36" class="pct high">97.36%</td>
|
||||
<td data-value="1138" class="abs high">1108/1138</td>
|
||||
<td data-value="87.87" class="pct high">87.87%</td>
|
||||
<td data-value="363" class="abs high">319/363</td>
|
||||
<td data-value="97.71" class="pct high">97.71%</td>
|
||||
<td data-value="1137" class="abs high">1111/1137</td>
|
||||
<td data-value="88.91" class="pct high">88.91%</td>
|
||||
<td data-value="361" class="abs high">321/361</td>
|
||||
<td data-value="96.92" class="pct high">96.92%</td>
|
||||
<td data-value="65" class="abs high">63/65</td>
|
||||
<td data-value="97.36" class="pct high">97.36%</td>
|
||||
<td data-value="1138" class="abs high">1108/1138</td>
|
||||
<td data-value="97.71" class="pct high">97.71%</td>
|
||||
<td data-value="1137" class="abs high">1111/1137</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
|
|
@ -146,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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -30,9 +30,9 @@
|
|||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">81.81% </span>
|
||||
<span class="strong">83.63% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>45/55</span>
|
||||
<span class='fraction'>46/55</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -337,50 +337,50 @@
|
|||
<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">40x</span>
|
||||
<span class="cline-any cline-yes">40x</span>
|
||||
<span class="cline-any cline-yes">72x</span>
|
||||
<span class="cline-any cline-yes">72x</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-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">10x</span>
|
||||
<span class="cline-any cline-yes">10x</span>
|
||||
<span class="cline-any cline-yes">172x</span>
|
||||
<span class="cline-any cline-yes">172x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">6x</span>
|
||||
<span class="cline-any cline-yes">6x</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-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">4x</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-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">2x</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">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</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">4x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">7x</span>
|
||||
<span class="cline-any cline-yes">7x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
|
|
@ -623,7 +623,7 @@ export class ConfigManager {
|
|||
}
|
||||
|
||||
isIgnoredError(message: string): boolean {
|
||||
return matchPatterns(message, this.config.<span class="branch-0 cbranch-no" title="branch not covered" >ignoreErrors || [])</span>;
|
||||
return matchPatterns(message, this.config.ignoreErrors || []);
|
||||
}
|
||||
|
||||
shouldSample(): boolean {
|
||||
|
|
@ -802,7 +802,7 @@ export class ConfigManager {
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -113,49 +113,49 @@
|
|||
<a name='L48'></a><a href='#L48'>48</a></td><td class="line-coverage quiet"><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">42x</span>
|
||||
<span class="cline-any cline-yes">74x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">24x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">24x</span>
|
||||
<span class="cline-any cline-yes">24x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">10x</span>
|
||||
<span class="cline-any cline-yes">10x</span>
|
||||
<span class="cline-any cline-yes">9x</span>
|
||||
<span class="cline-any cline-yes">9x</span>
|
||||
<span class="cline-any cline-yes">8x</span>
|
||||
<span class="cline-any cline-yes">8x</span>
|
||||
<span class="cline-any cline-yes">9x</span>
|
||||
<span class="cline-any cline-yes">10x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">95x</span>
|
||||
<span class="cline-any cline-yes">95x</span>
|
||||
<span class="cline-any cline-yes">16x</span>
|
||||
<span class="cline-any cline-yes">16x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">9x</span>
|
||||
<span class="cline-any cline-yes">9x</span>
|
||||
<span class="cline-any cline-yes">8x</span>
|
||||
<span class="cline-any cline-yes">8x</span>
|
||||
<span class="cline-any cline-yes">7x</span>
|
||||
<span class="cline-any cline-yes">7x</span>
|
||||
<span class="cline-any cline-yes">8x</span>
|
||||
<span class="cline-any cline-yes">9x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">88x</span>
|
||||
<span class="cline-any cline-yes">88x</span>
|
||||
<span class="cline-any cline-yes">14x</span>
|
||||
<span class="cline-any cline-yes">15x</span>
|
||||
<span class="cline-any cline-yes">15x</span>
|
||||
<span class="cline-any cline-yes">15x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">15x</span>
|
||||
<span class="cline-any cline-yes">14x</span>
|
||||
<span class="cline-any cline-yes">88x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">16x</span>
|
||||
<span class="cline-any cline-yes">95x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">36x</span>
|
||||
<span class="cline-any cline-yes">36x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">type Handler = (...args: unknown[]) => void;
|
||||
|
||||
|
|
@ -211,7 +211,7 @@ export class EventBus {
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -23,16 +23,16 @@
|
|||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">89.9% </span>
|
||||
<span class="strong">90.53% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>285/317</span>
|
||||
<span class='fraction'>287/317</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">83.82% </span>
|
||||
<span class="strong">86.11% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>57/68</span>
|
||||
<span class='fraction'>62/72</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -44,9 +44,9 @@
|
|||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">89.9% </span>
|
||||
<span class="strong">90.53% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>285/317</span>
|
||||
<span class='fraction'>287/317</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -412,122 +412,122 @@
|
|||
<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">27x</span>
|
||||
<span class="cline-any cline-yes">27x</span>
|
||||
<span class="cline-any cline-yes">27x</span>
|
||||
<span class="cline-any cline-yes">27x</span>
|
||||
<span class="cline-any cline-yes">27x</span>
|
||||
<span class="cline-any cline-yes">27x</span>
|
||||
<span class="cline-any cline-yes">27x</span>
|
||||
<span class="cline-any cline-yes">27x</span>
|
||||
<span class="cline-any cline-yes">27x</span>
|
||||
<span class="cline-any cline-yes">27x</span>
|
||||
<span class="cline-any cline-yes">27x</span>
|
||||
<span class="cline-any cline-yes">27x</span>
|
||||
<span class="cline-any cline-yes">59x</span>
|
||||
<span class="cline-any cline-yes">59x</span>
|
||||
<span class="cline-any cline-yes">59x</span>
|
||||
<span class="cline-any cline-yes">59x</span>
|
||||
<span class="cline-any cline-yes">59x</span>
|
||||
<span class="cline-any cline-yes">59x</span>
|
||||
<span class="cline-any cline-yes">59x</span>
|
||||
<span class="cline-any cline-yes">59x</span>
|
||||
<span class="cline-any cline-yes">59x</span>
|
||||
<span class="cline-any cline-yes">59x</span>
|
||||
<span class="cline-any cline-yes">59x</span>
|
||||
<span class="cline-any cline-yes">59x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">2x</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">2x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</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">80x</span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">26x</span>
|
||||
<span class="cline-any cline-yes">26x</span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">3x</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">3x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">77x</span>
|
||||
<span class="cline-any cline-yes">77x</span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">83x</span>
|
||||
<span class="cline-any cline-yes">83x</span>
|
||||
<span class="cline-any cline-yes">83x</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">82x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">83x</span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">77x</span>
|
||||
<span class="cline-any cline-yes">77x</span>
|
||||
<span class="cline-any cline-yes">77x</span>
|
||||
<span class="cline-any cline-yes">77x</span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">3x</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">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">79x</span>
|
||||
<span class="cline-any cline-yes">79x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">87x</span>
|
||||
<span class="cline-any cline-yes">87x</span>
|
||||
<span class="cline-any cline-yes">87x</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">86x</span>
|
||||
<span class="cline-any cline-yes">86x</span>
|
||||
<span class="cline-any cline-yes">86x</span>
|
||||
<span class="cline-any cline-yes">86x</span>
|
||||
<span class="cline-any cline-yes">86x</span>
|
||||
<span class="cline-any cline-yes">87x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">79x</span>
|
||||
<span class="cline-any cline-yes">79x</span>
|
||||
<span class="cline-any cline-yes">79x</span>
|
||||
<span class="cline-any cline-yes">79x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">51x</span>
|
||||
<span class="cline-any cline-yes">51x</span>
|
||||
<span class="cline-any cline-yes">33x</span>
|
||||
|
|
@ -548,69 +548,69 @@
|
|||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">26x</span>
|
||||
<span class="cline-any cline-yes">26x</span>
|
||||
<span class="cline-any cline-yes">26x</span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">46x</span>
|
||||
<span class="cline-any cline-yes">46x</span>
|
||||
<span class="cline-any cline-yes">46x</span>
|
||||
<span class="cline-any cline-yes">46x</span>
|
||||
<span class="cline-any cline-yes">46x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">50x</span>
|
||||
<span class="cline-any cline-yes">50x</span>
|
||||
<span class="cline-any cline-yes">50x</span>
|
||||
<span class="cline-any cline-yes">50x</span>
|
||||
<span class="cline-any cline-yes">50x</span>
|
||||
<span class="cline-any cline-yes">87x</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">87x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">86x</span>
|
||||
<span class="cline-any cline-yes">6x</span>
|
||||
<span class="cline-any cline-yes">6x</span>
|
||||
<span class="cline-any cline-yes">6x</span>
|
||||
<span class="cline-any cline-yes">6x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">86x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">86x</span>
|
||||
<span class="cline-any cline-yes">83x</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">83x</span>
|
||||
<span class="cline-any cline-yes">83x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">86x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">12x</span>
|
||||
<span class="cline-any cline-yes">12x</span>
|
||||
<span class="cline-any cline-yes">12x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">80x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
|
|
@ -639,7 +639,7 @@
|
|||
<span class="cline-any cline-yes">11x</span>
|
||||
<span class="cline-any cline-yes">9x</span>
|
||||
<span class="cline-any cline-yes">9x</span>
|
||||
<span class="cline-any cline-yes">11x</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-yes">2x</span>
|
||||
|
|
@ -672,30 +672,30 @@
|
|||
<span class="cline-any cline-yes">19x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">61x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">61x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">61x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">61x</span>
|
||||
<span class="cline-any cline-yes">61x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">61x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">61x</span>
|
||||
<span class="cline-any cline-yes">61x</span>
|
||||
<span class="cline-any cline-yes">61x</span>
|
||||
<span class="cline-any cline-yes">61x</span>
|
||||
<span class="cline-any cline-yes">61x</span>
|
||||
<span class="cline-any cline-yes">61x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { SentryEvent, ErrorEvent, CountEvent } from '../types';
|
||||
import { EventBus } from './EventBus';
|
||||
|
|
@ -888,9 +888,9 @@ export class EventQueue {
|
|||
const expiryTime = 60000;
|
||||
|
||||
for (const [key, entry] of this.dedupeMap) {
|
||||
if (currentTime - entry.lastTime > expiryTime) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
||||
<span class="cstat-no" title="statement not covered" > this.dedupeMap.delete(key);</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
if (currentTime - entry.lastTime > expiryTime) {
|
||||
this.dedupeMap.delete(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1021,7 +1021,7 @@ export class EventQueue {
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -157,20 +157,20 @@
|
|||
<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">26x</span>
|
||||
<span class="cline-any cline-yes">26x</span>
|
||||
<span class="cline-any cline-yes">58x</span>
|
||||
<span class="cline-any cline-yes">58x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">30x</span>
|
||||
<span class="cline-any cline-yes">32x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">29x</span>
|
||||
<span class="cline-any cline-yes">29x</span>
|
||||
<span class="cline-any cline-yes">29x</span>
|
||||
<span class="cline-any cline-yes">30x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">30x</span>
|
||||
<span class="cline-any cline-yes">31x</span>
|
||||
<span class="cline-any cline-yes">31x</span>
|
||||
<span class="cline-any cline-yes">31x</span>
|
||||
<span class="cline-any cline-yes">32x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">32x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
|
|
@ -225,17 +225,17 @@
|
|||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">6x</span>
|
||||
<span class="cline-any cline-yes">37x</span>
|
||||
<span class="cline-any cline-yes">8x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">6x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">8x</span>
|
||||
<span class="cline-any cline-yes">37x</span>
|
||||
<span class="cline-any cline-yes">37x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { LightPlugin, LightClient, SentryEvent } from '../types';
|
||||
|
||||
|
|
@ -331,7 +331,7 @@ export class PluginManager {
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -23,30 +23,30 @@
|
|||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">16.9% </span>
|
||||
<span class="strong">18.05% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>59/349</span>
|
||||
<span class='fraction'>63/349</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/0</span>
|
||||
<span class='fraction'>1/1</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="strong">8.33% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>0/12</span>
|
||||
<span class='fraction'>1/12</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">16.9% </span>
|
||||
<span class="strong">18.05% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>59/349</span>
|
||||
<span class='fraction'>63/349</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -425,10 +425,10 @@
|
|||
<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"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">32x</span>
|
||||
<span class="cline-any cline-yes">32x</span>
|
||||
<span class="cline-any cline-yes">32x</span>
|
||||
<span class="cline-any cline-yes">32x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
|
|
@ -773,11 +773,11 @@ export class Reporter {
|
|||
private retryDelay: number;
|
||||
private useShortFields: boolean = true; // 是否使用短字段编码
|
||||
|
||||
<span class="fstat-no" title="function not covered" > constructor(dsn: DSNInfo, maxRetries: number, retryDelay: number) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > this.dsn = dsn;</span>
|
||||
<span class="cstat-no" title="statement not covered" > this.maxRetries = maxRetries;</span>
|
||||
<span class="cstat-no" title="statement not covered" > this.retryDelay = retryDelay;</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
constructor(dsn: DSNInfo, maxRetries: number, retryDelay: number) {
|
||||
this.dsn = dsn;
|
||||
this.maxRetries = maxRetries;
|
||||
this.retryDelay = retryDelay;
|
||||
}
|
||||
|
||||
<span class="fstat-no" title="function not covered" > async report(events: SentryEvent[]): Promise<void> {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logDebug('Reporter', 'report called', { eventCount: events.length });</span>
|
||||
|
|
@ -1117,7 +1117,7 @@ export class Reporter {
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -23,16 +23,16 @@
|
|||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">86.86% </span>
|
||||
<span class="strong">87.87% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>172/198</span>
|
||||
<span class='fraction'>174/198</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">80% </span>
|
||||
<span class="strong">89.74% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>28/35</span>
|
||||
<span class='fraction'>35/39</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -44,9 +44,9 @@
|
|||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">86.86% </span>
|
||||
<span class="strong">87.87% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>172/198</span>
|
||||
<span class='fraction'>174/198</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -273,22 +273,22 @@
|
|||
<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">29x</span>
|
||||
<span class="cline-any cline-yes">29x</span>
|
||||
<span class="cline-any cline-yes">29x</span>
|
||||
<span class="cline-any cline-yes">29x</span>
|
||||
<span class="cline-any cline-yes">61x</span>
|
||||
<span class="cline-any cline-yes">61x</span>
|
||||
<span class="cline-any cline-yes">61x</span>
|
||||
<span class="cline-any cline-yes">61x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</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">3x</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-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">19x</span>
|
||||
<span class="cline-any cline-yes">19x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
|
|
@ -302,78 +302,78 @@
|
|||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-yes">19x</span>
|
||||
<span class="cline-any cline-yes">19x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">13x</span>
|
||||
<span class="cline-any cline-yes">13x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">22x</span>
|
||||
<span class="cline-any cline-yes">22x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">19x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">20x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">8x</span>
|
||||
<span class="cline-any cline-yes">8x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">16x</span>
|
||||
<span class="cline-any cline-yes">16x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</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">3x</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-yes">9x</span>
|
||||
<span class="cline-any cline-yes">9x</span>
|
||||
<span class="cline-any cline-yes">9x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</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">8x</span>
|
||||
<span class="cline-any cline-yes">8x</span>
|
||||
<span class="cline-any cline-yes">8x</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">7x</span>
|
||||
<span class="cline-any cline-yes">7x</span>
|
||||
<span class="cline-any cline-yes">7x</span>
|
||||
|
|
@ -404,25 +404,15 @@
|
|||
<span class="cline-any cline-yes">7x</span>
|
||||
<span class="cline-any cline-yes">7x</span>
|
||||
<span class="cline-any cline-yes">7x</span>
|
||||
<span class="cline-any cline-yes">8x</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-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"> </span>
|
||||
<span class="cline-any cline-no"> </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-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">9x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</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">2x</span>
|
||||
|
|
@ -433,10 +423,20 @@
|
|||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</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">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
|
|
@ -447,17 +447,17 @@
|
|||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">31x</span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-yes">64x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-yes">31x</span>
|
||||
<span class="cline-any cline-yes">31x</span>
|
||||
<span class="cline-any cline-yes">31x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">64x</span>
|
||||
<span class="cline-any cline-yes">64x</span>
|
||||
<span class="cline-any cline-yes">64x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { LightConfig, SpanContext, TransactionContext, Span, Transaction, LightClient, SamplingContext } from '../types';
|
||||
import { Span as SpanImpl, Transaction as TransactionImpl } from '../utils/tracing';
|
||||
|
|
@ -501,7 +501,7 @@ export class TracingManager {
|
|||
<span class="cstat-no" title="statement not covered" > return Math.random() < clampedRate;</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
|
||||
const rate = this.config.<span class="branch-0 cbranch-no" title="branch not covered" >tracesSampleRate ?? 0;</span>
|
||||
const rate = this.config.tracesSampleRate ?? 0;
|
||||
if (rate >= 1) return true;
|
||||
if (rate <= 0) return <span class="branch-0 cbranch-no" title="branch not covered" >false;</span>
|
||||
<span class="cstat-no" title="statement not covered" > return Math.random() < rate;</span>
|
||||
|
|
@ -610,9 +610,9 @@ export class TracingManager {
|
|||
this.spanStack.splice(idx, 1);
|
||||
}
|
||||
|
||||
if (this.spanStack.length === <span class="branch-0 cbranch-no" title="branch not covered" >0 && this.currentTransaction) <span class="branch-0 cbranch-no" title="branch not covered" >{</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > this.spanStack = [this.currentTransaction];</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
if (this.spanStack.length === 0 && this.currentTransaction) {
|
||||
this.spanStack = [this.currentTransaction];
|
||||
}
|
||||
|
||||
logDebug('TracingManager', 'Span finished', {
|
||||
op: span.op,
|
||||
|
|
@ -664,7 +664,7 @@ export class TracingManager {
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -23,30 +23,30 @@
|
|||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">60.64% </span>
|
||||
<span class="strong">69.23% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>974/1606</span>
|
||||
<span class='fraction'>1170/1690</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">85.78% </span>
|
||||
<span class="strong">80.43% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>169/197</span>
|
||||
<span class='fraction'>222/276</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">52% </span>
|
||||
<span class="strong">79% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>52/100</span>
|
||||
<span class='fraction'>79/100</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">60.64% </span>
|
||||
<span class="strong">69.23% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>974/1606</span>
|
||||
<span class='fraction'>1170/1690</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -79,18 +79,18 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td class="file low" data-value="Client.ts"><a href="Client.ts.html">Client.ts</a></td>
|
||||
<td data-value="24.72" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 24%"></div><div class="cover-empty" style="width: 76%"></div></div>
|
||||
<td class="file medium" data-value="Client.ts"><a href="Client.ts.html">Client.ts</a></td>
|
||||
<td data-value="62.05" class="pic medium">
|
||||
<div class="chart"><div class="cover-fill" style="width: 62%"></div><div class="cover-empty" style="width: 38%"></div></div>
|
||||
</td>
|
||||
<td data-value="24.72" class="pct low">24.72%</td>
|
||||
<td data-value="364" class="abs low">90/364</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="29" class="abs low">0/29</td>
|
||||
<td data-value="24.72" class="pct low">24.72%</td>
|
||||
<td data-value="364" class="abs low">90/364</td>
|
||||
<td data-value="62.05" class="pct medium">62.05%</td>
|
||||
<td data-value="448" class="abs medium">278/448</td>
|
||||
<td data-value="55.71" class="pct medium">55.71%</td>
|
||||
<td data-value="70" class="abs medium">39/70</td>
|
||||
<td data-value="89.65" class="pct high">89.65%</td>
|
||||
<td data-value="29" class="abs high">26/29</td>
|
||||
<td data-value="62.05" class="pct medium">62.05%</td>
|
||||
<td data-value="448" class="abs medium">278/448</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
|
@ -100,8 +100,8 @@
|
|||
</td>
|
||||
<td data-value="95.9" class="pct high">95.9%</td>
|
||||
<td data-value="244" class="abs high">234/244</td>
|
||||
<td data-value="81.81" class="pct high">81.81%</td>
|
||||
<td data-value="55" class="abs high">45/55</td>
|
||||
<td data-value="83.63" class="pct high">83.63%</td>
|
||||
<td data-value="55" class="abs high">46/55</td>
|
||||
<td data-value="92.85" class="pct high">92.85%</td>
|
||||
<td data-value="14" class="abs high">13/14</td>
|
||||
<td data-value="95.9" class="pct high">95.9%</td>
|
||||
|
|
@ -125,17 +125,17 @@
|
|||
|
||||
<tr>
|
||||
<td class="file high" data-value="EventQueue.ts"><a href="EventQueue.ts.html">EventQueue.ts</a></td>
|
||||
<td data-value="89.9" class="pic high">
|
||||
<div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div>
|
||||
<td data-value="90.53" class="pic high">
|
||||
<div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
|
||||
</td>
|
||||
<td data-value="89.9" class="pct high">89.9%</td>
|
||||
<td data-value="317" class="abs high">285/317</td>
|
||||
<td data-value="83.82" class="pct high">83.82%</td>
|
||||
<td data-value="68" class="abs high">57/68</td>
|
||||
<td data-value="90.53" class="pct high">90.53%</td>
|
||||
<td data-value="317" class="abs high">287/317</td>
|
||||
<td data-value="86.11" class="pct high">86.11%</td>
|
||||
<td data-value="72" class="abs high">62/72</td>
|
||||
<td data-value="81.25" class="pct high">81.25%</td>
|
||||
<td data-value="16" class="abs high">13/16</td>
|
||||
<td data-value="89.9" class="pct high">89.9%</td>
|
||||
<td data-value="317" class="abs high">285/317</td>
|
||||
<td data-value="90.53" class="pct high">90.53%</td>
|
||||
<td data-value="317" class="abs high">287/317</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
|
@ -155,32 +155,32 @@
|
|||
|
||||
<tr>
|
||||
<td class="file low" data-value="Reporter.ts"><a href="Reporter.ts.html">Reporter.ts</a></td>
|
||||
<td data-value="16.9" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 16%"></div><div class="cover-empty" style="width: 84%"></div></div>
|
||||
<td data-value="18.05" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 18%"></div><div class="cover-empty" style="width: 82%"></div></div>
|
||||
</td>
|
||||
<td data-value="16.9" class="pct low">16.9%</td>
|
||||
<td data-value="349" class="abs low">59/349</td>
|
||||
<td data-value="18.05" class="pct low">18.05%</td>
|
||||
<td data-value="349" class="abs low">63/349</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="12" class="abs low">0/12</td>
|
||||
<td data-value="16.9" class="pct low">16.9%</td>
|
||||
<td data-value="349" class="abs low">59/349</td>
|
||||
<td data-value="1" class="abs high">1/1</td>
|
||||
<td data-value="8.33" class="pct low">8.33%</td>
|
||||
<td data-value="12" class="abs low">1/12</td>
|
||||
<td data-value="18.05" class="pct low">18.05%</td>
|
||||
<td data-value="349" class="abs low">63/349</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file high" data-value="TracingManager.ts"><a href="TracingManager.ts.html">TracingManager.ts</a></td>
|
||||
<td data-value="86.86" class="pic high">
|
||||
<div class="chart"><div class="cover-fill" style="width: 86%"></div><div class="cover-empty" style="width: 14%"></div></div>
|
||||
<td data-value="87.87" class="pic high">
|
||||
<div class="chart"><div class="cover-fill" style="width: 87%"></div><div class="cover-empty" style="width: 13%"></div></div>
|
||||
</td>
|
||||
<td data-value="86.86" class="pct high">86.86%</td>
|
||||
<td data-value="198" class="abs high">172/198</td>
|
||||
<td data-value="80" class="pct high">80%</td>
|
||||
<td data-value="35" class="abs high">28/35</td>
|
||||
<td data-value="87.87" class="pct high">87.87%</td>
|
||||
<td data-value="198" class="abs high">174/198</td>
|
||||
<td data-value="89.74" class="pct high">89.74%</td>
|
||||
<td data-value="39" class="abs high">35/39</td>
|
||||
<td data-value="78.57" class="pct medium">78.57%</td>
|
||||
<td data-value="14" class="abs medium">11/14</td>
|
||||
<td data-value="86.86" class="pct high">86.86%</td>
|
||||
<td data-value="198" class="abs high">172/198</td>
|
||||
<td data-value="87.87" class="pct high">87.87%</td>
|
||||
<td data-value="198" class="abs high">174/198</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
|
|
@ -191,7 +191,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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -23,9 +23,9 @@
|
|||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">50.39% </span>
|
||||
<span class="strong">37.57% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>127/252</span>
|
||||
<span class='fraction'>127/338</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -44,9 +44,9 @@
|
|||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">50.39% </span>
|
||||
<span class="strong">37.57% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>127/252</span>
|
||||
<span class='fraction'>127/338</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -61,7 +61,7 @@
|
|||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line medium'></div>
|
||||
<div class='status-line low'></div>
|
||||
<div class="pad1">
|
||||
<table class="coverage-summary">
|
||||
<thead>
|
||||
|
|
@ -79,18 +79,18 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td class="file medium" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
|
||||
<td data-value="50.39" class="pic medium">
|
||||
<div class="chart"><div class="cover-fill" style="width: 50%"></div><div class="cover-empty" style="width: 50%"></div></div>
|
||||
<td class="file low" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
|
||||
<td data-value="37.57" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 37%"></div><div class="cover-empty" style="width: 63%"></div></div>
|
||||
</td>
|
||||
<td data-value="50.39" class="pct medium">50.39%</td>
|
||||
<td data-value="252" class="abs medium">127/252</td>
|
||||
<td data-value="37.57" class="pct low">37.57%</td>
|
||||
<td data-value="338" class="abs low">127/338</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="21" class="abs low">0/21</td>
|
||||
<td data-value="50.39" class="pct medium">50.39%</td>
|
||||
<td data-value="252" class="abs medium">127/252</td>
|
||||
<td data-value="37.57" class="pct low">37.57%</td>
|
||||
<td data-value="338" class="abs low">127/338</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
|
|
@ -101,7 +101,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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -23,9 +23,9 @@
|
|||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">50.39% </span>
|
||||
<span class="strong">37.57% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>127/252</span>
|
||||
<span class='fraction'>127/338</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -44,9 +44,9 @@
|
|||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">50.39% </span>
|
||||
<span class="strong">37.57% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>127/252</span>
|
||||
<span class='fraction'>127/338</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -61,7 +61,7 @@
|
|||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class='status-line medium'></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>
|
||||
|
|
@ -315,7 +315,93 @@
|
|||
<a name='L250'></a><a href='#L250'>250</a>
|
||||
<a name='L251'></a><a href='#L251'>251</a>
|
||||
<a name='L252'></a><a href='#L252'>252</a>
|
||||
<a name='L253'></a><a href='#L253'>253</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
||||
<a name='L253'></a><a href='#L253'>253</a>
|
||||
<a name='L254'></a><a href='#L254'>254</a>
|
||||
<a name='L255'></a><a href='#L255'>255</a>
|
||||
<a name='L256'></a><a href='#L256'>256</a>
|
||||
<a name='L257'></a><a href='#L257'>257</a>
|
||||
<a name='L258'></a><a href='#L258'>258</a>
|
||||
<a name='L259'></a><a href='#L259'>259</a>
|
||||
<a name='L260'></a><a href='#L260'>260</a>
|
||||
<a name='L261'></a><a href='#L261'>261</a>
|
||||
<a name='L262'></a><a href='#L262'>262</a>
|
||||
<a name='L263'></a><a href='#L263'>263</a>
|
||||
<a name='L264'></a><a href='#L264'>264</a>
|
||||
<a name='L265'></a><a href='#L265'>265</a>
|
||||
<a name='L266'></a><a href='#L266'>266</a>
|
||||
<a name='L267'></a><a href='#L267'>267</a>
|
||||
<a name='L268'></a><a href='#L268'>268</a>
|
||||
<a name='L269'></a><a href='#L269'>269</a>
|
||||
<a name='L270'></a><a href='#L270'>270</a>
|
||||
<a name='L271'></a><a href='#L271'>271</a>
|
||||
<a name='L272'></a><a href='#L272'>272</a>
|
||||
<a name='L273'></a><a href='#L273'>273</a>
|
||||
<a name='L274'></a><a href='#L274'>274</a>
|
||||
<a name='L275'></a><a href='#L275'>275</a>
|
||||
<a name='L276'></a><a href='#L276'>276</a>
|
||||
<a name='L277'></a><a href='#L277'>277</a>
|
||||
<a name='L278'></a><a href='#L278'>278</a>
|
||||
<a name='L279'></a><a href='#L279'>279</a>
|
||||
<a name='L280'></a><a href='#L280'>280</a>
|
||||
<a name='L281'></a><a href='#L281'>281</a>
|
||||
<a name='L282'></a><a href='#L282'>282</a>
|
||||
<a name='L283'></a><a href='#L283'>283</a>
|
||||
<a name='L284'></a><a href='#L284'>284</a>
|
||||
<a name='L285'></a><a href='#L285'>285</a>
|
||||
<a name='L286'></a><a href='#L286'>286</a>
|
||||
<a name='L287'></a><a href='#L287'>287</a>
|
||||
<a name='L288'></a><a href='#L288'>288</a>
|
||||
<a name='L289'></a><a href='#L289'>289</a>
|
||||
<a name='L290'></a><a href='#L290'>290</a>
|
||||
<a name='L291'></a><a href='#L291'>291</a>
|
||||
<a name='L292'></a><a href='#L292'>292</a>
|
||||
<a name='L293'></a><a href='#L293'>293</a>
|
||||
<a name='L294'></a><a href='#L294'>294</a>
|
||||
<a name='L295'></a><a href='#L295'>295</a>
|
||||
<a name='L296'></a><a href='#L296'>296</a>
|
||||
<a name='L297'></a><a href='#L297'>297</a>
|
||||
<a name='L298'></a><a href='#L298'>298</a>
|
||||
<a name='L299'></a><a href='#L299'>299</a>
|
||||
<a name='L300'></a><a href='#L300'>300</a>
|
||||
<a name='L301'></a><a href='#L301'>301</a>
|
||||
<a name='L302'></a><a href='#L302'>302</a>
|
||||
<a name='L303'></a><a href='#L303'>303</a>
|
||||
<a name='L304'></a><a href='#L304'>304</a>
|
||||
<a name='L305'></a><a href='#L305'>305</a>
|
||||
<a name='L306'></a><a href='#L306'>306</a>
|
||||
<a name='L307'></a><a href='#L307'>307</a>
|
||||
<a name='L308'></a><a href='#L308'>308</a>
|
||||
<a name='L309'></a><a href='#L309'>309</a>
|
||||
<a name='L310'></a><a href='#L310'>310</a>
|
||||
<a name='L311'></a><a href='#L311'>311</a>
|
||||
<a name='L312'></a><a href='#L312'>312</a>
|
||||
<a name='L313'></a><a href='#L313'>313</a>
|
||||
<a name='L314'></a><a href='#L314'>314</a>
|
||||
<a name='L315'></a><a href='#L315'>315</a>
|
||||
<a name='L316'></a><a href='#L316'>316</a>
|
||||
<a name='L317'></a><a href='#L317'>317</a>
|
||||
<a name='L318'></a><a href='#L318'>318</a>
|
||||
<a name='L319'></a><a href='#L319'>319</a>
|
||||
<a name='L320'></a><a href='#L320'>320</a>
|
||||
<a name='L321'></a><a href='#L321'>321</a>
|
||||
<a name='L322'></a><a href='#L322'>322</a>
|
||||
<a name='L323'></a><a href='#L323'>323</a>
|
||||
<a name='L324'></a><a href='#L324'>324</a>
|
||||
<a name='L325'></a><a href='#L325'>325</a>
|
||||
<a name='L326'></a><a href='#L326'>326</a>
|
||||
<a name='L327'></a><a href='#L327'>327</a>
|
||||
<a name='L328'></a><a href='#L328'>328</a>
|
||||
<a name='L329'></a><a href='#L329'>329</a>
|
||||
<a name='L330'></a><a href='#L330'>330</a>
|
||||
<a name='L331'></a><a href='#L331'>331</a>
|
||||
<a name='L332'></a><a href='#L332'>332</a>
|
||||
<a name='L333'></a><a href='#L333'>333</a>
|
||||
<a name='L334'></a><a href='#L334'>334</a>
|
||||
<a name='L335'></a><a href='#L335'>335</a>
|
||||
<a name='L336'></a><a href='#L336'>336</a>
|
||||
<a name='L337'></a><a href='#L337'>337</a>
|
||||
<a name='L338'></a><a href='#L338'>338</a>
|
||||
<a name='L339'></a><a href='#L339'>339</a></td><td class="line-coverage quiet"><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>
|
||||
|
|
@ -382,6 +468,11 @@
|
|||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
|
|
@ -395,6 +486,69 @@
|
|||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
|
|
@ -417,7 +571,8 @@
|
|||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
|
|
@ -425,7 +580,7 @@
|
|||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
|
|
@ -433,7 +588,8 @@
|
|||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
|
|
@ -441,7 +597,7 @@
|
|||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
|
|
@ -449,7 +605,7 @@
|
|||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
|
|
@ -457,7 +613,7 @@
|
|||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
|
|
@ -465,7 +621,7 @@
|
|||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
|
|
@ -473,10 +629,26 @@
|
|||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </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>
|
||||
|
|
@ -579,12 +751,13 @@ import InteractionPlugin from './plugins/InteractionPlugin';
|
|||
import { Span as SpanClass, Transaction as TransactionClass, httpStatusToSpanStatus, dbStatusToSpanStatus, statusToSpanStatus } from './utils/tracing';
|
||||
import { serializeBaggage, parseBaggage, createBaggageFromTransaction } from './utils/baggage';
|
||||
import type { LightConfig, LightClient, SentryEvent, EventLevel, UserInfo, Breadcrumb, LightPlugin, ErrorEvent, PerformanceEvent, NetworkEvent, BehaviorEvent, DSNInfo, TransactionContext, SpanContext, Transaction, Span, SamplingContext, BaggageFields, SpanStatus } from './types';
|
||||
import { logDebug, setDebug } from './utils/logger';
|
||||
import { logDebug, logError, setDebug } from './utils/logger';
|
||||
import { setAnonymousId as setStoredAnonymousId, clearAnonymousId as clearStoredAnonymousId, getAnonymousId as getStoredAnonymousId } from './utils/identity';
|
||||
|
||||
let globalClient: LightClient | null = null;
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function init(config: LightConfig): LightClient {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > setDebug(config.debug === true);</span>
|
||||
<span class="cstat-no" title="statement not covered" > logDebug('Index', 'init called', { dsn: config.dsn, debug: config.debug });</span>
|
||||
<span class="cstat-no" title="statement not covered" ></span>
|
||||
|
|
@ -633,6 +806,10 @@ let globalClient: LightClient | null = null;
|
|||
<span class="cstat-no" title="statement not covered" > globalClient = client;</span>
|
||||
<span class="cstat-no" title="statement not covered" > logDebug('Index', 'init completed, globalClient set');</span>
|
||||
<span class="cstat-no" title="statement not covered" > return client;</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'init failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > throw e;</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function getClient(): LightClient | null {</span></span>
|
||||
|
|
@ -640,94 +817,175 @@ let globalClient: LightClient | null = null;
|
|||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function captureException(error: Error | unknown): void {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logDebug('Index', 'captureException called', { hasClient: !!globalClient });</span>
|
||||
<span class="cstat-no" title="statement not covered" > if (!globalClient) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > console.warn('[LightSDK] SDK not initialized. Call LightSentry.init() first.');</span>
|
||||
<span class="cstat-no" title="statement not covered" > return;</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" > globalClient.captureException(error);</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'captureException failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function captureMessage(message: string, level?: EventLevel): void {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logDebug('Index', 'captureMessage called', { hasClient: !!globalClient });</span>
|
||||
<span class="cstat-no" title="statement not covered" > if (!globalClient) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > console.warn('[LightSDK] SDK not initialized. Call LightSentry.init() first.');</span>
|
||||
<span class="cstat-no" title="statement not covered" > return;</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" > globalClient.captureMessage(message, level);</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'captureMessage failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function captureEvent(event: Partial<SentryEvent> & { type: string }): void {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logDebug('Index', 'captureEvent called', { hasClient: !!globalClient });</span>
|
||||
<span class="cstat-no" title="statement not covered" > if (!globalClient) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > console.warn('[LightSDK] SDK not initialized. Call LightSentry.init() first.');</span>
|
||||
<span class="cstat-no" title="statement not covered" > return;</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" > globalClient.captureEvent(event);</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'captureEvent failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function setUser(user: UserInfo | null): void {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > globalClient?.setUser(user);</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'setUser failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function setAnonymousId(id: string): void {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > setStoredAnonymousId(id);</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'setAnonymousId failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function clearAnonymousId(): void {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > clearStoredAnonymousId();</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'clearAnonymousId failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function getAnonymousId(): string | null {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > return getStoredAnonymousId();</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'getAnonymousId failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > return null;</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function startTransaction(context: TransactionContext): Transaction | null {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > return globalClient?.startTransaction(context) || null;</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'startTransaction failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > return null;</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function getCurrentTransaction(): Transaction | null {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > return globalClient?.getCurrentTransaction() || null;</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'getCurrentTransaction failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > return null;</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function getCurrentSpan(): Span | null {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > return globalClient?.getCurrentSpan() || null;</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'getCurrentSpan failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > return null;</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function setSpan(span: Span | null): void {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > globalClient?.setSpan(span);</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'setSpan failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function startSpan(context: SpanContext): Span | null {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > return globalClient?.startSpan(context) || null;</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'startSpan failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > return null;</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function setTag(key: string, value: string): void {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > globalClient?.setTag(key, value);</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'setTag failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function setTags(tags: Record<string, string>): void {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > globalClient?.setTags(tags);</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'setTags failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function setExtra(key: string, value: unknown): void {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > globalClient?.setExtra(key, value);</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'setExtra failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function addBreadcrumb(breadcrumb: Omit<Breadcrumb, 'timestamp'>): void {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > globalClient?.addBreadcrumb(breadcrumb);</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'addBreadcrumb failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >async function flush(): Promise<void> {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > await globalClient?.flush();</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'flush failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function disable(): void {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > globalClient?.disable();</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'disable failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function enable(): void {</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > try {</span>
|
||||
<span class="cstat-no" title="statement not covered" > globalClient?.enable();</span>
|
||||
<span class="cstat-no" title="statement not covered" > } catch (e) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > logError('Index', 'enable failed', e);</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
<span class="cstat-no" title="statement not covered" >}</span>
|
||||
|
||||
export {
|
||||
|
|
@ -826,7 +1084,7 @@ export default {
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -1075,7 +1075,7 @@ export default BehaviorPlugin;
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -967,7 +967,7 @@ export default ErrorPlugin;
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -691,7 +691,7 @@ export default InteractionPlugin;
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -1222,7 +1222,7 @@ export default NetworkPlugin;
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -982,7 +982,7 @@ export default OfflinePlugin;
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -1660,7 +1660,7 @@ export default PerformancePlugin;
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -613,7 +613,7 @@ export default RouterPlugin;
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -352,7 +352,7 @@ export default SamplingPlugin;
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -206,7 +206,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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -367,7 +367,7 @@ export function createBaggageFromTransaction(
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -95,24 +95,24 @@
|
|||
<a name='L30'></a><a href='#L30'>30</a></td><td class="line-coverage quiet"><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">5x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">37x</span>
|
||||
<span class="cline-any cline-yes">37x</span>
|
||||
<span class="cline-any cline-yes">37x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">35x</span>
|
||||
<span class="cline-any cline-yes">35x</span>
|
||||
<span class="cline-any cline-yes">35x</span>
|
||||
<span class="cline-any cline-yes">35x</span>
|
||||
<span class="cline-any cline-yes">35x</span>
|
||||
<span class="cline-any cline-yes">35x</span>
|
||||
<span class="cline-any cline-yes">35x</span>
|
||||
<span class="cline-any cline-yes">35x</span>
|
||||
<span class="cline-any cline-yes">35x</span>
|
||||
<span class="cline-any cline-yes">37x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">37x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
|
|
@ -157,7 +157,7 @@ export <span class="fstat-no" title="function not covered" >function getStoreUrl
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -949,7 +949,7 @@ export function getContextId(): string {
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -334,7 +334,7 @@ export function decodeFields(obj: Record<string, unknown>): Record<stri
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ export function computeFingerprint(type: string, message: string, frames: { file
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -122,13 +122,13 @@
|
|||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">293x</span>
|
||||
<span class="cline-any cline-yes">293x</span>
|
||||
<span class="cline-any cline-yes">308x</span>
|
||||
<span class="cline-any cline-yes">308x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">190x</span>
|
||||
<span class="cline-any cline-yes">190x</span>
|
||||
<span class="cline-any cline-yes">190x</span>
|
||||
<span class="cline-any cline-yes">192x</span>
|
||||
<span class="cline-any cline-yes">192x</span>
|
||||
<span class="cline-any cline-yes">192x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
|
|
@ -159,7 +159,7 @@
|
|||
<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">15x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">13x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
|
|
@ -226,7 +226,7 @@ export function matchPatterns(value: string, patterns: (string | RegExp)[]): boo
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -167,17 +167,17 @@
|
|||
<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">6x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">6x</span>
|
||||
<span class="cline-any cline-yes">7x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">6x</span>
|
||||
<span class="cline-any cline-yes">6x</span>
|
||||
<span class="cline-any cline-yes">6x</span>
|
||||
<span class="cline-any cline-yes">6x</span>
|
||||
<span class="cline-any cline-yes">7x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">7x</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>
|
||||
|
|
@ -280,7 +280,7 @@ export function isAnonymousTrackingEnabled(config: { trackAnonymousUsers?: boole
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -23,16 +23,16 @@
|
|||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">97.36% </span>
|
||||
<span class="strong">97.71% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>1108/1138</span>
|
||||
<span class='fraction'>1111/1137</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">87.87% </span>
|
||||
<span class="strong">88.91% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>319/363</span>
|
||||
<span class='fraction'>321/361</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -44,9 +44,9 @@
|
|||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">97.36% </span>
|
||||
<span class="strong">97.71% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>1108/1138</span>
|
||||
<span class='fraction'>1111/1137</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -189,13 +189,13 @@
|
|||
<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="31" class="abs high">31/31</td>
|
||||
<td data-value="30" class="abs high">30/30</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="13" class="abs high">13/13</td>
|
||||
<td data-value="11" class="abs high">11/11</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="4" class="abs high">4/4</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="31" class="abs high">31/31</td>
|
||||
<td data-value="30" class="abs high">30/30</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
|
@ -215,17 +215,17 @@
|
|||
|
||||
<tr>
|
||||
<td class="file high" data-value="tracing.ts"><a href="tracing.ts.html">tracing.ts</a></td>
|
||||
<td data-value="93.82" class="pic high">
|
||||
<div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
|
||||
<td data-value="94.94" class="pic high">
|
||||
<div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
|
||||
</td>
|
||||
<td data-value="93.82" class="pct high">93.82%</td>
|
||||
<td data-value="356" class="abs high">334/356</td>
|
||||
<td data-value="83.08" class="pct high">83.08%</td>
|
||||
<td data-value="136" class="abs high">113/136</td>
|
||||
<td data-value="94.94" class="pct high">94.94%</td>
|
||||
<td data-value="356" class="abs high">338/356</td>
|
||||
<td data-value="86.02" class="pct high">86.02%</td>
|
||||
<td data-value="136" class="abs high">117/136</td>
|
||||
<td data-value="96.15" class="pct high">96.15%</td>
|
||||
<td data-value="26" class="abs high">25/26</td>
|
||||
<td data-value="93.82" class="pct high">93.82%</td>
|
||||
<td data-value="356" class="abs high">334/356</td>
|
||||
<td data-value="94.94" class="pct high">94.94%</td>
|
||||
<td data-value="356" class="abs high">338/356</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
|
|
@ -236,7 +236,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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -25,14 +25,14 @@
|
|||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>31/31</span>
|
||||
<span class='fraction'>30/30</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>13/13</span>
|
||||
<span class='fraction'>11/11</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -46,7 +46,7 @@
|
|||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">100% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>31/31</span>
|
||||
<span class='fraction'>30/30</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -93,19 +93,18 @@
|
|||
<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>
|
||||
<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-yes">1x</span>
|
||||
<a name='L31'></a><a href='#L31'>31</a></td><td class="line-coverage quiet"><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">42x</span>
|
||||
<span class="cline-any cline-yes">42x</span>
|
||||
<span class="cline-any cline-yes">69x</span>
|
||||
<span class="cline-any cline-yes">69x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">6x</span>
|
||||
<span class="cline-any cline-yes">6x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">289x</span>
|
||||
<span class="cline-any cline-yes">377x</span>
|
||||
<span class="cline-any cline-yes">8x</span>
|
||||
<span class="cline-any cline-yes">8x</span>
|
||||
<span class="cline-any cline-yes">10x</span>
|
||||
|
|
@ -113,17 +112,16 @@
|
|||
<span class="cline-any cline-yes">10x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">289x</span>
|
||||
<span class="cline-any cline-yes">377x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">10x</span>
|
||||
<span class="cline-any cline-yes">8x</span>
|
||||
<span class="cline-any cline-yes">8x</span>
|
||||
<span class="cline-any cline-yes">10x</span>
|
||||
<span class="cline-any cline-yes">10x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
<span class="cline-any cline-yes">10x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">5x</span>
|
||||
<span class="cline-any cline-yes">7x</span>
|
||||
<span class="cline-any cline-yes">7x</span>
|
||||
<span class="cline-any cline-yes">10x</span>
|
||||
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">let debugEnabled = false;
|
||||
|
||||
|
|
@ -147,13 +145,12 @@ export function logDebug(tag: string, message: string, data?: unknown): void {
|
|||
}
|
||||
|
||||
export function logError(tag: string, message: string, error?: unknown): void {
|
||||
if (!debugEnabled) return;
|
||||
const timestamp = new Date().toISOString();
|
||||
const prefix = `[LightSDK][${tag}][ERROR]`;
|
||||
if (error !== undefined) {
|
||||
console.error(`${prefix} ${timestamp} ${message}`, error);
|
||||
console.warn(`${prefix} ${timestamp} ${message}`, error);
|
||||
} else {
|
||||
console.error(`${prefix} ${timestamp} ${message}`);
|
||||
console.warn(`${prefix} ${timestamp} ${message}`);
|
||||
}
|
||||
}
|
||||
</pre></td></tr></table></pre>
|
||||
|
|
@ -163,7 +160,7 @@ export function logError(tag: string, message: string, error?: unknown): void {
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -370,7 +370,7 @@ export function parseStackTrace(stack?: string, options: ParseStackOptions = {})
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -23,16 +23,16 @@
|
|||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">93.82% </span>
|
||||
<span class="strong">94.94% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>334/356</span>
|
||||
<span class='fraction'>338/356</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">83.08% </span>
|
||||
<span class="strong">86.02% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>113/136</span>
|
||||
<span class='fraction'>117/136</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -44,9 +44,9 @@
|
|||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">93.82% </span>
|
||||
<span class="strong">94.94% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>334/356</span>
|
||||
<span class='fraction'>338/356</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -423,13 +423,13 @@
|
|||
<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">81x</span>
|
||||
<span class="cline-any cline-yes">81x</span>
|
||||
<span class="cline-any cline-yes">81x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">82x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">98x</span>
|
||||
<span class="cline-any cline-yes">98x</span>
|
||||
<span class="cline-any cline-yes">98x</span>
|
||||
<span class="cline-any cline-yes">99x</span>
|
||||
<span class="cline-any cline-yes">99x</span>
|
||||
<span class="cline-any cline-yes">99x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
|
|
@ -520,18 +520,18 @@
|
|||
<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">99x</span>
|
||||
<span class="cline-any cline-yes">99x</span>
|
||||
<span class="cline-any cline-yes">99x</span>
|
||||
<span class="cline-any cline-yes">99x</span>
|
||||
<span class="cline-any cline-yes">99x</span>
|
||||
<span class="cline-any cline-yes">99x</span>
|
||||
<span class="cline-any cline-yes">99x</span>
|
||||
<span class="cline-any cline-yes">99x</span>
|
||||
<span class="cline-any cline-yes">99x</span>
|
||||
<span class="cline-any cline-yes">99x</span>
|
||||
<span class="cline-any cline-yes">99x</span>
|
||||
<span class="cline-any cline-yes">99x</span>
|
||||
<span class="cline-any cline-yes">100x</span>
|
||||
<span class="cline-any cline-yes">100x</span>
|
||||
<span class="cline-any cline-yes">100x</span>
|
||||
<span class="cline-any cline-yes">100x</span>
|
||||
<span class="cline-any cline-yes">100x</span>
|
||||
<span class="cline-any cline-yes">100x</span>
|
||||
<span class="cline-any cline-yes">100x</span>
|
||||
<span class="cline-any cline-yes">100x</span>
|
||||
<span class="cline-any cline-yes">100x</span>
|
||||
<span class="cline-any cline-yes">100x</span>
|
||||
<span class="cline-any cline-yes">100x</span>
|
||||
<span class="cline-any cline-yes">100x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">11x</span>
|
||||
|
|
@ -544,9 +544,9 @@
|
|||
<span class="cline-any cline-yes">4x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">28x</span>
|
||||
<span class="cline-any cline-yes">29x</span>
|
||||
<span class="cline-any cline-yes">29x</span>
|
||||
<span class="cline-any cline-yes">29x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">4x</span>
|
||||
|
|
@ -585,17 +585,17 @@
|
|||
<span class="cline-any cline-yes">16x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">23x</span>
|
||||
<span class="cline-any cline-yes">22x</span>
|
||||
<span class="cline-any cline-yes">21x</span>
|
||||
<span class="cline-any cline-yes">22x</span>
|
||||
<span class="cline-any cline-yes">22x</span>
|
||||
<span class="cline-any cline-yes">22x</span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-yes">22x</span>
|
||||
<span class="cline-any cline-yes">23x</span>
|
||||
<span class="cline-any cline-yes">23x</span>
|
||||
<span class="cline-any cline-yes">23x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">23x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">3x</span>
|
||||
|
|
@ -634,18 +634,18 @@
|
|||
<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">42x</span>
|
||||
<span class="cline-any cline-yes">42x</span>
|
||||
<span class="cline-any cline-yes">42x</span>
|
||||
<span class="cline-any cline-yes">42x</span>
|
||||
<span class="cline-any cline-yes">42x</span>
|
||||
<span class="cline-any cline-yes">42x</span>
|
||||
<span class="cline-any cline-yes">42x</span>
|
||||
<span class="cline-any cline-yes">42x</span>
|
||||
<span class="cline-any cline-yes">42x</span>
|
||||
<span class="cline-any cline-yes">43x</span>
|
||||
<span class="cline-any cline-yes">43x</span>
|
||||
<span class="cline-any cline-yes">43x</span>
|
||||
<span class="cline-any cline-yes">43x</span>
|
||||
<span class="cline-any cline-yes">43x</span>
|
||||
<span class="cline-any cline-yes">43x</span>
|
||||
<span class="cline-any cline-yes">43x</span>
|
||||
<span class="cline-any cline-yes">43x</span>
|
||||
<span class="cline-any cline-yes">43x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">2x</span>
|
||||
<span class="cline-any cline-yes">42x</span>
|
||||
<span class="cline-any cline-yes">43x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">13x</span>
|
||||
|
|
@ -701,21 +701,21 @@
|
|||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">13x</span>
|
||||
<span class="cline-any cline-yes">13x</span>
|
||||
<span class="cline-any cline-yes">13x</span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-yes">17x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">18x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">1x</span>
|
||||
<span class="cline-any cline-yes">14x</span>
|
||||
|
|
@ -947,9 +947,9 @@ export class Span implements SpanInterface {
|
|||
|
||||
if (this._client) {
|
||||
const clientInternal = this._client as unknown as { tracingManager?: { onSpanFinished: (span: Span) => void } };
|
||||
if (clientInternal.<span class="branch-0 cbranch-no" title="branch not covered" >tracingManager?.onSpanFinished) <span class="branch-0 cbranch-no" title="branch not covered" >{</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > clientInternal.tracingManager.onSpanFinished(this);</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
if (clientInternal.tracingManager?.onSpanFinished) {
|
||||
clientInternal.tracingManager.onSpanFinished(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1067,9 +1067,9 @@ export class Transaction extends Span implements TransactionInterface {
|
|||
|
||||
if (this._client) {
|
||||
const clientInternal = this._client as unknown as { tracingManager?: { onTransactionFinished: (tx: Transaction) => void } };
|
||||
if (clientInternal.<span class="branch-0 cbranch-no" title="branch not covered" >tracingManager?.onTransactionFinished) <span class="branch-0 cbranch-no" title="branch not covered" >{</span></span>
|
||||
<span class="cstat-no" title="statement not covered" > clientInternal.tracingManager.onTransactionFinished(this);</span>
|
||||
<span class="cstat-no" title="statement not covered" > }</span>
|
||||
if (clientInternal.tracingManager?.onTransactionFinished) {
|
||||
clientInternal.tracingManager.onTransactionFinished(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1138,7 +1138,7 @@ export { generateTraceId, generateSpanId };
|
|||
<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-25T14:49:54.914Z
|
||||
at 2026-06-25T15:09:05.618Z
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import { parseDSN } from '../utils/dsn';
|
|||
import { now } from '../utils/helper';
|
||||
import { computeFingerprint } from '../utils/hash';
|
||||
import { parseStackTrace } from '../utils/stacktrace';
|
||||
import { logDebug, setDebug } from '../utils/logger';
|
||||
import { logDebug, logError, setDebug } from '../utils/logger';
|
||||
import { setAnonymousId as setStoredAnonymousId } from '../utils/identity';
|
||||
import { ConfigManager } from './ConfigManager';
|
||||
import { EventBus } from './EventBus';
|
||||
|
|
@ -63,9 +63,13 @@ class Client implements LightClient {
|
|||
}
|
||||
|
||||
init(): void {
|
||||
try {
|
||||
if (!this.enabled) return;
|
||||
this.queue.start();
|
||||
this.emit('ready');
|
||||
} catch (e) {
|
||||
logError('Client', 'init failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
private async flushEvents(events: SentryEvent[]): Promise<void> {
|
||||
|
|
@ -164,6 +168,7 @@ class Client implements LightClient {
|
|||
}
|
||||
|
||||
captureException(error: Error | unknown): void {
|
||||
try {
|
||||
logDebug('Client', 'captureException called', { error: error instanceof Error ? error.message : String(error) });
|
||||
|
||||
if (!this.enabled) {
|
||||
|
|
@ -183,9 +188,13 @@ class Client implements LightClient {
|
|||
errorEvent.breadcrumbs = [...this.breadcrumbs];
|
||||
logDebug('Client', 'Enqueue error event', { breadcrumbs: this.breadcrumbs.length });
|
||||
this.queue.enqueue(errorEvent);
|
||||
} catch (e) {
|
||||
logError('Client', 'captureException failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
captureMessage(message: string, level: EventLevel = 'info'): void {
|
||||
try {
|
||||
if (!this.enabled) return;
|
||||
|
||||
const event: ErrorEvent = {
|
||||
|
|
@ -200,9 +209,13 @@ class Client implements LightClient {
|
|||
|
||||
this.attachTraceContext(event);
|
||||
this.queue.enqueue(event);
|
||||
} catch (e) {
|
||||
logError('Client', 'captureMessage failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
captureEvent(event: Partial<SentryEvent> & { type: string }): void {
|
||||
try {
|
||||
if (!this.enabled) return;
|
||||
|
||||
const fullEvent = {
|
||||
|
|
@ -214,6 +227,9 @@ class Client implements LightClient {
|
|||
|
||||
this.attachTraceContext(fullEvent);
|
||||
this.queue.enqueue(fullEvent);
|
||||
} catch (e) {
|
||||
logError('Client', 'captureEvent failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
private attachTraceContext(event: SentryEvent): void {
|
||||
|
|
@ -273,15 +289,24 @@ class Client implements LightClient {
|
|||
}
|
||||
|
||||
setUser(user: UserInfo | null): void {
|
||||
try {
|
||||
this.configManager.setUser(user);
|
||||
this.tracingManager.updateConfig(this.configManager.getAll());
|
||||
} catch (e) {
|
||||
logError('Client', 'setUser failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
setAnonymousId(id: string): void {
|
||||
try {
|
||||
setStoredAnonymousId(id);
|
||||
} catch (e) {
|
||||
logError('Client', 'setAnonymousId failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
startTransaction(context: TransactionContext): Transaction | null {
|
||||
try {
|
||||
if (!this.enabled) return null;
|
||||
|
||||
const transaction = this.tracingManager.startTransaction(context);
|
||||
|
|
@ -293,38 +318,74 @@ class Client implements LightClient {
|
|||
}
|
||||
|
||||
return transaction;
|
||||
} catch (e) {
|
||||
logError('Client', 'startTransaction failed', e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
getCurrentTransaction(): Transaction | null {
|
||||
try {
|
||||
return this.tracingManager.getCurrentTransaction();
|
||||
} catch (e) {
|
||||
logError('Client', 'getCurrentTransaction failed', e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
getCurrentSpan(): Span | null {
|
||||
try {
|
||||
return this.tracingManager.getCurrentSpan();
|
||||
} catch (e) {
|
||||
logError('Client', 'getCurrentSpan failed', e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
setSpan(span: Span | null): void {
|
||||
try {
|
||||
this.tracingManager.setCurrentSpan(span);
|
||||
} catch (e) {
|
||||
logError('Client', 'setSpan failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
startSpan(context: SpanContext): Span | null {
|
||||
try {
|
||||
if (!this.enabled) return null;
|
||||
return this.tracingManager.startSpan(context);
|
||||
} catch (e) {
|
||||
logError('Client', 'startSpan failed', e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
setTag(key: string, value: string): void {
|
||||
try {
|
||||
this.configManager.setTag(key, value);
|
||||
} catch (e) {
|
||||
logError('Client', 'setTag failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
setTags(tags: Record<string, string>): void {
|
||||
try {
|
||||
this.configManager.setTags(tags);
|
||||
} catch (e) {
|
||||
logError('Client', 'setTags failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
setExtra(key: string, value: unknown): void {
|
||||
try {
|
||||
this.configManager.setExtra(key, value);
|
||||
} catch (e) {
|
||||
logError('Client', 'setExtra failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
addBreadcrumb(breadcrumb: Omit<Breadcrumb, 'timestamp'>): void {
|
||||
try {
|
||||
const fullBreadcrumb: Breadcrumb = {
|
||||
...breadcrumb,
|
||||
timestamp: now(),
|
||||
|
|
@ -334,30 +395,53 @@ class Client implements LightClient {
|
|||
if (this.breadcrumbs.length > this.maxBreadcrumbs) {
|
||||
this.breadcrumbs.shift();
|
||||
}
|
||||
} catch (e) {
|
||||
logError('Client', 'addBreadcrumb failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
async flush(): Promise<void> {
|
||||
try {
|
||||
await this.queue.flush();
|
||||
} catch (e) {
|
||||
logError('Client', 'flush failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
disable(): void {
|
||||
try {
|
||||
this.enabled = false;
|
||||
} catch (e) {
|
||||
logError('Client', 'disable failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
enable(): void {
|
||||
try {
|
||||
this.enabled = true;
|
||||
} catch (e) {
|
||||
logError('Client', 'enable failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
use(plugin: LightPlugin): void {
|
||||
try {
|
||||
this.pluginManager.add(plugin);
|
||||
} catch (e) {
|
||||
logError('Client', 'use plugin failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
destroy(): void {
|
||||
try {
|
||||
this.pluginManager.destroy();
|
||||
this.tracingManager.destroy();
|
||||
this.queue.destroy();
|
||||
this.eventBus.destroy();
|
||||
this.breadcrumbs = [];
|
||||
} catch (e) {
|
||||
logError('Client', 'destroy failed', e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
88
src/index.ts
88
src/index.ts
|
|
@ -10,12 +10,13 @@ import InteractionPlugin from './plugins/InteractionPlugin';
|
|||
import { Span as SpanClass, Transaction as TransactionClass, httpStatusToSpanStatus, dbStatusToSpanStatus, statusToSpanStatus } from './utils/tracing';
|
||||
import { serializeBaggage, parseBaggage, createBaggageFromTransaction } from './utils/baggage';
|
||||
import type { LightConfig, LightClient, SentryEvent, EventLevel, UserInfo, Breadcrumb, LightPlugin, ErrorEvent, PerformanceEvent, NetworkEvent, BehaviorEvent, DSNInfo, TransactionContext, SpanContext, Transaction, Span, SamplingContext, BaggageFields, SpanStatus } from './types';
|
||||
import { logDebug, setDebug } from './utils/logger';
|
||||
import { logDebug, logError, setDebug } from './utils/logger';
|
||||
import { setAnonymousId as setStoredAnonymousId, clearAnonymousId as clearStoredAnonymousId, getAnonymousId as getStoredAnonymousId } from './utils/identity';
|
||||
|
||||
let globalClient: LightClient | null = null;
|
||||
|
||||
function init(config: LightConfig): LightClient {
|
||||
try {
|
||||
setDebug(config.debug === true);
|
||||
logDebug('Index', 'init called', { dsn: config.dsn, debug: config.debug });
|
||||
|
||||
|
|
@ -64,6 +65,10 @@ function init(config: LightConfig): LightClient {
|
|||
globalClient = client;
|
||||
logDebug('Index', 'init completed, globalClient set');
|
||||
return client;
|
||||
} catch (e) {
|
||||
logError('Index', 'init failed', e);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
function getClient(): LightClient | null {
|
||||
|
|
@ -71,94 +76,175 @@ function getClient(): LightClient | null {
|
|||
}
|
||||
|
||||
function captureException(error: Error | unknown): void {
|
||||
try {
|
||||
logDebug('Index', 'captureException called', { hasClient: !!globalClient });
|
||||
if (!globalClient) {
|
||||
console.warn('[LightSDK] SDK not initialized. Call LightSentry.init() first.');
|
||||
return;
|
||||
}
|
||||
globalClient.captureException(error);
|
||||
} catch (e) {
|
||||
logError('Index', 'captureException failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
function captureMessage(message: string, level?: EventLevel): void {
|
||||
try {
|
||||
logDebug('Index', 'captureMessage called', { hasClient: !!globalClient });
|
||||
if (!globalClient) {
|
||||
console.warn('[LightSDK] SDK not initialized. Call LightSentry.init() first.');
|
||||
return;
|
||||
}
|
||||
globalClient.captureMessage(message, level);
|
||||
} catch (e) {
|
||||
logError('Index', 'captureMessage failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
function captureEvent(event: Partial<SentryEvent> & { type: string }): void {
|
||||
try {
|
||||
logDebug('Index', 'captureEvent called', { hasClient: !!globalClient });
|
||||
if (!globalClient) {
|
||||
console.warn('[LightSDK] SDK not initialized. Call LightSentry.init() first.');
|
||||
return;
|
||||
}
|
||||
globalClient.captureEvent(event);
|
||||
} catch (e) {
|
||||
logError('Index', 'captureEvent failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
function setUser(user: UserInfo | null): void {
|
||||
try {
|
||||
globalClient?.setUser(user);
|
||||
} catch (e) {
|
||||
logError('Index', 'setUser failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
function setAnonymousId(id: string): void {
|
||||
try {
|
||||
setStoredAnonymousId(id);
|
||||
} catch (e) {
|
||||
logError('Index', 'setAnonymousId failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
function clearAnonymousId(): void {
|
||||
try {
|
||||
clearStoredAnonymousId();
|
||||
} catch (e) {
|
||||
logError('Index', 'clearAnonymousId failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
function getAnonymousId(): string | null {
|
||||
try {
|
||||
return getStoredAnonymousId();
|
||||
} catch (e) {
|
||||
logError('Index', 'getAnonymousId failed', e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function startTransaction(context: TransactionContext): Transaction | null {
|
||||
try {
|
||||
return globalClient?.startTransaction(context) || null;
|
||||
} catch (e) {
|
||||
logError('Index', 'startTransaction failed', e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function getCurrentTransaction(): Transaction | null {
|
||||
try {
|
||||
return globalClient?.getCurrentTransaction() || null;
|
||||
} catch (e) {
|
||||
logError('Index', 'getCurrentTransaction failed', e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function getCurrentSpan(): Span | null {
|
||||
try {
|
||||
return globalClient?.getCurrentSpan() || null;
|
||||
} catch (e) {
|
||||
logError('Index', 'getCurrentSpan failed', e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function setSpan(span: Span | null): void {
|
||||
try {
|
||||
globalClient?.setSpan(span);
|
||||
} catch (e) {
|
||||
logError('Index', 'setSpan failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
function startSpan(context: SpanContext): Span | null {
|
||||
try {
|
||||
return globalClient?.startSpan(context) || null;
|
||||
} catch (e) {
|
||||
logError('Index', 'startSpan failed', e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function setTag(key: string, value: string): void {
|
||||
try {
|
||||
globalClient?.setTag(key, value);
|
||||
} catch (e) {
|
||||
logError('Index', 'setTag failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
function setTags(tags: Record<string, string>): void {
|
||||
try {
|
||||
globalClient?.setTags(tags);
|
||||
} catch (e) {
|
||||
logError('Index', 'setTags failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
function setExtra(key: string, value: unknown): void {
|
||||
try {
|
||||
globalClient?.setExtra(key, value);
|
||||
} catch (e) {
|
||||
logError('Index', 'setExtra failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
function addBreadcrumb(breadcrumb: Omit<Breadcrumb, 'timestamp'>): void {
|
||||
try {
|
||||
globalClient?.addBreadcrumb(breadcrumb);
|
||||
} catch (e) {
|
||||
logError('Index', 'addBreadcrumb failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
async function flush(): Promise<void> {
|
||||
try {
|
||||
await globalClient?.flush();
|
||||
} catch (e) {
|
||||
logError('Index', 'flush failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
function disable(): void {
|
||||
try {
|
||||
globalClient?.disable();
|
||||
} catch (e) {
|
||||
logError('Index', 'disable failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
function enable(): void {
|
||||
try {
|
||||
globalClient?.enable();
|
||||
} catch (e) {
|
||||
logError('Index', 'enable failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
export {
|
||||
|
|
|
|||
|
|
@ -20,12 +20,11 @@ export function logDebug(tag: string, message: string, data?: unknown): void {
|
|||
}
|
||||
|
||||
export function logError(tag: string, message: string, error?: unknown): void {
|
||||
if (!debugEnabled) return;
|
||||
const timestamp = new Date().toISOString();
|
||||
const prefix = `[LightSDK][${tag}][ERROR]`;
|
||||
if (error !== undefined) {
|
||||
console.error(`${prefix} ${timestamp} ${message}`, error);
|
||||
console.warn(`${prefix} ${timestamp} ${message}`, error);
|
||||
} else {
|
||||
console.error(`${prefix} ${timestamp} ${message}`);
|
||||
console.warn(`${prefix} ${timestamp} ${message}`);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,270 @@
|
|||
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
||||
import Client from '../src/core/Client';
|
||||
import { setAnonymousId } from '../src/utils/identity';
|
||||
|
||||
describe('SDK Error Safety', () => {
|
||||
const consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
|
||||
const consoleLogSpy = vi.spyOn(console, 'log').mockImplementation(() => {});
|
||||
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks();
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
consoleWarnSpy.mockRestore();
|
||||
consoleLogSpy.mockRestore();
|
||||
});
|
||||
|
||||
describe('Client public methods should not throw', () => {
|
||||
let client: Client;
|
||||
|
||||
beforeEach(() => {
|
||||
client = new Client({
|
||||
dsn: 'https://proj_abc123@log.example.com/1001',
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
client.destroy();
|
||||
});
|
||||
|
||||
it('captureException should not throw on invalid input', () => {
|
||||
expect(() => {
|
||||
client.captureException(null as unknown as Error);
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('captureException should not throw on undefined input', () => {
|
||||
expect(() => {
|
||||
client.captureException(undefined);
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('captureException should not throw when SDK is disabled', () => {
|
||||
client.disable();
|
||||
expect(() => {
|
||||
client.captureException(new Error('test'));
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('captureMessage should not throw on empty message', () => {
|
||||
expect(() => {
|
||||
client.captureMessage('');
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('captureMessage should not throw when SDK is disabled', () => {
|
||||
client.disable();
|
||||
expect(() => {
|
||||
client.captureMessage('test');
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('captureEvent should not throw on minimal event', () => {
|
||||
expect(() => {
|
||||
client.captureEvent({ type: 'custom' });
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('captureEvent should not throw when SDK is disabled', () => {
|
||||
client.disable();
|
||||
expect(() => {
|
||||
client.captureEvent({ type: 'custom' });
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('setUser should not throw on null input', () => {
|
||||
expect(() => {
|
||||
client.setUser(null);
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('setUser should not throw on valid input', () => {
|
||||
expect(() => {
|
||||
client.setUser({ id: '123', username: 'test' });
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('setTag should not throw', () => {
|
||||
expect(() => {
|
||||
client.setTag('key', 'value');
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('setTags should not throw', () => {
|
||||
expect(() => {
|
||||
client.setTags({ key1: 'val1', key2: 'val2' });
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('setExtra should not throw', () => {
|
||||
expect(() => {
|
||||
client.setExtra('key', { nested: true });
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('addBreadcrumb should not throw', () => {
|
||||
expect(() => {
|
||||
client.addBreadcrumb({
|
||||
type: 'default',
|
||||
message: 'test breadcrumb',
|
||||
level: 'info',
|
||||
});
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('addBreadcrumb should not throw on empty breadcrumb', () => {
|
||||
expect(() => {
|
||||
client.addBreadcrumb({
|
||||
type: 'default',
|
||||
});
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('startTransaction should not throw', () => {
|
||||
expect(() => {
|
||||
client.startTransaction({ name: 'test-tx', op: 'test' });
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('startTransaction should not throw when SDK is disabled', () => {
|
||||
client.disable();
|
||||
const result = client.startTransaction({ name: 'test-tx', op: 'test' });
|
||||
expect(result).toBeNull();
|
||||
});
|
||||
|
||||
it('getCurrentTransaction should not throw', () => {
|
||||
expect(() => {
|
||||
client.getCurrentTransaction();
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('getCurrentSpan should not throw', () => {
|
||||
expect(() => {
|
||||
client.getCurrentSpan();
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('setSpan should not throw', () => {
|
||||
expect(() => {
|
||||
client.setSpan(null);
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('startSpan should not throw', () => {
|
||||
expect(() => {
|
||||
client.startSpan({ name: 'test-span', op: 'test' });
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('startSpan should not throw when SDK is disabled', () => {
|
||||
client.disable();
|
||||
const result = client.startSpan({ name: 'test-span', op: 'test' });
|
||||
expect(result).toBeNull();
|
||||
});
|
||||
|
||||
it('disable should not throw', () => {
|
||||
expect(() => {
|
||||
client.disable();
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('enable should not throw', () => {
|
||||
expect(() => {
|
||||
client.enable();
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('use should not throw on valid plugin', () => {
|
||||
const plugin = {
|
||||
name: 'test-plugin',
|
||||
setup: vi.fn(),
|
||||
};
|
||||
expect(() => {
|
||||
client.use(plugin);
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('use should not throw when plugin setup throws', () => {
|
||||
const plugin = {
|
||||
name: 'bad-plugin',
|
||||
setup: () => {
|
||||
throw new Error('setup failed');
|
||||
},
|
||||
};
|
||||
expect(() => {
|
||||
client.use(plugin);
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('flush should not throw', async () => {
|
||||
await expect(client.flush()).resolves.not.toThrow();
|
||||
});
|
||||
|
||||
it('destroy should not throw', () => {
|
||||
expect(() => {
|
||||
client.destroy();
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('init should not throw', () => {
|
||||
const newClient = new Client({
|
||||
dsn: 'https://proj_abc123@log.example.com/1001',
|
||||
});
|
||||
expect(() => {
|
||||
newClient.init();
|
||||
}).not.toThrow();
|
||||
newClient.destroy();
|
||||
});
|
||||
|
||||
it('setAnonymousId should not throw', () => {
|
||||
expect(() => {
|
||||
client.setAnonymousId('test-anon-id');
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('on/off/emit should not throw', () => {
|
||||
const handler = vi.fn();
|
||||
expect(() => {
|
||||
client.on('test', handler);
|
||||
}).not.toThrow();
|
||||
expect(() => {
|
||||
client.emit('test', 'data');
|
||||
}).not.toThrow();
|
||||
expect(() => {
|
||||
client.off('test', handler);
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('event handler errors should not affect other handlers', () => {
|
||||
const handler1 = vi.fn(() => {
|
||||
throw new Error('handler1 failed');
|
||||
});
|
||||
const handler2 = vi.fn();
|
||||
|
||||
client.on('test-event', handler1);
|
||||
client.on('test-event', handler2);
|
||||
|
||||
expect(() => {
|
||||
client.emit('test-event', 'data');
|
||||
}).not.toThrow();
|
||||
|
||||
expect(handler1).toHaveBeenCalled();
|
||||
expect(handler2).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('Config edge cases', () => {
|
||||
it('should throw on missing DSN (config error, not SDK bug)', () => {
|
||||
expect(() => {
|
||||
new Client({ dsn: '' });
|
||||
}).toThrow();
|
||||
});
|
||||
|
||||
it('should throw on undefined DSN', () => {
|
||||
expect(() => {
|
||||
new Client({ dsn: undefined as unknown as string });
|
||||
}).toThrow();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
@ -107,70 +107,73 @@ describe('logger', () => {
|
|||
});
|
||||
|
||||
describe('logError', () => {
|
||||
it('should not log when debug is disabled', () => {
|
||||
const consoleSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
|
||||
logError('Test', 'This should not appear');
|
||||
expect(consoleSpy).not.toHaveBeenCalled();
|
||||
it('should always log errors even when debug is disabled', () => {
|
||||
setDebug(false);
|
||||
const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
|
||||
logError('Test', 'This should always appear');
|
||||
expect(consoleSpy).toHaveBeenCalled();
|
||||
consoleSpy.mockRestore();
|
||||
});
|
||||
|
||||
it('should log error message when debug is enabled', () => {
|
||||
setDebug(true);
|
||||
const consoleSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
|
||||
const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
|
||||
logError('Test', 'This error should appear');
|
||||
expect(consoleSpy).toHaveBeenCalled();
|
||||
consoleSpy.mockRestore();
|
||||
});
|
||||
|
||||
it('should include ERROR tag in log message', () => {
|
||||
setDebug(true);
|
||||
const consoleSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
|
||||
const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
|
||||
logError('Module', 'Error message');
|
||||
expect(consoleSpy).toHaveBeenCalled();
|
||||
const loggedMessage = consoleSpy.mock.calls[0][0];
|
||||
expect(loggedMessage).toContain('[LightSDK][Module][ERROR]');
|
||||
consoleSpy.mockRestore();
|
||||
});
|
||||
|
||||
it('should log error with error data', () => {
|
||||
setDebug(true);
|
||||
const consoleSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
|
||||
const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
|
||||
const error = new Error('Test error');
|
||||
logError('Module', 'Error occurred', error);
|
||||
expect(consoleSpy).toHaveBeenCalled();
|
||||
consoleSpy.mockRestore();
|
||||
});
|
||||
|
||||
it('should handle plain object error', () => {
|
||||
setDebug(true);
|
||||
const consoleSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
|
||||
const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
|
||||
const errorObj = { status: 404, message: 'Not found' };
|
||||
logError('Module', 'Request failed', errorObj);
|
||||
expect(consoleSpy).toHaveBeenCalled();
|
||||
consoleSpy.mockRestore();
|
||||
});
|
||||
|
||||
it('should handle error message without data', () => {
|
||||
setDebug(true);
|
||||
const consoleSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
|
||||
const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
|
||||
logError('Module', 'Simple error');
|
||||
expect(consoleSpy).toHaveBeenCalled();
|
||||
consoleSpy.mockRestore();
|
||||
});
|
||||
|
||||
it('should handle string error', () => {
|
||||
setDebug(true);
|
||||
const consoleSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
|
||||
const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
|
||||
logError('Module', 'String error', 'error details');
|
||||
expect(consoleSpy).toHaveBeenCalled();
|
||||
consoleSpy.mockRestore();
|
||||
});
|
||||
|
||||
it('should handle undefined error', () => {
|
||||
setDebug(true);
|
||||
const consoleSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
|
||||
const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
|
||||
logError('Module', 'Error without details', undefined);
|
||||
expect(consoleSpy).toHaveBeenCalled();
|
||||
consoleSpy.mockRestore();
|
||||
});
|
||||
});
|
||||
|
||||
describe('debug toggle behavior', () => {
|
||||
it('should toggle between enabled and disabled', () => {
|
||||
it('should toggle debug logs between enabled and disabled', () => {
|
||||
const consoleLogSpy = vi.spyOn(console, 'log').mockImplementation(() => {});
|
||||
const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
|
||||
const consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
|
||||
|
||||
setDebug(true);
|
||||
logDebug('Test', 'Debug on');
|
||||
|
|
@ -180,13 +183,18 @@ describe('logger', () => {
|
|||
logDebug('Test', 'Debug off');
|
||||
expect(consoleLogSpy).toHaveBeenCalledTimes(1);
|
||||
|
||||
// logError should always work regardless of debug flag
|
||||
setDebug(true);
|
||||
logError('Test', 'Error on');
|
||||
expect(consoleErrorSpy).toHaveBeenCalled();
|
||||
const errorCallCountWhenOn = consoleWarnSpy.mock.calls.length;
|
||||
expect(errorCallCountWhenOn).toBeGreaterThan(0);
|
||||
|
||||
setDebug(false);
|
||||
logError('Test', 'Error off');
|
||||
expect(consoleErrorSpy).toHaveBeenCalledTimes(1);
|
||||
expect(consoleWarnSpy).toHaveBeenCalledTimes(errorCallCountWhenOn + 1);
|
||||
|
||||
consoleLogSpy.mockRestore();
|
||||
consoleWarnSpy.mockRestore();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue