@featurevisor/core 0.53.2 → 0.53.4

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.
Files changed (84) hide show
  1. package/.eslintcache +1 -1
  2. package/CHANGELOG.md +16 -0
  3. package/coverage/clover.xml +2 -2
  4. package/coverage/lcov-report/index.html +1 -1
  5. package/coverage/lcov-report/lib/builder/allocator.js.html +1 -1
  6. package/coverage/lcov-report/lib/builder/index.html +1 -1
  7. package/coverage/lcov-report/lib/builder/traffic.js.html +1 -1
  8. package/coverage/lcov-report/src/builder/allocator.ts.html +1 -1
  9. package/coverage/lcov-report/src/builder/index.html +1 -1
  10. package/coverage/lcov-report/src/builder/traffic.ts.html +1 -1
  11. package/lib/builder/buildDatafile.d.ts +1 -1
  12. package/lib/builder/buildDatafile.js +241 -168
  13. package/lib/builder/buildDatafile.js.map +1 -1
  14. package/lib/builder/buildProject.d.ts +1 -2
  15. package/lib/builder/buildProject.js +95 -45
  16. package/lib/builder/buildProject.js.map +1 -1
  17. package/lib/builder/getFeatureRanges.d.ts +1 -1
  18. package/lib/builder/getFeatureRanges.js +92 -31
  19. package/lib/builder/getFeatureRanges.js.map +1 -1
  20. package/lib/datasource/datasource.d.ts +23 -17
  21. package/lib/datasource/datasource.js +166 -69
  22. package/lib/datasource/datasource.js.map +1 -1
  23. package/lib/datasource/parsers.js +2 -2
  24. package/lib/datasource/parsers.js.map +1 -1
  25. package/lib/find-duplicate-segments/findDuplicateSegments.d.ts +1 -1
  26. package/lib/find-duplicate-segments/findDuplicateSegments.js +75 -18
  27. package/lib/find-duplicate-segments/findDuplicateSegments.js.map +1 -1
  28. package/lib/find-duplicate-segments/index.d.ts +1 -1
  29. package/lib/find-duplicate-segments/index.js +56 -9
  30. package/lib/find-duplicate-segments/index.js.map +1 -1
  31. package/lib/generate-code/index.d.ts +1 -1
  32. package/lib/generate-code/index.js +67 -23
  33. package/lib/generate-code/index.js.map +1 -1
  34. package/lib/generate-code/typescript.d.ts +1 -1
  35. package/lib/generate-code/typescript.js +139 -72
  36. package/lib/generate-code/typescript.js.map +1 -1
  37. package/lib/linter/checkCircularDependency.d.ts +1 -1
  38. package/lib/linter/checkCircularDependency.js +78 -22
  39. package/lib/linter/checkCircularDependency.js.map +1 -1
  40. package/lib/linter/groupSchema.js +79 -28
  41. package/lib/linter/groupSchema.js.map +1 -1
  42. package/lib/linter/lintProject.js +119 -103
  43. package/lib/linter/lintProject.js.map +1 -1
  44. package/lib/restore.d.ts +1 -1
  45. package/lib/restore.js +53 -11
  46. package/lib/restore.js.map +1 -1
  47. package/lib/site/exportSite.d.ts +1 -1
  48. package/lib/site/exportSite.js +64 -21
  49. package/lib/site/exportSite.js.map +1 -1
  50. package/lib/site/generateSiteSearchIndex.d.ts +1 -1
  51. package/lib/site/generateSiteSearchIndex.js +203 -111
  52. package/lib/site/generateSiteSearchIndex.js.map +1 -1
  53. package/lib/tester/testFeature.d.ts +1 -1
  54. package/lib/tester/testFeature.js +130 -60
  55. package/lib/tester/testFeature.js.map +1 -1
  56. package/lib/tester/testProject.d.ts +1 -1
  57. package/lib/tester/testProject.js +105 -48
  58. package/lib/tester/testProject.js.map +1 -1
  59. package/lib/tester/testSegment.d.ts +1 -1
  60. package/lib/tester/testSegment.js +69 -21
  61. package/lib/tester/testSegment.js.map +1 -1
  62. package/lib/utils.d.ts +0 -2
  63. package/lib/utils.js +1 -15
  64. package/lib/utils.js.map +1 -1
  65. package/package.json +2 -2
  66. package/src/builder/buildDatafile.ts +9 -9
  67. package/src/builder/buildProject.ts +4 -24
  68. package/src/builder/getFeatureRanges.ts +4 -4
  69. package/src/datasource/datasource.ts +66 -60
  70. package/src/datasource/parsers.ts +2 -2
  71. package/src/find-duplicate-segments/findDuplicateSegments.ts +9 -6
  72. package/src/find-duplicate-segments/index.ts +5 -2
  73. package/src/generate-code/index.ts +2 -2
  74. package/src/generate-code/typescript.ts +42 -25
  75. package/src/linter/checkCircularDependency.ts +4 -4
  76. package/src/linter/groupSchema.ts +3 -3
  77. package/src/linter/lintProject.ts +53 -60
  78. package/src/restore.ts +1 -1
  79. package/src/site/exportSite.ts +2 -2
  80. package/src/site/generateSiteSearchIndex.ts +14 -14
  81. package/src/tester/testFeature.ts +12 -13
  82. package/src/tester/testProject.ts +8 -5
  83. package/src/tester/testSegment.ts +3 -3
  84. package/src/utils.ts +0 -18
