@featurevisor/core 1.22.1 → 1.24.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/.eslintcache +1 -1
- package/CHANGELOG.md +22 -0
- package/coverage/clover.xml +2 -2
- package/coverage/lcov-report/index.html +1 -1
- package/coverage/lcov-report/lib/builder/allocator.js.html +1 -1
- package/coverage/lcov-report/lib/builder/index.html +1 -1
- package/coverage/lcov-report/lib/builder/revision.js.html +1 -1
- package/coverage/lcov-report/lib/builder/traffic.js.html +1 -1
- package/coverage/lcov-report/lib/tester/checkIfObjectsAreEqual.js.html +1 -1
- package/coverage/lcov-report/lib/tester/index.html +1 -1
- package/coverage/lcov-report/lib/tester/matrix.js.html +1 -1
- package/coverage/lcov-report/src/builder/allocator.ts.html +1 -1
- package/coverage/lcov-report/src/builder/index.html +1 -1
- package/coverage/lcov-report/src/builder/revision.ts.html +1 -1
- package/coverage/lcov-report/src/builder/traffic.ts.html +1 -1
- package/coverage/lcov-report/src/tester/checkIfObjectsAreEqual.ts.html +1 -1
- package/coverage/lcov-report/src/tester/index.html +1 -1
- package/coverage/lcov-report/src/tester/matrix.ts.html +1 -1
- package/lib/config/projectConfig.d.ts +1 -0
- package/lib/config/projectConfig.js +1 -0
- package/lib/config/projectConfig.js.map +1 -1
- package/lib/info/index.js +42 -24
- package/lib/info/index.js.map +1 -1
- package/lib/linter/featureSchema.js +15 -0
- package/lib/linter/featureSchema.js.map +1 -1
- package/package.json +2 -2
- package/src/config/projectConfig.ts +3 -0
- package/src/info/index.ts +10 -0
- package/src/linter/featureSchema.ts +25 -0
package/.eslintcache
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"/home/runner/work/featurevisor/featurevisor/packages/core/src/assess-distribution/index.ts":"1","/home/runner/work/featurevisor/featurevisor/packages/core/src/benchmark/index.ts":"2","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/allocator.spec.ts":"3","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/allocator.ts":"4","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/buildDatafile.ts":"5","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/buildProject.ts":"6","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/getFeatureRanges.ts":"7","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/index.ts":"8","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/revision.spec.ts":"9","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/revision.ts":"10","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/traffic.spec.ts":"11","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/traffic.ts":"12","/home/runner/work/featurevisor/featurevisor/packages/core/src/config/index.ts":"13","/home/runner/work/featurevisor/featurevisor/packages/core/src/config/parsers.ts":"14","/home/runner/work/featurevisor/featurevisor/packages/core/src/config/projectConfig.ts":"15","/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/adapter.ts":"16","/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/datasource.ts":"17","/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/filesystemAdapter.ts":"18","/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/index.ts":"19","/home/runner/work/featurevisor/featurevisor/packages/core/src/dependencies.ts":"20","/home/runner/work/featurevisor/featurevisor/packages/core/src/evaluate/index.ts":"21","/home/runner/work/featurevisor/featurevisor/packages/core/src/find-duplicate-segments/findDuplicateSegments.ts":"22","/home/runner/work/featurevisor/featurevisor/packages/core/src/find-duplicate-segments/index.ts":"23","/home/runner/work/featurevisor/featurevisor/packages/core/src/find-usage/index.ts":"24","/home/runner/work/featurevisor/featurevisor/packages/core/src/generate-code/index.ts":"25","/home/runner/work/featurevisor/featurevisor/packages/core/src/generate-code/typescript.ts":"26","/home/runner/work/featurevisor/featurevisor/packages/core/src/index.ts":"27","/home/runner/work/featurevisor/featurevisor/packages/core/src/info/index.ts":"28","/home/runner/work/featurevisor/featurevisor/packages/core/src/init/index.ts":"29","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/attributeSchema.ts":"30","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/checkCircularDependency.ts":"31","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/checkPercentageExceedingSlot.ts":"32","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/conditionSchema.ts":"33","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/featureSchema.ts":"34","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/groupSchema.ts":"35","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/index.ts":"36","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/lintProject.ts":"37","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/printError.ts":"38","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/segmentSchema.ts":"39","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/testSchema.ts":"40","/home/runner/work/featurevisor/featurevisor/packages/core/src/restore/index.ts":"41","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/exportSite.ts":"42","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/generateHistory.ts":"43","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/generateSiteSearchIndex.ts":"44","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getLastModifiedFromHistory.ts":"45","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getOwnerAndRepoFromUrl.ts":"46","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getRelativePaths.ts":"47","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getRepoDetails.ts":"48","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/index.ts":"49","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/serveSite.ts":"50","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfArraysAreEqual.ts":"51","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfObjectsAreEqual.spec.ts":"52","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfObjectsAreEqual.ts":"53","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/cliFormat.ts":"54","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/index.ts":"55","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/matrix.spec.ts":"56","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/matrix.ts":"57","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/prettyDuration.ts":"58","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/printTestResult.ts":"59","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testFeature.ts":"60","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testProject.ts":"61","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testSegment.ts":"62","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/extractKeys.ts":"63","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/git.ts":"64","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/index.ts":"65","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/pretty.ts":"66"},{"size":4276,"mtime":1716676379058,"results":"67","hashOfConfig":"68"},{"size":3741,"mtime":1716676379058,"results":"69","hashOfConfig":"68"},{"size":3214,"mtime":1716676379058,"results":"70","hashOfConfig":"68"},{"size":1067,"mtime":1716676379058,"results":"71","hashOfConfig":"68"},{"size":10477,"mtime":1716676379058,"results":"72","hashOfConfig":"68"},{"size":2673,"mtime":1716676379058,"results":"73","hashOfConfig":"68"},{"size":1755,"mtime":1716676379058,"results":"74","hashOfConfig":"68"},{"size":65,"mtime":1716676379058,"results":"75","hashOfConfig":"68"},{"size":688,"mtime":1716676379058,"results":"76","hashOfConfig":"68"},{"size":760,"mtime":1716676379058,"results":"77","hashOfConfig":"68"},{"size":18016,"mtime":1716676379058,"results":"78","hashOfConfig":"68"},{"size":4894,"mtime":1716676379058,"results":"79","hashOfConfig":"68"},{"size":60,"mtime":1716676379058,"results":"80","hashOfConfig":"68"},{"size":1035,"mtime":1716676379058,"results":"81","hashOfConfig":"68"},{"size":4326,"mtime":1716676379058,"results":"82","hashOfConfig":"68"},{"size":1423,"mtime":1716676379058,"results":"83","hashOfConfig":"68"},{"size":5208,"mtime":1716676379058,"results":"84","hashOfConfig":"68"},{"size":10198,"mtime":1716676379058,"results":"85","hashOfConfig":"68"},{"size":94,"mtime":1716676379058,"results":"86","hashOfConfig":"68"},{"size":279,"mtime":1716676379058,"results":"87","hashOfConfig":"68"},{"size":4716,"mtime":1716676379058,"results":"88","hashOfConfig":"68"},{"size":1957,"mtime":1716676379058,"results":"89","hashOfConfig":"68"},{"size":820,"mtime":1716676379058,"results":"90","hashOfConfig":"68"},{"size":9681,"mtime":1716676379058,"results":"91","hashOfConfig":"68"},{"size":1476,"mtime":1716676379058,"results":"92","hashOfConfig":"68"},{"size":6250,"mtime":1716676379058,"results":"93","hashOfConfig":"68"},{"size":468,"mtime":1716676379058,"results":"94","hashOfConfig":"68"},{"size":1359,"mtime":1716676379058,"results":"95","hashOfConfig":"68"},{"size":1308,"mtime":1716676379058,"results":"96","hashOfConfig":"68"},{"size":359,"mtime":1716676379058,"results":"97","hashOfConfig":"68"},{"size":1119,"mtime":1716676379058,"results":"98","hashOfConfig":"68"},{"size":1464,"mtime":1716676379058,"results":"99","hashOfConfig":"68"},{"size":4007,"mtime":1716676379058,"results":"100","hashOfConfig":"68"},{"size":7758,"mtime":1716676379058,"results":"101","hashOfConfig":"68"},{"size":1221,"mtime":1716676379058,"results":"102","hashOfConfig":"68"},{"size":31,"mtime":1716676379058,"results":"103","hashOfConfig":"68"},{"size":9986,"mtime":1716676379058,"results":"104","hashOfConfig":"68"},{"size":982,"mtime":1716676379058,"results":"105","hashOfConfig":"68"},{"size":364,"mtime":1716676379058,"results":"106","hashOfConfig":"68"},{"size":2432,"mtime":1716676379058,"results":"107","hashOfConfig":"68"},{"size":641,"mtime":1716676379058,"results":"108","hashOfConfig":"68"},{"size":1481,"mtime":1716676379058,"results":"109","hashOfConfig":"68"},{"size":1178,"mtime":1716676379058,"results":"110","hashOfConfig":"68"},{"size":6187,"mtime":1716676379058,"results":"111","hashOfConfig":"68"},{"size":516,"mtime":1716676379062,"results":"112","hashOfConfig":"68"},{"size":496,"mtime":1716676379062,"results":"113","hashOfConfig":"68"},{"size":607,"mtime":1716676379062,"results":"114","hashOfConfig":"68"},{"size":1560,"mtime":1716676379062,"results":"115","hashOfConfig":"68"},{"size":59,"mtime":1716676379062,"results":"116","hashOfConfig":"68"},{"size":1681,"mtime":1716676379062,"results":"117","hashOfConfig":"68"},{"size":298,"mtime":1716676379062,"results":"118","hashOfConfig":"68"},{"size":932,"mtime":1716676379062,"results":"119","hashOfConfig":"68"},{"size":468,"mtime":1716676379062,"results":"120","hashOfConfig":"68"},{"size":212,"mtime":1716676379062,"results":"121","hashOfConfig":"68"},{"size":62,"mtime":1716676379062,"results":"122","hashOfConfig":"68"},{"size":1188,"mtime":1716676379062,"results":"123","hashOfConfig":"68"},{"size":5021,"mtime":1716676379062,"results":"124","hashOfConfig":"68"},{"size":516,"mtime":1716676379062,"results":"125","hashOfConfig":"68"},{"size":1691,"mtime":1716676379062,"results":"126","hashOfConfig":"68"},{"size":6627,"mtime":1716676379062,"results":"127","hashOfConfig":"68"},{"size":5631,"mtime":1716676379062,"results":"128","hashOfConfig":"68"},{"size":2328,"mtime":1716676379062,"results":"129","hashOfConfig":"68"},{"size":1993,"mtime":1716676379062,"results":"130","hashOfConfig":"68"},{"size":3641,"mtime":1716676379062,"results":"131","hashOfConfig":"68"},{"size":80,"mtime":1716676379062,"results":"132","hashOfConfig":"68"},{"size":304,"mtime":1716676379062,"results":"133","hashOfConfig":"68"},{"filePath":"134","messages":"135","suppressedMessages":"136","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1prqrsx",{"filePath":"137","messages":"138","suppressedMessages":"139","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"140","messages":"141","suppressedMessages":"142","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"143","messages":"144","suppressedMessages":"145","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"146","messages":"147","suppressedMessages":"148","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"149","messages":"150","suppressedMessages":"151","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"152","messages":"153","suppressedMessages":"154","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"155","messages":"156","suppressedMessages":"157","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"158","messages":"159","suppressedMessages":"160","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"161","messages":"162","suppressedMessages":"163","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"164","messages":"165","suppressedMessages":"166","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"167","messages":"168","suppressedMessages":"169","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"170","messages":"171","suppressedMessages":"172","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"173","messages":"174","suppressedMessages":"175","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"176","messages":"177","suppressedMessages":"178","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"179","messages":"180","suppressedMessages":"181","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"182","messages":"183","suppressedMessages":"184","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"185","messages":"186","suppressedMessages":"187","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"188","messages":"189","suppressedMessages":"190","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"191","messages":"192","suppressedMessages":"193","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"194","messages":"195","suppressedMessages":"196","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"197","messages":"198","suppressedMessages":"199","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"200","messages":"201","suppressedMessages":"202","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"203","messages":"204","suppressedMessages":"205","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"206","messages":"207","suppressedMessages":"208","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"209","messages":"210","suppressedMessages":"211","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"212","messages":"213","suppressedMessages":"214","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"215","messages":"216","suppressedMessages":"217","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"218","messages":"219","suppressedMessages":"220","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"221","messages":"222","suppressedMessages":"223","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"224","messages":"225","suppressedMessages":"226","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"227","messages":"228","suppressedMessages":"229","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"230","messages":"231","suppressedMessages":"232","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"233","messages":"234","suppressedMessages":"235","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"236","messages":"237","suppressedMessages":"238","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"239","messages":"240","suppressedMessages":"241","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"242","messages":"243","suppressedMessages":"244","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"245","messages":"246","suppressedMessages":"247","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"248","messages":"249","suppressedMessages":"250","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"251","messages":"252","suppressedMessages":"253","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"254","messages":"255","suppressedMessages":"256","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"257","messages":"258","suppressedMessages":"259","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"260","messages":"261","suppressedMessages":"262","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"263","messages":"264","suppressedMessages":"265","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"266","messages":"267","suppressedMessages":"268","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"269","messages":"270","suppressedMessages":"271","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"272","messages":"273","suppressedMessages":"274","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"275","messages":"276","suppressedMessages":"277","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"278","messages":"279","suppressedMessages":"280","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"281","messages":"282","suppressedMessages":"283","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"284","messages":"285","suppressedMessages":"286","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"287","messages":"288","suppressedMessages":"289","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"290","messages":"291","suppressedMessages":"292","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"293","messages":"294","suppressedMessages":"295","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"296","messages":"297","suppressedMessages":"298","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"299","messages":"300","suppressedMessages":"301","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"302","messages":"303","suppressedMessages":"304","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"305","messages":"306","suppressedMessages":"307","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"308","messages":"309","suppressedMessages":"310","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"311","messages":"312","suppressedMessages":"313","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"314","messages":"315","suppressedMessages":"316","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"317","messages":"318","suppressedMessages":"319","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"320","messages":"321","suppressedMessages":"322","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"323","messages":"324","suppressedMessages":"325","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"326","messages":"327","suppressedMessages":"328","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"329","messages":"330","suppressedMessages":"331","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/home/runner/work/featurevisor/featurevisor/packages/core/src/assess-distribution/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/benchmark/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/allocator.spec.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/allocator.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/buildDatafile.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/buildProject.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/getFeatureRanges.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/revision.spec.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/revision.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/traffic.spec.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/traffic.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/config/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/config/parsers.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/config/projectConfig.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/adapter.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/datasource.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/filesystemAdapter.ts",[],["332","333"],"/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/dependencies.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/evaluate/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/find-duplicate-segments/findDuplicateSegments.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/find-duplicate-segments/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/find-usage/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/generate-code/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/generate-code/typescript.ts",[],["334"],"/home/runner/work/featurevisor/featurevisor/packages/core/src/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/info/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/init/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/attributeSchema.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/checkCircularDependency.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/checkPercentageExceedingSlot.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/conditionSchema.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/featureSchema.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/groupSchema.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/lintProject.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/printError.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/segmentSchema.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/testSchema.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/restore/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/exportSite.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/generateHistory.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/generateSiteSearchIndex.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getLastModifiedFromHistory.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getOwnerAndRepoFromUrl.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getRelativePaths.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getRepoDetails.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/serveSite.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfArraysAreEqual.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfObjectsAreEqual.spec.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfObjectsAreEqual.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/cliFormat.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/matrix.spec.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/matrix.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/prettyDuration.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/printTestResult.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testFeature.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testProject.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testSegment.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/extractKeys.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/git.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/pretty.ts",[],[],{"ruleId":"335","severity":2,"message":"336","line":22,"column":7,"nodeType":"337","messageId":"338","endLine":22,"endColumn":18,"suppressions":"339"},{"ruleId":"340","severity":2,"message":"341","line":22,"column":21,"nodeType":"342","messageId":"343","endLine":22,"endColumn":81,"fix":"344","suppressions":"345"},{"ruleId":"335","severity":2,"message":"346","line":51,"column":10,"nodeType":"337","messageId":"338","endLine":51,"endColumn":38,"suppressions":"347"},"@typescript-eslint/no-unused-vars","'commitRegex' is assigned a value but never used.","Identifier","unusedVar",["348"],"no-regex-spaces","Spaces are hard to count. Use {3}.","Literal","multipleSpaces",{"range":"349","text":"350"},["351"],"'getFeaturevisorTypeFromValue' is defined but never used.",["352"],{"kind":"353","justification":"354"},[515,518]," {3}",{"kind":"353","justification":"354"},{"kind":"353","justification":"354"},"directive",""]
|
|
1
|
+
[{"/home/runner/work/featurevisor/featurevisor/packages/core/src/assess-distribution/index.ts":"1","/home/runner/work/featurevisor/featurevisor/packages/core/src/benchmark/index.ts":"2","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/allocator.spec.ts":"3","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/allocator.ts":"4","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/buildDatafile.ts":"5","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/buildProject.ts":"6","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/getFeatureRanges.ts":"7","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/index.ts":"8","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/revision.spec.ts":"9","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/revision.ts":"10","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/traffic.spec.ts":"11","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/traffic.ts":"12","/home/runner/work/featurevisor/featurevisor/packages/core/src/config/index.ts":"13","/home/runner/work/featurevisor/featurevisor/packages/core/src/config/parsers.ts":"14","/home/runner/work/featurevisor/featurevisor/packages/core/src/config/projectConfig.ts":"15","/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/adapter.ts":"16","/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/datasource.ts":"17","/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/filesystemAdapter.ts":"18","/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/index.ts":"19","/home/runner/work/featurevisor/featurevisor/packages/core/src/dependencies.ts":"20","/home/runner/work/featurevisor/featurevisor/packages/core/src/evaluate/index.ts":"21","/home/runner/work/featurevisor/featurevisor/packages/core/src/find-duplicate-segments/findDuplicateSegments.ts":"22","/home/runner/work/featurevisor/featurevisor/packages/core/src/find-duplicate-segments/index.ts":"23","/home/runner/work/featurevisor/featurevisor/packages/core/src/find-usage/index.ts":"24","/home/runner/work/featurevisor/featurevisor/packages/core/src/generate-code/index.ts":"25","/home/runner/work/featurevisor/featurevisor/packages/core/src/generate-code/typescript.ts":"26","/home/runner/work/featurevisor/featurevisor/packages/core/src/index.ts":"27","/home/runner/work/featurevisor/featurevisor/packages/core/src/info/index.ts":"28","/home/runner/work/featurevisor/featurevisor/packages/core/src/init/index.ts":"29","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/attributeSchema.ts":"30","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/checkCircularDependency.ts":"31","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/checkPercentageExceedingSlot.ts":"32","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/conditionSchema.ts":"33","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/featureSchema.ts":"34","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/groupSchema.ts":"35","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/index.ts":"36","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/lintProject.ts":"37","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/printError.ts":"38","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/segmentSchema.ts":"39","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/testSchema.ts":"40","/home/runner/work/featurevisor/featurevisor/packages/core/src/restore/index.ts":"41","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/exportSite.ts":"42","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/generateHistory.ts":"43","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/generateSiteSearchIndex.ts":"44","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getLastModifiedFromHistory.ts":"45","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getOwnerAndRepoFromUrl.ts":"46","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getRelativePaths.ts":"47","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getRepoDetails.ts":"48","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/index.ts":"49","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/serveSite.ts":"50","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfArraysAreEqual.ts":"51","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfObjectsAreEqual.spec.ts":"52","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfObjectsAreEqual.ts":"53","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/cliFormat.ts":"54","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/index.ts":"55","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/matrix.spec.ts":"56","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/matrix.ts":"57","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/prettyDuration.ts":"58","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/printTestResult.ts":"59","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testFeature.ts":"60","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testProject.ts":"61","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testSegment.ts":"62","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/extractKeys.ts":"63","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/git.ts":"64","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/index.ts":"65","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/pretty.ts":"66"},{"size":4276,"mtime":1719263807728,"results":"67","hashOfConfig":"68"},{"size":3741,"mtime":1719263807728,"results":"69","hashOfConfig":"68"},{"size":3214,"mtime":1719263807728,"results":"70","hashOfConfig":"68"},{"size":1067,"mtime":1719263807728,"results":"71","hashOfConfig":"68"},{"size":10477,"mtime":1719263807728,"results":"72","hashOfConfig":"68"},{"size":2673,"mtime":1719263807728,"results":"73","hashOfConfig":"68"},{"size":1755,"mtime":1719263807728,"results":"74","hashOfConfig":"68"},{"size":65,"mtime":1719263807728,"results":"75","hashOfConfig":"68"},{"size":688,"mtime":1719263807728,"results":"76","hashOfConfig":"68"},{"size":760,"mtime":1719263807728,"results":"77","hashOfConfig":"68"},{"size":18016,"mtime":1719263807732,"results":"78","hashOfConfig":"68"},{"size":4894,"mtime":1719263807732,"results":"79","hashOfConfig":"68"},{"size":60,"mtime":1719263807732,"results":"80","hashOfConfig":"68"},{"size":1035,"mtime":1719263807732,"results":"81","hashOfConfig":"68"},{"size":4392,"mtime":1719263807732,"results":"82","hashOfConfig":"68"},{"size":1423,"mtime":1719263807732,"results":"83","hashOfConfig":"68"},{"size":5208,"mtime":1719263807732,"results":"84","hashOfConfig":"68"},{"size":10198,"mtime":1719263807732,"results":"85","hashOfConfig":"68"},{"size":94,"mtime":1719263807732,"results":"86","hashOfConfig":"68"},{"size":279,"mtime":1719263807732,"results":"87","hashOfConfig":"68"},{"size":4716,"mtime":1719263807732,"results":"88","hashOfConfig":"68"},{"size":1957,"mtime":1719263807732,"results":"89","hashOfConfig":"68"},{"size":820,"mtime":1719263807732,"results":"90","hashOfConfig":"68"},{"size":9681,"mtime":1719263807732,"results":"91","hashOfConfig":"68"},{"size":1476,"mtime":1719263807732,"results":"92","hashOfConfig":"68"},{"size":6250,"mtime":1719263807732,"results":"93","hashOfConfig":"68"},{"size":468,"mtime":1719263807732,"results":"94","hashOfConfig":"68"},{"size":1646,"mtime":1719263807732,"results":"95","hashOfConfig":"68"},{"size":1308,"mtime":1719263807732,"results":"96","hashOfConfig":"68"},{"size":359,"mtime":1719263807732,"results":"97","hashOfConfig":"68"},{"size":1119,"mtime":1719263807732,"results":"98","hashOfConfig":"68"},{"size":1464,"mtime":1719263807732,"results":"99","hashOfConfig":"68"},{"size":4007,"mtime":1719263807732,"results":"100","hashOfConfig":"68"},{"size":8411,"mtime":1719263807732,"results":"101","hashOfConfig":"68"},{"size":1221,"mtime":1719263807732,"results":"102","hashOfConfig":"68"},{"size":31,"mtime":1719263807732,"results":"103","hashOfConfig":"68"},{"size":9986,"mtime":1719263807732,"results":"104","hashOfConfig":"68"},{"size":982,"mtime":1719263807732,"results":"105","hashOfConfig":"68"},{"size":364,"mtime":1719263807732,"results":"106","hashOfConfig":"68"},{"size":2432,"mtime":1719263807732,"results":"107","hashOfConfig":"68"},{"size":641,"mtime":1719263807732,"results":"108","hashOfConfig":"68"},{"size":1481,"mtime":1719263807732,"results":"109","hashOfConfig":"68"},{"size":1178,"mtime":1719263807732,"results":"110","hashOfConfig":"68"},{"size":6187,"mtime":1719263807732,"results":"111","hashOfConfig":"68"},{"size":516,"mtime":1719263807732,"results":"112","hashOfConfig":"68"},{"size":496,"mtime":1719263807732,"results":"113","hashOfConfig":"68"},{"size":607,"mtime":1719263807732,"results":"114","hashOfConfig":"68"},{"size":1560,"mtime":1719263807732,"results":"115","hashOfConfig":"68"},{"size":59,"mtime":1719263807732,"results":"116","hashOfConfig":"68"},{"size":1681,"mtime":1719263807732,"results":"117","hashOfConfig":"68"},{"size":298,"mtime":1719263807732,"results":"118","hashOfConfig":"68"},{"size":932,"mtime":1719263807732,"results":"119","hashOfConfig":"68"},{"size":468,"mtime":1719263807732,"results":"120","hashOfConfig":"68"},{"size":212,"mtime":1719263807732,"results":"121","hashOfConfig":"68"},{"size":62,"mtime":1719263807732,"results":"122","hashOfConfig":"68"},{"size":1188,"mtime":1719263807732,"results":"123","hashOfConfig":"68"},{"size":5021,"mtime":1719263807732,"results":"124","hashOfConfig":"68"},{"size":516,"mtime":1719263807732,"results":"125","hashOfConfig":"68"},{"size":1691,"mtime":1719263807732,"results":"126","hashOfConfig":"68"},{"size":6627,"mtime":1719263807732,"results":"127","hashOfConfig":"68"},{"size":5631,"mtime":1719263807732,"results":"128","hashOfConfig":"68"},{"size":2328,"mtime":1719263807732,"results":"129","hashOfConfig":"68"},{"size":1993,"mtime":1719263807732,"results":"130","hashOfConfig":"68"},{"size":3641,"mtime":1719263807732,"results":"131","hashOfConfig":"68"},{"size":80,"mtime":1719263807732,"results":"132","hashOfConfig":"68"},{"size":304,"mtime":1719263807732,"results":"133","hashOfConfig":"68"},{"filePath":"134","messages":"135","suppressedMessages":"136","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1phe751",{"filePath":"137","messages":"138","suppressedMessages":"139","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"140","messages":"141","suppressedMessages":"142","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"143","messages":"144","suppressedMessages":"145","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"146","messages":"147","suppressedMessages":"148","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"149","messages":"150","suppressedMessages":"151","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"152","messages":"153","suppressedMessages":"154","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"155","messages":"156","suppressedMessages":"157","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"158","messages":"159","suppressedMessages":"160","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"161","messages":"162","suppressedMessages":"163","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"164","messages":"165","suppressedMessages":"166","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"167","messages":"168","suppressedMessages":"169","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"170","messages":"171","suppressedMessages":"172","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"173","messages":"174","suppressedMessages":"175","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"176","messages":"177","suppressedMessages":"178","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"179","messages":"180","suppressedMessages":"181","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"182","messages":"183","suppressedMessages":"184","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"185","messages":"186","suppressedMessages":"187","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"188","messages":"189","suppressedMessages":"190","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"191","messages":"192","suppressedMessages":"193","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"194","messages":"195","suppressedMessages":"196","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"197","messages":"198","suppressedMessages":"199","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"200","messages":"201","suppressedMessages":"202","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"203","messages":"204","suppressedMessages":"205","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"206","messages":"207","suppressedMessages":"208","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"209","messages":"210","suppressedMessages":"211","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"212","messages":"213","suppressedMessages":"214","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"215","messages":"216","suppressedMessages":"217","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"218","messages":"219","suppressedMessages":"220","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"221","messages":"222","suppressedMessages":"223","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"224","messages":"225","suppressedMessages":"226","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"227","messages":"228","suppressedMessages":"229","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"230","messages":"231","suppressedMessages":"232","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"233","messages":"234","suppressedMessages":"235","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"236","messages":"237","suppressedMessages":"238","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"239","messages":"240","suppressedMessages":"241","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"242","messages":"243","suppressedMessages":"244","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"245","messages":"246","suppressedMessages":"247","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"248","messages":"249","suppressedMessages":"250","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"251","messages":"252","suppressedMessages":"253","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"254","messages":"255","suppressedMessages":"256","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"257","messages":"258","suppressedMessages":"259","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"260","messages":"261","suppressedMessages":"262","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"263","messages":"264","suppressedMessages":"265","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"266","messages":"267","suppressedMessages":"268","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"269","messages":"270","suppressedMessages":"271","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"272","messages":"273","suppressedMessages":"274","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"275","messages":"276","suppressedMessages":"277","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"278","messages":"279","suppressedMessages":"280","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"281","messages":"282","suppressedMessages":"283","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"284","messages":"285","suppressedMessages":"286","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"287","messages":"288","suppressedMessages":"289","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"290","messages":"291","suppressedMessages":"292","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"293","messages":"294","suppressedMessages":"295","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"296","messages":"297","suppressedMessages":"298","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"299","messages":"300","suppressedMessages":"301","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"302","messages":"303","suppressedMessages":"304","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"305","messages":"306","suppressedMessages":"307","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"308","messages":"309","suppressedMessages":"310","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"311","messages":"312","suppressedMessages":"313","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"314","messages":"315","suppressedMessages":"316","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"317","messages":"318","suppressedMessages":"319","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"320","messages":"321","suppressedMessages":"322","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"323","messages":"324","suppressedMessages":"325","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"326","messages":"327","suppressedMessages":"328","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"329","messages":"330","suppressedMessages":"331","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/home/runner/work/featurevisor/featurevisor/packages/core/src/assess-distribution/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/benchmark/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/allocator.spec.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/allocator.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/buildDatafile.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/buildProject.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/getFeatureRanges.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/revision.spec.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/revision.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/traffic.spec.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/traffic.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/config/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/config/parsers.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/config/projectConfig.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/adapter.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/datasource.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/filesystemAdapter.ts",[],["332","333"],"/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/dependencies.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/evaluate/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/find-duplicate-segments/findDuplicateSegments.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/find-duplicate-segments/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/find-usage/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/generate-code/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/generate-code/typescript.ts",[],["334"],"/home/runner/work/featurevisor/featurevisor/packages/core/src/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/info/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/init/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/attributeSchema.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/checkCircularDependency.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/checkPercentageExceedingSlot.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/conditionSchema.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/featureSchema.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/groupSchema.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/lintProject.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/printError.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/segmentSchema.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/testSchema.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/restore/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/exportSite.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/generateHistory.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/generateSiteSearchIndex.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getLastModifiedFromHistory.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getOwnerAndRepoFromUrl.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getRelativePaths.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getRepoDetails.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/site/serveSite.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfArraysAreEqual.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfObjectsAreEqual.spec.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfObjectsAreEqual.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/cliFormat.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/matrix.spec.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/matrix.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/prettyDuration.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/printTestResult.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testFeature.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testProject.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testSegment.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/extractKeys.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/git.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/pretty.ts",[],[],{"ruleId":"335","severity":2,"message":"336","line":22,"column":7,"nodeType":"337","messageId":"338","endLine":22,"endColumn":18,"suppressions":"339"},{"ruleId":"340","severity":2,"message":"341","line":22,"column":21,"nodeType":"342","messageId":"343","endLine":22,"endColumn":81,"fix":"344","suppressions":"345"},{"ruleId":"335","severity":2,"message":"346","line":51,"column":10,"nodeType":"337","messageId":"338","endLine":51,"endColumn":38,"suppressions":"347"},"@typescript-eslint/no-unused-vars","'commitRegex' is assigned a value but never used.","Identifier","unusedVar",["348"],"no-regex-spaces","Spaces are hard to count. Use {3}.","Literal","multipleSpaces",{"range":"349","text":"350"},["351"],"'getFeaturevisorTypeFromValue' is defined but never used.",["352"],{"kind":"353","justification":"354"},[515,518]," {3}",{"kind":"353","justification":"354"},{"kind":"353","justification":"354"},"directive",""]
|
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,28 @@
|
|
|
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
|
+
# [1.24.0](https://github.com/featurevisor/featurevisor/compare/v1.23.0...v1.24.0) (2024-06-24)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* show variables count from CLI ([#310](https://github.com/featurevisor/featurevisor/issues/310)) ([f0f3dc0](https://github.com/featurevisor/featurevisor/commit/f0f3dc003c3040c21e05ad019c37676cfeb9e8fe))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [1.23.0](https://github.com/featurevisor/featurevisor/compare/v1.22.1...v1.23.0) (2024-05-26)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* enforce catch-all rule in features with configuration ([#305](https://github.com/featurevisor/featurevisor/issues/305)) ([bfcd01a](https://github.com/featurevisor/featurevisor/commit/bfcd01abbc61e051a5b05e882a9f3122baf2ba9e))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
6
28
|
## [1.22.1](https://github.com/featurevisor/featurevisor/compare/v1.22.0...v1.22.1) (2024-05-25)
|
|
7
29
|
|
|
8
30
|
|
package/coverage/clover.xml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<coverage generated="
|
|
3
|
-
<project timestamp="
|
|
2
|
+
<coverage generated="1719263936688" clover="3.2.0">
|
|
3
|
+
<project timestamp="1719263936688" name="All files">
|
|
4
4
|
<metrics statements="381" coveredstatements="260" conditionals="193" coveredconditionals="122" methods="54" coveredmethods="37" elements="628" coveredelements="419" complexity="0" loc="381" ncloc="381" packages="4" files="10" classes="10"/>
|
|
5
5
|
<package name="lib.builder">
|
|
6
6
|
<metrics statements="106" coveredstatements="100" conditionals="60" coveredconditionals="50" methods="15" coveredmethods="15"/>
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
147
147
|
Code coverage generated by
|
|
148
148
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
149
|
-
at 2024-
|
|
149
|
+
at 2024-06-24T21:18:56.655Z
|
|
150
150
|
</div>
|
|
151
151
|
<script src="prettify.js"></script>
|
|
152
152
|
<script>
|
|
@@ -184,7 +184,7 @@ exports.getUpdatedAvailableRangesAfterFilling = getUpdatedAvailableRangesAfterFi
|
|
|
184
184
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
185
185
|
Code coverage generated by
|
|
186
186
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
187
|
-
at 2024-
|
|
187
|
+
at 2024-06-24T21:18:56.655Z
|
|
188
188
|
</div>
|
|
189
189
|
<script src="../../prettify.js"></script>
|
|
190
190
|
<script>
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
132
132
|
Code coverage generated by
|
|
133
133
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
134
|
-
at 2024-
|
|
134
|
+
at 2024-06-24T21:18:56.655Z
|
|
135
135
|
</div>
|
|
136
136
|
<script src="../../prettify.js"></script>
|
|
137
137
|
<script>
|
|
@@ -136,7 +136,7 @@ exports.getNextRevision = getNextRevision;
|
|
|
136
136
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
137
137
|
Code coverage generated by
|
|
138
138
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
139
|
-
at 2024-
|
|
139
|
+
at 2024-06-24T21:18:56.655Z
|
|
140
140
|
</div>
|
|
141
141
|
<script src="../../prettify.js"></script>
|
|
142
142
|
<script>
|
|
@@ -454,7 +454,7 @@ exports.getTraffic = getTraffic;
|
|
|
454
454
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
455
455
|
Code coverage generated by
|
|
456
456
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
457
|
-
at 2024-
|
|
457
|
+
at 2024-06-24T21:18:56.655Z
|
|
458
458
|
</div>
|
|
459
459
|
<script src="../../prettify.js"></script>
|
|
460
460
|
<script>
|
|
@@ -139,7 +139,7 @@ exports.checkIfObjectsAreEqual = checkIfObjectsAreEqual;
|
|
|
139
139
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
140
140
|
Code coverage generated by
|
|
141
141
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
142
|
-
at 2024-
|
|
142
|
+
at 2024-06-24T21:18:56.655Z
|
|
143
143
|
</div>
|
|
144
144
|
<script src="../../prettify.js"></script>
|
|
145
145
|
<script>
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
117
117
|
Code coverage generated by
|
|
118
118
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
-
at 2024-
|
|
119
|
+
at 2024-06-24T21:18:56.655Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../../prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -472,7 +472,7 @@ exports.getSegmentAssertionsFromMatrix = getSegmentAssertionsFromMatrix;
|
|
|
472
472
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
473
473
|
Code coverage generated by
|
|
474
474
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
475
|
-
at 2024-
|
|
475
|
+
at 2024-06-24T21:18:56.655Z
|
|
476
476
|
</div>
|
|
477
477
|
<script src="../../prettify.js"></script>
|
|
478
478
|
<script>
|
|
@@ -205,7 +205,7 @@ export function getUpdatedAvailableRangesAfterFilling(
|
|
|
205
205
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
206
206
|
Code coverage generated by
|
|
207
207
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
208
|
-
at 2024-
|
|
208
|
+
at 2024-06-24T21:18:56.655Z
|
|
209
209
|
</div>
|
|
210
210
|
<script src="../../prettify.js"></script>
|
|
211
211
|
<script>
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
132
132
|
Code coverage generated by
|
|
133
133
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
134
|
-
at 2024-
|
|
134
|
+
at 2024-06-24T21:18:56.655Z
|
|
135
135
|
</div>
|
|
136
136
|
<script src="../../prettify.js"></script>
|
|
137
137
|
<script>
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
137
137
|
Code coverage generated by
|
|
138
138
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
139
|
-
at 2024-
|
|
139
|
+
at 2024-06-24T21:18:56.655Z
|
|
140
140
|
</div>
|
|
141
141
|
<script src="../../prettify.js"></script>
|
|
142
142
|
<script>
|
|
@@ -565,7 +565,7 @@ export function getTraffic(
|
|
|
565
565
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
566
566
|
Code coverage generated by
|
|
567
567
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
568
|
-
at 2024-
|
|
568
|
+
at 2024-06-24T21:18:56.655Z
|
|
569
569
|
</div>
|
|
570
570
|
<script src="../../prettify.js"></script>
|
|
571
571
|
<script>
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
143
143
|
Code coverage generated by
|
|
144
144
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
145
|
-
at 2024-
|
|
145
|
+
at 2024-06-24T21:18:56.655Z
|
|
146
146
|
</div>
|
|
147
147
|
<script src="../../prettify.js"></script>
|
|
148
148
|
<script>
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
117
117
|
Code coverage generated by
|
|
118
118
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
-
at 2024-
|
|
119
|
+
at 2024-06-24T21:18:56.655Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../../prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -625,7 +625,7 @@ export function <span class="fstat-no" title="function not covered" >getSegmentA
|
|
|
625
625
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
626
626
|
Code coverage generated by
|
|
627
627
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
628
|
-
at 2024-
|
|
628
|
+
at 2024-06-24T21:18:56.655Z
|
|
629
629
|
</div>
|
|
630
630
|
<script src="../../prettify.js"></script>
|
|
631
631
|
<script>
|
|
@@ -33,6 +33,7 @@ export interface ProjectConfig {
|
|
|
33
33
|
prettyDatafile: boolean;
|
|
34
34
|
stringify: boolean;
|
|
35
35
|
siteExportDirectoryPath: string;
|
|
36
|
+
enforceCatchAllRule?: boolean;
|
|
36
37
|
adapter: any;
|
|
37
38
|
}
|
|
38
39
|
export declare function getProjectConfig(rootDirectoryPath: string): ProjectConfig;
|
|
@@ -40,6 +40,7 @@ function getProjectConfig(rootDirectoryPath) {
|
|
|
40
40
|
stateDirectoryPath: path.join(rootDirectoryPath, exports.STATE_DIRECTORY_NAME),
|
|
41
41
|
outputDirectoryPath: path.join(rootDirectoryPath, exports.OUTPUT_DIRECTORY_NAME),
|
|
42
42
|
siteExportDirectoryPath: path.join(rootDirectoryPath, exports.SITE_EXPORT_DIRECTORY_NAME),
|
|
43
|
+
enforceCatchAllRule: false,
|
|
43
44
|
};
|
|
44
45
|
var configModulePath = path.join(rootDirectoryPath, exports.CONFIG_MODULE_NAME);
|
|
45
46
|
var customConfig = require(configModulePath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectConfig.js","sourceRoot":"","sources":["../../src/config/projectConfig.ts"],"names":[],"mappings":";;;AAAA,2BAA6B;AAI7B,qCAA4C;AAC5C,qEAAoE;AAEvD,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,oBAAoB,GAAG,KAAK,CAAC;AAC7B,QAAA,uBAAuB,GAAG,KAAK,CAAC;AAEhC,QAAA,cAAc,GAAW,KAAK,CAAC;AAE/B,QAAA,cAAc,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"projectConfig.js","sourceRoot":"","sources":["../../src/config/projectConfig.ts"],"names":[],"mappings":"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"}
|
package/lib/info/index.js
CHANGED
|
@@ -40,49 +40,67 @@ exports.showProjectInfo = void 0;
|
|
|
40
40
|
var matrix_1 = require("../tester/matrix");
|
|
41
41
|
function showProjectInfo(deps) {
|
|
42
42
|
return __awaiter(this, void 0, void 0, function () {
|
|
43
|
-
var datasource, revision, attributes, segments, features, groups, tests, assertionsCount,
|
|
44
|
-
return __generator(this, function (
|
|
45
|
-
switch (
|
|
43
|
+
var datasource, revision, attributes, segments, features, groups, variablesCount, _i, features_1, featureKey, feature, tests, assertionsCount, _a, tests_1, test_1, testSpec, _b, _c, assertion, combinations;
|
|
44
|
+
return __generator(this, function (_d) {
|
|
45
|
+
switch (_d.label) {
|
|
46
46
|
case 0:
|
|
47
47
|
datasource = deps.datasource;
|
|
48
48
|
console.log("\nProject info:\n");
|
|
49
49
|
return [4 /*yield*/, datasource.readRevision()];
|
|
50
50
|
case 1:
|
|
51
|
-
revision =
|
|
51
|
+
revision = _d.sent();
|
|
52
52
|
console.log(" - Revision: ", revision);
|
|
53
53
|
console.log("");
|
|
54
54
|
return [4 /*yield*/, datasource.listAttributes()];
|
|
55
55
|
case 2:
|
|
56
|
-
attributes =
|
|
56
|
+
attributes = _d.sent();
|
|
57
57
|
return [4 /*yield*/, datasource.listSegments()];
|
|
58
58
|
case 3:
|
|
59
|
-
segments =
|
|
59
|
+
segments = _d.sent();
|
|
60
60
|
return [4 /*yield*/, datasource.listFeatures()];
|
|
61
61
|
case 4:
|
|
62
|
-
features =
|
|
62
|
+
features = _d.sent();
|
|
63
63
|
return [4 /*yield*/, datasource.listGroups()];
|
|
64
64
|
case 5:
|
|
65
|
-
groups =
|
|
65
|
+
groups = _d.sent();
|
|
66
|
+
variablesCount = 0;
|
|
67
|
+
_i = 0, features_1 = features;
|
|
68
|
+
_d.label = 6;
|
|
69
|
+
case 6:
|
|
70
|
+
if (!(_i < features_1.length)) return [3 /*break*/, 9];
|
|
71
|
+
featureKey = features_1[_i];
|
|
72
|
+
return [4 /*yield*/, datasource.readFeature(featureKey)];
|
|
73
|
+
case 7:
|
|
74
|
+
feature = _d.sent();
|
|
75
|
+
if (feature.variablesSchema) {
|
|
76
|
+
variablesCount += feature.variablesSchema.length;
|
|
77
|
+
}
|
|
78
|
+
_d.label = 8;
|
|
79
|
+
case 8:
|
|
80
|
+
_i++;
|
|
81
|
+
return [3 /*break*/, 6];
|
|
82
|
+
case 9:
|
|
66
83
|
console.log(" - Total attributes: ", attributes.length);
|
|
67
84
|
console.log(" - Total segments: ", segments.length);
|
|
68
85
|
console.log(" - Total features: ", features.length);
|
|
86
|
+
console.log(" - Total variables: ", variablesCount);
|
|
69
87
|
console.log(" - Total groups: ", groups.length);
|
|
70
88
|
console.log("");
|
|
71
89
|
return [4 /*yield*/, datasource.listTests()];
|
|
72
|
-
case
|
|
73
|
-
tests =
|
|
90
|
+
case 10:
|
|
91
|
+
tests = _d.sent();
|
|
74
92
|
console.log(" - Total test specs: ", tests.length);
|
|
75
93
|
assertionsCount = 0;
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
case
|
|
79
|
-
if (!(
|
|
80
|
-
test_1 = tests_1[
|
|
94
|
+
_a = 0, tests_1 = tests;
|
|
95
|
+
_d.label = 11;
|
|
96
|
+
case 11:
|
|
97
|
+
if (!(_a < tests_1.length)) return [3 /*break*/, 14];
|
|
98
|
+
test_1 = tests_1[_a];
|
|
81
99
|
return [4 /*yield*/, datasource.readTest(test_1)];
|
|
82
|
-
case
|
|
83
|
-
testSpec =
|
|
84
|
-
for (
|
|
85
|
-
assertion = _b
|
|
100
|
+
case 12:
|
|
101
|
+
testSpec = _d.sent();
|
|
102
|
+
for (_b = 0, _c = testSpec.assertions; _b < _c.length; _b++) {
|
|
103
|
+
assertion = _c[_b];
|
|
86
104
|
if (assertion.matrix) {
|
|
87
105
|
combinations = (0, matrix_1.getMatrixCombinations)(assertion.matrix);
|
|
88
106
|
assertionsCount += combinations.length;
|
|
@@ -91,11 +109,11 @@ function showProjectInfo(deps) {
|
|
|
91
109
|
assertionsCount += 1;
|
|
92
110
|
}
|
|
93
111
|
}
|
|
94
|
-
|
|
95
|
-
case
|
|
96
|
-
|
|
97
|
-
return [3 /*break*/,
|
|
98
|
-
case
|
|
112
|
+
_d.label = 13;
|
|
113
|
+
case 13:
|
|
114
|
+
_a++;
|
|
115
|
+
return [3 /*break*/, 11];
|
|
116
|
+
case 14:
|
|
99
117
|
console.log(" - Total assertions: ", assertionsCount);
|
|
100
118
|
return [2 /*return*/];
|
|
101
119
|
}
|
package/lib/info/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/info/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAAyD;AAEzD,SAAsB,eAAe,CAAC,IAAkB;;;;;;oBAC9C,UAAU,GAAK,IAAI,WAAT,CAAU;oBAE5B,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;oBAEhB,qBAAM,UAAU,CAAC,YAAY,EAAE,EAAA;;oBAA1C,QAAQ,GAAG,SAA+B;oBAChD,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;oBAEhD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAEG,qBAAM,UAAU,CAAC,cAAc,EAAE,EAAA;;oBAA9C,UAAU,GAAG,SAAiC;oBACnC,qBAAM,UAAU,CAAC,YAAY,EAAE,EAAA;;oBAA1C,QAAQ,GAAG,SAA+B;oBAC/B,qBAAM,UAAU,CAAC,YAAY,EAAE,EAAA;;oBAA1C,QAAQ,GAAG,SAA+B;oBACjC,qBAAM,UAAU,CAAC,UAAU,EAAE,EAAA;;oBAAtC,MAAM,GAAG,SAA6B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/info/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAAyD;AAEzD,SAAsB,eAAe,CAAC,IAAkB;;;;;;oBAC9C,UAAU,GAAK,IAAI,WAAT,CAAU;oBAE5B,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;oBAEhB,qBAAM,UAAU,CAAC,YAAY,EAAE,EAAA;;oBAA1C,QAAQ,GAAG,SAA+B;oBAChD,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;oBAEhD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAEG,qBAAM,UAAU,CAAC,cAAc,EAAE,EAAA;;oBAA9C,UAAU,GAAG,SAAiC;oBACnC,qBAAM,UAAU,CAAC,YAAY,EAAE,EAAA;;oBAA1C,QAAQ,GAAG,SAA+B;oBAC/B,qBAAM,UAAU,CAAC,YAAY,EAAE,EAAA;;oBAA1C,QAAQ,GAAG,SAA+B;oBACjC,qBAAM,UAAU,CAAC,UAAU,EAAE,EAAA;;oBAAtC,MAAM,GAAG,SAA6B;oBAExC,cAAc,GAAG,CAAC,CAAC;0BACU,EAAR,qBAAQ;;;yBAAR,CAAA,sBAAQ,CAAA;oBAAtB,UAAU;oBACH,qBAAM,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,EAAA;;oBAAlD,OAAO,GAAG,SAAwC;oBAExD,IAAI,OAAO,CAAC,eAAe,EAAE;wBAC3B,cAAc,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;qBAClD;;;oBALsB,IAAQ,CAAA;;;oBAQjC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;oBACzD,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACvD,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACvD,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC;oBACtD,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oBAErD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAEF,qBAAM,UAAU,CAAC,SAAS,EAAE,EAAA;;oBAApC,KAAK,GAAG,SAA4B;oBAC1C,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;oBAEhD,eAAe,GAAG,CAAC,CAAC;0BACA,EAAL,eAAK;;;yBAAL,CAAA,mBAAK,CAAA;oBAAnB;oBACc,qBAAM,UAAU,CAAC,QAAQ,CAAC,MAAI,CAAC,EAAA;;oBAA1C,QAAQ,GAAG,SAA+B;oBAEhD,WAA2C,EAAnB,KAAA,QAAQ,CAAC,UAAU,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;wBAAlC,SAAS;wBAClB,IAAI,SAAS,CAAC,MAAM,EAAE;4BACd,YAAY,GAAG,IAAA,8BAAqB,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC;4BAC7D,eAAe,IAAI,YAAY,CAAC,MAAM,CAAC;yBACxC;6BAAM;4BACL,eAAe,IAAI,CAAC,CAAC;yBACtB;qBACF;;;oBAVgB,IAAK,CAAA;;;oBAaxB,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,eAAe,CAAC,CAAC;;;;;CACxD;AAlDD,0CAkDC"}
|
|
@@ -64,11 +64,26 @@ function getFeatureZodSchema(projectConfig, conditionsZodSchema, availableAttrib
|
|
|
64
64
|
variables: zod_1.z.record(variableValueZodSchema).optional(),
|
|
65
65
|
})
|
|
66
66
|
.strict())
|
|
67
|
+
// must have at least one rule
|
|
68
|
+
.refine(function (value) { return value.length > 0; }, function () { return ({
|
|
69
|
+
message: "Must have at least one rule",
|
|
70
|
+
}); })
|
|
71
|
+
// duplicate rules
|
|
67
72
|
.refine(function (value) {
|
|
68
73
|
var keys = value.map(function (v) { return v.key; });
|
|
69
74
|
return keys.length === new Set(keys).size;
|
|
70
75
|
}, function (value) { return ({
|
|
71
76
|
message: "Duplicate rule keys found: " + value.map(function (v) { return v.key; }).join(", "),
|
|
77
|
+
}); })
|
|
78
|
+
// enforce catch-all rule
|
|
79
|
+
.refine(function (value) {
|
|
80
|
+
if (!projectConfig.enforceCatchAllRule) {
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
var hasCatchAllAsLastRule = value[value.length - 1].segments === "*";
|
|
84
|
+
return hasCatchAllAsLastRule;
|
|
85
|
+
}, function () { return ({
|
|
86
|
+
message: "Missing catch-all rule with `segments: \"*\"` at the end",
|
|
72
87
|
}); }),
|
|
73
88
|
force: zod_1.z
|
|
74
89
|
.array(zod_1.z.union([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"featureSchema.js","sourceRoot":"","sources":["../../src/linter/featureSchema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"featureSchema.js","sourceRoot":"","sources":["../../src/linter/featureSchema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@featurevisor/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.24.0",
|
|
4
4
|
"description": "Core package of Featurevisor for Node.js usage",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"@types/js-yaml": "^4.0.5",
|
|
58
58
|
"@types/tar": "^6.1.4"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "de3c67ad46b69d7bce44de3a0a00450625561964"
|
|
61
61
|
}
|
|
@@ -44,6 +44,7 @@ export interface ProjectConfig {
|
|
|
44
44
|
prettyDatafile: boolean;
|
|
45
45
|
stringify: boolean;
|
|
46
46
|
siteExportDirectoryPath: string;
|
|
47
|
+
enforceCatchAllRule?: boolean;
|
|
47
48
|
adapter: any; // @TODO: type this properly later
|
|
48
49
|
}
|
|
49
50
|
|
|
@@ -70,6 +71,8 @@ export function getProjectConfig(rootDirectoryPath: string): ProjectConfig {
|
|
|
70
71
|
stateDirectoryPath: path.join(rootDirectoryPath, STATE_DIRECTORY_NAME),
|
|
71
72
|
outputDirectoryPath: path.join(rootDirectoryPath, OUTPUT_DIRECTORY_NAME),
|
|
72
73
|
siteExportDirectoryPath: path.join(rootDirectoryPath, SITE_EXPORT_DIRECTORY_NAME),
|
|
74
|
+
|
|
75
|
+
enforceCatchAllRule: false,
|
|
73
76
|
};
|
|
74
77
|
|
|
75
78
|
const configModulePath = path.join(rootDirectoryPath, CONFIG_MODULE_NAME);
|
package/src/info/index.ts
CHANGED
|
@@ -16,9 +16,19 @@ export async function showProjectInfo(deps: Dependencies) {
|
|
|
16
16
|
const features = await datasource.listFeatures();
|
|
17
17
|
const groups = await datasource.listGroups();
|
|
18
18
|
|
|
19
|
+
let variablesCount = 0;
|
|
20
|
+
for (const featureKey of features) {
|
|
21
|
+
const feature = await datasource.readFeature(featureKey);
|
|
22
|
+
|
|
23
|
+
if (feature.variablesSchema) {
|
|
24
|
+
variablesCount += feature.variablesSchema.length;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
19
28
|
console.log(" - Total attributes: ", attributes.length);
|
|
20
29
|
console.log(" - Total segments: ", segments.length);
|
|
21
30
|
console.log(" - Total features: ", features.length);
|
|
31
|
+
console.log(" - Total variables: ", variablesCount);
|
|
22
32
|
console.log(" - Total groups: ", groups.length);
|
|
23
33
|
|
|
24
34
|
console.log("");
|
|
@@ -87,6 +87,16 @@ export function getFeatureZodSchema(
|
|
|
87
87
|
})
|
|
88
88
|
.strict(),
|
|
89
89
|
)
|
|
90
|
+
|
|
91
|
+
// must have at least one rule
|
|
92
|
+
.refine(
|
|
93
|
+
(value) => value.length > 0,
|
|
94
|
+
() => ({
|
|
95
|
+
message: "Must have at least one rule",
|
|
96
|
+
}),
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
// duplicate rules
|
|
90
100
|
.refine(
|
|
91
101
|
(value) => {
|
|
92
102
|
const keys = value.map((v) => v.key);
|
|
@@ -95,6 +105,21 @@ export function getFeatureZodSchema(
|
|
|
95
105
|
(value) => ({
|
|
96
106
|
message: "Duplicate rule keys found: " + value.map((v) => v.key).join(", "),
|
|
97
107
|
}),
|
|
108
|
+
)
|
|
109
|
+
|
|
110
|
+
// enforce catch-all rule
|
|
111
|
+
.refine(
|
|
112
|
+
(value) => {
|
|
113
|
+
if (!projectConfig.enforceCatchAllRule) {
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
const hasCatchAllAsLastRule = value[value.length - 1].segments === "*";
|
|
118
|
+
return hasCatchAllAsLastRule;
|
|
119
|
+
},
|
|
120
|
+
() => ({
|
|
121
|
+
message: `Missing catch-all rule with \`segments: "*"\` at the end`,
|
|
122
|
+
}),
|
|
98
123
|
),
|
|
99
124
|
force: z
|
|
100
125
|
.array(
|