@featurevisor/core 0.15.0 → 0.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/CHANGELOG.md CHANGED
@@ -3,6 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.17.0](https://github.com/fahad19/featurevisor/compare/v0.16.0...v0.17.0) (2023-05-12)
7
+
8
+ **Note:** Version bump only for package @featurevisor/core
9
+
10
+
11
+
12
+
13
+
14
+ # [0.16.0](https://github.com/fahad19/featurevisor/compare/v0.15.0...v0.16.0) (2023-04-30)
15
+
16
+
17
+ ### Features
18
+
19
+ * Mutually exclusive experiments via Groups ([#63](https://github.com/fahad19/featurevisor/issues/63)) ([f3c8523](https://github.com/fahad19/featurevisor/commit/f3c85236d36fd0e499897f9ce1c2ed551c111523))
20
+
21
+
22
+
23
+
24
+
6
25
  # [0.15.0](https://github.com/fahad19/featurevisor/compare/v0.14.1...v0.15.0) (2023-04-23)
7
26
 
8
27
 
@@ -0,0 +1,3 @@
1
+ import { Range, Percentage } from "@featurevisor/types";
2
+ export declare function getAllocation(availableRanges: Range[], fill: Percentage): Range[];
3
+ export declare function getUpdatedAvailableRangesAfterFilling(availableRanges: Range[], fill: Percentage): Range[];
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUpdatedAvailableRangesAfterFilling = exports.getAllocation = void 0;
4
+ function getAllocation(availableRanges, fill) {
5
+ var result = [];
6
+ var remaining = fill;
7
+ var i = 0;
8
+ while (remaining > 0 && i < availableRanges.length) {
9
+ var range = availableRanges[i];
10
+ var rangeFill = Math.min(remaining, range.end - range.start);
11
+ result.push({
12
+ start: range.start,
13
+ end: range.start + rangeFill,
14
+ });
15
+ remaining -= rangeFill;
16
+ i++;
17
+ }
18
+ return result;
19
+ }
20
+ exports.getAllocation = getAllocation;
21
+ function getUpdatedAvailableRangesAfterFilling(availableRanges, fill) {
22
+ var result = [];
23
+ var remaining = fill;
24
+ var i = 0;
25
+ while (remaining > 0 && i < availableRanges.length) {
26
+ var range = availableRanges[i];
27
+ var rangeFill = Math.min(remaining, range.end - range.start);
28
+ if (rangeFill < range.end - range.start) {
29
+ result.push({
30
+ start: range.start + rangeFill,
31
+ end: range.end,
32
+ });
33
+ }
34
+ remaining -= rangeFill;
35
+ i++;
36
+ }
37
+ return result;
38
+ }
39
+ exports.getUpdatedAvailableRangesAfterFilling = getUpdatedAvailableRangesAfterFilling;
40
+ //# sourceMappingURL=allocator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allocator.js","sourceRoot":"","sources":["../src/allocator.ts"],"names":[],"mappings":";;;AAEA,SAAgB,aAAa,CAAC,eAAwB,EAAE,IAAgB;IACtE,IAAM,MAAM,GAAY,EAAE,CAAC;IAE3B,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE;QAClD,IAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QACjC,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS;SAC7B,CAAC,CAAC;QACH,SAAS,IAAI,SAAS,CAAC;QACvB,CAAC,EAAE,CAAC;KACL;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAjBD,sCAiBC;AAED,SAAgB,qCAAqC,CACnD,eAAwB,EACxB,IAAgB;IAEhB,IAAM,MAAM,GAAY,EAAE,CAAC;IAE3B,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE;QAClD,IAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QACjC,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE;YACvC,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS;gBAC9B,GAAG,EAAE,KAAK,CAAC,GAAG;aACf,CAAC,CAAC;SACJ;QACD,SAAS,IAAI,SAAS,CAAC;QACvB,CAAC,EAAE,CAAC;KACL;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAtBD,sFAsBC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var allocator_1 = require("./allocator");
4
+ describe("core: allocator", function () {
5
+ test("is a function", function () {
6
+ expect(allocator_1.getAllocation).toBeInstanceOf(Function);
7
+ expect(allocator_1.getUpdatedAvailableRangesAfterFilling).toBeInstanceOf(Function);
8
+ });
9
+ test("fills a single range fully", function () {
10
+ var availableRanges = [{ start: 0, end: 100 }];
11
+ var result = (0, allocator_1.getAllocation)(availableRanges, 100);
12
+ expect(result).toEqual(availableRanges);
13
+ var updatedAvailableRanges = (0, allocator_1.getUpdatedAvailableRangesAfterFilling)(availableRanges, 100);
14
+ expect(updatedAvailableRanges).toEqual([]);
15
+ });
16
+ test("fills a single range partially", function () {
17
+ var availableRanges = [{ start: 0, end: 100 }];
18
+ var result = (0, allocator_1.getAllocation)(availableRanges, 80);
19
+ expect(result).toEqual([{ start: 0, end: 80 }]);
20
+ var updatedAvailableRanges = (0, allocator_1.getUpdatedAvailableRangesAfterFilling)(availableRanges, 80);
21
+ expect(updatedAvailableRanges).toEqual([{ start: 80, end: 100 }]);
22
+ });
23
+ test("fills multiple ranges fully", function () {
24
+ var availableRanges = [
25
+ { start: 0, end: 50 },
26
+ { start: 50, end: 100 },
27
+ ];
28
+ var result = (0, allocator_1.getAllocation)(availableRanges, 100);
29
+ expect(result).toEqual(availableRanges);
30
+ var updatedAvailableRanges = (0, allocator_1.getUpdatedAvailableRangesAfterFilling)(availableRanges, 100);
31
+ expect(updatedAvailableRanges).toEqual([]);
32
+ });
33
+ test("fills multiple ranges with breaks in between fully", function () {
34
+ var availableRanges = [
35
+ { start: 0, end: 40 },
36
+ { start: 60, end: 100 },
37
+ ];
38
+ var result = (0, allocator_1.getAllocation)(availableRanges, 80);
39
+ expect(result).toEqual(availableRanges);
40
+ var updatedAvailableRanges = (0, allocator_1.getUpdatedAvailableRangesAfterFilling)(availableRanges, 80);
41
+ expect(updatedAvailableRanges).toEqual([]);
42
+ });
43
+ test("fills multiple ranges partially", function () {
44
+ var availableRanges = [
45
+ { start: 0, end: 50 },
46
+ { start: 50, end: 100 },
47
+ ];
48
+ var result = (0, allocator_1.getAllocation)(availableRanges, 80);
49
+ expect(result).toEqual([
50
+ { start: 0, end: 50 },
51
+ { start: 50, end: 80 },
52
+ ]);
53
+ var updatedAvailableRanges = (0, allocator_1.getUpdatedAvailableRangesAfterFilling)(availableRanges, 80);
54
+ expect(updatedAvailableRanges).toEqual([{ start: 80, end: 100 }]);
55
+ });
56
+ test("fills multiple ranges with breaks in between partially", function () {
57
+ var availableRanges = [
58
+ { start: 0, end: 40 },
59
+ { start: 60, end: 100 },
60
+ ];
61
+ var result = (0, allocator_1.getAllocation)(availableRanges, 50);
62
+ expect(result).toEqual([
63
+ { start: 0, end: 40 },
64
+ { start: 60, end: 70 },
65
+ ]);
66
+ var updatedAvailableRanges = (0, allocator_1.getUpdatedAvailableRangesAfterFilling)(availableRanges, 50);
67
+ expect(updatedAvailableRanges).toEqual([{ start: 70, end: 100 }]);
68
+ });
69
+ test("fills multiple ranges with breaks in between partially, with 3 range items", function () {
70
+ var availableRanges = [
71
+ { start: 0, end: 30 },
72
+ { start: 60, end: 70 },
73
+ { start: 90, end: 95 },
74
+ ];
75
+ var result = (0, allocator_1.getAllocation)(availableRanges, 42);
76
+ expect(result).toEqual([
77
+ { start: 0, end: 30 },
78
+ { start: 60, end: 70 },
79
+ { start: 90, end: 92 },
80
+ ]);
81
+ var updatedAvailableRanges = (0, allocator_1.getUpdatedAvailableRangesAfterFilling)(availableRanges, 42);
82
+ expect(updatedAvailableRanges).toEqual([{ start: 92, end: 95 }]);
83
+ });
84
+ });
85
+ //# sourceMappingURL=allocator.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allocator.spec.js","sourceRoot":"","sources":["../src/allocator.spec.ts"],"names":[],"mappings":"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"}
package/lib/builder.js CHANGED
@@ -1,10 +1,20 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  Object.defineProperty(exports, "__esModule", { value: true });
3
14
  exports.buildProject = exports.buildDatafile = exports.getExistingStateFilePath = exports.getDatafilePath = void 0;
4
15
  var fs = require("fs");
5
16
  var path = require("path");
6
17
  var mkdirp = require("mkdirp");
7
- var sdk_1 = require("@featurevisor/sdk");
8
18
  var config_1 = require("./config");
9
19
  var traffic_1 = require("./traffic");
10
20
  var utils_1 = require("./utils");
@@ -27,6 +37,41 @@ function buildDatafile(projectConfig, options) {
27
37
  };
28
38
  var segmentKeysUsedByTag = new Set();
29
39
  var attributeKeysUsedByTag = new Set();
40
+ var featureRanges = new Map();
41
+ // groups
42
+ var groups = [];
43
+ if (fs.existsSync(projectConfig.groupsDirectoryPath)) {
44
+ var groupFiles = fs
45
+ .readdirSync(projectConfig.groupsDirectoryPath)
46
+ .filter(function (f) { return f.endsWith(".yml"); });
47
+ var _loop_1 = function (groupFile) {
48
+ var groupKey = path.basename(groupFile, ".yml");
49
+ var groupFilePath = path.join(projectConfig.groupsDirectoryPath, groupFile);
50
+ var parsedGroup = (0, utils_1.parseYaml)(fs.readFileSync(groupFilePath, "utf8"));
51
+ groups.push(__assign(__assign({}, parsedGroup), { key: groupKey }));
52
+ var accumulatedPercentage = 0;
53
+ parsedGroup.slots.forEach(function (slot, slotIndex) {
54
+ var isFirstSlot = slotIndex === 0;
55
+ var isLastSlot = slotIndex === parsedGroup.slots.length - 1;
56
+ if (slot.feature) {
57
+ var featureKey = slot.feature;
58
+ var featureRangesForFeature = featureRanges.get(featureKey) || [];
59
+ var start = isFirstSlot ? accumulatedPercentage : accumulatedPercentage + 1;
60
+ var end = accumulatedPercentage + slot.percentage * 1000;
61
+ featureRangesForFeature.push({
62
+ start: start,
63
+ end: end,
64
+ });
65
+ featureRanges.set(slot.feature, featureRangesForFeature);
66
+ }
67
+ accumulatedPercentage += slot.percentage * 1000;
68
+ });
69
+ };
70
+ for (var _i = 0, groupFiles_1 = groupFiles; _i < groupFiles_1.length; _i++) {
71
+ var groupFile = groupFiles_1[_i];
72
+ _loop_1(groupFile);
73
+ }
74
+ }
30
75
  // features
31
76
  var features = [];
32
77
  var featuresDirectory = projectConfig.featuresDirectoryPath;
@@ -41,8 +86,8 @@ function buildDatafile(projectConfig, options) {
41
86
  }
42
87
  if (fs.existsSync(featuresDirectory)) {
43
88
  var featureFiles = fs.readdirSync(featuresDirectory).filter(function (f) { return f.endsWith(".yml"); });
44
- for (var _i = 0, featureFiles_1 = featureFiles; _i < featureFiles_1.length; _i++) {
45
- var featureFile = featureFiles_1[_i];
89
+ for (var _a = 0, featureFiles_1 = featureFiles; _a < featureFiles_1.length; _a++) {
90
+ var featureFile = featureFiles_1[_a];
46
91
  var featureKey = path.basename(featureFile, ".yml");
47
92
  var featureFilePath = path.join(featuresDirectory, featureFile);
48
93
  var parsedFeature = (0, utils_1.parseYaml)(fs.readFileSync(featureFilePath, "utf8"));
@@ -55,23 +100,10 @@ function buildDatafile(projectConfig, options) {
55
100
  if (parsedFeature.environments[options.environment].expose === false) {
56
101
  continue;
57
102
  }
58
- var featureTraffic = [];
59
- for (var _a = 0, _b = parsedFeature.environments[options.environment].rules; _a < _b.length; _a++) {
60
- var parsedRule = _b[_a];
103
+ for (var _b = 0, _c = parsedFeature.environments[options.environment].rules; _b < _c.length; _b++) {
104
+ var parsedRule = _c[_b];
61
105
  var extractedSegmentKeys = (0, utils_1.extractSegmentKeysFromGroupSegments)(parsedRule.segments);
62
106
  extractedSegmentKeys.forEach(function (segmentKey) { return segmentKeysUsedByTag.add(segmentKey); });
63
- var traffic = {
64
- key: parsedRule.key,
65
- segments: typeof parsedRule.segments === "string"
66
- ? parsedRule.segments
67
- : JSON.stringify(parsedRule.segments),
68
- percentage: parsedRule.percentage * (sdk_1.MAX_BUCKETED_NUMBER / 100),
69
- allocation: [],
70
- };
71
- if (parsedRule.variables) {
72
- traffic.variables = parsedRule.variables;
73
- }
74
- featureTraffic.push(traffic);
75
107
  }
76
108
  var feature = {
77
109
  key: featureKey,
@@ -80,6 +112,7 @@ function buildDatafile(projectConfig, options) {
80
112
  variations: parsedFeature.variations.map(function (variation) {
81
113
  var mappedVariation = {
82
114
  value: variation.value,
115
+ weight: variation.weight, // @TODO: added so state files can maintain weight info, but datafiles don't need this. find a way to remove it from datafiles later
83
116
  };
84
117
  if (!variation.variables) {
85
118
  return mappedVariation;
@@ -117,7 +150,7 @@ function buildDatafile(projectConfig, options) {
117
150
  });
118
151
  return mappedVariation;
119
152
  }),
120
- traffic: (0, traffic_1.getNewTraffic)(parsedFeature.variations, parsedFeature.environments[options.environment].rules, existingFeatures && existingFeatures[featureKey]),
153
+ traffic: (0, traffic_1.getTraffic)(parsedFeature.variations, parsedFeature.environments[options.environment].rules, existingFeatures && existingFeatures[featureKey], featureRanges.get(featureKey) || []),
121
154
  };
122
155
  if (parsedFeature.variablesSchema) {
123
156
  feature.variablesSchema = parsedFeature.variablesSchema;
@@ -133,8 +166,8 @@ function buildDatafile(projectConfig, options) {
133
166
  var segmentsDirectory = projectConfig.segmentsDirectoryPath;
134
167
  if (fs.existsSync(segmentsDirectory)) {
135
168
  var segmentFiles = fs.readdirSync(segmentsDirectory).filter(function (f) { return f.endsWith(".yml"); });
136
- for (var _c = 0, segmentFiles_1 = segmentFiles; _c < segmentFiles_1.length; _c++) {
137
- var segmentFile = segmentFiles_1[_c];
169
+ for (var _d = 0, segmentFiles_1 = segmentFiles; _d < segmentFiles_1.length; _d++) {
170
+ var segmentFile = segmentFiles_1[_d];
138
171
  var segmentKey = path.basename(segmentFile, ".yml");
139
172
  var segmentFilePath = path.join(segmentsDirectory, segmentFile);
140
173
  var parsedSegment = (0, utils_1.parseYaml)(fs.readFileSync(segmentFilePath, "utf8"));
@@ -160,8 +193,8 @@ function buildDatafile(projectConfig, options) {
160
193
  var attributesDirectory = projectConfig.attributesDirectoryPath;
161
194
  if (fs.existsSync(attributesDirectory)) {
162
195
  var attributeFiles = fs.readdirSync(attributesDirectory).filter(function (f) { return f.endsWith(".yml"); });
163
- for (var _d = 0, attributeFiles_1 = attributeFiles; _d < attributeFiles_1.length; _d++) {
164
- var attributeFile = attributeFiles_1[_d];
196
+ for (var _e = 0, attributeFiles_1 = attributeFiles; _e < attributeFiles_1.length; _e++) {
197
+ var attributeFile = attributeFiles_1[_e];
165
198
  var attributeKey = path.basename(attributeFile, ".yml");
166
199
  var attributeFilePath = path.join(attributesDirectory, attributeFile);
167
200
  var parsedAttribute = (0, utils_1.parseYaml)(fs.readFileSync(attributeFilePath, "utf8"));
@@ -209,10 +242,12 @@ function buildDatafile(projectConfig, options) {
209
242
  return {
210
243
  variation: a.variation,
211
244
  percentage: a.percentage,
245
+ range: a.range,
212
246
  };
213
247
  }),
214
248
  };
215
249
  }),
250
+ ranges: featureRanges.get(feature.key) || undefined,
216
251
  };
217
252
  acc[feature.key] = item;
218
253
  return acc;
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
package/lib/config.d.ts CHANGED
@@ -2,6 +2,7 @@ import { BucketBy } from "@featurevisor/types";
2
2
  export declare const FEATURES_DIRECTORY_NAME = "features";
3
3
  export declare const SEGMENTS_DIRECTORY_NAME = "segments";
4
4
  export declare const ATTRIBUTES_DIRECTORY_NAME = "attributes";
5
+ export declare const GROUPS_DIRECTORY_NAME = "groups";
5
6
  export declare const TESTS_DIRECTORY_NAME = "tests";
6
7
  export declare const STATE_DIRECTORY_NAME = ".featurevisor";
7
8
  export declare const OUTPUT_DIRECTORY_NAME = "dist";
@@ -16,6 +17,7 @@ export interface ProjectConfig {
16
17
  featuresDirectoryPath: string;
17
18
  segmentsDirectoryPath: string;
18
19
  attributesDirectoryPath: string;
20
+ groupsDirectoryPath: string;
19
21
  testsDirectoryPath: string;
20
22
  stateDirectoryPath: string;
21
23
  outputDirectoryPath: string;
package/lib/config.js CHANGED
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getProjectConfig = exports.SCHEMA_VERSION = exports.DEFAULT_BUCKET_BY_ATTRIBUTE = exports.DEFAULT_TAGS = exports.DEFAULT_ENVIRONMENTS = exports.ROOT_DIR_PLACECOLDER = exports.CONFIG_MODULE_NAME = exports.SITE_EXPORT_DIRECTORY_NAME = exports.OUTPUT_DIRECTORY_NAME = exports.STATE_DIRECTORY_NAME = exports.TESTS_DIRECTORY_NAME = exports.ATTRIBUTES_DIRECTORY_NAME = exports.SEGMENTS_DIRECTORY_NAME = exports.FEATURES_DIRECTORY_NAME = void 0;
3
+ exports.getProjectConfig = exports.SCHEMA_VERSION = exports.DEFAULT_BUCKET_BY_ATTRIBUTE = exports.DEFAULT_TAGS = exports.DEFAULT_ENVIRONMENTS = exports.ROOT_DIR_PLACECOLDER = exports.CONFIG_MODULE_NAME = exports.SITE_EXPORT_DIRECTORY_NAME = exports.OUTPUT_DIRECTORY_NAME = exports.STATE_DIRECTORY_NAME = exports.TESTS_DIRECTORY_NAME = exports.GROUPS_DIRECTORY_NAME = exports.ATTRIBUTES_DIRECTORY_NAME = exports.SEGMENTS_DIRECTORY_NAME = exports.FEATURES_DIRECTORY_NAME = void 0;
4
4
  var path = require("path");
5
5
  exports.FEATURES_DIRECTORY_NAME = "features";
6
6
  exports.SEGMENTS_DIRECTORY_NAME = "segments";
7
7
  exports.ATTRIBUTES_DIRECTORY_NAME = "attributes";
8
+ exports.GROUPS_DIRECTORY_NAME = "groups";
8
9
  exports.TESTS_DIRECTORY_NAME = "tests";
9
10
  exports.STATE_DIRECTORY_NAME = ".featurevisor";
10
11
  exports.OUTPUT_DIRECTORY_NAME = "dist";
@@ -21,6 +22,7 @@ function getProjectConfig(rootDirectoryPath) {
21
22
  featuresDirectoryPath: path.join(rootDirectoryPath, exports.FEATURES_DIRECTORY_NAME),
22
23
  segmentsDirectoryPath: path.join(rootDirectoryPath, exports.SEGMENTS_DIRECTORY_NAME),
23
24
  attributesDirectoryPath: path.join(rootDirectoryPath, exports.ATTRIBUTES_DIRECTORY_NAME),
25
+ groupsDirectoryPath: path.join(rootDirectoryPath, exports.GROUPS_DIRECTORY_NAME),
24
26
  testsDirectoryPath: path.join(rootDirectoryPath, exports.TESTS_DIRECTORY_NAME),
25
27
  stateDirectoryPath: path.join(rootDirectoryPath, exports.STATE_DIRECTORY_NAME),
26
28
  outputDirectoryPath: path.join(rootDirectoryPath, exports.OUTPUT_DIRECTORY_NAME),
package/lib/config.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAAA,2BAA6B;AAIhB,QAAA,uBAAuB,GAAG,UAAU,CAAC;AACrC,QAAA,uBAAuB,GAAG,UAAU,CAAC;AACrC,QAAA,yBAAyB,GAAG,YAAY,CAAC;AACzC,QAAA,oBAAoB,GAAG,OAAO,CAAC;AAC/B,QAAA,oBAAoB,GAAG,eAAe,CAAC;AACvC,QAAA,qBAAqB,GAAG,MAAM,CAAC;AAC/B,QAAA,0BAA0B,GAAG,KAAK,CAAC;AAEnC,QAAA,kBAAkB,GAAG,wBAAwB,CAAC;AAC9C,QAAA,oBAAoB,GAAG,WAAW,CAAC;AAEnC,QAAA,oBAAoB,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACjD,QAAA,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,2BAA2B,GAAG,QAAQ,CAAC;AAEvC,QAAA,cAAc,GAAG,GAAG,CAAC;AAgBlC,6FAA6F;AAC7F,SAAgB,gBAAgB,CAAC,iBAAyB;IACxD,IAAM,UAAU,GAAkB;QAChC,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,+BAAuB,CAAC;QAC5E,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,+BAAuB,CAAC;QAC5E,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,iCAAyB,CAAC;QAChF,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,4BAAoB,CAAC;QAEtE,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,4BAAoB,CAAC;QACtE,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,6BAAqB,CAAC;QAExE,YAAY,EAAE,4BAAoB;QAClC,IAAI,EAAE,oBAAY;QAClB,eAAe,EAAE,QAAQ;QAEzB,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,kCAA0B,CAAC;KAClF,CAAC;IAEF,IAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,0BAAkB,CAAC,CAAC;IAC1E,IAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE/C,IAAM,WAAW,GAAG,EAAE,CAAC;IAEvB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;QAClC,WAAW,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAExD,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,4BAAoB,CAAC,KAAK,CAAC,CAAC,EAAE;YACjF,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,4BAAoB,EAAE,iBAAiB,CAAC,CAAC;SACtF;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,WAA4B,CAAC;AACtC,CAAC;AA/BD,4CA+BC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAAA,2BAA6B;AAIhB,QAAA,uBAAuB,GAAG,UAAU,CAAC;AACrC,QAAA,uBAAuB,GAAG,UAAU,CAAC;AACrC,QAAA,yBAAyB,GAAG,YAAY,CAAC;AACzC,QAAA,qBAAqB,GAAG,QAAQ,CAAC;AACjC,QAAA,oBAAoB,GAAG,OAAO,CAAC;AAC/B,QAAA,oBAAoB,GAAG,eAAe,CAAC;AACvC,QAAA,qBAAqB,GAAG,MAAM,CAAC;AAC/B,QAAA,0BAA0B,GAAG,KAAK,CAAC;AAEnC,QAAA,kBAAkB,GAAG,wBAAwB,CAAC;AAC9C,QAAA,oBAAoB,GAAG,WAAW,CAAC;AAEnC,QAAA,oBAAoB,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACjD,QAAA,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,2BAA2B,GAAG,QAAQ,CAAC;AAEvC,QAAA,cAAc,GAAG,GAAG,CAAC;AAiBlC,6FAA6F;AAC7F,SAAgB,gBAAgB,CAAC,iBAAyB;IACxD,IAAM,UAAU,GAAkB;QAChC,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,+BAAuB,CAAC;QAC5E,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,+BAAuB,CAAC;QAC5E,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,iCAAyB,CAAC;QAChF,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,6BAAqB,CAAC;QACxE,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,4BAAoB,CAAC;QAEtE,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,4BAAoB,CAAC;QACtE,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,6BAAqB,CAAC;QAExE,YAAY,EAAE,4BAAoB;QAClC,IAAI,EAAE,oBAAY;QAClB,eAAe,EAAE,QAAQ;QAEzB,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,kCAA0B,CAAC;KAClF,CAAC;IAEF,IAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,0BAAkB,CAAC,CAAC;IAC1E,IAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE/C,IAAM,WAAW,GAAG,EAAE,CAAC;IAEvB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;QAClC,WAAW,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAExD,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,4BAAoB,CAAC,KAAK,CAAC,CAAC,EAAE;YACjF,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,4BAAoB,EAAE,iBAAiB,CAAC,CAAC;SACtF;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,WAA4B,CAAC;AACtC,CAAC;AAhCD,4CAgCC"}
package/lib/linter.d.ts CHANGED
@@ -3,6 +3,7 @@ import { ProjectConfig } from "./config";
3
3
  export declare function getAttributeJoiSchema(projectConfig: ProjectConfig): Joi.ObjectSchema<any>;
4
4
  export declare function getConditionsJoiSchema(projectConfig: ProjectConfig): Joi.AlternativesSchema<any>;
5
5
  export declare function getSegmentJoiSchema(projectConfig: ProjectConfig, conditionsJoiSchema: any): Joi.ObjectSchema<any>;
6
+ export declare function getGroupJoiSchema(projectConfig: ProjectConfig): Joi.ObjectSchema<any>;
6
7
  export declare function getFeatureJoiSchema(projectConfig: ProjectConfig, conditionsJoiSchema: any): Joi.ObjectSchema<any>;
7
8
  export declare function getTestsJoiSchema(projectConfig: ProjectConfig): Joi.ObjectSchema<any>;
8
9
  export declare function printJoiError(e: Joi.ValidationError): void;