@featurevisor/sdk 1.16.0 → 1.17.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.
- package/.eslintcache +1 -1
- package/CHANGELOG.md +11 -0
- package/coverage/clover.xml +397 -390
- package/coverage/coverage-final.json +2 -2
- package/coverage/lcov-report/bucket.ts.html +1 -1
- package/coverage/lcov-report/conditions.ts.html +1 -1
- package/coverage/lcov-report/datafileReader.ts.html +1 -1
- package/coverage/lcov-report/emitter.ts.html +1 -1
- package/coverage/lcov-report/feature.ts.html +88 -22
- package/coverage/lcov-report/index.html +23 -23
- package/coverage/lcov-report/instance.ts.html +209 -32
- package/coverage/lcov-report/logger.ts.html +1 -1
- package/coverage/lcov-report/segments.ts.html +1 -1
- package/coverage/lcov.info +655 -646
- package/dist/index.js +1 -1
- package/dist/index.js.gz +0 -0
- package/dist/index.js.map +1 -1
- package/lib/feature.d.ts +5 -1
- package/lib/feature.js +19 -8
- package/lib/feature.js.map +1 -1
- package/lib/instance.d.ts +5 -1
- package/lib/instance.js +59 -25
- package/lib/instance.js.map +1 -1
- package/package.json +2 -2
- package/src/feature.ts +31 -9
- package/src/instance.ts +85 -26
|
@@ -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-
|
|
112
|
+
at 2024-04-07T21:40:20.948Z
|
|
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-
|
|
445
|
+
at 2024-04-07T21:40:20.948Z
|
|
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-
|
|
292
|
+
at 2024-04-07T21:40:20.948Z
|
|
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-
|
|
232
|
+
at 2024-04-07T21:40:20.948Z
|
|
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">
|
|
26
|
+
<span class="strong">97.5% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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">
|
|
33
|
+
<span class="strong">94.11% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
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'>
|
|
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">
|
|
47
|
+
<span class="strong">97.43% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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
|
|
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"> </span>
|
|
176
198
|
<span class="cline-any cline-neutral"> </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"> </span>
|
|
260
282
|
<span class="cline-any cline-neutral"> </span>
|
|
261
283
|
<span class="cline-any cline-neutral"> </span>
|
|
284
|
+
<span class="cline-any cline-neutral"> </span>
|
|
285
|
+
<span class="cline-any cline-neutral"> </span>
|
|
286
|
+
<span class="cline-any cline-neutral"> </span>
|
|
287
|
+
<span class="cline-any cline-neutral"> </span>
|
|
288
|
+
<span class="cline-any cline-neutral"> </span>
|
|
262
289
|
<span class="cline-any cline-yes">1x</span>
|
|
263
290
|
<span class="cline-any cline-neutral"> </span>
|
|
264
291
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -266,21 +293,38 @@
|
|
|
266
293
|
<span class="cline-any cline-neutral"> </span>
|
|
267
294
|
<span class="cline-any cline-neutral"> </span>
|
|
268
295
|
<span class="cline-any cline-yes">108x</span>
|
|
296
|
+
<span class="cline-any cline-neutral"> </span>
|
|
297
|
+
<span class="cline-any cline-neutral"> </span>
|
|
298
|
+
<span class="cline-any cline-neutral"> </span>
|
|
299
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
271
303
|
<span class="cline-any cline-neutral"> </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"> </span>
|
|
307
|
+
<span class="cline-any cline-yes">153x</span>
|
|
276
308
|
<span class="cline-any cline-neutral"> </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"> </span>
|
|
280
310
|
<span class="cline-any cline-neutral"> </span>
|
|
281
|
-
<span class="cline-any cline-
|
|
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"> </span>
|
|
315
|
+
<span class="cline-any cline-neutral"> </span>
|
|
316
|
+
<span class="cline-any cline-yes">140x</span>
|
|
317
|
+
<span class="cline-any cline-neutral"> </span>
|
|
318
|
+
<span class="cline-any cline-neutral"> </span>
|
|
319
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
282
324
|
<span class="cline-any cline-neutral"> </span>
|
|
283
325
|
<span class="cline-any cline-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-yes">57x</span>
|
|
327
|
+
<span class="cline-any cline-neutral"> </span>
|
|
284
328
|
<span class="cline-any cline-neutral"> </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
|
|
|
415
|
+
export interface ForceResult {
|
|
416
|
+
force?: Force;
|
|
417
|
+
forceIndex?: number;
|
|
418
|
+
}
|
|
419
|
+
|
|
371
420
|
export function findForceFromFeature(
|
|
372
421
|
feature: Feature,
|
|
373
422
|
context: Context,
|
|
374
423
|
datafileReader: DatafileReader,
|
|
375
424
|
logger: Logger,
|
|
376
|
-
):
|
|
425
|
+
): ForceResult {
|
|
426
|
+
const result: ForceResult = {
|
|
427
|
+
force: undefined,
|
|
428
|
+
forceIndex: undefined,
|
|
429
|
+
};
|
|
430
|
+
|
|
377
431
|
if (!feature.force) {
|
|
378
|
-
return
|
|
432
|
+
return result;
|
|
379
433
|
}
|
|
380
434
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
435
|
+
for (let i = 0; i < feature.force.length; i++) {
|
|
436
|
+
const currentForce = feature.force[i];
|
|
437
|
+
|
|
438
|
+
if (
|
|
439
|
+
currentForce.conditions &&
|
|
440
|
+
allConditionsAreMatched(currentForce.conditions, context, logger)
|
|
441
|
+
) {
|
|
442
|
+
result.force = currentForce;
|
|
443
|
+
result.forceIndex = i;
|
|
444
|
+
break;
|
|
384
445
|
}
|
|
385
446
|
|
|
386
|
-
if (
|
|
387
|
-
|
|
447
|
+
if (
|
|
448
|
+
currentForce.segments &&
|
|
449
|
+
allGroupSegmentsAreMatched(currentForce.segments, context, datafileReader, logger)
|
|
450
|
+
) {
|
|
451
|
+
result.force = currentForce;
|
|
452
|
+
result.forceIndex = i;
|
|
453
|
+
break;
|
|
388
454
|
}
|
|
455
|
+
}
|
|
389
456
|
|
|
390
|
-
|
|
391
|
-
});
|
|
457
|
+
return result;
|
|
392
458
|
}
|
|
393
459
|
</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-
|
|
466
|
+
at 2024-04-07T21:40:20.948Z
|
|
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.
|
|
26
|
+
<span class="strong">91.94% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>582/633</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">86.01% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
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">
|
|
40
|
+
<span class="strong">93.93% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
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.
|
|
47
|
+
<span class="strong">91.92% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>569/619</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="
|
|
144
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
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="
|
|
147
|
-
<td data-value="
|
|
148
|
-
<td data-value="
|
|
149
|
-
<td data-value="
|
|
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="
|
|
152
|
-
<td data-value="
|
|
153
|
-
<td data-value="
|
|
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.
|
|
158
|
+
<td data-value="89.71" 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.
|
|
162
|
-
<td data-value="
|
|
161
|
+
<td data-value="89.71" class="pct high">89.71%</td>
|
|
162
|
+
<td data-value="418" class="abs high">375/418</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.
|
|
168
|
-
<td data-value="
|
|
167
|
+
<td data-value="89.8" class="pct high">89.8%</td>
|
|
168
|
+
<td data-value="412" class="abs high">370/412</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-
|
|
209
|
+
at 2024-04-07T21:40:20.948Z
|
|
210
210
|
</div>
|
|
211
211
|
<script src="prettify.js"></script>
|
|
212
212
|
<script>
|