@featurevisor/sdk 2.0.2 → 2.0.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.
- package/CHANGELOG.md +8 -0
- package/coverage/clover.xml +238 -238
- package/coverage/coverage-final.json +3 -3
- package/coverage/lcov-report/bucketer.ts.html +13 -4
- package/coverage/lcov-report/child.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/evaluate.ts.html +3 -9
- package/coverage/lcov-report/events.ts.html +1 -1
- package/coverage/lcov-report/helpers.ts.html +1 -1
- package/coverage/lcov-report/hooks.ts.html +6 -3
- package/coverage/lcov-report/index.html +1 -1
- package/coverage/lcov-report/instance.ts.html +1 -1
- package/coverage/lcov-report/logger.ts.html +1 -1
- package/coverage/lcov.info +413 -413
- package/dist/bucketer.d.ts +4 -2
- package/dist/evaluate.d.ts +2 -1
- package/dist/hooks.d.ts +2 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs.gz +0 -0
- package/dist/index.mjs.map +1 -1
- package/lib/bucketer.d.ts +4 -2
- package/lib/evaluate.d.ts +2 -1
- package/lib/hooks.d.ts +2 -1
- package/package.json +3 -3
- package/src/bucketer.ts +5 -2
- package/src/evaluate.ts +1 -3
- package/src/hooks.ts +2 -1
|
@@ -147,7 +147,10 @@
|
|
|
147
147
|
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
148
|
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
149
|
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
-
<a name='L85'></a><a href='#L85'>85</a
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
151
154
|
<span class="cline-any cline-neutral"> </span>
|
|
152
155
|
<span class="cline-any cline-neutral"> </span>
|
|
153
156
|
<span class="cline-any cline-yes">3x</span>
|
|
@@ -156,6 +159,9 @@
|
|
|
156
159
|
<span class="cline-any cline-neutral"> </span>
|
|
157
160
|
<span class="cline-any cline-neutral"> </span>
|
|
158
161
|
<span class="cline-any cline-neutral"> </span>
|
|
162
|
+
<span class="cline-any cline-neutral"> </span>
|
|
163
|
+
<span class="cline-any cline-neutral"> </span>
|
|
164
|
+
<span class="cline-any cline-neutral"> </span>
|
|
159
165
|
<span class="cline-any cline-yes">3x</span>
|
|
160
166
|
<span class="cline-any cline-yes">3x</span>
|
|
161
167
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -231,12 +237,15 @@
|
|
|
231
237
|
<span class="cline-any cline-neutral"> </span>
|
|
232
238
|
<span class="cline-any cline-yes">172x</span>
|
|
233
239
|
<span class="cline-any cline-neutral"> </span>
|
|
234
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type {
|
|
240
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { Context, AttributeValue, FeatureKey, BucketBy } from "@featurevisor/types";
|
|
235
241
|
|
|
236
242
|
import { Logger } from "./logger";
|
|
237
243
|
import { getValueFromContext } from "./conditions";
|
|
238
244
|
import { MurmurHashV3 } from "./murmurhash";
|
|
239
245
|
|
|
246
|
+
export type BucketKey = string;
|
|
247
|
+
export type BucketValue = number; // 0 to 100,000 (100% * 1000 to include three decimal places in same integer)
|
|
248
|
+
|
|
240
249
|
/**
|
|
241
250
|
* Generic hashing
|
|
242
251
|
*/
|
|
@@ -245,7 +254,7 @@ const MAX_HASH_VALUE = Math.pow(2, 32);
|
|
|
245
254
|
|
|
246
255
|
export const MAX_BUCKETED_NUMBER = 100000; // 100% * 1000 to include three decimal places in the same integer value
|
|
247
256
|
|
|
248
|
-
export function getBucketedNumber(bucketKey: string):
|
|
257
|
+
export function getBucketedNumber(bucketKey: string): BucketValue {
|
|
249
258
|
const hashValue = MurmurHashV3(bucketKey, HASH_SEED);
|
|
250
259
|
const ratio = hashValue / MAX_HASH_VALUE;
|
|
251
260
|
|
|
@@ -322,7 +331,7 @@ export function getBucketKey(options: GetBucketKeyOptions): BucketKey {
|
|
|
322
331
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
323
332
|
Code coverage generated by
|
|
324
333
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
325
|
-
at 2025-07-
|
|
334
|
+
at 2025-07-20T21:55:47.272Z
|
|
326
335
|
</div>
|
|
327
336
|
<script src="prettify.js"></script>
|
|
328
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-07-
|
|
928
|
+
at 2025-07-20T21:55:47.272Z
|
|
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-07-
|
|
403
|
+
at 2025-07-20T21:55:47.272Z
|
|
404
404
|
</div>
|
|
405
405
|
<script src="prettify.js"></script>
|
|
406
406
|
<script>
|
|
@@ -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-07-
|
|
1051
|
+
at 2025-07-20T21:55:47.272Z
|
|
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-07-
|
|
250
|
+
at 2025-07-20T21:55:47.272Z
|
|
251
251
|
</div>
|
|
252
252
|
<script src="prettify.js"></script>
|
|
253
253
|
<script>
|
|
@@ -933,11 +933,7 @@
|
|
|
933
933
|
<a name='L868'></a><a href='#L868'>868</a>
|
|
934
934
|
<a name='L869'></a><a href='#L869'>869</a>
|
|
935
935
|
<a name='L870'></a><a href='#L870'>870</a>
|
|
936
|
-
<a name='L871'></a><a href='#L871'>871</a>
|
|
937
|
-
<a name='L872'></a><a href='#L872'>872</a>
|
|
938
|
-
<a name='L873'></a><a href='#L873'>873</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
939
|
-
<span class="cline-any cline-neutral"> </span>
|
|
940
|
-
<span class="cline-any cline-neutral"> </span>
|
|
936
|
+
<a name='L871'></a><a href='#L871'>871</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
941
937
|
<span class="cline-any cline-neutral"> </span>
|
|
942
938
|
<span class="cline-any cline-neutral"> </span>
|
|
943
939
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1810,8 +1806,6 @@
|
|
|
1810
1806
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type {
|
|
1811
1807
|
FeatureKey,
|
|
1812
1808
|
Context,
|
|
1813
|
-
BucketKey,
|
|
1814
|
-
BucketValue,
|
|
1815
1809
|
RuleKey,
|
|
1816
1810
|
Traffic,
|
|
1817
1811
|
Force,
|
|
@@ -1829,7 +1823,7 @@
|
|
|
1829
1823
|
import { Logger } from "./logger";
|
|
1830
1824
|
import { HooksManager } from "./hooks";
|
|
1831
1825
|
import { DatafileReader } from "./datafileReader";
|
|
1832
|
-
import { getBucketKey, getBucketedNumber } from "./bucketer";
|
|
1826
|
+
import { BucketKey, BucketValue, getBucketKey, getBucketedNumber } from "./bucketer";
|
|
1833
1827
|
|
|
1834
1828
|
export enum EvaluationReason {
|
|
1835
1829
|
// feature specific
|
|
@@ -2686,7 +2680,7 @@ export function evaluate(options: EvaluateOptions): Evaluation {
|
|
|
2686
2680
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
2687
2681
|
Code coverage generated by
|
|
2688
2682
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2689
|
-
at 2025-07-
|
|
2683
|
+
at 2025-07-20T21:55:47.272Z
|
|
2690
2684
|
</div>
|
|
2691
2685
|
<script src="prettify.js"></script>
|
|
2692
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-07-
|
|
322
|
+
at 2025-07-20T21:55:47.272Z
|
|
323
323
|
</div>
|
|
324
324
|
<script src="prettify.js"></script>
|
|
325
325
|
<script>
|
|
@@ -169,7 +169,7 @@ export function getValueByType(value: ValueType, fieldType: FieldType): ValueTyp
|
|
|
169
169
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
170
170
|
Code coverage generated by
|
|
171
171
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
172
|
-
at 2025-07-
|
|
172
|
+
at 2025-07-20T21:55:47.272Z
|
|
173
173
|
</div>
|
|
174
174
|
<script src="prettify.js"></script>
|
|
175
175
|
<script>
|
|
@@ -151,7 +151,9 @@
|
|
|
151
151
|
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
152
|
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
153
|
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a
|
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
156
|
+
<span class="cline-any cline-neutral"> </span>
|
|
155
157
|
<span class="cline-any cline-neutral"> </span>
|
|
156
158
|
<span class="cline-any cline-neutral"> </span>
|
|
157
159
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -239,10 +241,11 @@
|
|
|
239
241
|
<span class="cline-any cline-yes">415x</span>
|
|
240
242
|
<span class="cline-any cline-neutral"> </span>
|
|
241
243
|
<span class="cline-any cline-neutral"> </span>
|
|
242
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { BucketBy,
|
|
244
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { BucketBy, Context, FeatureKey } from "@featurevisor/types";
|
|
243
245
|
|
|
244
246
|
import type { EvaluateOptions, Evaluation } from "./evaluate";
|
|
245
247
|
import type { Logger } from "./logger";
|
|
248
|
+
import type { BucketKey, BucketValue } from "./bucketer";
|
|
246
249
|
|
|
247
250
|
/**
|
|
248
251
|
* bucketKey
|
|
@@ -334,7 +337,7 @@ export class HooksManager {
|
|
|
334
337
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
335
338
|
Code coverage generated by
|
|
336
339
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
337
|
-
at 2025-07-
|
|
340
|
+
at 2025-07-20T21:55:47.272Z
|
|
338
341
|
</div>
|
|
339
342
|
<script src="prettify.js"></script>
|
|
340
343
|
<script>
|
|
@@ -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-07-
|
|
254
|
+
at 2025-07-20T21:55:47.272Z
|
|
255
255
|
</div>
|
|
256
256
|
<script src="prettify.js"></script>
|
|
257
257
|
<script>
|
|
@@ -1402,7 +1402,7 @@ export function createInstance(options: InstanceOptions): FeaturevisorInstance {
|
|
|
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-07-
|
|
1405
|
+
at 2025-07-20T21:55:47.272Z
|
|
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-07-
|
|
343
|
+
at 2025-07-20T21:55:47.272Z
|
|
344
344
|
</div>
|
|
345
345
|
<script src="prettify.js"></script>
|
|
346
346
|
<script>
|