@featurevisor/core 1.35.2 → 2.0.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.
Files changed (252) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +0 -6
  3. package/coverage/clover.xml +321 -237
  4. package/coverage/coverage-final.json +8 -8
  5. package/coverage/lcov-report/index.html +77 -47
  6. package/coverage/lcov-report/lib/builder/allocator.js.html +14 -14
  7. package/coverage/lcov-report/lib/builder/index.html +16 -16
  8. package/coverage/lcov-report/lib/builder/revision.js.html +3 -3
  9. package/coverage/lcov-report/lib/builder/traffic.js.html +90 -63
  10. package/coverage/lcov-report/lib/list/index.html +116 -0
  11. package/coverage/lcov-report/lib/{tester → list}/matrix.js.html +90 -66
  12. package/coverage/lcov-report/lib/tester/helpers.js.html +295 -0
  13. package/coverage/lcov-report/lib/tester/index.html +20 -35
  14. package/coverage/lcov-report/src/builder/allocator.ts.html +2 -2
  15. package/coverage/lcov-report/src/builder/index.html +15 -15
  16. package/coverage/lcov-report/src/builder/revision.ts.html +1 -1
  17. package/coverage/lcov-report/src/builder/traffic.ts.html +101 -23
  18. package/coverage/lcov-report/src/list/index.html +116 -0
  19. package/coverage/lcov-report/src/{tester → list}/matrix.ts.html +87 -21
  20. package/coverage/lcov-report/src/tester/helpers.ts.html +313 -0
  21. package/coverage/lcov-report/src/tester/index.html +20 -35
  22. package/coverage/lcov.info +592 -436
  23. package/lib/assess-distribution/index.d.ts +1 -1
  24. package/lib/assess-distribution/index.js +102 -162
  25. package/lib/assess-distribution/index.js.map +1 -1
  26. package/lib/benchmark/index.js +87 -143
  27. package/lib/benchmark/index.js.map +1 -1
  28. package/lib/builder/allocator.d.ts +1 -1
  29. package/lib/builder/allocator.js +12 -12
  30. package/lib/builder/allocator.js.map +1 -1
  31. package/lib/builder/allocator.spec.js +22 -22
  32. package/lib/builder/allocator.spec.js.map +1 -1
  33. package/lib/builder/buildDatafile.d.ts +4 -3
  34. package/lib/builder/buildDatafile.js +311 -388
  35. package/lib/builder/buildDatafile.js.map +1 -1
  36. package/lib/builder/buildProject.d.ts +2 -1
  37. package/lib/builder/buildProject.js +96 -183
  38. package/lib/builder/buildProject.js.map +1 -1
  39. package/lib/builder/convertToV1.d.ts +10 -0
  40. package/lib/builder/convertToV1.js +119 -0
  41. package/lib/builder/convertToV1.js.map +1 -0
  42. package/lib/builder/getFeatureRanges.d.ts +1 -1
  43. package/lib/builder/getFeatureRanges.js +32 -105
  44. package/lib/builder/getFeatureRanges.js.map +1 -1
  45. package/lib/builder/hashes.d.ts +4 -0
  46. package/lib/builder/hashes.js +70 -0
  47. package/lib/builder/hashes.js.map +1 -0
  48. package/lib/builder/revision.js +2 -2
  49. package/lib/builder/revision.js.map +1 -1
  50. package/lib/builder/revision.spec.js +1 -1
  51. package/lib/builder/revision.spec.js.map +1 -1
  52. package/lib/builder/traffic.d.ts +1 -1
  53. package/lib/builder/traffic.js +57 -48
  54. package/lib/builder/traffic.js.map +1 -1
  55. package/lib/builder/traffic.spec.js +14 -14
  56. package/lib/builder/traffic.spec.js.map +1 -1
  57. package/lib/cli/cli.js +60 -129
  58. package/lib/cli/cli.js.map +1 -1
  59. package/lib/cli/plugins.js +14 -16
  60. package/lib/cli/plugins.js.map +1 -1
  61. package/lib/config/parsers.js +1 -1
  62. package/lib/config/parsers.js.map +1 -1
  63. package/lib/config/projectConfig.d.ts +8 -6
  64. package/lib/config/projectConfig.js +31 -72
  65. package/lib/config/projectConfig.js.map +1 -1
  66. package/lib/datasource/adapter.d.ts +1 -1
  67. package/lib/datasource/adapter.js +2 -5
  68. package/lib/datasource/adapter.js.map +1 -1
  69. package/lib/datasource/datasource.d.ts +2 -1
  70. package/lib/datasource/datasource.js +107 -148
  71. package/lib/datasource/datasource.js.map +1 -1
  72. package/lib/datasource/filesystemAdapter.d.ts +1 -1
  73. package/lib/datasource/filesystemAdapter.js +224 -360
  74. package/lib/datasource/filesystemAdapter.js.map +1 -1
  75. package/lib/evaluate/index.d.ts +1 -1
  76. package/lib/evaluate/index.js +120 -188
  77. package/lib/evaluate/index.js.map +1 -1
  78. package/lib/find-duplicate-segments/findDuplicateSegments.d.ts +1 -1
  79. package/lib/find-duplicate-segments/findDuplicateSegments.js +40 -128
  80. package/lib/find-duplicate-segments/findDuplicateSegments.js.map +1 -1
  81. package/lib/find-duplicate-segments/index.js +27 -82
  82. package/lib/find-duplicate-segments/index.js.map +1 -1
  83. package/lib/find-usage/index.d.ts +7 -5
  84. package/lib/find-usage/index.js +333 -507
  85. package/lib/find-usage/index.js.map +1 -1
  86. package/lib/generate-code/index.js +36 -91
  87. package/lib/generate-code/index.js.map +1 -1
  88. package/lib/generate-code/typescript.js +117 -157
  89. package/lib/generate-code/typescript.js.map +1 -1
  90. package/lib/index.d.ts +0 -1
  91. package/lib/index.js +0 -1
  92. package/lib/index.js.map +1 -1
  93. package/lib/info/index.js +45 -133
  94. package/lib/info/index.js.map +1 -1
  95. package/lib/init/index.d.ts +1 -1
  96. package/lib/init/index.js +16 -64
  97. package/lib/init/index.js.map +1 -1
  98. package/lib/linter/attributeSchema.d.ts +21 -6
  99. package/lib/linter/attributeSchema.js +18 -4
  100. package/lib/linter/attributeSchema.js.map +1 -1
  101. package/lib/linter/checkCircularDependency.d.ts +1 -1
  102. package/lib/linter/checkCircularDependency.js +22 -80
  103. package/lib/linter/checkCircularDependency.js.map +1 -1
  104. package/lib/linter/checkPercentageExceedingSlot.d.ts +1 -1
  105. package/lib/linter/checkPercentageExceedingSlot.js +36 -76
  106. package/lib/linter/checkPercentageExceedingSlot.js.map +1 -1
  107. package/lib/linter/conditionSchema.d.ts +1 -1
  108. package/lib/linter/conditionSchema.js +89 -41
  109. package/lib/linter/conditionSchema.js.map +1 -1
  110. package/lib/linter/featureSchema.d.ts +345 -197
  111. package/lib/linter/featureSchema.js +313 -172
  112. package/lib/linter/featureSchema.js.map +1 -1
  113. package/lib/linter/groupSchema.js +6 -6
  114. package/lib/linter/groupSchema.js.map +1 -1
  115. package/lib/linter/lintProject.js +306 -480
  116. package/lib/linter/lintProject.js.map +1 -1
  117. package/lib/linter/printError.js +7 -7
  118. package/lib/linter/printError.js.map +1 -1
  119. package/lib/linter/segmentSchema.js +2 -2
  120. package/lib/linter/segmentSchema.js.map +1 -1
  121. package/lib/linter/testSchema.d.ts +155 -3
  122. package/lib/linter/testSchema.js +47 -17
  123. package/lib/linter/testSchema.js.map +1 -1
  124. package/lib/list/index.d.ts +1 -0
  125. package/lib/list/index.js +349 -517
  126. package/lib/list/index.js.map +1 -1
  127. package/lib/{tester → list}/matrix.d.ts +1 -1
  128. package/lib/{tester → list}/matrix.js +50 -42
  129. package/lib/list/matrix.js.map +1 -0
  130. package/lib/{tester → list}/matrix.spec.js +7 -7
  131. package/lib/list/matrix.spec.js.map +1 -0
  132. package/lib/site/exportSite.js +25 -71
  133. package/lib/site/exportSite.js.map +1 -1
  134. package/lib/site/generateHistory.d.ts +1 -1
  135. package/lib/site/generateHistory.js +26 -82
  136. package/lib/site/generateHistory.js.map +1 -1
  137. package/lib/site/generateSiteSearchIndex.d.ts +1 -1
  138. package/lib/site/generateSiteSearchIndex.js +182 -259
  139. package/lib/site/generateSiteSearchIndex.js.map +1 -1
  140. package/lib/site/getLastModifiedFromHistory.d.ts +1 -1
  141. package/lib/site/getLastModifiedFromHistory.js +2 -2
  142. package/lib/site/getLastModifiedFromHistory.js.map +1 -1
  143. package/lib/site/getOwnerAndRepoFromUrl.js +6 -6
  144. package/lib/site/getOwnerAndRepoFromUrl.js.map +1 -1
  145. package/lib/site/getRelativePaths.js +7 -7
  146. package/lib/site/getRelativePaths.js.map +1 -1
  147. package/lib/site/getRepoDetails.js +20 -20
  148. package/lib/site/getRepoDetails.js.map +1 -1
  149. package/lib/site/index.js +25 -73
  150. package/lib/site/index.js.map +1 -1
  151. package/lib/site/serveSite.js +10 -10
  152. package/lib/site/serveSite.js.map +1 -1
  153. package/lib/tester/helpers.d.ts +2 -0
  154. package/lib/tester/helpers.js +71 -0
  155. package/lib/tester/helpers.js.map +1 -0
  156. package/lib/tester/helpers.spec.js +115 -0
  157. package/lib/tester/helpers.spec.js.map +1 -0
  158. package/lib/tester/index.d.ts +0 -1
  159. package/lib/tester/index.js +0 -1
  160. package/lib/tester/index.js.map +1 -1
  161. package/lib/tester/prettyDuration.js +11 -11
  162. package/lib/tester/prettyDuration.js.map +1 -1
  163. package/lib/tester/printTestResult.d.ts +1 -1
  164. package/lib/tester/printTestResult.js +35 -15
  165. package/lib/tester/printTestResult.js.map +1 -1
  166. package/lib/tester/testFeature.d.ts +4 -2
  167. package/lib/tester/testFeature.js +264 -226
  168. package/lib/tester/testFeature.js.map +1 -1
  169. package/lib/tester/testProject.d.ts +3 -7
  170. package/lib/tester/testProject.js +145 -246
  171. package/lib/tester/testProject.js.map +1 -1
  172. package/lib/tester/testSegment.d.ts +5 -2
  173. package/lib/tester/testSegment.js +65 -102
  174. package/lib/tester/testSegment.js.map +1 -1
  175. package/lib/utils/extractKeys.d.ts +2 -1
  176. package/lib/utils/extractKeys.js +57 -12
  177. package/lib/utils/extractKeys.js.map +1 -1
  178. package/lib/utils/git.d.ts +1 -1
  179. package/lib/utils/git.js +23 -23
  180. package/lib/utils/git.js.map +1 -1
  181. package/lib/utils/pretty.js +2 -4
  182. package/lib/utils/pretty.js.map +1 -1
  183. package/package.json +5 -6
  184. package/src/assess-distribution/index.ts +3 -2
  185. package/src/benchmark/index.ts +3 -3
  186. package/src/builder/allocator.spec.ts +1 -1
  187. package/src/builder/allocator.ts +1 -1
  188. package/src/builder/buildDatafile.ts +161 -124
  189. package/src/builder/buildProject.ts +6 -3
  190. package/src/builder/convertToV1.ts +166 -0
  191. package/src/builder/getFeatureRanges.ts +1 -1
  192. package/src/builder/hashes.ts +109 -0
  193. package/src/builder/traffic.ts +41 -15
  194. package/src/cli/cli.ts +1 -1
  195. package/src/cli/plugins.ts +0 -2
  196. package/src/config/projectConfig.ts +13 -10
  197. package/src/datasource/adapter.ts +1 -1
  198. package/src/datasource/datasource.ts +23 -2
  199. package/src/datasource/filesystemAdapter.ts +11 -12
  200. package/src/evaluate/index.ts +7 -6
  201. package/src/find-duplicate-segments/findDuplicateSegments.ts +1 -1
  202. package/src/find-usage/index.ts +111 -44
  203. package/src/generate-code/index.ts +1 -3
  204. package/src/generate-code/typescript.ts +7 -29
  205. package/src/index.ts +0 -1
  206. package/src/info/index.ts +2 -2
  207. package/src/init/index.ts +2 -2
  208. package/src/linter/attributeSchema.ts +18 -2
  209. package/src/linter/checkCircularDependency.ts +1 -1
  210. package/src/linter/checkPercentageExceedingSlot.ts +28 -8
  211. package/src/linter/conditionSchema.ts +66 -10
  212. package/src/linter/featureSchema.ts +312 -116
  213. package/src/linter/lintProject.ts +9 -4
  214. package/src/linter/testSchema.ts +42 -3
  215. package/src/list/index.ts +18 -30
  216. package/src/{tester → list}/matrix.ts +33 -11
  217. package/src/site/exportSite.ts +2 -4
  218. package/src/site/generateHistory.ts +1 -1
  219. package/src/site/generateSiteSearchIndex.ts +58 -50
  220. package/src/site/getLastModifiedFromHistory.ts +1 -1
  221. package/src/tester/helpers.spec.ts +149 -0
  222. package/src/tester/helpers.ts +76 -0
  223. package/src/tester/index.ts +0 -1
  224. package/src/tester/printTestResult.ts +25 -3
  225. package/src/tester/testFeature.ts +270 -124
  226. package/src/tester/testProject.ts +28 -49
  227. package/src/tester/testSegment.ts +48 -40
  228. package/src/utils/extractKeys.ts +58 -1
  229. package/src/utils/git.ts +1 -1
  230. package/tsconfig.cjs.json +1 -0
  231. package/coverage/lcov-report/lib/tester/checkIfObjectsAreEqual.js.html +0 -151
  232. package/coverage/lcov-report/src/tester/checkIfObjectsAreEqual.ts.html +0 -157
  233. package/lib/restore/index.d.ts +0 -4
  234. package/lib/restore/index.js +0 -91
  235. package/lib/restore/index.js.map +0 -1
  236. package/lib/tester/checkIfArraysAreEqual.d.ts +0 -1
  237. package/lib/tester/checkIfArraysAreEqual.js +0 -18
  238. package/lib/tester/checkIfArraysAreEqual.js.map +0 -1
  239. package/lib/tester/checkIfObjectsAreEqual.d.ts +0 -1
  240. package/lib/tester/checkIfObjectsAreEqual.js +0 -23
  241. package/lib/tester/checkIfObjectsAreEqual.js.map +0 -1
  242. package/lib/tester/checkIfObjectsAreEqual.spec.js +0 -26
  243. package/lib/tester/checkIfObjectsAreEqual.spec.js.map +0 -1
  244. package/lib/tester/matrix.js.map +0 -1
  245. package/lib/tester/matrix.spec.js.map +0 -1
  246. package/src/restore/index.ts +0 -42
  247. package/src/tester/checkIfArraysAreEqual.ts +0 -16
  248. package/src/tester/checkIfObjectsAreEqual.spec.ts +0 -31
  249. package/src/tester/checkIfObjectsAreEqual.ts +0 -24
  250. /package/lib/{tester → list}/matrix.spec.d.ts +0 -0
  251. /package/lib/tester/{checkIfObjectsAreEqual.spec.d.ts → helpers.spec.d.ts} +0 -0
  252. /package/src/{tester → list}/matrix.spec.ts +0 -0