@@ -1,4 +1,40 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
39
  exports.getGroupJoiSchema = void 0;
4
40
  var Joi = require("joi");
@@ -12,36 +48,51 @@ function getGroupJoiSchema(projectConfig, datasource, availableFeatureKeys) {
12
48
  percentage: Joi.number().precision(3).min(0).max(100),
13
49
  }))
14
50
  .custom(function (value) {
15
- var totalPercentage = value.reduce(function (acc, slot) { return acc + slot.percentage; }, 0);
16
- if (totalPercentage !== 100) {
17
- throw new Error("total percentage is not 100");
18
- }
19
- for (var _i = 0, value_1 = value; _i < value_1.length; _i++) {
20
- var slot = value_1[_i];
21
- var maxPercentageForRule = slot.percentage;
22
- if (slot.feature) {
23
- var featureKey = slot.feature;
24
- var featureExists = datasource.entityExists("feature", featureKey);
25
- if (!featureExists) {
26
- throw new Error("feature ".concat(featureKey, " not found"));
27
- }
28
- var parsedFeature = datasource.readFeature(featureKey);
29
- var environmentKeys = Object.keys(parsedFeature.environments);
30
- for (var _a = 0, environmentKeys_1 = environmentKeys; _a < environmentKeys_1.length; _a++) {
31
- var environmentKey = environmentKeys_1[_a];
32
- var environment = parsedFeature.environments[environmentKey];
33
- var rules = environment.rules;
34
- for (var _b = 0, rules_1 = rules; _b < rules_1.length; _b++) {
35
- var rule = rules_1[_b];
36
- if (rule.percentage > maxPercentageForRule) {
37
- // @TODO: this does not help with same feature belonging to multiple slots. fix that.
38
- 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"));
51
+ return __awaiter(this, void 0, void 0, function () {
52
+ var totalPercentage, _i, value_1, slot, maxPercentageForRule, featureKey, featureExists, parsedFeature, environmentKeys, _a, environmentKeys_1, environmentKey, environment, rules, _b, rules_1, rule;
53
+ return __generator(this, function (_c) {
54
+ switch (_c.label) {
55
+ case 0:
56
+ totalPercentage = value.reduce(function (acc, slot) { return acc + slot.percentage; }, 0);
57
+ if (totalPercentage !== 100) {
58
+ throw new Error("total percentage is not 100");
39
59
  }
40
- }
60
+ _i = 0, value_1 = value;
61
+ _c.label = 1;
62
+ case 1:
63
+ if (!(_i < value_1.length)) return [3 /*break*/, 4];
64
+ slot = value_1[_i];
65
+ maxPercentageForRule = slot.percentage;
66
+ if (!slot.feature) return [3 /*break*/, 3];
67
+ featureKey = slot.feature;
68
+ featureExists = availableFeatureKeys.indexOf(featureKey) > -1;
69
+ if (!featureExists) {
70
+ throw new Error("feature ".concat(featureKey, " not found"));
71
+ }
72
+ return [4 /*yield*/, datasource.readFeature(featureKey)];
73
+ case 2:
74
+ parsedFeature = _c.sent();
75
+ environmentKeys = Object.keys(parsedFeature.environments);
76
+ for (_a = 0, environmentKeys_1 = environmentKeys; _a < environmentKeys_1.length; _a++) {
77
+ environmentKey = environmentKeys_1[_a];
78
+ environment = parsedFeature.environments[environmentKey];
79
+ rules = environment.rules;
80
+ for (_b = 0, rules_1 = rules; _b < rules_1.length; _b++) {
81
+ rule = rules_1[_b];
82
+ if (rule.percentage > maxPercentageForRule) {
83
+ // @TODO: this does not help with same feature belonging to multiple slots. fix that.
84
+ 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"));
85
+ }
86
+ }
87
+ }
88
+ _c.label = 3;
89
+ case 3:
90
+ _i++;
91
+ return [3 /*break*/, 1];
92
+ case 4: return [2 /*return*/, value];
41
93
  }
42
- }
43
- }
44
- return value;
94
+ });
95
+ });
45
96
  })
46
97
  .required(),
47
98
  });
