@featurevisor/sdk 1.16.0 → 1.20.0

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.
@@ -109,7 +109,7 @@ export function getBucketedNumber(bucketKey: string): number {
109
109
  <div class='footer quiet pad2 space-top1 center small'>
110
110
  Code coverage generated by
111
111
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
112
- at 2024-04-05T16:04:58.225Z
112
+ at 2024-04-30T18:08:48.599Z
113
113
  </div>
114
114
  <script src="prettify.js"></script>
115
115
  <script>
@@ -442,7 +442,7 @@ export function allConditionsAreMatched(
442
442
  <div class='footer quiet pad2 space-top1 center small'>
443
443
  Code coverage generated by
444
444
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
445
- at 2024-04-05T16:04:58.225Z
445
+ at 2024-04-30T18:08:48.599Z
446
446
  </div>
447
447
  <script src="prettify.js"></script>
448
448
  <script>
@@ -289,7 +289,7 @@ export class DatafileReader {
289
289
  <div class='footer quiet pad2 space-top1 center small'>
290
290
  Code coverage generated by
291
291
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
292
- at 2024-04-05T16:04:58.225Z
292
+ at 2024-04-30T18:08:48.599Z
293
293
  </div>
294
294
  <script src="prettify.js"></script>
295
295
  <script>
@@ -229,7 +229,7 @@ export class Emitter {
229
229
  <div class='footer quiet pad2 space-top1 center small'>
230
230
  Code coverage generated by
231
231
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
232
- at 2024-04-05T16:04:58.225Z
232
+ at 2024-04-30T18:08:48.599Z
233
233
  </div>
234
234
  <script src="prettify.js"></script>
235
235
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">93.93% </span>
26
+ <span class="strong">97.5% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>31/33</span>
28
+ <span class='fraction'>39/40</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">92.3% </span>
33
+ <span class="strong">94.11% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>12/13</span>
35
+ <span class='fraction'>16/17</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>8/8</span>
42
+ <span class='fraction'>7/7</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">93.93% </span>
47
+ <span class="strong">97.43% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>31/33</span>
49
+ <span class='fraction'>38/39</span>
50
50
  </div>
51
51
 
52
52
 
@@ -172,7 +172,29 @@
172
172
  <a name='L107'></a><a href='#L107'>107</a>
173
173
  <a name='L108'></a><a href='#L108'>108</a>
174
174
  <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
176
198
  <span class="cline-any cline-neutral">&nbsp;</span>
177
199
  <span class="cline-any cline-yes">1x</span>
178
200
  <span class="cline-any cline-yes">1x</span>
@@ -259,6 +281,11 @@
259
281
  <span class="cline-any cline-neutral">&nbsp;</span>
260
282
  <span class="cline-any cline-neutral">&nbsp;</span>
261
283
  <span class="cline-any cline-neutral">&nbsp;</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-neutral">&nbsp;</span>
286
+ <span class="cline-any cline-neutral">&nbsp;</span>
287
+ <span class="cline-any cline-neutral">&nbsp;</span>
288
+ <span class="cline-any cline-neutral">&nbsp;</span>
262
289
  <span class="cline-any cline-yes">1x</span>
263
290
  <span class="cline-any cline-neutral">&nbsp;</span>
264
291
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -266,21 +293,38 @@
266
293
  <span class="cline-any cline-neutral">&nbsp;</span>
267
294
  <span class="cline-any cline-neutral">&nbsp;</span>
268
295
  <span class="cline-any cline-yes">108x</span>
296
+ <span class="cline-any cline-neutral">&nbsp;</span>
297
+ <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-neutral">&nbsp;</span>
299
+ <span class="cline-any cline-neutral">&nbsp;</span>
300
+ <span class="cline-any cline-yes">108x</span>
269
301
  <span class="cline-any cline-yes">51x</span>
270
302
  <span class="cline-any cline-neutral">&nbsp;</span>
271
303
  <span class="cline-any cline-neutral">&nbsp;</span>
272
304
  <span class="cline-any cline-yes">57x</span>
273
305
  <span class="cline-any cline-yes">153x</span>
274
- <span class="cline-any cline-yes">148x</span>
275
306
  <span class="cline-any cline-neutral">&nbsp;</span>
307
+ <span class="cline-any cline-yes">153x</span>
276
308
  <span class="cline-any cline-neutral">&nbsp;</span>
277
- <span class="cline-any cline-yes">5x</span>
278
- <span class="cline-any cline-yes">5x</span>
279
309
  <span class="cline-any cline-neutral">&nbsp;</span>
280
310
  <span class="cline-any cline-neutral">&nbsp;</span>
281
- <span class="cline-any cline-no">&nbsp;</span>
311
+ <span class="cline-any cline-yes">13x</span>
312
+ <span class="cline-any cline-yes">13x</span>
313
+ <span class="cline-any cline-yes">13x</span>
314
+ <span class="cline-any cline-neutral">&nbsp;</span>
315
+ <span class="cline-any cline-neutral">&nbsp;</span>
316
+ <span class="cline-any cline-yes">140x</span>
317
+ <span class="cline-any cline-neutral">&nbsp;</span>
318
+ <span class="cline-any cline-neutral">&nbsp;</span>
319
+ <span class="cline-any cline-neutral">&nbsp;</span>
320
+ <span class="cline-any cline-yes">1x</span>
321
+ <span class="cline-any cline-yes">1x</span>
322
+ <span class="cline-any cline-yes">1x</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
282
324
  <span class="cline-any cline-neutral">&nbsp;</span>
283
325
  <span class="cline-any cline-neutral">&nbsp;</span>
326
+ <span class="cline-any cline-yes">57x</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
284
328
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Allocation, Context, Traffic, Feature, Force } from "@featurevisor/types";
285
329
  import { DatafileReader } from "./datafileReader";
286
330
  import { allGroupSegmentsAreMatched } from "./segments";
@@ -368,27 +412,49 @@ export function getMatchedTrafficAndAllocation(
368
412
  };
369
413
  }
370
414
  &nbsp;
415
+ export interface ForceResult {
416
+ force?: Force;
417
+ forceIndex?: number;
418
+ }
419
+ &nbsp;
371
420
  export function findForceFromFeature(
372
421
  feature: Feature,
373
422
  context: Context,
374
423
  datafileReader: DatafileReader,
375
424
  logger: Logger,
376
- ): Force | undefined {
425
+ ): ForceResult {
426
+ const result: ForceResult = {
427
+ force: undefined,
428
+ forceIndex: undefined,
429
+ };
430
+ &nbsp;
377
431
  if (!feature.force) {
378
- return undefined;
432
+ return result;
379
433
  }
380
434
  &nbsp;
381
- return feature.force.find((f: Force) =&gt; {
382
- if (f.conditions) {
383
- return allConditionsAreMatched(f.conditions, context, logger);
435
+ for (let i = 0; i &lt; feature.force.length; i++) {
436
+ const currentForce = feature.force[i];
437
+ &nbsp;
438
+ if (
439
+ currentForce.conditions &amp;&amp;
440
+ allConditionsAreMatched(currentForce.conditions, context, logger)
441
+ ) {
442
+ result.force = currentForce;
443
+ result.forceIndex = i;
444
+ break;
384
445
  }
385
446
  &nbsp;
386
- if (f.segments) {
387
- return allGroupSegmentsAreMatched(f.segments, context, datafileReader, logger);
447
+ if (
448
+ currentForce.segments &amp;&amp;
449
+ allGroupSegmentsAreMatched(currentForce.segments, context, datafileReader, logger)
450
+ ) {
451
+ result.force = currentForce;
452
+ result.forceIndex = i;
453
+ break;
388
454
  }
455
+ }
389
456
  &nbsp;
390
- <span class="cstat-no" title="statement not covered" > return false;</span>
391
- });
457
+ return result;
392
458
  }
393
459
  &nbsp;</pre></td></tr></table></pre>
394
460
 
@@ -397,7 +463,7 @@ export function findForceFromFeature(
397
463
  <div class='footer quiet pad2 space-top1 center small'>
398
464
  Code coverage generated by
399
465
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
400
- at 2024-04-05T16:04:58.225Z
466
+ at 2024-04-30T18:08:48.599Z
401
467
  </div>
402
468
  <script src="prettify.js"></script>
403
469
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">91.68% </span>
26
+ <span class="strong">91.95% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>573/625</span>
28
+ <span class='fraction'>583/634</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">85.84% </span>
33
+ <span class="strong">86.01% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>279/325</span>
35
+ <span class='fraction'>283/329</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">94% </span>
40
+ <span class="strong">93.93% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>94/100</span>
42
+ <span class='fraction'>93/99</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">91.66% </span>
47
+ <span class="strong">91.93% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>561/612</span>
49
+ <span class='fraction'>570/620</span>
50
50
  </div>
51
51
 
52
52
 
@@ -140,32 +140,32 @@
140
140
 
141
141
  <tr>
142
142
  <td class="file high" data-value="feature.ts"><a href="feature.ts.html">feature.ts</a></td>
143
- <td data-value="93.93" class="pic high">
144
- <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
143
+ <td data-value="97.5" class="pic high">
144
+ <div class="chart"><div class="cover-fill" style="width: 97%"></div><div class="cover-empty" style="width: 3%"></div></div>
145
145
  </td>
146
- <td data-value="93.93" class="pct high">93.93%</td>
147
- <td data-value="33" class="abs high">31/33</td>
148
- <td data-value="92.3" class="pct high">92.3%</td>
149
- <td data-value="13" class="abs high">12/13</td>
146
+ <td data-value="97.5" class="pct high">97.5%</td>
147
+ <td data-value="40" class="abs high">39/40</td>
148
+ <td data-value="94.11" class="pct high">94.11%</td>
149
+ <td data-value="17" class="abs high">16/17</td>
150
150
  <td data-value="100" class="pct high">100%</td>
151
- <td data-value="8" class="abs high">8/8</td>
152
- <td data-value="93.93" class="pct high">93.93%</td>
153
- <td data-value="33" class="abs high">31/33</td>
151
+ <td data-value="7" class="abs high">7/7</td>
152
+ <td data-value="97.43" class="pct high">97.43%</td>
153
+ <td data-value="39" class="abs high">38/39</td>
154
154
  </tr>
155
155
 
156
156
  <tr>
157
157
  <td class="file high" data-value="instance.ts"><a href="instance.ts.html">instance.ts</a></td>
158
- <td data-value="89.68" class="pic high">
158
+ <td data-value="89.73" class="pic high">
159
159
  <div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div>
160
160
  </td>
161
- <td data-value="89.68" class="pct high">89.68%</td>
162
- <td data-value="417" class="abs high">374/417</td>
161
+ <td data-value="89.73" class="pct high">89.73%</td>
162
+ <td data-value="419" class="abs high">376/419</td>
163
163
  <td data-value="79.14" class="pct medium">79.14%</td>
164
164
  <td data-value="211" class="abs medium">167/211</td>
165
165
  <td data-value="88.46" class="pct high">88.46%</td>
166
166
  <td data-value="52" class="abs high">46/52</td>
167
- <td data-value="89.78" class="pct high">89.78%</td>
168
- <td data-value="411" class="abs high">369/411</td>
167
+ <td data-value="89.83" class="pct high">89.83%</td>
168
+ <td data-value="413" class="abs high">371/413</td>
169
169
  </tr>
170
170
 
171
171
  <tr>
@@ -206,7 +206,7 @@
206
206
  <div class='footer quiet pad2 space-top1 center small'>
207
207
  Code coverage generated by
208
208
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
209
- at 2024-04-05T16:04:58.225Z
209
+ at 2024-04-30T18:08:48.599Z
210
210
  </div>
211
211
  <script src="prettify.js"></script>
212
212
  <script>