@featurevisor/core 1.2.3 → 1.3.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 CHANGED
@@ -1 +1 @@
1
- [{"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/allocator.spec.ts":"1","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/allocator.ts":"2","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/buildDatafile.ts":"3","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/buildProject.ts":"4","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/getFeatureRanges.ts":"5","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/index.ts":"6","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/traffic.spec.ts":"7","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/traffic.ts":"8","/home/runner/work/featurevisor/featurevisor/packages/core/src/config/index.ts":"9","/home/runner/work/featurevisor/featurevisor/packages/core/src/config/parsers.ts":"10","/home/runner/work/featurevisor/featurevisor/packages/core/src/config/projectConfig.ts":"11","/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/adapter.ts":"12","/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/datasource.ts":"13","/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/filesystemAdapter.ts":"14","/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/index.ts":"15","/home/runner/work/featurevisor/featurevisor/packages/core/src/dependencies.ts":"16","/home/runner/work/featurevisor/featurevisor/packages/core/src/find-duplicate-segments/findDuplicateSegments.ts":"17","/home/runner/work/featurevisor/featurevisor/packages/core/src/find-duplicate-segments/index.ts":"18","/home/runner/work/featurevisor/featurevisor/packages/core/src/generate-code/index.ts":"19","/home/runner/work/featurevisor/featurevisor/packages/core/src/generate-code/typescript.ts":"20","/home/runner/work/featurevisor/featurevisor/packages/core/src/index.ts":"21","/home/runner/work/featurevisor/featurevisor/packages/core/src/init/index.ts":"22","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/attributeSchema.ts":"23","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/checkCircularDependency.ts":"24","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/conditionSchema.ts":"25","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/featureSchema.ts":"26","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/groupSchema.ts":"27","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/index.ts":"28","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/lintProject.ts":"29","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/printJoiError.ts":"30","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/segmentSchema.ts":"31","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/testSchema.ts":"32","/home/runner/work/featurevisor/featurevisor/packages/core/src/restore/index.ts":"33","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/exportSite.ts":"34","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/generateHistory.ts":"35","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/generateSiteSearchIndex.ts":"36","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getLastModifiedFromHistory.ts":"37","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getOwnerAndRepoFromUrl.ts":"38","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getRelativePaths.ts":"39","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getRepoDetails.ts":"40","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/index.ts":"41","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/serveSite.ts":"42","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfArraysAreEqual.ts":"43","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfObjectsAreEqual.spec.ts":"44","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfObjectsAreEqual.ts":"45","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/cliFormat.ts":"46","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/index.ts":"47","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/matrix.spec.ts":"48","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/matrix.ts":"49","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/prettyDuration.ts":"50","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/printTestResult.ts":"51","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testFeature.ts":"52","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testProject.ts":"53","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testSegment.ts":"54","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/extractKeys.ts":"55","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/git.ts":"56","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/index.ts":"57"},{"size":3214,"mtime":1705597787936,"results":"58","hashOfConfig":"59"},{"size":1014,"mtime":1705597787936,"results":"60","hashOfConfig":"59"},{"size":8883,"mtime":1705597787936,"results":"61","hashOfConfig":"59"},{"size":1359,"mtime":1705597787936,"results":"62","hashOfConfig":"59"},{"size":1755,"mtime":1705597787936,"results":"63","hashOfConfig":"59"},{"size":65,"mtime":1705597787936,"results":"64","hashOfConfig":"59"},{"size":12889,"mtime":1705597787936,"results":"65","hashOfConfig":"59"},{"size":5052,"mtime":1705597787936,"results":"66","hashOfConfig":"59"},{"size":60,"mtime":1705597787936,"results":"67","hashOfConfig":"59"},{"size":1035,"mtime":1705597787936,"results":"68","hashOfConfig":"59"},{"size":3464,"mtime":1705597787936,"results":"69","hashOfConfig":"59"},{"size":1305,"mtime":1705597787936,"results":"70","hashOfConfig":"59"},{"size":5028,"mtime":1705597787936,"results":"71","hashOfConfig":"59"},{"size":9261,"mtime":1705597787940,"results":"72","hashOfConfig":"59"},{"size":94,"mtime":1705597787940,"results":"73","hashOfConfig":"59"},{"size":279,"mtime":1705597787940,"results":"74","hashOfConfig":"59"},{"size":1033,"mtime":1705597787940,"results":"75","hashOfConfig":"59"},{"size":540,"mtime":1705597787940,"results":"76","hashOfConfig":"59"},{"size":1476,"mtime":1705597787940,"results":"77","hashOfConfig":"59"},{"size":6250,"mtime":1705597787940,"results":"78","hashOfConfig":"59"},{"size":318,"mtime":1705597787940,"results":"79","hashOfConfig":"59"},{"size":1308,"mtime":1705597787940,"results":"80","hashOfConfig":"59"},{"size":351,"mtime":1705597787940,"results":"81","hashOfConfig":"59"},{"size":1119,"mtime":1705597787940,"results":"82","hashOfConfig":"59"},{"size":3003,"mtime":1705597787940,"results":"83","hashOfConfig":"59"},{"size":5833,"mtime":1705597787940,"results":"84","hashOfConfig":"59"},{"size":2114,"mtime":1705597787940,"results":"85","hashOfConfig":"59"},{"size":31,"mtime":1705597787940,"results":"86","hashOfConfig":"59"},{"size":4524,"mtime":1705597787940,"results":"87","hashOfConfig":"59"},{"size":323,"mtime":1705597787940,"results":"88","hashOfConfig":"59"},{"size":368,"mtime":1705597787940,"results":"89","hashOfConfig":"59"},{"size":1890,"mtime":1705597787940,"results":"90","hashOfConfig":"59"},{"size":641,"mtime":1705597787940,"results":"91","hashOfConfig":"59"},{"size":1481,"mtime":1705597787940,"results":"92","hashOfConfig":"59"},{"size":1178,"mtime":1705597787940,"results":"93","hashOfConfig":"59"},{"size":6187,"mtime":1705597787940,"results":"94","hashOfConfig":"59"},{"size":516,"mtime":1705597787940,"results":"95","hashOfConfig":"59"},{"size":496,"mtime":1705597787940,"results":"96","hashOfConfig":"59"},{"size":607,"mtime":1705597787940,"results":"97","hashOfConfig":"59"},{"size":1560,"mtime":1705597787940,"results":"98","hashOfConfig":"59"},{"size":59,"mtime":1705597787940,"results":"99","hashOfConfig":"59"},{"size":1681,"mtime":1705597787940,"results":"100","hashOfConfig":"59"},{"size":298,"mtime":1705597787940,"results":"101","hashOfConfig":"59"},{"size":932,"mtime":1705597787940,"results":"102","hashOfConfig":"59"},{"size":468,"mtime":1705597787940,"results":"103","hashOfConfig":"59"},{"size":156,"mtime":1705597787940,"results":"104","hashOfConfig":"59"},{"size":31,"mtime":1705597787940,"results":"105","hashOfConfig":"59"},{"size":1188,"mtime":1705597787940,"results":"106","hashOfConfig":"59"},{"size":5021,"mtime":1705597787940,"results":"107","hashOfConfig":"59"},{"size":516,"mtime":1705597787940,"results":"108","hashOfConfig":"59"},{"size":1691,"mtime":1705597787940,"results":"109","hashOfConfig":"59"},{"size":7060,"mtime":1705597787940,"results":"110","hashOfConfig":"59"},{"size":3900,"mtime":1705597787940,"results":"111","hashOfConfig":"59"},{"size":2273,"mtime":1705597787940,"results":"112","hashOfConfig":"59"},{"size":1993,"mtime":1705597787940,"results":"113","hashOfConfig":"59"},{"size":3641,"mtime":1705597787940,"results":"114","hashOfConfig":"59"},{"size":54,"mtime":1705597787940,"results":"115","hashOfConfig":"59"},{"filePath":"116","messages":"117","suppressedMessages":"118","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"o8ti19",{"filePath":"119","messages":"120","suppressedMessages":"121","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"122","messages":"123","suppressedMessages":"124","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"125","messages":"126","suppressedMessages":"127","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"128","messages":"129","suppressedMessages":"130","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"131","messages":"132","suppressedMessages":"133","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"134","messages":"135","suppressedMessages":"136","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"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},"/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/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",[],["287","288"],"/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/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/generate-code/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/generate-code/typescript.ts",[],["289"],"/home/runner/work/featurevisor/featurevisor/packages/core/src/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/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/printJoiError.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",[],[],{"ruleId":"290","severity":2,"message":"291","line":22,"column":7,"nodeType":"292","messageId":"293","endLine":22,"endColumn":18,"suppressions":"294"},{"ruleId":"295","severity":2,"message":"296","line":22,"column":21,"nodeType":"297","messageId":"298","endLine":22,"endColumn":81,"fix":"299","suppressions":"300"},{"ruleId":"290","severity":2,"message":"301","line":51,"column":10,"nodeType":"292","messageId":"293","endLine":51,"endColumn":38,"suppressions":"302"},"@typescript-eslint/no-unused-vars","'commitRegex' is assigned a value but never used.","Identifier","unusedVar",["303"],"no-regex-spaces","Spaces are hard to count. Use {3}.","Literal","multipleSpaces",{"range":"304","text":"305"},["306"],"'getFeaturevisorTypeFromValue' is defined but never used.",["307"],{"kind":"308","justification":"309"},[515,518]," {3}",{"kind":"308","justification":"309"},{"kind":"308","justification":"309"},"directive",""]
1
+ [{"/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/allocator.spec.ts":"1","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/allocator.ts":"2","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/buildDatafile.ts":"3","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/buildProject.ts":"4","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/getFeatureRanges.ts":"5","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/index.ts":"6","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/traffic.spec.ts":"7","/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/traffic.ts":"8","/home/runner/work/featurevisor/featurevisor/packages/core/src/config/index.ts":"9","/home/runner/work/featurevisor/featurevisor/packages/core/src/config/parsers.ts":"10","/home/runner/work/featurevisor/featurevisor/packages/core/src/config/projectConfig.ts":"11","/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/adapter.ts":"12","/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/datasource.ts":"13","/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/filesystemAdapter.ts":"14","/home/runner/work/featurevisor/featurevisor/packages/core/src/datasource/index.ts":"15","/home/runner/work/featurevisor/featurevisor/packages/core/src/dependencies.ts":"16","/home/runner/work/featurevisor/featurevisor/packages/core/src/find-duplicate-segments/findDuplicateSegments.ts":"17","/home/runner/work/featurevisor/featurevisor/packages/core/src/find-duplicate-segments/index.ts":"18","/home/runner/work/featurevisor/featurevisor/packages/core/src/generate-code/index.ts":"19","/home/runner/work/featurevisor/featurevisor/packages/core/src/generate-code/typescript.ts":"20","/home/runner/work/featurevisor/featurevisor/packages/core/src/index.ts":"21","/home/runner/work/featurevisor/featurevisor/packages/core/src/init/index.ts":"22","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/attributeSchema.ts":"23","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/checkCircularDependency.ts":"24","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/conditionSchema.ts":"25","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/featureSchema.ts":"26","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/groupSchema.ts":"27","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/index.ts":"28","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/lintProject.ts":"29","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/printJoiError.ts":"30","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/segmentSchema.ts":"31","/home/runner/work/featurevisor/featurevisor/packages/core/src/linter/testSchema.ts":"32","/home/runner/work/featurevisor/featurevisor/packages/core/src/restore/index.ts":"33","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/exportSite.ts":"34","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/generateHistory.ts":"35","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/generateSiteSearchIndex.ts":"36","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getLastModifiedFromHistory.ts":"37","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getOwnerAndRepoFromUrl.ts":"38","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getRelativePaths.ts":"39","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/getRepoDetails.ts":"40","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/index.ts":"41","/home/runner/work/featurevisor/featurevisor/packages/core/src/site/serveSite.ts":"42","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfArraysAreEqual.ts":"43","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfObjectsAreEqual.spec.ts":"44","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/checkIfObjectsAreEqual.ts":"45","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/cliFormat.ts":"46","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/index.ts":"47","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/matrix.spec.ts":"48","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/matrix.ts":"49","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/prettyDuration.ts":"50","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/printTestResult.ts":"51","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testFeature.ts":"52","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testProject.ts":"53","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testSegment.ts":"54","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/extractKeys.ts":"55","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/git.ts":"56","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/index.ts":"57"},{"size":3214,"mtime":1706045803775,"results":"58","hashOfConfig":"59"},{"size":1014,"mtime":1706045803775,"results":"60","hashOfConfig":"59"},{"size":9170,"mtime":1706045803775,"results":"61","hashOfConfig":"59"},{"size":1359,"mtime":1706045803775,"results":"62","hashOfConfig":"59"},{"size":1755,"mtime":1706045803775,"results":"63","hashOfConfig":"59"},{"size":65,"mtime":1706045803775,"results":"64","hashOfConfig":"59"},{"size":12889,"mtime":1706045803775,"results":"65","hashOfConfig":"59"},{"size":5052,"mtime":1706045803775,"results":"66","hashOfConfig":"59"},{"size":60,"mtime":1706045803775,"results":"67","hashOfConfig":"59"},{"size":1035,"mtime":1706045803775,"results":"68","hashOfConfig":"59"},{"size":3464,"mtime":1706045803775,"results":"69","hashOfConfig":"59"},{"size":1305,"mtime":1706045803775,"results":"70","hashOfConfig":"59"},{"size":5028,"mtime":1706045803775,"results":"71","hashOfConfig":"59"},{"size":9261,"mtime":1706045803775,"results":"72","hashOfConfig":"59"},{"size":94,"mtime":1706045803775,"results":"73","hashOfConfig":"59"},{"size":279,"mtime":1706045803775,"results":"74","hashOfConfig":"59"},{"size":1033,"mtime":1706045803775,"results":"75","hashOfConfig":"59"},{"size":540,"mtime":1706045803775,"results":"76","hashOfConfig":"59"},{"size":1476,"mtime":1706045803775,"results":"77","hashOfConfig":"59"},{"size":6250,"mtime":1706045803775,"results":"78","hashOfConfig":"59"},{"size":318,"mtime":1706045803775,"results":"79","hashOfConfig":"59"},{"size":1308,"mtime":1706045803775,"results":"80","hashOfConfig":"59"},{"size":351,"mtime":1706045803775,"results":"81","hashOfConfig":"59"},{"size":1119,"mtime":1706045803775,"results":"82","hashOfConfig":"59"},{"size":3003,"mtime":1706045803775,"results":"83","hashOfConfig":"59"},{"size":5938,"mtime":1706045803775,"results":"84","hashOfConfig":"59"},{"size":2114,"mtime":1706045803775,"results":"85","hashOfConfig":"59"},{"size":31,"mtime":1706045803775,"results":"86","hashOfConfig":"59"},{"size":4524,"mtime":1706045803775,"results":"87","hashOfConfig":"59"},{"size":323,"mtime":1706045803775,"results":"88","hashOfConfig":"59"},{"size":368,"mtime":1706045803775,"results":"89","hashOfConfig":"59"},{"size":1890,"mtime":1706045803775,"results":"90","hashOfConfig":"59"},{"size":641,"mtime":1706045803775,"results":"91","hashOfConfig":"59"},{"size":1481,"mtime":1706045803775,"results":"92","hashOfConfig":"59"},{"size":1178,"mtime":1706045803775,"results":"93","hashOfConfig":"59"},{"size":6187,"mtime":1706045803775,"results":"94","hashOfConfig":"59"},{"size":516,"mtime":1706045803775,"results":"95","hashOfConfig":"59"},{"size":496,"mtime":1706045803775,"results":"96","hashOfConfig":"59"},{"size":607,"mtime":1706045803775,"results":"97","hashOfConfig":"59"},{"size":1560,"mtime":1706045803775,"results":"98","hashOfConfig":"59"},{"size":59,"mtime":1706045803775,"results":"99","hashOfConfig":"59"},{"size":1681,"mtime":1706045803775,"results":"100","hashOfConfig":"59"},{"size":298,"mtime":1706045803775,"results":"101","hashOfConfig":"59"},{"size":932,"mtime":1706045803775,"results":"102","hashOfConfig":"59"},{"size":468,"mtime":1706045803775,"results":"103","hashOfConfig":"59"},{"size":156,"mtime":1706045803775,"results":"104","hashOfConfig":"59"},{"size":31,"mtime":1706045803775,"results":"105","hashOfConfig":"59"},{"size":1188,"mtime":1706045803775,"results":"106","hashOfConfig":"59"},{"size":5021,"mtime":1706045803775,"results":"107","hashOfConfig":"59"},{"size":516,"mtime":1706045803775,"results":"108","hashOfConfig":"59"},{"size":1691,"mtime":1706045803775,"results":"109","hashOfConfig":"59"},{"size":7060,"mtime":1706045803775,"results":"110","hashOfConfig":"59"},{"size":4420,"mtime":1706045803775,"results":"111","hashOfConfig":"59"},{"size":2273,"mtime":1706045803775,"results":"112","hashOfConfig":"59"},{"size":1993,"mtime":1706045803775,"results":"113","hashOfConfig":"59"},{"size":3641,"mtime":1706045803775,"results":"114","hashOfConfig":"59"},{"size":54,"mtime":1706045803775,"results":"115","hashOfConfig":"59"},{"filePath":"116","messages":"117","suppressedMessages":"118","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"o8ti19",{"filePath":"119","messages":"120","suppressedMessages":"121","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"122","messages":"123","suppressedMessages":"124","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"125","messages":"126","suppressedMessages":"127","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"128","messages":"129","suppressedMessages":"130","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"131","messages":"132","suppressedMessages":"133","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"134","messages":"135","suppressedMessages":"136","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"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},"/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/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",[],["287","288"],"/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/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/generate-code/index.ts",[],[],"/home/runner/work/featurevisor/featurevisor/packages/core/src/generate-code/typescript.ts",[],["289"],"/home/runner/work/featurevisor/featurevisor/packages/core/src/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/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/printJoiError.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",[],[],{"ruleId":"290","severity":2,"message":"291","line":22,"column":7,"nodeType":"292","messageId":"293","endLine":22,"endColumn":18,"suppressions":"294"},{"ruleId":"295","severity":2,"message":"296","line":22,"column":21,"nodeType":"297","messageId":"298","endLine":22,"endColumn":81,"fix":"299","suppressions":"300"},{"ruleId":"290","severity":2,"message":"301","line":51,"column":10,"nodeType":"292","messageId":"293","endLine":51,"endColumn":38,"suppressions":"302"},"@typescript-eslint/no-unused-vars","'commitRegex' is assigned a value but never used.","Identifier","unusedVar",["303"],"no-regex-spaces","Spaces are hard to count. Use {3}.","Literal","multipleSpaces",{"range":"304","text":"305"},["306"],"'getFeaturevisorTypeFromValue' is defined but never used.",["307"],{"kind":"308","justification":"309"},[515,518]," {3}",{"kind":"308","justification":"309"},{"kind":"308","justification":"309"},"directive",""]
package/CHANGELOG.md CHANGED
@@ -3,6 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.3.0](https://github.com/featurevisor/featurevisor/compare/v1.2.4...v1.3.0) (2024-01-23)
7
+
8
+
9
+ ### Features
10
+
11
+ * allow exposing features with tags + environment combination ([#254](https://github.com/featurevisor/featurevisor/issues/254)) ([1ae08e7](https://github.com/featurevisor/featurevisor/commit/1ae08e71393b620f98f7080aff18033a3e3b7192))
12
+
13
+
14
+
15
+
16
+
17
+ ## [1.2.4](https://github.com/featurevisor/featurevisor/compare/v1.2.3...v1.2.4) (2024-01-20)
18
+
19
+ **Note:** Version bump only for package @featurevisor/core
20
+
21
+
22
+
23
+
24
+
6
25
  ## [1.2.3](https://github.com/featurevisor/featurevisor/compare/v1.2.2...v1.2.3) (2024-01-18)
7
26
 
8
27
  **Note:** Version bump only for package @featurevisor/core
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1705597925445" clover="3.2.0">
3
- <project timestamp="1705597925445" name="All files">
2
+ <coverage generated="1706045939881" clover="3.2.0">
3
+ <project timestamp="1706045939881" name="All files">
4
4
  <metrics statements="355" coveredstatements="236" conditionals="181" coveredconditionals="109" methods="52" coveredmethods="35" elements="588" coveredelements="380" complexity="0" loc="355" ncloc="355" packages="4" files="8" classes="8"/>
5
5
  <package name="lib.builder">
6
6
  <metrics statements="92" coveredstatements="87" conditionals="52" coveredconditionals="42" methods="14" coveredmethods="14"/>
@@ -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-01-18T17:12:05.406Z
149
+ at 2024-01-23T21:38:59.839Z
150
150
  </div>
151
151
  <script src="prettify.js"></script>
152
152
  <script>
@@ -175,7 +175,7 @@ exports.getUpdatedAvailableRangesAfterFilling = getUpdatedAvailableRangesAfterFi
175
175
  <div class='footer quiet pad2 space-top1 center small'>
176
176
  Code coverage generated by
177
177
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
178
- at 2024-01-18T17:12:05.406Z
178
+ at 2024-01-23T21:38:59.839Z
179
179
  </div>
180
180
  <script src="../../prettify.js"></script>
181
181
  <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-01-18T17:12:05.406Z
119
+ at 2024-01-23T21:38:59.839Z
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -460,7 +460,7 @@ exports.getTraffic = getTraffic;
460
460
  <div class='footer quiet pad2 space-top1 center small'>
461
461
  Code coverage generated by
462
462
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
463
- at 2024-01-18T17:12:05.406Z
463
+ at 2024-01-23T21:38:59.839Z
464
464
  </div>
465
465
  <script src="../../prettify.js"></script>
466
466
  <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-01-18T17:12:05.406Z
142
+ at 2024-01-23T21:38:59.839Z
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-01-18T17:12:05.406Z
119
+ at 2024-01-23T21:38:59.839Z
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-01-18T17:12:05.406Z
475
+ at 2024-01-23T21:38:59.839Z
476
476
  </div>
477
477
  <script src="../../prettify.js"></script>
478
478
  <script>
@@ -193,7 +193,7 @@ export function getUpdatedAvailableRangesAfterFilling(
193
193
  <div class='footer quiet pad2 space-top1 center small'>
194
194
  Code coverage generated by
195
195
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
196
- at 2024-01-18T17:12:05.406Z
196
+ at 2024-01-23T21:38:59.839Z
197
197
  </div>
198
198
  <script src="../../prettify.js"></script>
199
199
  <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-01-18T17:12:05.406Z
119
+ at 2024-01-23T21:38:59.839Z
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -574,7 +574,7 @@ export function getTraffic(
574
574
  <div class='footer quiet pad2 space-top1 center small'>
575
575
  Code coverage generated by
576
576
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
577
- at 2024-01-18T17:12:05.406Z
577
+ at 2024-01-23T21:38:59.839Z
578
578
  </div>
579
579
  <script src="../../prettify.js"></script>
580
580
  <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-01-18T17:12:05.406Z
145
+ at 2024-01-23T21:38:59.839Z
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-01-18T17:12:05.406Z
119
+ at 2024-01-23T21:38:59.839Z
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-01-18T17:12:05.406Z
628
+ at 2024-01-23T21:38:59.839Z
629
629
  </div>
630
630
  <script src="../../prettify.js"></script>
631
631
  <script>
@@ -44,7 +44,7 @@ var getFeatureRanges_1 = require("./getFeatureRanges");
44
44
  function buildDatafile(projectConfig, datasource, options, existingState) {
45
45
  var _a;
46
46
  return __awaiter(this, void 0, void 0, function () {
47
- var datafileContent, segmentKeysUsedByTag, attributeKeysUsedByTag, _b, featureRanges, featureIsInGroup, features, featuresDirectory, featureFiles, _i, featureFiles_1, featureKey, parsedFeature, _c, _d, parsedRule, extractedSegmentKeys, feature, segments, segmentsDirectory, segmentFiles, _e, segmentFiles_1, segmentKey, parsedSegment, extractedAttributeKeys, segment, attributes, attributesDirectory, attributeFiles, _f, attributeFiles_1, attributeKey, parsedAttribute, attribute;
47
+ var datafileContent, segmentKeysUsedByTag, attributeKeysUsedByTag, _b, featureRanges, featureIsInGroup, features, featuresDirectory, featureFiles, _i, featureFiles_1, featureKey, parsedFeature, exposeTags, _c, _d, parsedRule, extractedSegmentKeys, feature, segments, segmentsDirectory, segmentFiles, _e, segmentFiles_1, segmentKey, parsedSegment, extractedAttributeKeys, segment, attributes, attributesDirectory, attributeFiles, _f, attributeFiles_1, attributeKey, parsedAttribute, attribute;
48
48
  return __generator(this, function (_g) {
49
49
  switch (_g.label) {
50
50
  case 0:
@@ -86,6 +86,12 @@ function buildDatafile(projectConfig, datasource, options, existingState) {
86
86
  if (parsedFeature.environments[options.environment].expose === false) {
87
87
  return [3 /*break*/, 5];
88
88
  }
89
+ if (Array.isArray(parsedFeature.environments[options.environment].expose)) {
90
+ exposeTags = parsedFeature.environments[options.environment].expose;
91
+ if (options.tag && exposeTags.indexOf(options.tag) === -1) {
92
+ return [3 /*break*/, 5];
93
+ }
94
+ }
89
95
  for (_c = 0, _d = parsedFeature.environments[options.environment].rules; _c < _d.length; _c++) {
90
96
  parsedRule = _d[_c];
91
97
  extractedSegmentKeys = (0, utils_1.extractSegmentKeysFromGroupSegments)(parsedRule.segments);
@@ -1 +1 @@
1
- {"version":3,"file":"buildDatafile.js","sourceRoot":"","sources":["../../src/builder/buildDatafile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uBAAyB;AAuBzB,kCAAmG;AAEnG,qCAAuC;AACvC,uDAAsD;AAUtD,SAAsB,aAAa,CACjC,aAA4B,EAC5B,UAAsB,EACtB,OAAqB,EACrB,aAA4B;;;;;;;oBAEtB,eAAe,GAAoB;wBACvC,aAAa,EAAE,OAAO,CAAC,aAAa;wBACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,UAAU,EAAE,EAAE;wBACd,QAAQ,EAAE,EAAE;wBACZ,QAAQ,EAAE,EAAE;qBACb,CAAC;oBAEI,oBAAoB,GAAG,IAAI,GAAG,EAAc,CAAC;oBAC7C,sBAAsB,GAAG,IAAI,GAAG,EAAgB,CAAC;oBACX,qBAAM,IAAA,mCAAgB,EAAC,aAAa,EAAE,UAAU,CAAC,EAAA;;oBAAvF,KAAsC,SAAiD,EAArF,aAAa,mBAAA,EAAE,gBAAgB,sBAAA;oBAGjC,QAAQ,GAAc,EAAE,CAAC;oBACzB,iBAAiB,GAAG,aAAa,CAAC,qBAAqB,CAAC;yBAE1D,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAhC,wBAAgC;oBACb,qBAAM,UAAU,CAAC,YAAY,EAAE,EAAA;;oBAA9C,YAAY,GAAG,SAA+B;0BAEf,EAAZ,6BAAY;;;yBAAZ,CAAA,0BAAY,CAAA;oBAA1B,UAAU;oBACG,qBAAM,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,EAAA;;oBAAxD,aAAa,GAAG,SAAwC;oBAE9D,IAAI,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE;wBACnC,wBAAS;qBACV;oBAED,IAAI,OAAO,CAAC,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;wBACjE,wBAAS;qBACV;oBAED,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;wBACnE,wBAAS;qBACV;oBAED,IAAI,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,KAAK,EAAE;wBACpE,wBAAS;qBACV;oBAED,WAA8E,EAArD,KAAA,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,EAArD,cAAqD,EAArD,IAAqD,EAAE;wBAArE,UAAU;wBACb,oBAAoB,GAAG,IAAA,2CAAmC,EAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;wBACtF,oBAAoB,CAAC,OAAO,CAAC,UAAC,UAAU,IAAK,OAAA,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAApC,CAAoC,CAAC,CAAC;qBACpF;oBAEK,OAAO,GAAY;wBACvB,GAAG,EAAE,UAAU;wBACf,UAAU,EAAE,aAAa,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;wBAChE,QAAQ,EAAE,aAAa,CAAC,QAAQ,IAAI,aAAa,CAAC,eAAe;wBACjE,QAAQ,EAAE,aAAa,CAAC,QAAQ;wBAChC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;4BACjD,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,SAAoB;gCAChD,IAAM,eAAe,GAAQ;oCAC3B,KAAK,EAAE,SAAS,CAAC,KAAK;oCACtB,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,oIAAoI;iCAC/J,CAAC;gCAEF,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;oCACxB,OAAO,eAAe,CAAC;iCACxB;gCAED,eAAe,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,UAAC,QAAkB;oCACrE,IAAM,cAAc,GAAQ;wCAC1B,GAAG,EAAE,QAAQ,CAAC,GAAG;wCACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;qCACtB,CAAC;oCAEF,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;wCACvB,OAAO,cAAc,CAAC;qCACvB;oCAED,cAAc,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,UAAC,QAA0B;wCAC3E,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,WAAW,EAAE;4CAC9C,IAAM,sBAAsB,GAAG,IAAA,0CAAkC,EAC/D,QAAQ,CAAC,UAAU,CACpB,CAAC;4CACF,sBAAsB,CAAC,OAAO,CAAC,UAAC,YAAY;gDAC1C,OAAA,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC;4CAAxC,CAAwC,CACzC,CAAC;4CAEF,OAAO;gDACL,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;gDAC/C,KAAK,EAAE,QAAQ,CAAC,KAAK;6CACtB,CAAC;yCACH;wCAED,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE;4CAC5C,IAAM,oBAAoB,GAAG,IAAA,2CAAmC,EAC9D,QAAQ,CAAC,QAAyC,CACnD,CAAC;4CACF,oBAAoB,CAAC,OAAO,CAAC,UAAC,UAAU;gDACtC,OAAA,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC;4CAApC,CAAoC,CACrC,CAAC;4CAEF,OAAO;gDACL,QAAQ,EACN,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ;oDACnC,CAAC,CAAC,QAAQ,CAAC,QAAQ;oDACnB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;gDACvC,KAAK,EAAE,QAAQ,CAAC,KAAK;6CACtB,CAAC;yCACH;wCAED,OAAO,QAAQ,CAAC;oCAClB,CAAC,CAAC,CAAC;oCAEH,OAAO,cAAc,CAAC;gCACxB,CAAC,CAAC,CAAC;gCAEH,OAAO,eAAe,CAAC;4BACzB,CAAC,CAAC;4BACJ,CAAC,CAAC,SAAS;wBACb,OAAO,EAAE,IAAA,oBAAU,EACjB,aAAa,CAAC,UAAU,EACxB,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,EACrD,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAClC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CACpC;wBACD,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,SAAS;qBACnD,CAAC;oBAEF,wGAAwG;oBACxG,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG;wBACnC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;4BAC3C,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,CAAY;gCAClC,OAAO;oCACL,KAAK,EAAE,CAAC,CAAC,KAAK;oCACd,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC;iCACtB,CAAC;4BACJ,CAAC,CAAC;4BACJ,CAAC,CAAC,SAAS;wBACb,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,CAAU;4BACtC,OAAO;gCACL,GAAG,EAAE,CAAC,CAAC,GAAG;gCACV,UAAU,EAAE,CAAC,CAAC,UAAU;gCACxB,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,CAAa;oCACzC,OAAO;wCACL,SAAS,EAAE,CAAC,CAAC,SAAS;wCACtB,KAAK,EAAE,CAAC,CAAC,KAAK;qCACf,CAAC;gCACJ,CAAC,CAAC;6BACH,CAAC;wBACJ,CAAC,CAAC;qBACH,CAAC;oBAEF,IAAI,gBAAgB,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;wBACzC,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;qBACjD;oBAED,IAAI,aAAa,CAAC,eAAe,EAAE;wBACjC,OAAO,CAAC,eAAe,GAAG,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAiB;4BACrF,OAAO;gCACL,GAAG,EAAE,CAAC,CAAC,GAAG;gCACV,IAAI,EAAE,CAAC,CAAC,IAAI;gCACZ,YAAY,EAAE,CAAC,CAAC,YAAY;6BAC7B,CAAC;wBACJ,CAAC,CAAC,CAAC;qBACJ;oBAED,IAAI,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE;wBACzD,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;wBAEtE,MAAA,OAAO,CAAC,KAAK,0CAAE,OAAO,CAAC,UAAC,CAAC;4BACvB,IAAI,CAAC,CAAC,QAAQ,EAAE;gCACd,IAAM,oBAAoB,GAAG,IAAA,2CAAmC,EAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gCAC7E,oBAAoB,CAAC,OAAO,CAAC,UAAC,UAAU,IAAK,OAAA,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAApC,CAAoC,CAAC,CAAC;6BACpF;wBACH,CAAC,CAAC,CAAC;qBACJ;oBAED,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;;oBArJA,IAAY,CAAA;;;oBA0JjC,QAAQ,GAAc,EAAE,CAAC;oBACzB,iBAAiB,GAAG,aAAa,CAAC,qBAAqB,CAAC;yBAE1D,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAhC,yBAAgC;oBACb,qBAAM,UAAU,CAAC,YAAY,EAAE,EAAA;;oBAA9C,YAAY,GAAG,SAA+B;0BAEf,EAAZ,6BAAY;;;yBAAZ,CAAA,0BAAY,CAAA;oBAA1B,UAAU;oBACG,qBAAM,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,EAAA;;oBAAxD,aAAa,GAAG,SAAwC;oBAE9D,IAAI,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE;wBACnC,yBAAS;qBACV;oBAED,IAAI,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,EAAE;wBAClD,yBAAS;qBACV;oBAEK,sBAAsB,GAAG,IAAA,0CAAkC,EAC/D,aAAa,CAAC,UAAqC,CACpD,CAAC;oBACF,sBAAsB,CAAC,OAAO,CAAC,UAAC,YAAY,IAAK,OAAA,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAxC,CAAwC,CAAC,CAAC;oBAErF,OAAO,GAAY;wBACvB,GAAG,EAAE,UAAU;wBACf,UAAU,EACR,OAAO,aAAa,CAAC,UAAU,KAAK,QAAQ;4BAC1C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC;4BAC1C,CAAC,CAAC,aAAa,CAAC,UAAU;qBAC/B,CAAC;oBAEF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;;oBAxBA,IAAY,CAAA;;;oBA6BjC,UAAU,GAAgB,EAAE,CAAC;oBAC7B,mBAAmB,GAAG,aAAa,CAAC,uBAAuB,CAAC;yBAE9D,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAlC,yBAAkC;oBACb,qBAAM,UAAU,CAAC,cAAc,EAAE,EAAA;;oBAAlD,cAAc,GAAG,SAAiC;0BAEf,EAAd,iCAAc;;;yBAAd,CAAA,4BAAc,CAAA;oBAA9B,YAAY;oBACG,qBAAM,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,EAAA;;oBAA9D,eAAe,GAAG,SAA4C;oBAEpE,IAAI,eAAe,CAAC,QAAQ,KAAK,IAAI,EAAE;wBACrC,yBAAS;qBACV;oBAED,IAAI,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,KAAK,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;wBAClF,yBAAS;qBACV;oBAEK,SAAS,GAAc;wBAC3B,GAAG,EAAE,YAAY;wBACjB,IAAI,EAAE,eAAe,CAAC,IAAI;qBAC3B,CAAC;oBAEF,IAAI,eAAe,CAAC,OAAO,KAAK,IAAI,EAAE;wBACpC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;qBAC1B;oBAED,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;;oBApBF,IAAc,CAAA;;;oBAwB3C,eAAe,CAAC,UAAU,GAAG,UAAU,CAAC;oBACxC,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBACpC,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAEpC,sBAAO,eAAe,EAAC;;;;CACxB;AAzPD,sCAyPC"}
1
+ {"version":3,"file":"buildDatafile.js","sourceRoot":"","sources":["../../src/builder/buildDatafile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uBAAyB;AAuBzB,kCAAmG;AAEnG,qCAAuC;AACvC,uDAAsD;AAUtD,SAAsB,aAAa,CACjC,aAA4B,EAC5B,UAAsB,EACtB,OAAqB,EACrB,aAA4B;;;;;;;oBAEtB,eAAe,GAAoB;wBACvC,aAAa,EAAE,OAAO,CAAC,aAAa;wBACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,UAAU,EAAE,EAAE;wBACd,QAAQ,EAAE,EAAE;wBACZ,QAAQ,EAAE,EAAE;qBACb,CAAC;oBAEI,oBAAoB,GAAG,IAAI,GAAG,EAAc,CAAC;oBAC7C,sBAAsB,GAAG,IAAI,GAAG,EAAgB,CAAC;oBACX,qBAAM,IAAA,mCAAgB,EAAC,aAAa,EAAE,UAAU,CAAC,EAAA;;oBAAvF,KAAsC,SAAiD,EAArF,aAAa,mBAAA,EAAE,gBAAgB,sBAAA;oBAGjC,QAAQ,GAAc,EAAE,CAAC;oBACzB,iBAAiB,GAAG,aAAa,CAAC,qBAAqB,CAAC;yBAE1D,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAhC,wBAAgC;oBACb,qBAAM,UAAU,CAAC,YAAY,EAAE,EAAA;;oBAA9C,YAAY,GAAG,SAA+B;0BAEf,EAAZ,6BAAY;;;yBAAZ,CAAA,0BAAY,CAAA;oBAA1B,UAAU;oBACG,qBAAM,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,EAAA;;oBAAxD,aAAa,GAAG,SAAwC;oBAE9D,IAAI,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE;wBACnC,wBAAS;qBACV;oBAED,IAAI,OAAO,CAAC,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;wBACjE,wBAAS;qBACV;oBAED,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;wBACnE,wBAAS;qBACV;oBAED,IAAI,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,KAAK,EAAE;wBACpE,wBAAS;qBACV;oBAED,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAAE;wBACnE,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAkB,CAAC;wBAEtF,IAAI,OAAO,CAAC,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;4BACzD,wBAAS;yBACV;qBACF;oBAED,WAA8E,EAArD,KAAA,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,EAArD,cAAqD,EAArD,IAAqD,EAAE;wBAArE,UAAU;wBACb,oBAAoB,GAAG,IAAA,2CAAmC,EAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;wBACtF,oBAAoB,CAAC,OAAO,CAAC,UAAC,UAAU,IAAK,OAAA,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAApC,CAAoC,CAAC,CAAC;qBACpF;oBAEK,OAAO,GAAY;wBACvB,GAAG,EAAE,UAAU;wBACf,UAAU,EAAE,aAAa,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;wBAChE,QAAQ,EAAE,aAAa,CAAC,QAAQ,IAAI,aAAa,CAAC,eAAe;wBACjE,QAAQ,EAAE,aAAa,CAAC,QAAQ;wBAChC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;4BACjD,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,SAAoB;gCAChD,IAAM,eAAe,GAAQ;oCAC3B,KAAK,EAAE,SAAS,CAAC,KAAK;oCACtB,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,oIAAoI;iCAC/J,CAAC;gCAEF,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;oCACxB,OAAO,eAAe,CAAC;iCACxB;gCAED,eAAe,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,UAAC,QAAkB;oCACrE,IAAM,cAAc,GAAQ;wCAC1B,GAAG,EAAE,QAAQ,CAAC,GAAG;wCACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;qCACtB,CAAC;oCAEF,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;wCACvB,OAAO,cAAc,CAAC;qCACvB;oCAED,cAAc,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,UAAC,QAA0B;wCAC3E,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,WAAW,EAAE;4CAC9C,IAAM,sBAAsB,GAAG,IAAA,0CAAkC,EAC/D,QAAQ,CAAC,UAAU,CACpB,CAAC;4CACF,sBAAsB,CAAC,OAAO,CAAC,UAAC,YAAY;gDAC1C,OAAA,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC;4CAAxC,CAAwC,CACzC,CAAC;4CAEF,OAAO;gDACL,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;gDAC/C,KAAK,EAAE,QAAQ,CAAC,KAAK;6CACtB,CAAC;yCACH;wCAED,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE;4CAC5C,IAAM,oBAAoB,GAAG,IAAA,2CAAmC,EAC9D,QAAQ,CAAC,QAAyC,CACnD,CAAC;4CACF,oBAAoB,CAAC,OAAO,CAAC,UAAC,UAAU;gDACtC,OAAA,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC;4CAApC,CAAoC,CACrC,CAAC;4CAEF,OAAO;gDACL,QAAQ,EACN,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ;oDACnC,CAAC,CAAC,QAAQ,CAAC,QAAQ;oDACnB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;gDACvC,KAAK,EAAE,QAAQ,CAAC,KAAK;6CACtB,CAAC;yCACH;wCAED,OAAO,QAAQ,CAAC;oCAClB,CAAC,CAAC,CAAC;oCAEH,OAAO,cAAc,CAAC;gCACxB,CAAC,CAAC,CAAC;gCAEH,OAAO,eAAe,CAAC;4BACzB,CAAC,CAAC;4BACJ,CAAC,CAAC,SAAS;wBACb,OAAO,EAAE,IAAA,oBAAU,EACjB,aAAa,CAAC,UAAU,EACxB,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,EACrD,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAClC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CACpC;wBACD,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,SAAS;qBACnD,CAAC;oBAEF,wGAAwG;oBACxG,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG;wBACnC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;4BAC3C,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,CAAY;gCAClC,OAAO;oCACL,KAAK,EAAE,CAAC,CAAC,KAAK;oCACd,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC;iCACtB,CAAC;4BACJ,CAAC,CAAC;4BACJ,CAAC,CAAC,SAAS;wBACb,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,CAAU;4BACtC,OAAO;gCACL,GAAG,EAAE,CAAC,CAAC,GAAG;gCACV,UAAU,EAAE,CAAC,CAAC,UAAU;gCACxB,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,CAAa;oCACzC,OAAO;wCACL,SAAS,EAAE,CAAC,CAAC,SAAS;wCACtB,KAAK,EAAE,CAAC,CAAC,KAAK;qCACf,CAAC;gCACJ,CAAC,CAAC;6BACH,CAAC;wBACJ,CAAC,CAAC;qBACH,CAAC;oBAEF,IAAI,gBAAgB,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;wBACzC,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;qBACjD;oBAED,IAAI,aAAa,CAAC,eAAe,EAAE;wBACjC,OAAO,CAAC,eAAe,GAAG,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAiB;4BACrF,OAAO;gCACL,GAAG,EAAE,CAAC,CAAC,GAAG;gCACV,IAAI,EAAE,CAAC,CAAC,IAAI;gCACZ,YAAY,EAAE,CAAC,CAAC,YAAY;6BAC7B,CAAC;wBACJ,CAAC,CAAC,CAAC;qBACJ;oBAED,IAAI,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE;wBACzD,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;wBAEtE,MAAA,OAAO,CAAC,KAAK,0CAAE,OAAO,CAAC,UAAC,CAAC;4BACvB,IAAI,CAAC,CAAC,QAAQ,EAAE;gCACd,IAAM,oBAAoB,GAAG,IAAA,2CAAmC,EAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gCAC7E,oBAAoB,CAAC,OAAO,CAAC,UAAC,UAAU,IAAK,OAAA,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAApC,CAAoC,CAAC,CAAC;6BACpF;wBACH,CAAC,CAAC,CAAC;qBACJ;oBAED,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;;oBA7JA,IAAY,CAAA;;;oBAkKjC,QAAQ,GAAc,EAAE,CAAC;oBACzB,iBAAiB,GAAG,aAAa,CAAC,qBAAqB,CAAC;yBAE1D,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAhC,yBAAgC;oBACb,qBAAM,UAAU,CAAC,YAAY,EAAE,EAAA;;oBAA9C,YAAY,GAAG,SAA+B;0BAEf,EAAZ,6BAAY;;;yBAAZ,CAAA,0BAAY,CAAA;oBAA1B,UAAU;oBACG,qBAAM,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,EAAA;;oBAAxD,aAAa,GAAG,SAAwC;oBAE9D,IAAI,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE;wBACnC,yBAAS;qBACV;oBAED,IAAI,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,EAAE;wBAClD,yBAAS;qBACV;oBAEK,sBAAsB,GAAG,IAAA,0CAAkC,EAC/D,aAAa,CAAC,UAAqC,CACpD,CAAC;oBACF,sBAAsB,CAAC,OAAO,CAAC,UAAC,YAAY,IAAK,OAAA,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAxC,CAAwC,CAAC,CAAC;oBAErF,OAAO,GAAY;wBACvB,GAAG,EAAE,UAAU;wBACf,UAAU,EACR,OAAO,aAAa,CAAC,UAAU,KAAK,QAAQ;4BAC1C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC;4BAC1C,CAAC,CAAC,aAAa,CAAC,UAAU;qBAC/B,CAAC;oBAEF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;;oBAxBA,IAAY,CAAA;;;oBA6BjC,UAAU,GAAgB,EAAE,CAAC;oBAC7B,mBAAmB,GAAG,aAAa,CAAC,uBAAuB,CAAC;yBAE9D,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAlC,yBAAkC;oBACb,qBAAM,UAAU,CAAC,cAAc,EAAE,EAAA;;oBAAlD,cAAc,GAAG,SAAiC;0BAEf,EAAd,iCAAc;;;yBAAd,CAAA,4BAAc,CAAA;oBAA9B,YAAY;oBACG,qBAAM,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,EAAA;;oBAA9D,eAAe,GAAG,SAA4C;oBAEpE,IAAI,eAAe,CAAC,QAAQ,KAAK,IAAI,EAAE;wBACrC,yBAAS;qBACV;oBAED,IAAI,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,KAAK,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;wBAClF,yBAAS;qBACV;oBAEK,SAAS,GAAc;wBAC3B,GAAG,EAAE,YAAY;wBACjB,IAAI,EAAE,eAAe,CAAC,IAAI;qBAC3B,CAAC;oBAEF,IAAI,eAAe,CAAC,OAAO,KAAK,IAAI,EAAE;wBACpC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;qBAC1B;oBAED,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;;oBApBF,IAAc,CAAA;;;oBAwB3C,eAAe,CAAC,UAAU,GAAG,UAAU,CAAC;oBACxC,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBACpC,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAEpC,sBAAO,eAAe,EAAC;;;;CACxB;AAjQD,sCAiQC"}
@@ -13,7 +13,7 @@ exports.getFeatureJoiSchema = void 0;
13
13
  var Joi = require("joi");
14
14
  var tagRegex = /^[a-z0-9-]+$/;
15
15
  function getFeatureJoiSchema(projectConfig, conditionsJoiSchema, availableSegmentKeys, availableFeatureKeys) {
16
- var _a, _b, _c;
16
+ var _a, _b, _c, _d;
17
17
  var variationValueJoiSchema = Joi.string().required();
18
18
  var variableValueJoiSchema = Joi.alternatives()
19
19
  .try(
@@ -45,7 +45,7 @@ function getFeatureJoiSchema(projectConfig, conditionsJoiSchema, availableSegmen
45
45
  var groupSegment = Joi.alternatives().try(andOrNotGroupSegment, plainGroupSegment);
46
46
  var groupSegmentsJoiSchema = Joi.alternatives().try(Joi.array().items(groupSegment), groupSegment);
47
47
  var environmentJoiSchema = Joi.object({
48
- expose: Joi.boolean(),
48
+ expose: Joi.alternatives().try(Joi.boolean(), Joi.array().items((_b = Joi.string()).valid.apply(_b, projectConfig.tags))),
49
49
  rules: Joi.array()
50
50
  .items(Joi.object({
51
51
  key: Joi.string().required(),
@@ -85,12 +85,12 @@ function getFeatureJoiSchema(projectConfig, conditionsJoiSchema, availableSegmen
85
85
  }))
86
86
  .required(),
87
87
  required: Joi.array()
88
- .items(Joi.alternatives().try((_b = Joi.string()
88
+ .items(Joi.alternatives().try((_c = Joi.string()
89
89
  .required())
90
- .valid.apply(_b, availableFeatureKeys), Joi.object({
91
- key: (_c = Joi.string()
90
+ .valid.apply(_c, availableFeatureKeys), Joi.object({
91
+ key: (_d = Joi.string()
92
92
  .required())
93
- .valid.apply(_c, availableFeatureKeys),
93
+ .valid.apply(_d, availableFeatureKeys),
94
94
  variation: Joi.string().optional(), // @TODO: can be made stricter
95
95
  })))
96
96
  .optional(),
@@ -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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"}
@@ -5,4 +5,16 @@ export interface TestProjectOptions {
5
5
  verbose?: boolean;
6
6
  showDatafile?: boolean;
7
7
  }
8
+ export interface TestPatterns {
9
+ keyPattern?: RegExp;
10
+ assertionPattern?: RegExp;
11
+ }
12
+ export interface ExecutionResult {
13
+ passed: boolean;
14
+ assertionsCount: {
15
+ passed: number;
16
+ failed: number;
17
+ };
18
+ }
19
+ export declare function executeTest(testFile: string, deps: Dependencies, options: TestProjectOptions, patterns: TestPatterns): Promise<ExecutionResult | undefined>;
8
20
  export declare function testProject(deps: Dependencies, options?: TestProjectOptions): Promise<boolean>;
@@ -36,21 +36,77 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.testProject = void 0;
39
+ exports.testProject = exports.executeTest = void 0;
40
40
  var fs = require("fs");
41
41
  var testSegment_1 = require("./testSegment");
42
42
  var testFeature_1 = require("./testFeature");
43
43
  var cliFormat_1 = require("./cliFormat");
44
44
  var prettyDuration_1 = require("./prettyDuration");
45
45
  var printTestResult_1 = require("./printTestResult");
46
+ function executeTest(testFile, deps, options, patterns) {
47
+ return __awaiter(this, void 0, void 0, function () {
48
+ var datasource, projectConfig, rootDirectoryPath, testFilePath, t, tAsSegment, tAsFeature, key, type, executionResult, testResult;
49
+ return __generator(this, function (_a) {
50
+ switch (_a.label) {
51
+ case 0:
52
+ datasource = deps.datasource, projectConfig = deps.projectConfig, rootDirectoryPath = deps.rootDirectoryPath;
53
+ testFilePath = datasource.getTestSpecName(testFile);
54
+ return [4 /*yield*/, datasource.readTest(testFile)];
55
+ case 1:
56
+ t = _a.sent();
57
+ tAsSegment = t;
58
+ tAsFeature = t;
59
+ key = tAsSegment.segment || tAsFeature.feature;
60
+ type = tAsSegment.segment ? "segment" : "feature";
61
+ executionResult = {
62
+ passed: true,
63
+ assertionsCount: {
64
+ passed: 0,
65
+ failed: 0,
66
+ },
67
+ };
68
+ if (!key) {
69
+ console.error(" => Invalid test: ".concat(JSON.stringify(t)));
70
+ executionResult.passed = false;
71
+ return [2 /*return*/, executionResult];
72
+ }
73
+ if (patterns.keyPattern && !patterns.keyPattern.test(key)) {
74
+ return [2 /*return*/];
75
+ }
76
+ if (!(type === "segment")) return [3 /*break*/, 3];
77
+ return [4 /*yield*/, (0, testSegment_1.testSegment)(datasource, tAsSegment, patterns)];
78
+ case 2:
79
+ testResult = _a.sent();
80
+ return [3 /*break*/, 5];
81
+ case 3: return [4 /*yield*/, (0, testFeature_1.testFeature)(datasource, projectConfig, tAsFeature, options, patterns)];
82
+ case 4:
83
+ testResult = _a.sent();
84
+ _a.label = 5;
85
+ case 5:
86
+ (0, printTestResult_1.printTestResult)(testResult, testFilePath, rootDirectoryPath);
87
+ if (!testResult.passed) {
88
+ executionResult.passed = false;
89
+ executionResult.assertionsCount.failed = testResult.assertions.filter(function (a) { return !a.passed; }).length;
90
+ executionResult.assertionsCount.passed +=
91
+ testResult.assertions.length - executionResult.assertionsCount.failed;
92
+ }
93
+ else {
94
+ executionResult.assertionsCount.passed = testResult.assertions.length;
95
+ }
96
+ return [2 /*return*/, executionResult];
97
+ }
98
+ });
99
+ });
100
+ }
101
+ exports.executeTest = executeTest;
46
102
  function testProject(deps, options) {
47
103
  if (options === void 0) { options = {}; }
48
104
  return __awaiter(this, void 0, void 0, function () {
49
- var rootDirectoryPath, projectConfig, datasource, hasError, testFiles, startTime, patterns, passedTestsCount, failedTestsCount, passedAssertionsCount, failedAssertionsCount, _i, testFiles_1, testFile, testFilePath, t, test_1, testResult, test_2, testResult, diffInMs, testSpecsMessage, testAssertionsMessage;
105
+ var projectConfig, datasource, hasError, testFiles, startTime, patterns, passedTestsCount, failedTestsCount, passedAssertionsCount, failedAssertionsCount, _i, testFiles_1, testFile, executionResult, diffInMs, testSpecsMessage, testAssertionsMessage;
50
106
  return __generator(this, function (_a) {
51
107
  switch (_a.label) {
52
108
  case 0:
53
- rootDirectoryPath = deps.rootDirectoryPath, projectConfig = deps.projectConfig, datasource = deps.datasource;
109
+ projectConfig = deps.projectConfig, datasource = deps.datasource;
54
110
  hasError = false;
55
111
  if (!fs.existsSync(projectConfig.testsDirectoryPath)) {
56
112
  console.error("Tests directory does not exist: ".concat(projectConfig.testsDirectoryPath));
@@ -77,61 +133,28 @@ function testProject(deps, options) {
77
133
  _i = 0, testFiles_1 = testFiles;
78
134
  _a.label = 2;
79
135
  case 2:
80
- if (!(_i < testFiles_1.length)) return [3 /*break*/, 9];
136
+ if (!(_i < testFiles_1.length)) return [3 /*break*/, 5];
81
137
  testFile = testFiles_1[_i];
82
- testFilePath = datasource.getTestSpecName(testFile);
83
- return [4 /*yield*/, datasource.readTest(testFile)];
138
+ return [4 /*yield*/, executeTest(testFile, deps, options, patterns)];
84
139
  case 3:
85
- t = _a.sent();
86
- if (!t.segment) return [3 /*break*/, 5];
87
- test_1 = t;
88
- if (patterns.keyPattern && !patterns.keyPattern.test(test_1.segment)) {
89
- return [3 /*break*/, 8];
140
+ executionResult = _a.sent();
141
+ if (!executionResult) {
142
+ return [3 /*break*/, 4];
90
143
  }
91
- return [4 /*yield*/, (0, testSegment_1.testSegment)(datasource, test_1, patterns)];
92
- case 4:
93
- testResult = _a.sent();
94
- (0, printTestResult_1.printTestResult)(testResult, testFilePath, rootDirectoryPath);
95
- if (!testResult.passed) {
96
- hasError = true;
97
- failedTestsCount++;
98
- failedAssertionsCount += testResult.assertions.filter(function (a) { return !a.passed; }).length;
99
- passedAssertionsCount += testResult.assertions.length - failedAssertionsCount;
144
+ if (executionResult.passed) {
145
+ passedTestsCount += 1;
100
146
  }
101
147
  else {
102
- passedTestsCount++;
103
- passedAssertionsCount += testResult.assertions.length;
104
- }
105
- return [3 /*break*/, 8];
106
- case 5:
107
- if (!t.feature) return [3 /*break*/, 7];
108
- test_2 = t;
109
- if (patterns.keyPattern && !patterns.keyPattern.test(test_2.feature)) {
110
- return [3 /*break*/, 8];
111
- }
112
- return [4 /*yield*/, (0, testFeature_1.testFeature)(datasource, projectConfig, test_2, options, patterns)];
113
- case 6:
114
- testResult = _a.sent();
115
- (0, printTestResult_1.printTestResult)(testResult, testFilePath, rootDirectoryPath);
116
- if (!testResult.passed) {
117
148
  hasError = true;
118
- failedTestsCount++;
119
- failedAssertionsCount += testResult.assertions.filter(function (a) { return !a.passed; }).length;
120
- passedAssertionsCount += testResult.assertions.length - failedAssertionsCount;
121
- }
122
- else {
123
- passedTestsCount++;
124
- passedAssertionsCount += testResult.assertions.length;
149
+ failedTestsCount += 1;
125
150
  }
126
- return [3 /*break*/, 8];
127
- case 7:
128
- console.error(" => Invalid test: ".concat(JSON.stringify(test)));
129
- hasError = true;
130
- _a.label = 8;
131
- case 8:
151
+ passedAssertionsCount += executionResult.assertionsCount.passed;
152
+ failedAssertionsCount += executionResult.assertionsCount.failed;
153
+ _a.label = 4;
154
+ case 4:
132
155
  _i++;
133
156
  return [3 /*break*/, 2];
134
- case 9:
157
+ case 5:
135
158
  diffInMs = Date.now() - startTime;
136
159
  console.log("\n---\n");
137
160
  testSpecsMessage = "Test specs: ".concat(passedTestsCount, " passed, ").concat(failedTestsCount, " failed");
@@ -1 +1 @@
1
- {"version":3,"file":"testProject.js","sourceRoot":"","sources":["../../src/tester/testProject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testProject.js","sourceRoot":"","sources":["../../src/tester/testProject.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.2.3",
3
+ "version": "1.3.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",
@@ -44,9 +44,9 @@
44
44
  },
45
45
  "license": "MIT",
46
46
  "dependencies": {
47
- "@featurevisor/sdk": "^1.2.3",
48
- "@featurevisor/site": "^1.2.2",
49
- "@featurevisor/types": "^1.2.2",
47
+ "@featurevisor/sdk": "^1.3.0",
48
+ "@featurevisor/site": "^1.3.0",
49
+ "@featurevisor/types": "^1.3.0",
50
50
  "axios": "^1.3.4",
51
51
  "joi": "^17.8.3",
52
52
  "js-yaml": "^4.1.0",
@@ -57,5 +57,5 @@
57
57
  "@types/js-yaml": "^4.0.5",
58
58
  "@types/tar": "^6.1.4"
59
59
  },
60
- "gitHead": "59f335ca5e0276035adf03fdf756a6f037257809"
60
+ "gitHead": "92829e94ab09474433695d29577bd3eb22490f97"
61
61
  }
@@ -78,6 +78,14 @@ export async function buildDatafile(
78
78
  continue;
79
79
  }
80
80
 
81
+ if (Array.isArray(parsedFeature.environments[options.environment].expose)) {
82
+ const exposeTags = parsedFeature.environments[options.environment].expose as string[];
83
+
84
+ if (options.tag && exposeTags.indexOf(options.tag) === -1) {
85
+ continue;
86
+ }
87
+ }
88
+
81
89
  for (const parsedRule of parsedFeature.environments[options.environment].rules) {
82
90
  const extractedSegmentKeys = extractSegmentKeysFromGroupSegments(parsedRule.segments);
83
91
  extractedSegmentKeys.forEach((segmentKey) => segmentKeysUsedByTag.add(segmentKey));
@@ -61,7 +61,10 @@ export function getFeatureJoiSchema(
61
61
  );
62
62
 
63
63
  const environmentJoiSchema = Joi.object({
64
- expose: Joi.boolean(),
64
+ expose: Joi.alternatives().try(
65
+ Joi.boolean(),
66
+ Joi.array().items(Joi.string().valid(...projectConfig.tags)),
67
+ ),
65
68
  rules: Joi.array()
66
69
  .items(
67
70
  Joi.object({
@@ -16,11 +16,82 @@ export interface TestProjectOptions {
16
16
  showDatafile?: boolean;
17
17
  }
18
18
 
19
+ export interface TestPatterns {
20
+ keyPattern?: RegExp;
21
+ assertionPattern?: RegExp;
22
+ }
23
+
24
+ export interface ExecutionResult {
25
+ passed: boolean;
26
+ assertionsCount: {
27
+ passed: number;
28
+ failed: number;
29
+ };
30
+ }
31
+
32
+ export async function executeTest(
33
+ testFile: string,
34
+ deps: Dependencies,
35
+ options: TestProjectOptions,
36
+ patterns: TestPatterns,
37
+ ): Promise<ExecutionResult | undefined> {
38
+ const { datasource, projectConfig, rootDirectoryPath } = deps;
39
+
40
+ const testFilePath = datasource.getTestSpecName(testFile);
41
+
42
+ const t = await datasource.readTest(testFile);
43
+
44
+ const tAsSegment = t as TestSegment;
45
+ const tAsFeature = t as TestFeature;
46
+ const key = tAsSegment.segment || tAsFeature.feature;
47
+ const type = tAsSegment.segment ? "segment" : "feature";
48
+
49
+ const executionResult: ExecutionResult = {
50
+ passed: true,
51
+ assertionsCount: {
52
+ passed: 0,
53
+ failed: 0,
54
+ },
55
+ };
56
+
57
+ if (!key) {
58
+ console.error(` => Invalid test: ${JSON.stringify(t)}`);
59
+ executionResult.passed = false;
60
+
61
+ return executionResult;
62
+ }
63
+
64
+ if (patterns.keyPattern && !patterns.keyPattern.test(key)) {
65
+ return;
66
+ }
67
+
68
+ let testResult;
69
+ if (type === "segment") {
70
+ testResult = await testSegment(datasource, tAsSegment, patterns);
71
+ } else {
72
+ testResult = await testFeature(datasource, projectConfig, tAsFeature, options, patterns);
73
+ }
74
+
75
+ printTestResult(testResult, testFilePath, rootDirectoryPath);
76
+
77
+ if (!testResult.passed) {
78
+ executionResult.passed = false;
79
+
80
+ executionResult.assertionsCount.failed = testResult.assertions.filter((a) => !a.passed).length;
81
+ executionResult.assertionsCount.passed +=
82
+ testResult.assertions.length - executionResult.assertionsCount.failed;
83
+ } else {
84
+ executionResult.assertionsCount.passed = testResult.assertions.length;
85
+ }
86
+
87
+ return executionResult;
88
+ }
89
+
19
90
  export async function testProject(
20
91
  deps: Dependencies,
21
92
  options: TestProjectOptions = {},
22
93
  ): Promise<boolean> {
23
- const { rootDirectoryPath, projectConfig, datasource } = deps;
94
+ const { projectConfig, datasource } = deps;
24
95
 
25
96
  let hasError = false;
26
97
 
@@ -42,7 +113,7 @@ export async function testProject(
42
113
 
43
114
  const startTime = Date.now();
44
115
 
45
- const patterns = {
116
+ const patterns: TestPatterns = {
46
117
  keyPattern: options.keyPattern ? new RegExp(options.keyPattern) : undefined,
47
118
  assertionPattern: options.assertionPattern ? new RegExp(options.assertionPattern) : undefined,
48
119
  };
@@ -54,58 +125,21 @@ export async function testProject(
54
125
  let failedAssertionsCount = 0;
55
126
 
56
127
  for (const testFile of testFiles) {
57
- const testFilePath = datasource.getTestSpecName(testFile);
58
-
59
- const t = await datasource.readTest(testFile);
60
-
61
- if ((t as TestSegment).segment) {
62
- // segment testing
63
- const test = t as TestSegment;
64
-
65
- if (patterns.keyPattern && !patterns.keyPattern.test(test.segment)) {
66
- continue;
67
- }
68
-
69
- const testResult = await testSegment(datasource, test, patterns);
70
- printTestResult(testResult, testFilePath, rootDirectoryPath);
128
+ const executionResult = await executeTest(testFile, deps, options, patterns);
71
129
 
72
- if (!testResult.passed) {
73
- hasError = true;
74
- failedTestsCount++;
75
-
76
- failedAssertionsCount += testResult.assertions.filter((a) => !a.passed).length;
77
- passedAssertionsCount += testResult.assertions.length - failedAssertionsCount;
78
- } else {
79
- passedTestsCount++;
80
-
81
- passedAssertionsCount += testResult.assertions.length;
82
- }
83
- } else if ((t as TestFeature).feature) {
84
- // feature testing
85
- const test = t as TestFeature;
86
-
87
- if (patterns.keyPattern && !patterns.keyPattern.test(test.feature)) {
88
- continue;
89
- }
90
-
91
- const testResult = await testFeature(datasource, projectConfig, test, options, patterns);
92
- printTestResult(testResult, testFilePath, rootDirectoryPath);
93
-
94
- if (!testResult.passed) {
95
- hasError = true;
96
- failedTestsCount++;
97
-
98
- failedAssertionsCount += testResult.assertions.filter((a) => !a.passed).length;
99
- passedAssertionsCount += testResult.assertions.length - failedAssertionsCount;
100
- } else {
101
- passedTestsCount++;
130
+ if (!executionResult) {
131
+ continue;
132
+ }
102
133
 
103
- passedAssertionsCount += testResult.assertions.length;
104
- }
134
+ if (executionResult.passed) {
135
+ passedTestsCount += 1;
105
136
  } else {
106
- console.error(` => Invalid test: ${JSON.stringify(test)}`);
107
137
  hasError = true;
138
+ failedTestsCount += 1;
108
139
  }
140
+
141
+ passedAssertionsCount += executionResult.assertionsCount.passed;
142
+ failedAssertionsCount += executionResult.assertionsCount.failed;
109
143
  }
110
144
 
111
145
  const diffInMs = Date.now() - startTime;