@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.
@@ -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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
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">&nbsp;</span>
151
154
  <span class="cline-any cline-neutral">&nbsp;</span>
152
155
  <span class="cline-any cline-neutral">&nbsp;</span>
153
156
  <span class="cline-any cline-yes">3x</span>
@@ -156,6 +159,9 @@
156
159
  <span class="cline-any cline-neutral">&nbsp;</span>
157
160
  <span class="cline-any cline-neutral">&nbsp;</span>
158
161
  <span class="cline-any cline-neutral">&nbsp;</span>
162
+ <span class="cline-any cline-neutral">&nbsp;</span>
163
+ <span class="cline-any cline-neutral">&nbsp;</span>
164
+ <span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</span>
@@ -231,12 +237,15 @@
231
237
  <span class="cline-any cline-neutral">&nbsp;</span>
232
238
  <span class="cline-any cline-yes">172x</span>
233
239
  <span class="cline-any cline-neutral">&nbsp;</span>
234
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { BucketKey, Context, AttributeValue, FeatureKey, BucketBy } from "@featurevisor/types";
240
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { Context, AttributeValue, FeatureKey, BucketBy } from "@featurevisor/types";
235
241
  &nbsp;
236
242
  import { Logger } from "./logger";
237
243
  import { getValueFromContext } from "./conditions";
238
244
  import { MurmurHashV3 } from "./murmurhash";
239
245
  &nbsp;
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
+ &nbsp;
240
249
  /**
241
250
  * Generic hashing
242
251
  */
@@ -245,7 +254,7 @@ const MAX_HASH_VALUE = Math.pow(2, 32);
245
254
  &nbsp;
246
255
  export const MAX_BUCKETED_NUMBER = 100000; // 100% * 1000 to include three decimal places in the same integer value
247
256
  &nbsp;
248
- export function getBucketedNumber(bucketKey: string): number {
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
  &nbsp;
@@ -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-19T21:32:42.383Z
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-19T21:32:42.383Z
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-19T21:32:42.383Z
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-19T21:32:42.383Z
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-19T21:32:42.383Z
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">&nbsp;</span>
939
- <span class="cline-any cline-neutral">&nbsp;</span>
940
- <span class="cline-any cline-neutral">&nbsp;</span>
936
+ <a name='L871'></a><a href='#L871'>871</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
941
937
  <span class="cline-any cline-neutral">&nbsp;</span>
942
938
  <span class="cline-any cline-neutral">&nbsp;</span>
943
939
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1810,8 +1806,6 @@
1810
1806
  <span class="cline-any cline-neutral">&nbsp;</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
  &nbsp;
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-19T21:32:42.383Z
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-19T21:32:42.383Z
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-19T21:32:42.383Z
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
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">&nbsp;</span>
156
+ <span class="cline-any cline-neutral">&nbsp;</span>
155
157
  <span class="cline-any cline-neutral">&nbsp;</span>
156
158
  <span class="cline-any cline-neutral">&nbsp;</span>
157
159
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -239,10 +241,11 @@
239
241
  <span class="cline-any cline-yes">415x</span>
240
242
  <span class="cline-any cline-neutral">&nbsp;</span>
241
243
  <span class="cline-any cline-neutral">&nbsp;</span>
242
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { BucketBy, BucketKey, BucketValue, Context, FeatureKey } from "@featurevisor/types";
244
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { BucketBy, Context, FeatureKey } from "@featurevisor/types";
243
245
  &nbsp;
244
246
  import type { EvaluateOptions, Evaluation } from "./evaluate";
245
247
  import type { Logger } from "./logger";
248
+ import type { BucketKey, BucketValue } from "./bucketer";
246
249
  &nbsp;
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-19T21:32:42.383Z
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-19T21:32:42.383Z
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-19T21:32:42.383Z
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-19T21:32:42.383Z
343
+ at 2025-07-20T21:55:47.272Z
344
344
  </div>
345
345
  <script src="prettify.js"></script>
346
346
  <script>