@@ -1 +1 @@
1
- {"version":3,"file":"groupSchema.js","sourceRoot":"","sources":["../../src/linter/groupSchema.ts"],"names":[],"mappings":";;;AAAA,yBAA2B;AAK3B,SAAgB,iBAAiB,CAC/B,aAA4B,EAC5B,UAAsB,EACtB,oBAA8B;;IAE9B,IAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;QAChC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACpC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE;aACf,KAAK,CACJ,GAAG,CAAC,MAAM,CAAC;YACT,OAAO,EAAE,CAAA,KAAA,GAAG,CAAC,MAAM,EAAE,CAAA,CAAC,KAAK,WAAI,oBAAoB,CAAC;YACpD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;SACtD,CAAC,CACH;aACA,MAAM,CAAC,UAAU,KAAK;YACrB,IAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI,IAAK,OAAA,GAAG,GAAG,IAAI,CAAC,UAAU,EAArB,CAAqB,EAAE,CAAC,CAAC,CAAC;YAE9E,IAAI,eAAe,KAAK,GAAG,EAAE;gBAC3B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;aAChD;YAED,KAAmB,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE;gBAArB,IAAM,IAAI,cAAA;gBACb,IAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC;gBAE7C,IAAI,IAAI,CAAC,OAAO,EAAE;oBAChB,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;oBAChC,IAAM,aAAa,GAAG,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;oBAErE,IAAI,CAAC,aAAa,EAAE;wBAClB,MAAM,IAAI,KAAK,CAAC,kBAAW,UAAU,eAAY,CAAC,CAAC;qBACpD;oBAED,IAAM,aAAa,GAAG,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAEzD,IAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;oBAChE,KAA6B,UAAe,EAAf,mCAAe,EAAf,6BAAe,EAAf,IAAe,EAAE;wBAAzC,IAAM,cAAc,wBAAA;wBACvB,IAAM,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;wBAC/D,IAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;wBAEhC,KAAmB,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE;4BAArB,IAAM,IAAI,cAAA;4BACb,IAAI,IAAI,CAAC,UAAU,GAAG,oBAAoB,EAAE;gCAC1C,qFAAqF;gCACrF,MAAM,IAAI,KAAK,CACb,kBAAW,UAAU,qBAAW,IAAI,CAAC,GAAG,iBAAO,cAAc,kCAAwB,IAAI,CAAC,UAAU,8DAAoD,oBAAoB,kBAAe,CAC5L,CAAC;6BACH;yBACF;qBACF;iBACF;aACF;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;aACD,QAAQ,EAAE;KACd,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC;AACxB,CAAC;AAzDD,8CAyDC"}
1
+ {"version":3,"file":"groupSchema.js","sourceRoot":"","sources":["../../src/linter/groupSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yBAA2B;AAK3B,SAAgB,iBAAiB,CAC/B,aAA4B,EAC5B,UAAsB,EACtB,oBAA8B;;IAE9B,IAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;QAChC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACpC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE;aACf,KAAK,CACJ,GAAG,CAAC,MAAM,CAAC;YACT,OAAO,EAAE,CAAA,KAAA,GAAG,CAAC,MAAM,EAAE,CAAA,CAAC,KAAK,WAAI,oBAAoB,CAAC;YACpD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;SACtD,CAAC,CACH;aACA,MAAM,CAAC,UAAgB,KAAK;;;;;;4BACrB,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI,IAAK,OAAA,GAAG,GAAG,IAAI,CAAC,UAAU,EAArB,CAAqB,EAAE,CAAC,CAAC,CAAC;4BAE9E,IAAI,eAAe,KAAK,GAAG,EAAE;gCAC3B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;6BAChD;kCAEuB,EAAL,eAAK;;;iCAAL,CAAA,mBAAK,CAAA;4BAAb,IAAI;4BACP,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC;iCAEzC,IAAI,CAAC,OAAO,EAAZ,wBAAY;4BACR,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;4BAC1B,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;4BAEpE,IAAI,CAAC,aAAa,EAAE;gCAClB,MAAM,IAAI,KAAK,CAAC,kBAAW,UAAU,eAAY,CAAC,CAAC;6BACpD;4BAEqB,qBAAM,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,EAAA;;4BAAxD,aAAa,GAAG,SAAwC;4BAExD,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;4BAChE,WAA4C,EAAf,mCAAe,EAAf,6BAAe,EAAf,IAAe,EAAE;gCAAnC,cAAc;gCACjB,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;gCACzD,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;gCAEhC,WAAwB,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE;oCAAf,IAAI;oCACb,IAAI,IAAI,CAAC,UAAU,GAAG,oBAAoB,EAAE;wCAC1C,qFAAqF;wCACrF,MAAM,IAAI,KAAK,CACb,kBAAW,UAAU,qBAAW,IAAI,CAAC,GAAG,iBAAO,cAAc,kCAAwB,IAAI,CAAC,UAAU,8DAAoD,oBAAoB,kBAAe,CAC5L,CAAC;qCACH;iCACF;6BACF;;;4BA1Bc,IAAK,CAAA;;gCA8BxB,sBAAO,KAAK,EAAC;;;;SACd,CAAC;aACD,QAAQ,EAAE;KACd,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC;AACxB,CAAC;AAzDD,8CAyDC"}
@@ -38,7 +38,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.lintProject = void 0;
40
40
  // for use in node only
41
- var fs = require("fs");
42
41
  var Joi = require("joi");
43
42
  var datasource_1 = require("../datasource");
44
43
  var attributeSchema_1 = require("./attributeSchema");
@@ -51,7 +50,7 @@ var checkCircularDependency_1 = require("./checkCircularDependency");
51
50
  var printJoiError_1 = require("./printJoiError");
52
51
  function lintProject(projectConfig) {
53
52
  return __awaiter(this, void 0, void 0, function () {
54
- var hasError, datasource, availableAttributeKeys, availableSegmentKeys, availableFeatureKeys, attributes, attributeJoiSchema, _i, attributes_1, key, parsed, e_1, segments, conditionsJoiSchema, segmentJoiSchema, _a, segments_1, key, parsed, e_2, groups, groupJoiSchema, _b, groups_1, key, parsed, e_3, features, featureJoiSchema, _c, features_1, key, parsed, e_4, tests, testsJoiSchema, _d, tests_1, key, parsed, e_5;
53
+ var hasError, datasource, availableAttributeKeys, availableSegmentKeys, availableFeatureKeys, attributes, attributeJoiSchema, _i, attributes_1, key, parsed, e_1, segments, conditionsJoiSchema, segmentJoiSchema, _a, segments_1, key, parsed, e_2, features, featureJoiSchema, _b, features_1, key, parsed, e_3, e_4, groups, groupJoiSchema, _c, groups_1, key, parsed, e_5, tests, testsJoiSchema, _d, tests_1, key, parsed, e_6;
55
54
  return __generator(this, function (_e) {
56
55
  switch (_e.label) {
57
56
  case 0:
@@ -60,24 +59,28 @@ function lintProject(projectConfig) {
60
59
  availableAttributeKeys = [];
61
60
  availableSegmentKeys = [];
62
61
  availableFeatureKeys = [];
63
- attributes = datasource.listAttributes();
62
+ return [4 /*yield*/, datasource.listAttributes()];
63
+ case 1:
64
+ attributes = _e.sent();
64
65
  console.log("Linting ".concat(attributes.length, " attributes...\n"));
65
66
  attributeJoiSchema = (0, attributeSchema_1.getAttributeJoiSchema)();
66
67
  _i = 0, attributes_1 = attributes;
67
- _e.label = 1;
68
- case 1:
69
- if (!(_i < attributes_1.length)) return [3 /*break*/, 6];
70
- key = attributes_1[_i];
71
- parsed = datasource.readAttribute(key);
72
- availableAttributeKeys.push(key);
73
68
  _e.label = 2;
74
69
  case 2:
75
- _e.trys.push([2, 4, , 5]);
76
- return [4 /*yield*/, attributeJoiSchema.validateAsync(parsed)];
70
+ if (!(_i < attributes_1.length)) return [3 /*break*/, 8];
71
+ key = attributes_1[_i];
72
+ return [4 /*yield*/, datasource.readAttribute(key)];
77
73
  case 3:
78
- _e.sent();
79
- return [3 /*break*/, 5];
74
+ parsed = _e.sent();
75
+ availableAttributeKeys.push(key);
76
+ _e.label = 4;
80
77
  case 4:
78
+ _e.trys.push([4, 6, , 7]);
79
+ return [4 /*yield*/, attributeJoiSchema.validateAsync(parsed)];
80
+ case 5:
81
+ _e.sent();
82
+ return [3 /*break*/, 7];
83
+ case 6:
81
84
  e_1 = _e.sent();
82
85
  console.log(" =>", key);
83
86
  if (e_1 instanceof Joi.ValidationError) {
@@ -87,30 +90,33 @@ function lintProject(projectConfig) {
87
90
  console.log(e_1);
88
91
  }
89
92
  hasError = true;
90
- return [3 /*break*/, 5];
91
- case 5:
93
+ return [3 /*break*/, 7];
94
+ case 7:
92
95
  _i++;
93
- return [3 /*break*/, 1];
94
- case 6:
95
- segments = datasource.listSegments();
96
+ return [3 /*break*/, 2];
97
+ case 8: return [4 /*yield*/, datasource.listSegments()];
98
+ case 9:
99
+ segments = _e.sent();
96
100
  console.log("\nLinting ".concat(segments.length, " segments...\n"));
97
101
  conditionsJoiSchema = (0, conditionSchema_1.getConditionsJoiSchema)(projectConfig, availableAttributeKeys);
98
102
  segmentJoiSchema = (0, segmentSchema_1.getSegmentJoiSchema)(projectConfig, conditionsJoiSchema);
99
103
  _a = 0, segments_1 = segments;
100
- _e.label = 7;
101
- case 7:
102
- if (!(_a < segments_1.length)) return [3 /*break*/, 12];
104
+ _e.label = 10;
105
+ case 10:
106
+ if (!(_a < segments_1.length)) return [3 /*break*/, 16];
103
107
  key = segments_1[_a];
104
- parsed = datasource.readSegment(key);
108
+ return [4 /*yield*/, datasource.readSegment(key)];
109
+ case 11:
110
+ parsed = _e.sent();
105
111
  availableSegmentKeys.push(key);
106
- _e.label = 8;
107
- case 8:
108
- _e.trys.push([8, 10, , 11]);
112
+ _e.label = 12;
113
+ case 12:
114
+ _e.trys.push([12, 14, , 15]);
109
115
  return [4 /*yield*/, segmentJoiSchema.validateAsync(parsed)];
110
- case 9:
116
+ case 13:
111
117
  _e.sent();
112
- return [3 /*break*/, 11];
113
- case 10:
118
+ return [3 /*break*/, 15];
119
+ case 14:
114
120
  e_2 = _e.sent();
115
121
  console.log(" =>", key);
116
122
  if (e_2 instanceof Joi.ValidationError) {
@@ -120,52 +126,23 @@ function lintProject(projectConfig) {
120
126
  console.log(e_2);
121
127
  }
122
128
  hasError = true;
123
- return [3 /*break*/, 11];
124
- case 11:
125
- _a++;
126
- return [3 /*break*/, 7];
127
- case 12:
128
- if (!fs.existsSync(projectConfig.groupsDirectoryPath)) return [3 /*break*/, 18];
129
- groups = datasource.listGroups();
130
- console.log("\nLinting ".concat(groups.length, " groups...\n"));
131
- groupJoiSchema = (0, groupSchema_1.getGroupJoiSchema)(projectConfig, datasource, availableFeatureKeys);
132
- _b = 0, groups_1 = groups;
133
- _e.label = 13;
134
- case 13:
135
- if (!(_b < groups_1.length)) return [3 /*break*/, 18];
136
- key = groups_1[_b];
137
- parsed = datasource.readGroup(key);
138
- _e.label = 14;
139
- case 14:
140
- _e.trys.push([14, 16, , 17]);
141
- return [4 /*yield*/, groupJoiSchema.validateAsync(parsed)];
129
+ return [3 /*break*/, 15];
142
130
  case 15:
143
- _e.sent();
144
- return [3 /*break*/, 17];
145
- case 16:
146
- e_3 = _e.sent();
147
- console.log(" =>", key);
148
- if (e_3 instanceof Joi.ValidationError) {
149
- (0, printJoiError_1.printJoiError)(e_3);
150
- }
151
- else {
152
- console.log(e_3);
153
- }
154
- hasError = true;
155
- return [3 /*break*/, 17];
131
+ _a++;
132
+ return [3 /*break*/, 10];
133
+ case 16: return [4 /*yield*/, datasource.listFeatures()];
156
134
  case 17:
157
- _b++;
158
- return [3 /*break*/, 13];
159
- case 18:
160
- features = datasource.listFeatures();
135
+ features = _e.sent();
161
136
  console.log("\nLinting ".concat(features.length, " features...\n"));
162
137
  featureJoiSchema = (0, featureSchema_1.getFeatureJoiSchema)(projectConfig, conditionsJoiSchema, availableSegmentKeys, availableFeatureKeys);
163
- _c = 0, features_1 = features;
164
- _e.label = 19;
138
+ _b = 0, features_1 = features;
139
+ _e.label = 18;
140
+ case 18:
141
+ if (!(_b < features_1.length)) return [3 /*break*/, 28];
142
+ key = features_1[_b];
143
+ return [4 /*yield*/, datasource.readFeature(key)];
165
144
  case 19:
166
- if (!(_c < features_1.length)) return [3 /*break*/, 25];
167
- key = features_1[_c];
168
- parsed = datasource.readFeature(key);
145
+ parsed = _e.sent();
169
146
  availableFeatureKeys.push(key);
170
147
  _e.label = 20;
171
148
  case 20:
@@ -175,50 +152,55 @@ function lintProject(projectConfig) {
175
152
  _e.sent();
176
153
  return [3 /*break*/, 23];
177
154
  case 22:
178
- e_4 = _e.sent();
155
+ e_3 = _e.sent();
179
156
  console.log(" =>", key);
180
- if (e_4 instanceof Joi.ValidationError) {
181
- (0, printJoiError_1.printJoiError)(e_4);
157
+ if (e_3 instanceof Joi.ValidationError) {
158
+ (0, printJoiError_1.printJoiError)(e_3);
182
159
  }
183
160
  else {
184
- console.log(e_4);
161
+ console.log(e_3);
185
162
  }
186
163
  hasError = true;
187
164
  return [3 /*break*/, 23];
188
165
  case 23:
189
- if (parsed.required) {
190
- try {
191
- (0, checkCircularDependency_1.checkForCircularDependencyInRequired)(datasource, key, parsed.required);
192
- }
193
- catch (e) {
194
- console.log(" =>", key);
195
- console.log(" => Error:", e.message);
196
- hasError = true;
197
- }
198
- }
166
+ if (!parsed.required) return [3 /*break*/, 27];
199
167
  _e.label = 24;
200
168
  case 24:
201
- _c++;
202
- return [3 /*break*/, 19];
169
+ _e.trys.push([24, 26, , 27]);
170
+ return [4 /*yield*/, (0, checkCircularDependency_1.checkForCircularDependencyInRequired)(datasource, key, parsed.required)];
203
171
  case 25:
204
- if (!fs.existsSync(projectConfig.testsDirectoryPath)) return [3 /*break*/, 31];
205
- tests = datasource.listTests();
206
- console.log("\nLinting ".concat(tests.length, " tests...\n"));
207
- testsJoiSchema = (0, testSchema_1.getTestsJoiSchema)(projectConfig, availableFeatureKeys, availableSegmentKeys);
208
- _d = 0, tests_1 = tests;
209
- _e.label = 26;
172
+ _e.sent();
173
+ return [3 /*break*/, 27];
210
174
  case 26:
211
- if (!(_d < tests_1.length)) return [3 /*break*/, 31];
212
- key = tests_1[_d];
213
- parsed = datasource.readTest(key);
214
- _e.label = 27;
175
+ e_4 = _e.sent();
176
+ console.log(" =>", key);
177
+ console.log(" => Error:", e_4.message);
178
+ hasError = true;
179
+ return [3 /*break*/, 27];
215
180
  case 27:
216
- _e.trys.push([27, 29, , 30]);
217
- return [4 /*yield*/, testsJoiSchema.validateAsync(parsed)];
218
- case 28:
219
- _e.sent();
220
- return [3 /*break*/, 30];
181
+ _b++;
182
+ return [3 /*break*/, 18];
183
+ case 28: return [4 /*yield*/, datasource.listGroups()];
221
184
  case 29:
185
+ groups = _e.sent();
186
+ console.log("\nLinting ".concat(groups.length, " groups...\n"));
187
+ groupJoiSchema = (0, groupSchema_1.getGroupJoiSchema)(projectConfig, datasource, availableFeatureKeys);
188
+ _c = 0, groups_1 = groups;
189
+ _e.label = 30;
190
+ case 30:
191
+ if (!(_c < groups_1.length)) return [3 /*break*/, 36];
192
+ key = groups_1[_c];
193
+ return [4 /*yield*/, datasource.readGroup(key)];
194
+ case 31:
195
+ parsed = _e.sent();
196
+ _e.label = 32;
197
+ case 32:
198
+ _e.trys.push([32, 34, , 35]);
199
+ return [4 /*yield*/, groupJoiSchema.validateAsync(parsed)];
200
+ case 33:
201
+ _e.sent();
202
+ return [3 /*break*/, 35];
203
+ case 34:
222
204
  e_5 = _e.sent();
223
205
  console.log(" =>", key);
224
206
  if (e_5 instanceof Joi.ValidationError) {
@@ -228,11 +210,45 @@ function lintProject(projectConfig) {
228
210
  console.log(e_5);
229
211
  }
230
212
  hasError = true;
213
+ return [3 /*break*/, 35];
214
+ case 35:
215
+ _c++;
231
216
  return [3 /*break*/, 30];
232
- case 30:
217
+ case 36: return [4 /*yield*/, datasource.listTests()];
218
+ case 37:
219
+ tests = _e.sent();
220
+ console.log("\nLinting ".concat(tests.length, " tests...\n"));
221
+ testsJoiSchema = (0, testSchema_1.getTestsJoiSchema)(projectConfig, availableFeatureKeys, availableSegmentKeys);
222
+ _d = 0, tests_1 = tests;
223
+ _e.label = 38;
224
+ case 38:
225
+ if (!(_d < tests_1.length)) return [3 /*break*/, 44];
226
+ key = tests_1[_d];
227
+ return [4 /*yield*/, datasource.readTest(key)];
228
+ case 39:
229
+ parsed = _e.sent();
230
+ _e.label = 40;
231
+ case 40:
232
+ _e.trys.push([40, 42, , 43]);
233
+ return [4 /*yield*/, testsJoiSchema.validateAsync(parsed)];
234
+ case 41:
235
+ _e.sent();
236
+ return [3 /*break*/, 43];
237
+ case 42:
238
+ e_6 = _e.sent();
239
+ console.log(" =>", key);
240
+ if (e_6 instanceof Joi.ValidationError) {
241
+ (0, printJoiError_1.printJoiError)(e_6);
242
+ }
243
+ else {
244
+ console.log(e_6);
245
+ }
246
+ hasError = true;
247
+ return [3 /*break*/, 43];
248
+ case 43:
233
249
  _d++;
234
- return [3 /*break*/, 26];
235
- case 31: return [2 /*return*/, hasError];
250
+ return [3 /*break*/, 38];
251
+ case 44: return [2 /*return*/, hasError];
236
252
  }
237
253
  });
238
254
  });
@@ -1 +1 @@
1
- {"version":3,"file":"lintProject.js","sourceRoot":"","sources":["../../src/linter/lintProject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lintProject.js","sourceRoot":"","sources":["../../src/linter/lintProject.ts"],"names":[],"mappings":"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"}
package/lib/restore.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  import { ProjectConfig } from "./config";
2
- export declare function restoreProject(rootDirectoryPath: any, projectConfig: ProjectConfig): void;
2
+ export declare function restoreProject(rootDirectoryPath: any, projectConfig: ProjectConfig): Promise<void>;
package/lib/restore.js CHANGED
@@ -1,21 +1,63 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
39
  exports.restoreProject = void 0;
4
40
  var path = require("path");
5
41
  var child_process_1 = require("child_process");
6
42
  function restoreProject(rootDirectoryPath, projectConfig) {
7
- var relativeStateDirPath = path.relative(rootDirectoryPath, projectConfig.stateDirectoryPath);
8
- var cmd = "git checkout -- ".concat(relativeStateDirPath).concat(path.sep);
9
- try {
10
- (0, child_process_1.execSync)(cmd, {
11
- cwd: rootDirectoryPath,
43
+ return __awaiter(this, void 0, void 0, function () {
44
+ var relativeStateDirPath, cmd;
45
+ return __generator(this, function (_a) {
46
+ relativeStateDirPath = path.relative(rootDirectoryPath, projectConfig.stateDirectoryPath);
47
+ cmd = "git checkout -- ".concat(relativeStateDirPath).concat(path.sep);
48
+ try {
49
+ (0, child_process_1.execSync)(cmd, {
50
+ cwd: rootDirectoryPath,
51
+ });
52
+ console.log("State files restored successfully.");
53
+ }
54
+ catch (e) {
55
+ console.log("error:", e.message);
56
+ throw new Error("Failed to restore state files.");
57
+ }
58
+ return [2 /*return*/];
12
59
  });
13
- console.log("State files restored successfully.");
14
- }
15
- catch (e) {
16
- console.log("error:", e.message);
17
- throw new Error("Failed to restore state files.");
18
- }
60
+ });
19
61
  }
20
62
  exports.restoreProject = restoreProject;
21
63
  //# sourceMappingURL=restore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"restore.js","sourceRoot":"","sources":["../src/restore.ts"],"names":[],"mappings":";;;AAAA,2BAA6B;AAC7B,+CAAyC;AAIzC,SAAgB,cAAc,CAAC,iBAAiB,EAAE,aAA4B;IAC5E,IAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAChG,IAAM,GAAG,GAAG,0BAAmB,oBAAoB,SAAG,IAAI,CAAC,GAAG,CAAE,CAAC;IAEjE,IAAI;QACF,IAAA,wBAAQ,EAAC,GAAG,EAAE;YACZ,GAAG,EAAE,iBAAiB;SACvB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;KACnD;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAEjC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;KACnD;AACH,CAAC;AAfD,wCAeC"}
1
+ {"version":3,"file":"restore.js","sourceRoot":"","sources":["../src/restore.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAA6B;AAC7B,+CAAyC;AAIzC,SAAsB,cAAc,CAAC,iBAAiB,EAAE,aAA4B;;;;YAC5E,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;YAC1F,GAAG,GAAG,0BAAmB,oBAAoB,SAAG,IAAI,CAAC,GAAG,CAAE,CAAC;YAEjE,IAAI;gBACF,IAAA,wBAAQ,EAAC,GAAG,EAAE;oBACZ,GAAG,EAAE,iBAAiB;iBACvB,CAAC,CAAC;gBAEH,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;aACnD;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;gBAEjC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;aACnD;;;;CACF;AAfD,wCAeC"}
@@ -1,2 +1,2 @@
1
1
  import { ProjectConfig } from "../config";
2
- export declare function exportSite(rootDirectoryPath: string, projectConfig: ProjectConfig): boolean;
2
+ export declare function exportSite(rootDirectoryPath: string, projectConfig: ProjectConfig): Promise<boolean>;