@featurevisor/sdk 1.20.0 → 1.27.2
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 +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 +1 -1
- 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-report/segments.ts.html +1 -1
- package/dist/bucket.d.ts +2 -0
- package/dist/conditions.d.ts +4 -0
- package/dist/datafileReader.d.ts +16 -0
- package/dist/emitter.d.ts +12 -0
- package/dist/feature.d.ts +16 -0
- package/{lib/index.js → dist/index.d.ts} +0 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/index.mjs.map +1 -0
- package/dist/instance.d.ts +140 -0
- package/dist/logger.d.ts +25 -0
- package/dist/segments.d.ts +5 -0
- package/package.json +15 -7
- package/webpack.config.js +77 -10
- package/dist/index.js.gz +0 -0
- package/lib/bucket.js +0 -10
- package/lib/bucket.js.map +0 -1
- package/lib/bucket.spec.d.ts +0 -1
- package/lib/conditions.js +0 -115
- package/lib/conditions.js.map +0 -1
- package/lib/conditions.spec.d.ts +0 -1
- package/lib/datafileReader.js +0 -49
- package/lib/datafileReader.js.map +0 -1
- package/lib/datafileReader.spec.d.ts +0 -1
- package/lib/emitter.js +0 -46
- package/lib/emitter.js.map +0 -1
- package/lib/emitter.spec.d.ts +0 -1
- package/lib/feature.js +0 -68
- package/lib/feature.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/index.spec.d.ts +0 -0
- package/lib/instance.js +0 -926
- package/lib/instance.js.map +0 -1
- package/lib/instance.spec.d.ts +0 -1
- package/lib/logger.js +0 -61
- package/lib/logger.js.map +0 -1
- package/lib/logger.spec.d.ts +0 -1
- package/lib/segments.js +0 -40
- package/lib/segments.js.map +0 -1
- package/lib/segments.spec.d.ts +0 -1
package/lib/conditions.js
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { compareVersions } from "compare-versions";
|
|
2
|
-
export function conditionIsMatched(condition, context) {
|
|
3
|
-
var attribute = condition.attribute, operator = condition.operator, value = condition.value;
|
|
4
|
-
if (operator === "equals") {
|
|
5
|
-
return context[attribute] === value;
|
|
6
|
-
}
|
|
7
|
-
else if (operator === "notEquals") {
|
|
8
|
-
return context[attribute] !== value;
|
|
9
|
-
}
|
|
10
|
-
else if (operator === "before" || operator === "after") {
|
|
11
|
-
// date comparisons
|
|
12
|
-
var valueInContext = context[attribute];
|
|
13
|
-
var dateInContext = valueInContext instanceof Date ? valueInContext : new Date(valueInContext);
|
|
14
|
-
var dateInCondition = value instanceof Date ? value : new Date(value);
|
|
15
|
-
return operator === "before"
|
|
16
|
-
? dateInContext < dateInCondition
|
|
17
|
-
: dateInContext > dateInCondition;
|
|
18
|
-
}
|
|
19
|
-
else if (typeof context[attribute] === "string" && Array.isArray(value)) {
|
|
20
|
-
// array
|
|
21
|
-
var valueInContext = context[attribute];
|
|
22
|
-
if (operator === "in") {
|
|
23
|
-
return value.indexOf(valueInContext) !== -1;
|
|
24
|
-
}
|
|
25
|
-
else if (operator === "notIn") {
|
|
26
|
-
return value.indexOf(valueInContext) === -1;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
else if (typeof context[attribute] === "string" && typeof value === "string") {
|
|
30
|
-
// string
|
|
31
|
-
var valueInContext = context[attribute];
|
|
32
|
-
if (operator === "contains") {
|
|
33
|
-
return valueInContext.indexOf(value) !== -1;
|
|
34
|
-
}
|
|
35
|
-
else if (operator === "notContains") {
|
|
36
|
-
return valueInContext.indexOf(value) === -1;
|
|
37
|
-
}
|
|
38
|
-
else if (operator === "startsWith") {
|
|
39
|
-
return valueInContext.startsWith(value);
|
|
40
|
-
}
|
|
41
|
-
else if (operator === "endsWith") {
|
|
42
|
-
return valueInContext.endsWith(value);
|
|
43
|
-
}
|
|
44
|
-
else if (operator === "semverEquals") {
|
|
45
|
-
return compareVersions(valueInContext, value) === 0;
|
|
46
|
-
}
|
|
47
|
-
else if (operator === "semverNotEquals") {
|
|
48
|
-
return compareVersions(valueInContext, value) !== 0;
|
|
49
|
-
}
|
|
50
|
-
else if (operator === "semverGreaterThan") {
|
|
51
|
-
return compareVersions(valueInContext, value) === 1;
|
|
52
|
-
}
|
|
53
|
-
else if (operator === "semverGreaterThanOrEquals") {
|
|
54
|
-
return compareVersions(valueInContext, value) >= 0;
|
|
55
|
-
}
|
|
56
|
-
else if (operator === "semverLessThan") {
|
|
57
|
-
return compareVersions(valueInContext, value) === -1;
|
|
58
|
-
}
|
|
59
|
-
else if (operator === "semverLessThanOrEquals") {
|
|
60
|
-
return compareVersions(valueInContext, value) <= 0;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
else if (typeof context[attribute] === "number" && typeof value === "number") {
|
|
64
|
-
// numeric
|
|
65
|
-
var valueInContext = context[attribute];
|
|
66
|
-
if (operator === "greaterThan") {
|
|
67
|
-
return valueInContext > value;
|
|
68
|
-
}
|
|
69
|
-
else if (operator === "greaterThanOrEquals") {
|
|
70
|
-
return valueInContext >= value;
|
|
71
|
-
}
|
|
72
|
-
else if (operator === "lessThan") {
|
|
73
|
-
return valueInContext < value;
|
|
74
|
-
}
|
|
75
|
-
else if (operator === "lessThanOrEquals") {
|
|
76
|
-
return valueInContext <= value;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return false;
|
|
80
|
-
}
|
|
81
|
-
export function allConditionsAreMatched(conditions, context, logger) {
|
|
82
|
-
if ("attribute" in conditions) {
|
|
83
|
-
try {
|
|
84
|
-
return conditionIsMatched(conditions, context);
|
|
85
|
-
}
|
|
86
|
-
catch (e) {
|
|
87
|
-
logger.warn(e.message, {
|
|
88
|
-
error: e,
|
|
89
|
-
details: {
|
|
90
|
-
condition: conditions,
|
|
91
|
-
context: context,
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
return false;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
if ("and" in conditions && Array.isArray(conditions.and)) {
|
|
98
|
-
return conditions.and.every(function (c) { return allConditionsAreMatched(c, context, logger); });
|
|
99
|
-
}
|
|
100
|
-
if ("or" in conditions && Array.isArray(conditions.or)) {
|
|
101
|
-
return conditions.or.some(function (c) { return allConditionsAreMatched(c, context, logger); });
|
|
102
|
-
}
|
|
103
|
-
if ("not" in conditions && Array.isArray(conditions.not)) {
|
|
104
|
-
return conditions.not.every(function () {
|
|
105
|
-
return allConditionsAreMatched({
|
|
106
|
-
and: conditions.not,
|
|
107
|
-
}, context, logger) === false;
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
if (Array.isArray(conditions)) {
|
|
111
|
-
return conditions.every(function (c) { return allConditionsAreMatched(c, context, logger); });
|
|
112
|
-
}
|
|
113
|
-
return false;
|
|
114
|
-
}
|
|
115
|
-
//# sourceMappingURL=conditions.js.map
|
package/lib/conditions.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conditions.js","sourceRoot":"","sources":["../src/conditions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMnD,MAAM,UAAU,kBAAkB,CAAC,SAAyB,EAAE,OAAgB;IACpE,IAAA,SAAS,GAAsB,SAAS,UAA/B,EAAE,QAAQ,GAAY,SAAS,SAArB,EAAE,KAAK,GAAK,SAAS,MAAd,CAAe;IAEjD,IAAI,QAAQ,KAAK,QAAQ,EAAE;QACzB,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC;KACrC;SAAM,IAAI,QAAQ,KAAK,WAAW,EAAE;QACnC,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC;KACrC;SAAM,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,OAAO,EAAE;QACxD,mBAAmB;QACnB,IAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAkB,CAAC;QAE3D,IAAM,aAAa,GACjB,cAAc,YAAY,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7E,IAAM,eAAe,GAAG,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAe,CAAC,CAAC;QAElF,OAAO,QAAQ,KAAK,QAAQ;YAC1B,CAAC,CAAC,aAAa,GAAG,eAAe;YACjC,CAAC,CAAC,aAAa,GAAG,eAAe,CAAC;KACrC;SAAM,IAAI,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzE,QAAQ;QACR,IAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAW,CAAC;QAEpD,IAAI,QAAQ,KAAK,IAAI,EAAE;YACrB,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;SAC7C;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE;YAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;SAC7C;KACF;SAAM,IAAI,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC9E,SAAS;QACT,IAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAW,CAAC;QAEpD,IAAI,QAAQ,KAAK,UAAU,EAAE;YAC3B,OAAO,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAC7C;aAAM,IAAI,QAAQ,KAAK,aAAa,EAAE;YACrC,OAAO,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAC7C;aAAM,IAAI,QAAQ,KAAK,YAAY,EAAE;YACpC,OAAO,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACzC;aAAM,IAAI,QAAQ,KAAK,UAAU,EAAE;YAClC,OAAO,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACvC;aAAM,IAAI,QAAQ,KAAK,cAAc,EAAE;YACtC,OAAO,eAAe,CAAC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;SACrD;aAAM,IAAI,QAAQ,KAAK,iBAAiB,EAAE;YACzC,OAAO,eAAe,CAAC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;SACrD;aAAM,IAAI,QAAQ,KAAK,mBAAmB,EAAE;YAC3C,OAAO,eAAe,CAAC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;SACrD;aAAM,IAAI,QAAQ,KAAK,2BAA2B,EAAE;YACnD,OAAO,eAAe,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;SACpD;aAAM,IAAI,QAAQ,KAAK,gBAAgB,EAAE;YACxC,OAAO,eAAe,CAAC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SACtD;aAAM,IAAI,QAAQ,KAAK,wBAAwB,EAAE;YAChD,OAAO,eAAe,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;SACpD;KACF;SAAM,IAAI,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC9E,UAAU;QACV,IAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAW,CAAC;QAEpD,IAAI,QAAQ,KAAK,aAAa,EAAE;YAC9B,OAAO,cAAc,GAAG,KAAK,CAAC;SAC/B;aAAM,IAAI,QAAQ,KAAK,qBAAqB,EAAE;YAC7C,OAAO,cAAc,IAAI,KAAK,CAAC;SAChC;aAAM,IAAI,QAAQ,KAAK,UAAU,EAAE;YAClC,OAAO,cAAc,GAAG,KAAK,CAAC;SAC/B;aAAM,IAAI,QAAQ,KAAK,kBAAkB,EAAE;YAC1C,OAAO,cAAc,IAAI,KAAK,CAAC;SAChC;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,UAAmC,EACnC,OAAgB,EAChB,MAAc;IAEd,IAAI,WAAW,IAAI,UAAU,EAAE;QAC7B,IAAI;YACF,OAAO,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;SAChD;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE;gBACrB,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE;oBACP,SAAS,EAAE,UAAU;oBACrB,OAAO,SAAA;iBACR;aACF,CAAC,CAAC;YAEH,OAAO,KAAK,CAAC;SACd;KACF;IAED,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QACxD,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,UAAC,CAAC,IAAK,OAAA,uBAAuB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAA3C,CAA2C,CAAC,CAAC;KACjF;IAED,IAAI,IAAI,IAAI,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;QACtD,OAAO,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,uBAAuB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAA3C,CAA2C,CAAC,CAAC;KAC/E;IAED,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QACxD,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,CACzB;YACE,OAAA,uBAAuB,CACrB;gBACE,GAAG,EAAE,UAAU,CAAC,GAAG;aACpB,EACD,OAAO,EACP,MAAM,CACP,KAAK,KAAK;QANX,CAMW,CACd,CAAC;KACH;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QAC7B,OAAO,UAAU,CAAC,KAAK,CAAC,UAAC,CAAC,IAAK,OAAA,uBAAuB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAA3C,CAA2C,CAAC,CAAC;KAC7E;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/lib/conditions.spec.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/lib/datafileReader.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
export function parseJsonConditionsIfStringified(record, key) {
|
|
2
|
-
if (typeof record[key] === "string" && record[key] !== "*") {
|
|
3
|
-
try {
|
|
4
|
-
record[key] = JSON.parse(record[key]);
|
|
5
|
-
}
|
|
6
|
-
catch (e) {
|
|
7
|
-
console.error("Error parsing JSON", e);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
return record;
|
|
11
|
-
}
|
|
12
|
-
var DatafileReader = /** @class */ (function () {
|
|
13
|
-
function DatafileReader(datafileJson) {
|
|
14
|
-
this.schemaVersion = datafileJson.schemaVersion;
|
|
15
|
-
this.revision = datafileJson.revision;
|
|
16
|
-
this.segments = datafileJson.segments;
|
|
17
|
-
this.attributes = datafileJson.attributes;
|
|
18
|
-
this.features = datafileJson.features;
|
|
19
|
-
}
|
|
20
|
-
DatafileReader.prototype.getRevision = function () {
|
|
21
|
-
return this.revision;
|
|
22
|
-
};
|
|
23
|
-
DatafileReader.prototype.getSchemaVersion = function () {
|
|
24
|
-
return this.schemaVersion;
|
|
25
|
-
};
|
|
26
|
-
DatafileReader.prototype.getAllAttributes = function () {
|
|
27
|
-
return this.attributes;
|
|
28
|
-
};
|
|
29
|
-
DatafileReader.prototype.getAttribute = function (attributeKey) {
|
|
30
|
-
return this.attributes.find(function (a) { return a.key === attributeKey; });
|
|
31
|
-
};
|
|
32
|
-
DatafileReader.prototype.getSegment = function (segmentKey) {
|
|
33
|
-
var segment = this.segments.find(function (s) { return s.key === segmentKey; });
|
|
34
|
-
if (!segment) {
|
|
35
|
-
return undefined;
|
|
36
|
-
}
|
|
37
|
-
return parseJsonConditionsIfStringified(segment, "conditions");
|
|
38
|
-
};
|
|
39
|
-
DatafileReader.prototype.getFeature = function (featureKey) {
|
|
40
|
-
var feature = this.features.find(function (s) { return s.key === featureKey; });
|
|
41
|
-
if (!feature) {
|
|
42
|
-
return undefined;
|
|
43
|
-
}
|
|
44
|
-
return feature;
|
|
45
|
-
};
|
|
46
|
-
return DatafileReader;
|
|
47
|
-
}());
|
|
48
|
-
export { DatafileReader };
|
|
49
|
-
//# sourceMappingURL=datafileReader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"datafileReader.js","sourceRoot":"","sources":["../src/datafileReader.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,gCAAgC,CAAI,MAAS,EAAE,GAAW;IACxE,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;QAC1D,IAAI;YACF,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SACvC;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;SACxC;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;IAOE,wBAAY,YAA6B;QACvC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;IACxC,CAAC;IAED,oCAAW,GAAX;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,yCAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,yCAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,qCAAY,GAAZ,UAAa,YAA0B;QACrC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,KAAK,YAAY,EAAtB,CAAsB,CAAC,CAAC;IAC7D,CAAC;IAED,mCAAU,GAAV,UAAW,UAAsB;QAC/B,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,KAAK,UAAU,EAApB,CAAoB,CAAC,CAAC;QAEhE,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,gCAAgC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IAED,mCAAU,GAAV,UAAW,UAAsB;QAC/B,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,KAAK,UAAU,EAApB,CAAoB,CAAC,CAAC;QAEhE,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IACH,qBAAC;AAAD,CAAC,AAlDD,IAkDC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/lib/emitter.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
var Emitter = /** @class */ (function () {
|
|
2
|
-
function Emitter() {
|
|
3
|
-
this._listeners = {};
|
|
4
|
-
}
|
|
5
|
-
Emitter.prototype.addListener = function (eventName, fn) {
|
|
6
|
-
if (typeof this._listeners[eventName] === "undefined") {
|
|
7
|
-
this._listeners[eventName] = [];
|
|
8
|
-
}
|
|
9
|
-
this._listeners[eventName].push(fn);
|
|
10
|
-
};
|
|
11
|
-
Emitter.prototype.removeListener = function (eventName, fn) {
|
|
12
|
-
if (typeof this._listeners[eventName] === "undefined") {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
var index = this._listeners[eventName].indexOf(fn);
|
|
16
|
-
if (index !== -1) {
|
|
17
|
-
this._listeners[eventName].splice(index, 1);
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
Emitter.prototype.removeAllListeners = function (eventName) {
|
|
21
|
-
var _this = this;
|
|
22
|
-
if (eventName) {
|
|
23
|
-
this._listeners[eventName] = [];
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
Object.keys(this._listeners).forEach(function (key) {
|
|
27
|
-
_this._listeners[key] = [];
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
Emitter.prototype.emit = function (eventName) {
|
|
32
|
-
var args = [];
|
|
33
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
34
|
-
args[_i - 1] = arguments[_i];
|
|
35
|
-
}
|
|
36
|
-
if (typeof this._listeners[eventName] === "undefined") {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
this._listeners[eventName].forEach(function (fn) {
|
|
40
|
-
fn.apply(void 0, args);
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
return Emitter;
|
|
44
|
-
}());
|
|
45
|
-
export { Emitter };
|
|
46
|
-
//# sourceMappingURL=emitter.js.map
|
package/lib/emitter.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAMA;IAGE;QACE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;IAEM,6BAAW,GAAlB,UAAmB,SAAoB,EAAE,EAAY;QACnD,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,WAAW,EAAE;YACrD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;SACjC;QAED,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAEM,gCAAc,GAArB,UAAsB,SAAoB,EAAE,EAAY;QACtD,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,WAAW,EAAE;YACrD,OAAO;SACR;QAED,IAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAErD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAC7C;IACH,CAAC;IAEM,oCAAkB,GAAzB,UAA0B,SAAqB;QAA/C,iBAQC;QAPC,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;SACjC;aAAM;YACL,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;gBACvC,KAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,sBAAI,GAAX,UAAY,SAAoB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC9C,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,WAAW,EAAE;YACrD,OAAO;SACR;QAED,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAC,EAAE;YACpC,EAAE,eAAI,IAAI,EAAE;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IACH,cAAC;AAAD,CAAC,AA9CD,IA8CC"}
|
package/lib/emitter.spec.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/lib/feature.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { allGroupSegmentsAreMatched } from "./segments";
|
|
2
|
-
import { allConditionsAreMatched } from "./conditions";
|
|
3
|
-
export function getMatchedAllocation(traffic, bucketValue) {
|
|
4
|
-
for (var _i = 0, _a = traffic.allocation; _i < _a.length; _i++) {
|
|
5
|
-
var allocation = _a[_i];
|
|
6
|
-
var _b = allocation.range, start = _b[0], end = _b[1];
|
|
7
|
-
if (allocation.range && start <= bucketValue && end >= bucketValue) {
|
|
8
|
-
return allocation;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
return undefined;
|
|
12
|
-
}
|
|
13
|
-
export function parseFromStringifiedSegments(value) {
|
|
14
|
-
if (typeof value === "string" && (value.startsWith("{") || value.startsWith("["))) {
|
|
15
|
-
return JSON.parse(value);
|
|
16
|
-
}
|
|
17
|
-
return value;
|
|
18
|
-
}
|
|
19
|
-
export function getMatchedTraffic(traffic, context, datafileReader, logger) {
|
|
20
|
-
return traffic.find(function (t) {
|
|
21
|
-
if (!allGroupSegmentsAreMatched(parseFromStringifiedSegments(t.segments), context, datafileReader, logger)) {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
return true;
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
export function getMatchedTrafficAndAllocation(traffic, context, bucketValue, datafileReader, logger) {
|
|
28
|
-
var matchedTraffic = traffic.find(function (t) {
|
|
29
|
-
return allGroupSegmentsAreMatched(parseFromStringifiedSegments(t.segments), context, datafileReader, logger);
|
|
30
|
-
});
|
|
31
|
-
if (!matchedTraffic) {
|
|
32
|
-
return {
|
|
33
|
-
matchedTraffic: undefined,
|
|
34
|
-
matchedAllocation: undefined,
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
var matchedAllocation = getMatchedAllocation(matchedTraffic, bucketValue);
|
|
38
|
-
return {
|
|
39
|
-
matchedTraffic: matchedTraffic,
|
|
40
|
-
matchedAllocation: matchedAllocation,
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
export function findForceFromFeature(feature, context, datafileReader, logger) {
|
|
44
|
-
var result = {
|
|
45
|
-
force: undefined,
|
|
46
|
-
forceIndex: undefined,
|
|
47
|
-
};
|
|
48
|
-
if (!feature.force) {
|
|
49
|
-
return result;
|
|
50
|
-
}
|
|
51
|
-
for (var i = 0; i < feature.force.length; i++) {
|
|
52
|
-
var currentForce = feature.force[i];
|
|
53
|
-
if (currentForce.conditions &&
|
|
54
|
-
allConditionsAreMatched(currentForce.conditions, context, logger)) {
|
|
55
|
-
result.force = currentForce;
|
|
56
|
-
result.forceIndex = i;
|
|
57
|
-
break;
|
|
58
|
-
}
|
|
59
|
-
if (currentForce.segments &&
|
|
60
|
-
allGroupSegmentsAreMatched(currentForce.segments, context, datafileReader, logger)) {
|
|
61
|
-
result.force = currentForce;
|
|
62
|
-
result.forceIndex = i;
|
|
63
|
-
break;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return result;
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=feature.js.map
|
package/lib/feature.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"feature.js","sourceRoot":"","sources":["../src/feature.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|
package/lib/index.spec.d.ts
DELETED
|
File without changes
|