@featurevisor/core 0.15.0 → 0.16.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/CHANGELOG.md +11 -0
- package/lib/allocator.d.ts +3 -0
- package/lib/allocator.js +40 -0
- package/lib/allocator.js.map +1 -0
- package/lib/allocator.spec.d.ts +1 -0
- package/lib/allocator.spec.js +85 -0
- package/lib/allocator.spec.js.map +1 -0
- package/lib/builder.js +58 -23
- package/lib/builder.js.map +1 -1
- package/lib/config.d.ts +2 -0
- package/lib/config.js +3 -1
- package/lib/config.js.map +1 -1
- package/lib/linter.d.ts +1 -0
- package/lib/linter.js +122 -41
- package/lib/linter.js.map +1 -1
- package/lib/tester.js +3 -8
- package/lib/tester.js.map +1 -1
- package/lib/traffic.d.ts +8 -2
- package/lib/traffic.js +99 -88
- package/lib/traffic.js.map +1 -1
- package/lib/traffic.spec.js +166 -14
- package/lib/traffic.spec.js.map +1 -1
- package/package.json +5 -5
- package/src/allocator.spec.ts +104 -0
- package/src/allocator.ts +44 -0
- package/src/builder.ts +53 -23
- package/src/config.ts +3 -0
- package/src/linter.ts +100 -16
- package/src/tester.ts +3 -8
- package/src/traffic.spec.ts +167 -16
- package/src/traffic.ts +123 -109
package/lib/linter.js
CHANGED
|
@@ -36,7 +36,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.lintProject = exports.printJoiError = exports.getTestsJoiSchema = exports.getFeatureJoiSchema = exports.getSegmentJoiSchema = exports.getConditionsJoiSchema = exports.getAttributeJoiSchema = void 0;
|
|
39
|
+
exports.lintProject = exports.printJoiError = exports.getTestsJoiSchema = exports.getFeatureJoiSchema = exports.getGroupJoiSchema = exports.getSegmentJoiSchema = exports.getConditionsJoiSchema = exports.getAttributeJoiSchema = void 0;
|
|
40
40
|
// for use in node only
|
|
41
41
|
var fs = require("fs");
|
|
42
42
|
var path = require("path");
|
|
@@ -96,6 +96,51 @@ function getSegmentJoiSchema(projectConfig, conditionsJoiSchema) {
|
|
|
96
96
|
return segmentJoiSchema;
|
|
97
97
|
}
|
|
98
98
|
exports.getSegmentJoiSchema = getSegmentJoiSchema;
|
|
99
|
+
function getGroupJoiSchema(projectConfig) {
|
|
100
|
+
var groupJoiSchema = Joi.object({
|
|
101
|
+
description: Joi.string().required(),
|
|
102
|
+
slots: Joi.array()
|
|
103
|
+
.items(Joi.object({
|
|
104
|
+
feature: Joi.string(),
|
|
105
|
+
percentage: Joi.number().precision(3).min(0).max(100),
|
|
106
|
+
}))
|
|
107
|
+
.custom(function (value, helper) {
|
|
108
|
+
var totalPercentage = value.reduce(function (acc, slot) { return acc + slot.percentage; }, 0);
|
|
109
|
+
if (totalPercentage !== 100) {
|
|
110
|
+
throw new Error("total percentage is not 100");
|
|
111
|
+
}
|
|
112
|
+
for (var _i = 0, value_1 = value; _i < value_1.length; _i++) {
|
|
113
|
+
var slot = value_1[_i];
|
|
114
|
+
var maxPercentageForRule = slot.percentage;
|
|
115
|
+
if (slot.feature) {
|
|
116
|
+
var featureKey = slot.feature;
|
|
117
|
+
var featurePath = path.join(projectConfig.featuresDirectoryPath, "".concat(featureKey, ".yml"));
|
|
118
|
+
var parsedFeature = (0, utils_1.parseYaml)(fs.readFileSync(featurePath, "utf8"));
|
|
119
|
+
if (!parsedFeature) {
|
|
120
|
+
throw new Error("feature ".concat(featureKey, " not found"));
|
|
121
|
+
}
|
|
122
|
+
var environmentKeys = Object.keys(parsedFeature.environments);
|
|
123
|
+
for (var _a = 0, environmentKeys_1 = environmentKeys; _a < environmentKeys_1.length; _a++) {
|
|
124
|
+
var environmentKey = environmentKeys_1[_a];
|
|
125
|
+
var environment = parsedFeature.environments[environmentKey];
|
|
126
|
+
var rules = environment.rules;
|
|
127
|
+
for (var _b = 0, rules_1 = rules; _b < rules_1.length; _b++) {
|
|
128
|
+
var rule = rules_1[_b];
|
|
129
|
+
if (rule.percentage > maxPercentageForRule) {
|
|
130
|
+
// @TODO: this does not help with same feature belonging to multiple slots. fix that.
|
|
131
|
+
throw new Error("Feature ".concat(featureKey, "'s rule ").concat(rule.key, " in ").concat(environmentKey, " has a percentage of ").concat(rule.percentage, " which is greater than the maximum percentage of ").concat(maxPercentageForRule, " for the slot"));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return value;
|
|
138
|
+
})
|
|
139
|
+
.required(),
|
|
140
|
+
});
|
|
141
|
+
return groupJoiSchema;
|
|
142
|
+
}
|
|
143
|
+
exports.getGroupJoiSchema = getGroupJoiSchema;
|
|
99
144
|
function getFeatureJoiSchema(projectConfig, conditionsJoiSchema) {
|
|
100
145
|
var variationValueJoiSchema = Joi.alternatives().try(Joi.string(), Joi.number(), Joi.boolean());
|
|
101
146
|
var variableValueJoiSchema = Joi.alternatives()
|
|
@@ -229,9 +274,9 @@ function printJoiError(e) {
|
|
|
229
274
|
exports.printJoiError = printJoiError;
|
|
230
275
|
function lintProject(projectConfig) {
|
|
231
276
|
return __awaiter(this, void 0, void 0, function () {
|
|
232
|
-
var hasError, attributeFilePaths, attributeJoiSchema, _i, attributeFilePaths_1, filePath, key, parsed, e_1, segmentFilePaths, conditionsJoiSchema, segmentJoiSchema, _a, segmentFilePaths_1, filePath, key, parsed, e_2, featureFilePaths, featureJoiSchema,
|
|
233
|
-
return __generator(this, function (
|
|
234
|
-
switch (
|
|
277
|
+
var hasError, attributeFilePaths, attributeJoiSchema, _i, attributeFilePaths_1, filePath, key, parsed, e_1, segmentFilePaths, conditionsJoiSchema, segmentJoiSchema, _a, segmentFilePaths_1, filePath, key, parsed, e_2, groupFilePaths, groupJoiSchema, _b, groupFilePaths_1, filePath, key, parsed, e_3, featureFilePaths, featureJoiSchema, _c, featureFilePaths_1, filePath, key, parsed, e_4, testFilePaths, testsJoiSchema, _d, testFilePaths_1, filePath, key, parsed, e_5;
|
|
278
|
+
return __generator(this, function (_e) {
|
|
279
|
+
switch (_e.label) {
|
|
235
280
|
case 0:
|
|
236
281
|
hasError = false;
|
|
237
282
|
// lint attributes
|
|
@@ -239,22 +284,22 @@ function lintProject(projectConfig) {
|
|
|
239
284
|
attributeFilePaths = (0, utils_1.getYAMLFiles)(path.join(projectConfig.attributesDirectoryPath));
|
|
240
285
|
attributeJoiSchema = getAttributeJoiSchema(projectConfig);
|
|
241
286
|
_i = 0, attributeFilePaths_1 = attributeFilePaths;
|
|
242
|
-
|
|
287
|
+
_e.label = 1;
|
|
243
288
|
case 1:
|
|
244
289
|
if (!(_i < attributeFilePaths_1.length)) return [3 /*break*/, 6];
|
|
245
290
|
filePath = attributeFilePaths_1[_i];
|
|
246
291
|
key = path.basename(filePath, ".yml");
|
|
247
292
|
parsed = (0, utils_1.parseYaml)(fs.readFileSync(filePath, "utf8"));
|
|
248
293
|
console.log(" =>", key);
|
|
249
|
-
|
|
294
|
+
_e.label = 2;
|
|
250
295
|
case 2:
|
|
251
|
-
|
|
296
|
+
_e.trys.push([2, 4, , 5]);
|
|
252
297
|
return [4 /*yield*/, attributeJoiSchema.validateAsync(parsed)];
|
|
253
298
|
case 3:
|
|
254
|
-
|
|
299
|
+
_e.sent();
|
|
255
300
|
return [3 /*break*/, 5];
|
|
256
301
|
case 4:
|
|
257
|
-
e_1 =
|
|
302
|
+
e_1 = _e.sent();
|
|
258
303
|
if (e_1 instanceof Joi.ValidationError) {
|
|
259
304
|
printJoiError(e_1);
|
|
260
305
|
}
|
|
@@ -273,22 +318,22 @@ function lintProject(projectConfig) {
|
|
|
273
318
|
conditionsJoiSchema = getConditionsJoiSchema(projectConfig);
|
|
274
319
|
segmentJoiSchema = getSegmentJoiSchema(projectConfig, conditionsJoiSchema);
|
|
275
320
|
_a = 0, segmentFilePaths_1 = segmentFilePaths;
|
|
276
|
-
|
|
321
|
+
_e.label = 7;
|
|
277
322
|
case 7:
|
|
278
323
|
if (!(_a < segmentFilePaths_1.length)) return [3 /*break*/, 12];
|
|
279
324
|
filePath = segmentFilePaths_1[_a];
|
|
280
325
|
key = path.basename(filePath, ".yml");
|
|
281
326
|
parsed = (0, utils_1.parseYaml)(fs.readFileSync(filePath, "utf8"));
|
|
282
327
|
console.log(" =>", key);
|
|
283
|
-
|
|
328
|
+
_e.label = 8;
|
|
284
329
|
case 8:
|
|
285
|
-
|
|
330
|
+
_e.trys.push([8, 10, , 11]);
|
|
286
331
|
return [4 /*yield*/, segmentJoiSchema.validateAsync(parsed)];
|
|
287
332
|
case 9:
|
|
288
|
-
|
|
333
|
+
_e.sent();
|
|
289
334
|
return [3 /*break*/, 11];
|
|
290
335
|
case 10:
|
|
291
|
-
e_2 =
|
|
336
|
+
e_2 = _e.sent();
|
|
292
337
|
if (e_2 instanceof Joi.ValidationError) {
|
|
293
338
|
printJoiError(e_2);
|
|
294
339
|
}
|
|
@@ -301,27 +346,28 @@ function lintProject(projectConfig) {
|
|
|
301
346
|
_a++;
|
|
302
347
|
return [3 /*break*/, 7];
|
|
303
348
|
case 12:
|
|
304
|
-
// lint
|
|
305
|
-
console.log("\nLinting
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
349
|
+
// lint groups
|
|
350
|
+
console.log("\nLinting groups...\n");
|
|
351
|
+
if (!fs.existsSync(projectConfig.groupsDirectoryPath)) return [3 /*break*/, 18];
|
|
352
|
+
groupFilePaths = (0, utils_1.getYAMLFiles)(path.join(projectConfig.groupsDirectoryPath));
|
|
353
|
+
groupJoiSchema = getGroupJoiSchema(projectConfig);
|
|
354
|
+
_b = 0, groupFilePaths_1 = groupFilePaths;
|
|
355
|
+
_e.label = 13;
|
|
310
356
|
case 13:
|
|
311
|
-
if (!(_b <
|
|
312
|
-
filePath =
|
|
357
|
+
if (!(_b < groupFilePaths_1.length)) return [3 /*break*/, 18];
|
|
358
|
+
filePath = groupFilePaths_1[_b];
|
|
313
359
|
key = path.basename(filePath, ".yml");
|
|
314
360
|
parsed = (0, utils_1.parseYaml)(fs.readFileSync(filePath, "utf8"));
|
|
315
361
|
console.log(" =>", key);
|
|
316
|
-
|
|
362
|
+
_e.label = 14;
|
|
317
363
|
case 14:
|
|
318
|
-
|
|
319
|
-
return [4 /*yield*/,
|
|
364
|
+
_e.trys.push([14, 16, , 17]);
|
|
365
|
+
return [4 /*yield*/, groupJoiSchema.validateAsync(parsed)];
|
|
320
366
|
case 15:
|
|
321
|
-
|
|
367
|
+
_e.sent();
|
|
322
368
|
return [3 /*break*/, 17];
|
|
323
369
|
case 16:
|
|
324
|
-
e_3 =
|
|
370
|
+
e_3 = _e.sent();
|
|
325
371
|
if (e_3 instanceof Joi.ValidationError) {
|
|
326
372
|
printJoiError(e_3);
|
|
327
373
|
}
|
|
@@ -334,27 +380,28 @@ function lintProject(projectConfig) {
|
|
|
334
380
|
_b++;
|
|
335
381
|
return [3 /*break*/, 13];
|
|
336
382
|
case 18:
|
|
337
|
-
//
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
383
|
+
// @TODO: feature cannot exist in multiple groups
|
|
384
|
+
// lint features
|
|
385
|
+
console.log("\nLinting features...\n");
|
|
386
|
+
featureFilePaths = (0, utils_1.getYAMLFiles)(path.join(projectConfig.featuresDirectoryPath));
|
|
387
|
+
featureJoiSchema = getFeatureJoiSchema(projectConfig, conditionsJoiSchema);
|
|
388
|
+
_c = 0, featureFilePaths_1 = featureFilePaths;
|
|
389
|
+
_e.label = 19;
|
|
343
390
|
case 19:
|
|
344
|
-
if (!(_c <
|
|
345
|
-
filePath =
|
|
391
|
+
if (!(_c < featureFilePaths_1.length)) return [3 /*break*/, 24];
|
|
392
|
+
filePath = featureFilePaths_1[_c];
|
|
346
393
|
key = path.basename(filePath, ".yml");
|
|
347
394
|
parsed = (0, utils_1.parseYaml)(fs.readFileSync(filePath, "utf8"));
|
|
348
395
|
console.log(" =>", key);
|
|
349
|
-
|
|
396
|
+
_e.label = 20;
|
|
350
397
|
case 20:
|
|
351
|
-
|
|
352
|
-
return [4 /*yield*/,
|
|
398
|
+
_e.trys.push([20, 22, , 23]);
|
|
399
|
+
return [4 /*yield*/, featureJoiSchema.validateAsync(parsed)];
|
|
353
400
|
case 21:
|
|
354
|
-
|
|
401
|
+
_e.sent();
|
|
355
402
|
return [3 /*break*/, 23];
|
|
356
403
|
case 22:
|
|
357
|
-
e_4 =
|
|
404
|
+
e_4 = _e.sent();
|
|
358
405
|
if (e_4 instanceof Joi.ValidationError) {
|
|
359
406
|
printJoiError(e_4);
|
|
360
407
|
}
|
|
@@ -366,7 +413,41 @@ function lintProject(projectConfig) {
|
|
|
366
413
|
case 23:
|
|
367
414
|
_c++;
|
|
368
415
|
return [3 /*break*/, 19];
|
|
369
|
-
case 24:
|
|
416
|
+
case 24:
|
|
417
|
+
// lint tests
|
|
418
|
+
console.log("\nLinting tests...\n");
|
|
419
|
+
if (!fs.existsSync(projectConfig.testsDirectoryPath)) return [3 /*break*/, 30];
|
|
420
|
+
testFilePaths = (0, utils_1.getYAMLFiles)(path.join(projectConfig.testsDirectoryPath));
|
|
421
|
+
testsJoiSchema = getTestsJoiSchema(projectConfig);
|
|
422
|
+
_d = 0, testFilePaths_1 = testFilePaths;
|
|
423
|
+
_e.label = 25;
|
|
424
|
+
case 25:
|
|
425
|
+
if (!(_d < testFilePaths_1.length)) return [3 /*break*/, 30];
|
|
426
|
+
filePath = testFilePaths_1[_d];
|
|
427
|
+
key = path.basename(filePath, ".yml");
|
|
428
|
+
parsed = (0, utils_1.parseYaml)(fs.readFileSync(filePath, "utf8"));
|
|
429
|
+
console.log(" =>", key);
|
|
430
|
+
_e.label = 26;
|
|
431
|
+
case 26:
|
|
432
|
+
_e.trys.push([26, 28, , 29]);
|
|
433
|
+
return [4 /*yield*/, testsJoiSchema.validateAsync(parsed)];
|
|
434
|
+
case 27:
|
|
435
|
+
_e.sent();
|
|
436
|
+
return [3 /*break*/, 29];
|
|
437
|
+
case 28:
|
|
438
|
+
e_5 = _e.sent();
|
|
439
|
+
if (e_5 instanceof Joi.ValidationError) {
|
|
440
|
+
printJoiError(e_5);
|
|
441
|
+
}
|
|
442
|
+
else {
|
|
443
|
+
console.log(e_5);
|
|
444
|
+
}
|
|
445
|
+
hasError = true;
|
|
446
|
+
return [3 /*break*/, 29];
|
|
447
|
+
case 29:
|
|
448
|
+
_d++;
|
|
449
|
+
return [3 /*break*/, 25];
|
|
450
|
+
case 30: return [2 /*return*/, hasError];
|
|
370
451
|
}
|
|
371
452
|
});
|
|
372
453
|
});
|
package/lib/linter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linter.js","sourceRoot":"","sources":["../src/linter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"linter.js","sourceRoot":"","sources":["../src/linter.ts"],"names":[],"mappings":"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"}
|
package/lib/tester.js
CHANGED
|
@@ -74,14 +74,9 @@ function testProject(rootDirectoryPath, projectConfig) {
|
|
|
74
74
|
configureBucketValue: function (feature, attributes, bucketValue) {
|
|
75
75
|
return currentAt;
|
|
76
76
|
},
|
|
77
|
-
logger:
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
// "info",
|
|
81
|
-
// "warn",
|
|
82
|
-
"error",
|
|
83
|
-
],
|
|
84
|
-
}),
|
|
77
|
+
// logger: createLogger({
|
|
78
|
+
// levels: ["debug", "info", "warn", "error"],
|
|
79
|
+
// }),
|
|
85
80
|
});
|
|
86
81
|
test.features.forEach(function (feature, fIndex) {
|
|
87
82
|
var featureKey = feature.key;
|
package/lib/tester.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tester.js","sourceRoot":"","sources":["../src/tester.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tester.js","sourceRoot":"","sources":["../src/tester.ts"],"names":[],"mappings":"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"}
|
package/lib/traffic.d.ts
CHANGED
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
import { Rule, ExistingFeature, Traffic, Variation } from "@featurevisor/types";
|
|
2
|
-
export declare function
|
|
1
|
+
import { Rule, ExistingFeature, Traffic, Variation, Range, Percentage } from "@featurevisor/types";
|
|
2
|
+
export declare function detectIfVariationsChanged(yamlVariations: Variation[], // as exists in latest YAML
|
|
3
|
+
existingFeature?: ExistingFeature): boolean;
|
|
4
|
+
export declare function getRulePercentageDiff(trafficPercentage: Percentage, // 0 to 100k
|
|
5
|
+
existingTrafficRule: any): number;
|
|
6
|
+
export declare function detectIfRangesChanged(availableRanges: Range[], // as exists in latest YAML
|
|
7
|
+
existingFeature?: ExistingFeature): boolean;
|
|
8
|
+
export declare function getTraffic(variations: Variation[], parsedRules: Rule[], existingFeature: ExistingFeature | undefined, ranges?: Range[]): Traffic[];
|
package/lib/traffic.js
CHANGED
|
@@ -1,111 +1,122 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getTraffic = exports.detectIfRangesChanged = exports.getRulePercentageDiff = exports.detectIfVariationsChanged = void 0;
|
|
4
4
|
var sdk_1 = require("@featurevisor/sdk");
|
|
5
|
-
|
|
5
|
+
var allocator_1 = require("./allocator");
|
|
6
|
+
function detectIfVariationsChanged(yamlVariations, // as exists in latest YAML
|
|
7
|
+
existingFeature) {
|
|
8
|
+
if (!existingFeature) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
return (JSON.stringify(existingFeature.variations.map(function (_a) {
|
|
12
|
+
var value = _a.value, weight = _a.weight;
|
|
13
|
+
return ({
|
|
14
|
+
value: value,
|
|
15
|
+
weight: weight,
|
|
16
|
+
});
|
|
17
|
+
})) !== JSON.stringify(yamlVariations.map(function (_a) {
|
|
18
|
+
var value = _a.value, weight = _a.weight;
|
|
19
|
+
return ({ value: value, weight: weight });
|
|
20
|
+
})));
|
|
21
|
+
}
|
|
22
|
+
exports.detectIfVariationsChanged = detectIfVariationsChanged;
|
|
23
|
+
function getRulePercentageDiff(trafficPercentage, // 0 to 100k
|
|
24
|
+
existingTrafficRule) {
|
|
25
|
+
if (!existingTrafficRule) {
|
|
26
|
+
return 0;
|
|
27
|
+
}
|
|
28
|
+
var existingPercentage = existingTrafficRule.percentage;
|
|
29
|
+
return trafficPercentage - existingPercentage;
|
|
30
|
+
}
|
|
31
|
+
exports.getRulePercentageDiff = getRulePercentageDiff;
|
|
32
|
+
function detectIfRangesChanged(availableRanges, // as exists in latest YAML
|
|
33
|
+
existingFeature) {
|
|
34
|
+
if (!existingFeature) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
if (!existingFeature.ranges) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
return JSON.stringify(existingFeature.ranges) !== JSON.stringify(availableRanges);
|
|
41
|
+
}
|
|
42
|
+
exports.detectIfRangesChanged = detectIfRangesChanged;
|
|
43
|
+
function getTraffic(
|
|
6
44
|
// from current YAML
|
|
7
45
|
variations, parsedRules,
|
|
8
46
|
// from previous release
|
|
9
|
-
existingFeature
|
|
47
|
+
existingFeature,
|
|
48
|
+
// ranges from group slots
|
|
49
|
+
ranges) {
|
|
10
50
|
var result = [];
|
|
11
|
-
|
|
12
|
-
|
|
51
|
+
// @TODO: may be pass from builder directly?
|
|
52
|
+
var availableRanges = ranges && ranges.length > 0 ? ranges : [{ start: 0, end: sdk_1.MAX_BUCKETED_NUMBER }];
|
|
53
|
+
parsedRules.forEach(function (parsedRule) {
|
|
54
|
+
var rulePercentage = parsedRule.percentage; // 0 - 100
|
|
13
55
|
var traffic = {
|
|
14
|
-
key:
|
|
15
|
-
segments: typeof
|
|
16
|
-
? JSON.stringify(
|
|
17
|
-
:
|
|
18
|
-
percentage:
|
|
56
|
+
key: parsedRule.key,
|
|
57
|
+
segments: typeof parsedRule.segments !== "string"
|
|
58
|
+
? JSON.stringify(parsedRule.segments)
|
|
59
|
+
: parsedRule.segments,
|
|
60
|
+
percentage: rulePercentage * (sdk_1.MAX_BUCKETED_NUMBER / 100),
|
|
19
61
|
allocation: [],
|
|
20
62
|
};
|
|
21
|
-
|
|
22
|
-
|
|
63
|
+
// overrides
|
|
64
|
+
if (parsedRule.variables) {
|
|
65
|
+
traffic.variables = parsedRule.variables;
|
|
23
66
|
}
|
|
24
|
-
if (
|
|
25
|
-
traffic.variation =
|
|
67
|
+
if (parsedRule.variation) {
|
|
68
|
+
traffic.variation = parsedRule.variation;
|
|
26
69
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
//
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
var
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
variation: variation,
|
|
58
|
-
percentage: percentage,
|
|
59
|
-
};
|
|
60
|
-
});
|
|
61
|
-
}
|
|
70
|
+
// detect changes
|
|
71
|
+
var variationsChanged = detectIfVariationsChanged(variations, existingFeature);
|
|
72
|
+
var existingTrafficRule = existingFeature === null || existingFeature === void 0 ? void 0 : existingFeature.traffic.find(function (t) { return t.key === parsedRule.key; });
|
|
73
|
+
var rulePercentageDiff = getRulePercentageDiff(traffic.percentage, existingTrafficRule);
|
|
74
|
+
var rangesChanged = detectIfRangesChanged(availableRanges, existingFeature);
|
|
75
|
+
var needsRebucketing = !existingTrafficRule || // new rule
|
|
76
|
+
variationsChanged || // variations changed
|
|
77
|
+
rulePercentageDiff <= 0 || // percentage decreased
|
|
78
|
+
rangesChanged; // belongs to a group, and group ranges changed
|
|
79
|
+
var updatedAvailableRanges = JSON.parse(JSON.stringify(availableRanges));
|
|
80
|
+
var lastEnd = 0;
|
|
81
|
+
if (existingTrafficRule && !needsRebucketing) {
|
|
82
|
+
// increase: build on top of existing allocations
|
|
83
|
+
var existingSum_1 = 0;
|
|
84
|
+
traffic.allocation = existingTrafficRule.allocation.map(function (_a) {
|
|
85
|
+
var variation = _a.variation, percentage = _a.percentage, // @TODO: remove it in next breaking semver
|
|
86
|
+
range = _a.range;
|
|
87
|
+
var result = {
|
|
88
|
+
variation: variation,
|
|
89
|
+
percentage: percentage,
|
|
90
|
+
range: range || {
|
|
91
|
+
start: lastEnd,
|
|
92
|
+
end: percentage,
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
existingSum_1 += percentage || 0;
|
|
96
|
+
lastEnd = lastEnd + (percentage || 0);
|
|
97
|
+
return result;
|
|
98
|
+
});
|
|
99
|
+
updatedAvailableRanges = (0, allocator_1.getUpdatedAvailableRangesAfterFilling)(availableRanges, existingSum_1);
|
|
62
100
|
}
|
|
63
101
|
variations.forEach(function (variation) {
|
|
64
|
-
var
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
});
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
// const prevTotalWeightForVariation = existingTrafficRollout.allocation
|
|
75
|
-
// .filter((a) => a.variation === variation.value)
|
|
76
|
-
// .reduce((acc, curr) => acc + curr.percentage, 0);
|
|
77
|
-
// const diffWeightForVariation = (variation.weight as number) - prevTotalWeightForVariation / (MAX_BUCKETED_NUMBER / 100));
|
|
78
|
-
if (diffPercentage === 0) {
|
|
79
|
-
// no change
|
|
80
|
-
traffic.allocation.push({
|
|
81
|
-
variation: variation.value,
|
|
82
|
-
percentage: newPercentage,
|
|
83
|
-
});
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
if (diffPercentage > 0) {
|
|
87
|
-
// increase - need to consistently bucket
|
|
88
|
-
traffic.allocation.push({
|
|
89
|
-
variation: variation.value,
|
|
90
|
-
percentage: parseInt((variation.weight *
|
|
91
|
-
(diffPercentage / 100) *
|
|
92
|
-
(sdk_1.MAX_BUCKETED_NUMBER / 100)).toFixed(2)),
|
|
93
|
-
});
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
if (diffPercentage < 0) {
|
|
97
|
-
// decrease - need to re-bucket
|
|
98
|
-
// @TODO: can we maintain as much pre bucketed values as possible? to be close to consistent bucketing?
|
|
102
|
+
var weight = variation.weight;
|
|
103
|
+
var percentage = weight * (sdk_1.MAX_BUCKETED_NUMBER / 100);
|
|
104
|
+
var toFillValue = needsRebucketing
|
|
105
|
+
? percentage * (rulePercentage / 100) // whole value
|
|
106
|
+
: (weight / 100) * rulePercentageDiff; // incrementing
|
|
107
|
+
var rangesToFill = (0, allocator_1.getAllocation)(updatedAvailableRanges, toFillValue);
|
|
108
|
+
rangesToFill.forEach(function (range) {
|
|
99
109
|
traffic.allocation.push({
|
|
100
110
|
variation: variation.value,
|
|
101
|
-
percentage:
|
|
111
|
+
percentage: toFillValue,
|
|
112
|
+
range: range,
|
|
102
113
|
});
|
|
103
|
-
|
|
104
|
-
|
|
114
|
+
});
|
|
115
|
+
updatedAvailableRanges = (0, allocator_1.getUpdatedAvailableRangesAfterFilling)(updatedAvailableRanges, toFillValue);
|
|
105
116
|
});
|
|
106
117
|
result.push(traffic);
|
|
107
118
|
});
|
|
108
119
|
return result;
|
|
109
120
|
}
|
|
110
|
-
exports.
|
|
121
|
+
exports.getTraffic = getTraffic;
|
|
111
122
|
//# sourceMappingURL=traffic.js.map
|
package/lib/traffic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traffic.js","sourceRoot":"","sources":["../src/traffic.ts"],"names":[],"mappings":";;;AACA,yCAAwD;AAExD,SAAgB,
|
|
1
|
+
{"version":3,"file":"traffic.js","sourceRoot":"","sources":["../src/traffic.ts"],"names":[],"mappings":"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"}
|