@@ -1,85 +1,45 @@
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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["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
- };
38
2
  Object.defineProperty(exports, "__esModule", { value: true });
39
3
  exports.checkForFeatureExceedingGroupSlotPercentage = checkForFeatureExceedingGroupSlotPercentage;
40
- // @TODO: ideally in future, this check should be done from Feature level,
4
+ // @NOTE: ideally in future, this check should be done from Feature level,
41
5
  // as well as Group level as done here
42
- function checkForFeatureExceedingGroupSlotPercentage(datasource, group, availableFeatureKeys) {
43
- return __awaiter(this, void 0, void 0, function () {
44
- var _i, _a, slot, maxPercentageForRule, featureKey, featureExists, parsedFeature, environmentKeys, _b, environmentKeys_1, environmentKey, environment, rules, _c, rules_1, rule;
45
- return __generator(this, function (_d) {
46
- switch (_d.label) {
47
- case 0:
48
- _i = 0, _a = group.slots;
49
- _d.label = 1;
50
- case 1:
51
- if (!(_i < _a.length)) return [3 /*break*/, 4];
52
- slot = _a[_i];
53
- maxPercentageForRule = slot.percentage;
54
- if (!slot.feature) return [3 /*break*/, 3];
55
- featureKey = slot.feature;
56
- featureExists = availableFeatureKeys.indexOf(featureKey) > -1;
57
- if (!featureExists) {
58
- throw new Error("Unknown feature \"".concat(featureKey, "\""));
59
- }
60
- return [4 /*yield*/, datasource.readFeature(featureKey)];
61
- case 2:
62
- parsedFeature = _d.sent();
63
- environmentKeys = Object.keys(parsedFeature.environments);
64
- for (_b = 0, environmentKeys_1 = environmentKeys; _b < environmentKeys_1.length; _b++) {
65
- environmentKey = environmentKeys_1[_b];
66
- environment = parsedFeature.environments[environmentKey];
67
- rules = environment.rules;
68
- for (_c = 0, rules_1 = rules; _c < rules_1.length; _c++) {
69
- rule = rules_1[_c];
70
- if (rule.percentage > maxPercentageForRule) {
71
- // @TODO: this does not help with same feature belonging to multiple slots. fix that.
72
- 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"));
73
- }
6
+ async function checkForFeatureExceedingGroupSlotPercentage(datasource, group, availableFeatureKeys) {
7
+ for (const slot of group.slots) {
8
+ const maxPercentageForRule = slot.percentage;
9
+ if (slot.feature) {
10
+ const featureKey = slot.feature;
11
+ const featureExists = availableFeatureKeys.indexOf(featureKey) > -1;
12
+ if (!featureExists) {
13
+ throw new Error(`Unknown feature "${featureKey}"`);
14
+ }
15
+ const parsedFeature = await datasource.readFeature(featureKey);
16
+ const hasEnvironments = parsedFeature.rules &&
17
+ !Array.isArray(parsedFeature.rules) &&
18
+ Object.keys(parsedFeature.rules).length > 0;
19
+ if (hasEnvironments && parsedFeature.rules) {
20
+ // with environments
21
+ const environmentKeys = Object.keys(parsedFeature.rules);
22
+ for (const environmentKey of environmentKeys) {
23
+ const rules = parsedFeature.rules[environmentKey];
24
+ for (const rule of rules) {
25
+ if (rule.percentage > maxPercentageForRule) {
26
+ // @NOTE: this does not help with same feature belonging to multiple slots. fix that.
27
+ throw new Error(`Feature ${featureKey}'s rule ${rule.key} in ${environmentKey} has a percentage of ${rule.percentage} which is greater than the maximum percentage of ${maxPercentageForRule} for the slot`);
74
28
  }
75
29
  }
76
- _d.label = 3;
77
- case 3:
78
- _i++;
79
- return [3 /*break*/, 1];
80
- case 4: return [2 /*return*/];
30
+ }
81
31
  }
82
- });
83
- });
32
+ else if (parsedFeature.rules) {
33
+ // no environments
34
+ const rules = parsedFeature.rules;
35
+ for (const rule of rules) {
36
+ if (rule.percentage > maxPercentageForRule) {
37
+ // @NOTE: this does not help with same feature belonging to multiple slots. fix that.
38
+ throw new Error(`Feature ${featureKey}'s rule ${rule.key} has a percentage of ${rule.percentage} which is greater than the maximum percentage of ${maxPercentageForRule} for the slot`);
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
84
44
  }
85
45
  //# sourceMappingURL=checkPercentageExceedingSlot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkPercentageExceedingSlot.js","sourceRoot":"","sources":["../../src/linter/checkPercentageExceedingSlot.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,kGAkCC;AApCD,0EAA0E;AAC1E,sCAAsC;AACtC,SAAsB,2CAA2C,CAC/D,UAAsB,EACtB,KAAY,EACZ,oBAA8B;;;;;;0BAEA,EAAX,KAAA,KAAK,CAAC,KAAK;;;yBAAX,CAAA,cAAW,CAAA;oBAAnB,IAAI;oBACP,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC;yBAEzC,IAAI,CAAC,OAAO,EAAZ,wBAAY;oBACR,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;oBAC1B,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;oBAEpE,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnB,MAAM,IAAI,KAAK,CAAC,4BAAoB,UAAU,OAAG,CAAC,CAAC;oBACrD,CAAC;oBAEqB,qBAAM,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,EAAA;;oBAAxD,aAAa,GAAG,SAAwC;oBAExD,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;oBAChE,WAA4C,EAAf,mCAAe,EAAf,6BAAe,EAAf,IAAe,EAAE,CAAC;wBAApC,cAAc;wBACjB,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;wBACzD,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;wBAEhC,WAAwB,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE,CAAC;4BAAhB,IAAI;4BACb,IAAI,IAAI,CAAC,UAAU,GAAG,oBAAoB,EAAE,CAAC;gCAC3C,qFAAqF;gCACrF,MAAM,IAAI,KAAK,CACb,kBAAW,UAAU,qBAAW,IAAI,CAAC,GAAG,iBAAO,cAAc,kCAAwB,IAAI,CAAC,UAAU,8DAAoD,oBAAoB,kBAAe,CAC5L,CAAC;4BACJ,CAAC;wBACH,CAAC;oBACH,CAAC;;;oBA1Bc,IAAW,CAAA;;;;;;CA6B/B"}
1
+ {"version":3,"file":"checkPercentageExceedingSlot.js","sourceRoot":"","sources":["../../src/linter/checkPercentageExceedingSlot.ts"],"names":[],"mappings":";;AAMA,kGAsDC;AAxDD,0EAA0E;AAC1E,sCAAsC;AAC/B,KAAK,UAAU,2CAA2C,CAC/D,UAAsB,EACtB,KAAY,EACZ,oBAA8B;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC;QAE7C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;YAChC,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAEpE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,oBAAoB,UAAU,GAAG,CAAC,CAAC;YACrD,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAE/D,MAAM,eAAe,GACnB,aAAa,CAAC,KAAK;gBACnB,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAE9C,IAAI,eAAe,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;gBAC3C,oBAAoB;gBACpB,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAEzD,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;oBAC7C,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;oBAElD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,IAAI,IAAI,CAAC,UAAU,GAAG,oBAAoB,EAAE,CAAC;4BAC3C,qFAAqF;4BACrF,MAAM,IAAI,KAAK,CACb,WAAW,UAAU,WAAW,IAAI,CAAC,GAAG,OAAO,cAAc,wBAAwB,IAAI,CAAC,UAAU,oDAAoD,oBAAoB,eAAe,CAC5L,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;gBAC/B,kBAAkB;gBAClB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAe,CAAC;gBAE5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,UAAU,GAAG,oBAAoB,EAAE,CAAC;wBAC3C,qFAAqF;wBACrF,MAAM,IAAI,KAAK,CACb,WAAW,UAAU,WAAW,IAAI,CAAC,GAAG,wBAAwB,IAAI,CAAC,UAAU,oDAAoD,oBAAoB,eAAe,CACvK,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { z } from "zod";
2
2
  import { ProjectConfig } from "../config";
3
- export declare function getConditionsZodSchema(projectConfig: ProjectConfig, availableAttributeKeys: [string, ...string[]]): z.ZodUnion<[any, z.ZodArray<any, "many">]>;
3
+ export declare function getConditionsZodSchema(projectConfig: ProjectConfig, availableAttributeKeys: [string, ...string[]]): z.ZodUnion<[any, z.ZodArray<any, "many">, z.ZodLiteral<"*">]>;
@@ -1,20 +1,18 @@
1
1
  "use strict";
2
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
- if (ar || !(i in from)) {
5
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
- ar[i] = from[i];
7
- }
8
- }
9
- return to.concat(ar || Array.prototype.slice.call(from));
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.getConditionsZodSchema = getConditionsZodSchema;
13
- var zod_1 = require("zod");
14
- var commonOperators = ["equals", "notEquals"];
15
- var numericOperators = ["greaterThan", "greaterThanOrEquals", "lessThan", "lessThanOrEquals"];
16
- var stringOperators = ["contains", "notContains", "startsWith", "endsWith"];
17
- var semverOperators = [
4
+ const zod_1 = require("zod");
5
+ const commonOperators = ["equals", "notEquals"];
6
+ const numericOperators = ["greaterThan", "greaterThanOrEquals", "lessThan", "lessThanOrEquals"];
7
+ const stringOperators = [
8
+ "contains",
9
+ "notContains",
10
+ "startsWith",
11
+ "endsWith",
12
+ "includes",
13
+ "notIncludes",
14
+ ];
15
+ const semverOperators = [
18
16
  "semverEquals",
19
17
  "semverNotEquals",
20
18
  "semverGreaterThan",
@@ -22,25 +20,42 @@ var semverOperators = [
22
20
  "semverLessThan",
23
21
  "semverLessThanOrEquals",
24
22
  ];
25
- var dateOperators = ["before", "after"];
26
- var arrayOperators = ["in", "notIn"];
23
+ const dateOperators = ["before", "after"];
24
+ const arrayOperators = ["in", "notIn"];
25
+ const regexOperators = ["matches", "notMatches"];
26
+ const operatorsWithoutValue = ["exists", "notExists"];
27
27
  function getConditionsZodSchema(projectConfig, availableAttributeKeys) {
28
- var plainConditionZodSchema = zod_1.z
28
+ const plainConditionZodSchema = zod_1.z
29
29
  .object({
30
- attribute: zod_1.z.string().refine(function (value) { return availableAttributeKeys.includes(value); }, function (value) { return ({
31
- message: "Unknown attribute \"".concat(value, "\""),
32
- }); }),
33
- operator: zod_1.z.enum(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], commonOperators, true), numericOperators, true), stringOperators, true), semverOperators, true), dateOperators, true), arrayOperators, true)),
34
- value: zod_1.z.union([
35
- zod_1.z.string(),
36
- zod_1.z.array(zod_1.z.string()),
37
- zod_1.z.number(),
38
- zod_1.z.boolean(),
39
- zod_1.z.date(),
40
- zod_1.z.null(),
30
+ attribute: zod_1.z.string().refine((value) => availableAttributeKeys.includes(value), (value) => ({
31
+ message: `Unknown attribute "${value}"`,
32
+ })),
33
+ operator: zod_1.z.enum([
34
+ ...commonOperators,
35
+ ...numericOperators,
36
+ ...stringOperators,
37
+ ...semverOperators,
38
+ ...dateOperators,
39
+ ...arrayOperators,
40
+ ...regexOperators,
41
+ ...operatorsWithoutValue,
41
42
  ]),
43
+ value: zod_1.z
44
+ .union([zod_1.z.string(), zod_1.z.array(zod_1.z.string()), zod_1.z.number(), zod_1.z.boolean(), zod_1.z.date(), zod_1.z.null()])
45
+ .optional(),
46
+ regexFlags: zod_1.z
47
+ .string()
48
+ .refine((value) => {
49
+ if (typeof value === "undefined") {
50
+ return true;
51
+ }
52
+ return /^[gimsuy]{1,}$/.test(value);
53
+ }, {
54
+ message: `regexFlags must of one or more of these characters: g, i, m, s, u, y`,
55
+ })
56
+ .optional(),
42
57
  })
43
- .superRefine(function (data, context) {
58
+ .superRefine((data, context) => {
44
59
  // common
45
60
  if (commonOperators.includes(data.operator) &&
46
61
  !(data.value === null ||
@@ -51,7 +66,7 @@ function getConditionsZodSchema(projectConfig, availableAttributeKeys) {
51
66
  data.value === null)) {
52
67
  context.addIssue({
53
68
  code: zod_1.z.ZodIssueCode.custom,
54
- message: "when operator is \"".concat(data.operator, "\", value has to be either a string, number, boolean, date or null"),
69
+ message: `when operator is "${data.operator}", value has to be either a string, number, boolean, date or null`,
55
70
  path: ["value"],
56
71
  });
57
72
  }
@@ -59,7 +74,7 @@ function getConditionsZodSchema(projectConfig, availableAttributeKeys) {
59
74
  if (numericOperators.includes(data.operator) && typeof data.value !== "number") {
60
75
  context.addIssue({
61
76
  code: zod_1.z.ZodIssueCode.custom,
62
- message: "when operator is \"".concat(data.operator, "\", value must be a number"),
77
+ message: `when operator is "${data.operator}", value must be a number`,
63
78
  path: ["value"],
64
79
  });
65
80
  }
@@ -67,7 +82,7 @@ function getConditionsZodSchema(projectConfig, availableAttributeKeys) {
67
82
  if (stringOperators.includes(data.operator) && typeof data.value !== "string") {
68
83
  context.addIssue({
69
84
  code: zod_1.z.ZodIssueCode.custom,
70
- message: "when operator is \"".concat(data.operator, "\", value must be a string"),
85
+ message: `when operator is "${data.operator}", value must be a string`,
71
86
  path: ["value"],
72
87
  });
73
88
  }
@@ -75,7 +90,7 @@ function getConditionsZodSchema(projectConfig, availableAttributeKeys) {
75
90
  if (semverOperators.includes(data.operator) && typeof data.value !== "string") {
76
91
  context.addIssue({
77
92
  code: zod_1.z.ZodIssueCode.custom,
78
- message: "when operator is \"".concat(data.operator, "\", value must be a string"),
93
+ message: `when operator is "${data.operator}", value must be a string`,
79
94
  path: ["value"],
80
95
  });
81
96
  }
@@ -83,7 +98,7 @@ function getConditionsZodSchema(projectConfig, availableAttributeKeys) {
83
98
  if (dateOperators.includes(data.operator) && !(data.value instanceof Date)) {
84
99
  context.addIssue({
85
100
  code: zod_1.z.ZodIssueCode.custom,
86
- message: "when operator is \"".concat(data.operator, "\", value must be a date"),
101
+ message: `when operator is "${data.operator}", value must be a date`,
87
102
  path: ["value"],
88
103
  });
89
104
  }
@@ -91,30 +106,63 @@ function getConditionsZodSchema(projectConfig, availableAttributeKeys) {
91
106
  if (arrayOperators.includes(data.operator) && !Array.isArray(data.value)) {
92
107
  context.addIssue({
93
108
  code: zod_1.z.ZodIssueCode.custom,
94
- message: "when operator is \"".concat(data.operator, "\", value must be an array of strings"),
109
+ message: `when operator is "${data.operator}", value must be an array of strings`,
110
+ path: ["value"],
111
+ });
112
+ }
113
+ // regex
114
+ if (regexOperators.includes(data.operator)) {
115
+ if (typeof data.value !== "string") {
116
+ context.addIssue({
117
+ code: zod_1.z.ZodIssueCode.custom,
118
+ message: `when operator is "${data.operator}", value must be a string`,
119
+ path: ["value"],
120
+ });
121
+ }
122
+ }
123
+ else {
124
+ // regex flags are not needed
125
+ if (data.regexFlags) {
126
+ context.addIssue({
127
+ code: zod_1.z.ZodIssueCode.custom,
128
+ message: `when operator is nether "matches" nor "notMatches", regexFlags are not needed`,
129
+ path: ["regexFlags"],
130
+ });
131
+ }
132
+ }
133
+ // operators without value
134
+ if (operatorsWithoutValue.includes(data.operator) && data.value !== undefined) {
135
+ context.addIssue({
136
+ code: zod_1.z.ZodIssueCode.custom,
137
+ message: `when operator is "${data.operator}", value is not needed`,
95
138
  path: ["value"],
96
139
  });
97
140
  }
98
141
  });
99
- var andOrNotConditionZodSchema = zod_1.z.union([
142
+ const andOrNotConditionZodSchema = zod_1.z.union([
100
143
  zod_1.z
101
144
  .object({
102
- and: zod_1.z.array(zod_1.z.lazy(function () { return conditionZodSchema; })),
145
+ and: zod_1.z.array(zod_1.z.lazy(() => conditionZodSchema)),
103
146
  })
104
147
  .strict(),
105
148
  zod_1.z
106
149
  .object({
107
- or: zod_1.z.array(zod_1.z.lazy(function () { return conditionZodSchema; })),
150
+ or: zod_1.z.array(zod_1.z.lazy(() => conditionZodSchema)),
108
151
  })
109
152
  .strict(),
110
153
  zod_1.z
111
154
  .object({
112
- not: zod_1.z.array(zod_1.z.lazy(function () { return conditionZodSchema; })),
155
+ not: zod_1.z.array(zod_1.z.lazy(() => conditionZodSchema)),
113
156
  })
114
157
  .strict(),
115
158
  ]);
116
- var conditionZodSchema = zod_1.z.union([andOrNotConditionZodSchema, plainConditionZodSchema]);
117
- var conditionsZodSchema = zod_1.z.union([conditionZodSchema, zod_1.z.array(conditionZodSchema)]);
159
+ const everyoneZodSchema = zod_1.z.literal("*");
160
+ const conditionZodSchema = zod_1.z.union([andOrNotConditionZodSchema, plainConditionZodSchema]);
161
+ const conditionsZodSchema = zod_1.z.union([
162
+ conditionZodSchema,
163
+ zod_1.z.array(conditionZodSchema),
164
+ everyoneZodSchema,
165
+ ]);
118
166
  return conditionsZodSchema;
119
167
  }
120
168
  //# sourceMappingURL=conditionSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conditionSchema.js","sourceRoot":"","sources":["../../src/linter/conditionSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conditionSchema.js","sourceRoot":"","sources":["../../src/linter/conditionSchema.ts"],"names":[],"mappings":"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"}