@featurevisor/sdk 2.3.1 → 2.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -331,7 +331,7 @@ export function getBucketKey(options: GetBucketKeyOptions): BucketKey {
331
331
  <div class='footer quiet pad2 space-top1 center small'>
332
332
  Code coverage generated by
333
333
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
334
- at 2025-11-06T19:55:42.800Z
334
+ at 2025-11-29T21:20:14.078Z
335
335
  </div>
336
336
  <script src="prettify.js"></script>
337
337
  <script>
@@ -925,7 +925,7 @@ export class FeaturevisorChildInstance {
925
925
  <div class='footer quiet pad2 space-top1 center small'>
926
926
  Code coverage generated by
927
927
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
928
- at 2025-11-06T19:55:42.800Z
928
+ at 2025-11-29T21:20:14.078Z
929
929
  </div>
930
930
  <script src="prettify.js"></script>
931
931
  <script>
@@ -400,7 +400,7 @@ export function conditionIsMatched(
400
400
  <div class='footer quiet pad2 space-top1 center small'>
401
401
  Code coverage generated by
402
402
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
403
- at 2025-11-06T19:55:42.800Z
403
+ at 2025-11-29T21:20:14.078Z
404
404
  </div>
405
405
  <script src="prettify.js"></script>
406
406
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">91.45% </span>
26
+ <span class="strong">93.16% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>107/117</span>
28
+ <span class='fraction'>109/117</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">93.33% </span>
33
+ <span class="strong">95% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>56/60</span>
35
+ <span class='fraction'>57/60</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">91.15% </span>
47
+ <span class="strong">92.92% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>103/113</span>
49
+ <span class='fraction'>105/113</span>
50
50
  </div>
51
51
 
52
52
 
@@ -455,10 +455,10 @@
455
455
  <span class="cline-any cline-neutral">&nbsp;</span>
456
456
  <span class="cline-any cline-neutral">&nbsp;</span>
457
457
  <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-yes">210x</span>
458
+ <span class="cline-any cline-yes">212x</span>
459
459
  <span class="cline-any cline-neutral">&nbsp;</span>
460
- <span class="cline-any cline-yes">210x</span>
461
- <span class="cline-any cline-yes">1x</span>
460
+ <span class="cline-any cline-yes">212x</span>
461
+ <span class="cline-any cline-yes">3x</span>
462
462
  <span class="cline-any cline-neutral">&nbsp;</span>
463
463
  <span class="cline-any cline-neutral">&nbsp;</span>
464
464
  <span class="cline-any cline-yes">209x</span>
@@ -471,7 +471,7 @@
471
471
  <span class="cline-any cline-neutral">&nbsp;</span>
472
472
  <span class="cline-any cline-neutral">&nbsp;</span>
473
473
  <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-yes">210x</span>
474
+ <span class="cline-any cline-yes">212x</span>
475
475
  <span class="cline-any cline-neutral">&nbsp;</span>
476
476
  <span class="cline-any cline-neutral">&nbsp;</span>
477
477
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -485,13 +485,13 @@
485
485
  <span class="cline-any cline-neutral">&nbsp;</span>
486
486
  <span class="cline-any cline-neutral">&nbsp;</span>
487
487
  <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-yes">4x</span>
488
+ <span class="cline-any cline-yes">6x</span>
489
489
  <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-yes">4x</span>
491
- <span class="cline-any cline-no">&nbsp;</span>
490
+ <span class="cline-any cline-yes">6x</span>
491
+ <span class="cline-any cline-yes">1x</span>
492
492
  <span class="cline-any cline-neutral">&nbsp;</span>
493
493
  <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-yes">4x</span>
494
+ <span class="cline-any cline-yes">5x</span>
495
495
  <span class="cline-any cline-neutral">&nbsp;</span>
496
496
  <span class="cline-any cline-neutral">&nbsp;</span>
497
497
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -571,24 +571,24 @@
571
571
  <span class="cline-any cline-neutral">&nbsp;</span>
572
572
  <span class="cline-any cline-neutral">&nbsp;</span>
573
573
  <span class="cline-any cline-neutral">&nbsp;</span>
574
- <span class="cline-any cline-yes">506x</span>
575
- <span class="cline-any cline-yes">100x</span>
574
+ <span class="cline-any cline-yes">510x</span>
575
+ <span class="cline-any cline-yes">101x</span>
576
576
  <span class="cline-any cline-neutral">&nbsp;</span>
577
577
  <span class="cline-any cline-neutral">&nbsp;</span>
578
- <span class="cline-any cline-yes">406x</span>
579
- <span class="cline-any cline-yes">207x</span>
578
+ <span class="cline-any cline-yes">409x</span>
579
+ <span class="cline-any cline-yes">209x</span>
580
580
  <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-yes">207x</span>
581
+ <span class="cline-any cline-yes">209x</span>
582
582
  <span class="cline-any cline-yes">207x</span>
583
583
  <span class="cline-any cline-neutral">&nbsp;</span>
584
584
  <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-no">&nbsp;</span>
585
+ <span class="cline-any cline-yes">2x</span>
586
586
  <span class="cline-any cline-neutral">&nbsp;</span>
587
587
  <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-yes">199x</span>
589
- <span class="cline-any cline-yes">199x</span>
590
- <span class="cline-any cline-yes">15x</span>
591
- <span class="cline-any cline-yes">24x</span>
588
+ <span class="cline-any cline-yes">200x</span>
589
+ <span class="cline-any cline-yes">200x</span>
590
+ <span class="cline-any cline-yes">16x</span>
591
+ <span class="cline-any cline-yes">25x</span>
592
592
  <span class="cline-any cline-neutral">&nbsp;</span>
593
593
  <span class="cline-any cline-neutral">&nbsp;</span>
594
594
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -813,8 +813,8 @@ export class DatafileReader {
813
813
  hasVariations(featureKey: FeatureKey): boolean {
814
814
  const feature = this.getFeature(featureKey);
815
815
  &nbsp;
816
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!feature) {
817
- <span class="cstat-no" title="statement not covered" > return false;</span>
816
+ if (!feature) {
817
+ return false;
818
818
  }
819
819
  &nbsp;
820
820
  return Array.isArray(feature.variations) &amp;&amp; feature.variations.length &gt; 0;
@@ -908,7 +908,7 @@ export class DatafileReader {
908
908
  return this.segmentIsMatched(segment, context);
909
909
  }
910
910
  &nbsp;
911
- <span class="cstat-no" title="statement not covered" > return false;</span>
911
+ return false;
912
912
  }
913
913
  &nbsp;
914
914
  if (typeof groupSegments === "object") {
@@ -1048,7 +1048,7 @@ export class DatafileReader {
1048
1048
  <div class='footer quiet pad2 space-top1 center small'>
1049
1049
  Code coverage generated by
1050
1050
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1051
- at 2025-11-06T19:55:42.800Z
1051
+ at 2025-11-29T21:20:14.078Z
1052
1052
  </div>
1053
1053
  <script src="prettify.js"></script>
1054
1054
  <script>
@@ -247,7 +247,7 @@ export class Emitter {
247
247
  <div class='footer quiet pad2 space-top1 center small'>
248
248
  Code coverage generated by
249
249
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
250
- at 2025-11-06T19:55:42.800Z
250
+ at 2025-11-29T21:20:14.078Z
251
251
  </div>
252
252
  <script src="prettify.js"></script>
253
253
  <script>
@@ -2680,7 +2680,7 @@ export function evaluate(options: EvaluateOptions): Evaluation {
2680
2680
  <div class='footer quiet pad2 space-top1 center small'>
2681
2681
  Code coverage generated by
2682
2682
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2683
- at 2025-11-06T19:55:42.800Z
2683
+ at 2025-11-29T21:20:14.078Z
2684
2684
  </div>
2685
2685
  <script src="prettify.js"></script>
2686
2686
  <script>
@@ -319,7 +319,7 @@ export function getParamsForDatafileSetEvent(
319
319
  <div class='footer quiet pad2 space-top1 center small'>
320
320
  Code coverage generated by
321
321
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
322
- at 2025-11-06T19:55:42.800Z
322
+ at 2025-11-29T21:20:14.078Z
323
323
  </div>
324
324
  <script src="prettify.js"></script>
325
325
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">84.61% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>11/13</span>
28
+ <span class='fraction'>11/11</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">71.42% </span>
33
+ <span class="strong">85.71% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>10/14</span>
35
+ <span class='fraction'>12/14</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">84.61% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>11/13</span>
49
+ <span class='fraction'>11/11</span>
50
50
  </div>
51
51
 
52
52
 
@@ -91,75 +91,60 @@
91
91
  <a name='L26'></a><a href='#L26'>26</a>
92
92
  <a name='L27'></a><a href='#L27'>27</a>
93
93
  <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
100
- <span class="cline-any cline-neutral">&nbsp;</span>
94
+ <a name='L29'></a><a href='#L29'>29</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
101
95
  <span class="cline-any cline-neutral">&nbsp;</span>
102
96
  <span class="cline-any cline-neutral">&nbsp;</span>
103
97
  <span class="cline-any cline-neutral">&nbsp;</span>
104
- <span class="cline-any cline-yes">2x</span>
105
- <span class="cline-any cline-yes">20x</span>
106
- <span class="cline-any cline-yes">20x</span>
107
- <span class="cline-any cline-no">&nbsp;</span>
108
98
  <span class="cline-any cline-neutral">&nbsp;</span>
99
+ <span class="cline-any cline-yes">3x</span>
100
+ <span class="cline-any cline-yes">31x</span>
101
+ <span class="cline-any cline-yes">1x</span>
109
102
  <span class="cline-any cline-neutral">&nbsp;</span>
110
- <span class="cline-any cline-yes">20x</span>
111
103
  <span class="cline-any cline-neutral">&nbsp;</span>
112
- <span class="cline-any cline-yes">6x</span>
104
+ <span class="cline-any cline-yes">30x</span>
113
105
  <span class="cline-any cline-neutral">&nbsp;</span>
114
- <span class="cline-any cline-yes">2x</span>
106
+ <span class="cline-any cline-yes">10x</span>
115
107
  <span class="cline-any cline-neutral">&nbsp;</span>
116
- <span class="cline-any cline-yes">2x</span>
108
+ <span class="cline-any cline-yes">3x</span>
117
109
  <span class="cline-any cline-neutral">&nbsp;</span>
118
- <span class="cline-any cline-yes">4x</span>
110
+ <span class="cline-any cline-yes">3x</span>
119
111
  <span class="cline-any cline-neutral">&nbsp;</span>
120
- <span class="cline-any cline-yes">2x</span>
112
+ <span class="cline-any cline-yes">5x</span>
121
113
  <span class="cline-any cline-neutral">&nbsp;</span>
122
- <span class="cline-any cline-yes">2x</span>
114
+ <span class="cline-any cline-yes">3x</span>
123
115
  <span class="cline-any cline-neutral">&nbsp;</span>
116
+ <span class="cline-any cline-yes">3x</span>
124
117
  <span class="cline-any cline-neutral">&nbsp;</span>
125
- <span class="cline-any cline-yes">2x</span>
126
118
  <span class="cline-any cline-neutral">&nbsp;</span>
127
- <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-no">&nbsp;</span>
119
+ <span class="cline-any cline-yes">3x</span>
130
120
  <span class="cline-any cline-neutral">&nbsp;</span>
131
121
  <span class="cline-any cline-neutral">&nbsp;</span>
132
122
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { VariableType, VariableValue } from "@featurevisor/types";
133
123
  &nbsp;
134
124
  type FieldType = string | VariableType;
135
- type ValueType = VariableValue;
125
+ export type ValueType = VariableValue;
136
126
  &nbsp;
137
127
  export function getValueByType(value: ValueType, fieldType: FieldType): ValueType {
138
- try {
139
- <span class="missing-if-branch" title="if path not taken" >I</span>if (value === undefined) {
140
- <span class="cstat-no" title="statement not covered" > return null;</span>
141
- }
128
+ if (value === undefined) {
129
+ return null;
130
+ }
142
131
  &nbsp;
143
- switch (fieldType) {
144
- case "string":
145
- return typeof value === "string" ? value : <span class="branch-1 cbranch-no" title="branch not covered" >null;</span>
146
- case "integer":
147
- return parseInt(value as string, 10);
148
- case "double":
149
- return parseFloat(value as string);
150
- case "boolean":
151
- return value === true;
152
- case "array":
153
- return Array.isArray(value) ? value : <span class="branch-1 cbranch-no" title="branch not covered" >null;</span>
154
- case "object":
155
- return typeof value === "object" ? value : <span class="branch-1 cbranch-no" title="branch not covered" >null;</span>
156
- // @NOTE: `json` is not handled here intentionally
157
- default:
158
- return value;
159
- }
160
- // eslint-disable-next-line
161
- } catch (e) {
162
- <span class="cstat-no" title="statement not covered" > return null;</span>
132
+ switch (fieldType) {
133
+ case "string":
134
+ return typeof value === "string" ? value : null;
135
+ case "integer":
136
+ return parseInt(value as string, 10);
137
+ case "double":
138
+ return parseFloat(value as string);
139
+ case "boolean":
140
+ return value === true;
141
+ case "array":
142
+ return Array.isArray(value) ? value : <span class="branch-1 cbranch-no" title="branch not covered" >null;</span>
143
+ case "object":
144
+ return typeof value === "object" ? value : <span class="branch-1 cbranch-no" title="branch not covered" >null;</span>
145
+ // @NOTE: `json` is not handled here intentionally
146
+ default:
147
+ return value;
163
148
  }
164
149
  }
165
150
  &nbsp;</pre></td></tr></table></pre>
@@ -169,7 +154,7 @@ export function getValueByType(value: ValueType, fieldType: FieldType): ValueTyp
169
154
  <div class='footer quiet pad2 space-top1 center small'>
170
155
  Code coverage generated by
171
156
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
172
- at 2025-11-06T19:55:42.800Z
157
+ at 2025-11-29T21:20:14.078Z
173
158
  </div>
174
159
  <script src="prettify.js"></script>
175
160
  <script>
@@ -337,7 +337,7 @@ export class HooksManager {
337
337
  <div class='footer quiet pad2 space-top1 center small'>
338
338
  Code coverage generated by
339
339
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
340
- at 2025-11-06T19:55:42.800Z
340
+ at 2025-11-29T21:20:14.078Z
341
341
  </div>
342
342
  <script src="prettify.js"></script>
343
343
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">90.66% </span>
26
+ <span class="strong">91.2% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>641/707</span>
28
+ <span class='fraction'>643/705</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">84.49% </span>
33
+ <span class="strong">85.15% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>387/458</span>
35
+ <span class='fraction'>390/458</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">90.79% </span>
47
+ <span class="strong">91.34% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>631/695</span>
49
+ <span class='fraction'>633/693</span>
50
50
  </div>
51
51
 
52
52
 
@@ -125,17 +125,17 @@
125
125
 
126
126
  <tr>
127
127
  <td class="file high" data-value="datafileReader.ts"><a href="datafileReader.ts.html">datafileReader.ts</a></td>
128
- <td data-value="91.45" class="pic high">
129
- <div class="chart"><div class="cover-fill" style="width: 91%"></div><div class="cover-empty" style="width: 9%"></div></div>
128
+ <td data-value="93.16" class="pic high">
129
+ <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
130
130
  </td>
131
- <td data-value="91.45" class="pct high">91.45%</td>
132
- <td data-value="117" class="abs high">107/117</td>
133
- <td data-value="93.33" class="pct high">93.33%</td>
134
- <td data-value="60" class="abs high">56/60</td>
131
+ <td data-value="93.16" class="pct high">93.16%</td>
132
+ <td data-value="117" class="abs high">109/117</td>
133
+ <td data-value="95" class="pct high">95%</td>
134
+ <td data-value="60" class="abs high">57/60</td>
135
135
  <td data-value="100" class="pct high">100%</td>
136
136
  <td data-value="27" class="abs high">27/27</td>
137
- <td data-value="91.15" class="pct high">91.15%</td>
138
- <td data-value="113" class="abs high">103/113</td>
137
+ <td data-value="92.92" class="pct high">92.92%</td>
138
+ <td data-value="113" class="abs high">105/113</td>
139
139
  </tr>
140
140
 
141
141
  <tr>
@@ -185,17 +185,17 @@
185
185
 
186
186
  <tr>
187
187
  <td class="file high" data-value="helpers.ts"><a href="helpers.ts.html">helpers.ts</a></td>
188
- <td data-value="84.61" class="pic high">
189
- <div class="chart"><div class="cover-fill" style="width: 84%"></div><div class="cover-empty" style="width: 16%"></div></div>
188
+ <td data-value="100" class="pic high">
189
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
190
190
  </td>
191
- <td data-value="84.61" class="pct high">84.61%</td>
192
- <td data-value="13" class="abs high">11/13</td>
193
- <td data-value="71.42" class="pct medium">71.42%</td>
194
- <td data-value="14" class="abs medium">10/14</td>
191
+ <td data-value="100" class="pct high">100%</td>
192
+ <td data-value="11" class="abs high">11/11</td>
193
+ <td data-value="85.71" class="pct high">85.71%</td>
194
+ <td data-value="14" class="abs high">12/14</td>
195
195
  <td data-value="100" class="pct high">100%</td>
196
196
  <td data-value="1" class="abs high">1/1</td>
197
- <td data-value="84.61" class="pct high">84.61%</td>
198
- <td data-value="13" class="abs high">11/13</td>
197
+ <td data-value="100" class="pct high">100%</td>
198
+ <td data-value="11" class="abs high">11/11</td>
199
199
  </tr>
200
200
 
201
201
  <tr>
@@ -251,7 +251,7 @@
251
251
  <div class='footer quiet pad2 space-top1 center small'>
252
252
  Code coverage generated by
253
253
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
254
- at 2025-11-06T19:55:42.800Z
254
+ at 2025-11-29T21:20:14.078Z
255
255
  </div>
256
256
  <script src="prettify.js"></script>
257
257
  <script>
@@ -1402,7 +1402,7 @@ export function createInstance(options: InstanceOptions = <span class="branch-0
1402
1402
  <div class='footer quiet pad2 space-top1 center small'>
1403
1403
  Code coverage generated by
1404
1404
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1405
- at 2025-11-06T19:55:42.800Z
1405
+ at 2025-11-29T21:20:14.078Z
1406
1406
  </div>
1407
1407
  <script src="prettify.js"></script>
1408
1408
  <script>
@@ -340,7 +340,7 @@ export function createLogger(options: CreateLoggerOptions = {}): Logger {
340
340
  <div class='footer quiet pad2 space-top1 center small'>
341
341
  Code coverage generated by
342
342
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
343
- at 2025-11-06T19:55:42.800Z
343
+ at 2025-11-29T21:20:14.078Z
344
344
  </div>
345
345
  <script src="prettify.js"></script>
346
346
  <script>