@featurevisor/core 0.60.1 → 0.62.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/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/src/builder/allocator.ts.html +1 -1
- package/coverage/lcov-report/src/builder/index.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/lib/datasource/adapter.d.ts +3 -2
- package/lib/datasource/adapter.js.map +1 -1
- package/lib/datasource/datasource.d.ts +5 -2
- package/lib/datasource/datasource.js +10 -2
- package/lib/datasource/datasource.js.map +1 -1
- package/lib/datasource/filesystemAdapter.d.ts +11 -3
- package/lib/datasource/filesystemAdapter.js +127 -1
- package/lib/datasource/filesystemAdapter.js.map +1 -1
- package/lib/site/exportSite.js +4 -3
- package/lib/site/exportSite.js.map +1 -1
- package/lib/site/generateHistory.d.ts +1 -1
- package/lib/site/generateHistory.js +58 -66
- package/lib/site/generateHistory.js.map +1 -1
- package/lib/tester/testFeature.d.ts +3 -1
- package/lib/tester/testFeature.js +10 -6
- package/lib/tester/testFeature.js.map +1 -1
- package/lib/tester/testProject.d.ts +6 -1
- package/lib/tester/testProject.js +17 -6
- package/lib/tester/testProject.js.map +1 -1
- package/lib/tester/testSegment.d.ts +1 -1
- package/lib/tester/testSegment.js +6 -3
- package/lib/tester/testSegment.js.map +1 -1
- package/lib/{utils.js → utils/extractKeys.js} +1 -1
- package/lib/utils/extractKeys.js.map +1 -0
- package/lib/utils/git.d.ts +6 -0
- package/lib/utils/git.js +121 -0
- package/lib/utils/git.js.map +1 -0
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.js +19 -0
- package/lib/utils/index.js.map +1 -0
- package/package.json +5 -5
- package/src/datasource/adapter.ts +17 -3
- package/src/datasource/datasource.ts +12 -2
- package/src/datasource/filesystemAdapter.ts +144 -4
- package/src/site/exportSite.ts +1 -3
- package/src/site/generateHistory.ts +3 -77
- package/src/tester/testFeature.ts +14 -5
- package/src/tester/testProject.ts +29 -6
- package/src/tester/testSegment.ts +11 -3
- package/src/utils/git.ts +129 -0
- package/src/utils/index.ts +2 -0
- package/lib/utils.js.map +0 -1
- /package/lib/{utils.d.ts → utils/extractKeys.d.ts} +0 -0
- /package/src/{utils.ts → utils/extractKeys.ts} +0 -0
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/testFeature.ts":"48","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testProject.ts":"49","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testSegment.ts":"50","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils.ts":"51"},{"size":3214,"mtime":1699980005501,"results":"52","hashOfConfig":"53"},{"size":1014,"mtime":1699980005501,"results":"54","hashOfConfig":"53"},{"size":8468,"mtime":1699980005501,"results":"55","hashOfConfig":"53"},{"size":1359,"mtime":1699980005501,"results":"56","hashOfConfig":"53"},{"size":1755,"mtime":1699980005501,"results":"57","hashOfConfig":"53"},{"size":65,"mtime":1699980005501,"results":"58","hashOfConfig":"53"},{"size":12889,"mtime":1699980005501,"results":"59","hashOfConfig":"53"},{"size":4799,"mtime":1699980005501,"results":"60","hashOfConfig":"53"},{"size":60,"mtime":1699980005505,"results":"61","hashOfConfig":"53"},{"size":1035,"mtime":1699980005505,"results":"62","hashOfConfig":"53"},{"size":3464,"mtime":1699980005505,"results":"63","hashOfConfig":"53"},{"size":1089,"mtime":1699980005505,"results":"64","hashOfConfig":"53"},{"size":4650,"mtime":1699980005505,"results":"65","hashOfConfig":"53"},{"size":4874,"mtime":1699980005505,"results":"66","hashOfConfig":"53"},{"size":94,"mtime":1699980005505,"results":"67","hashOfConfig":"53"},{"size":279,"mtime":1699980005505,"results":"68","hashOfConfig":"53"},{"size":1033,"mtime":1699980005505,"results":"69","hashOfConfig":"53"},{"size":540,"mtime":1699980005505,"results":"70","hashOfConfig":"53"},{"size":1476,"mtime":1699980005505,"results":"71","hashOfConfig":"53"},{"size":6250,"mtime":1699980005505,"results":"72","hashOfConfig":"53"},{"size":318,"mtime":1699980005505,"results":"73","hashOfConfig":"53"},{"size":1308,"mtime":1699980005505,"results":"74","hashOfConfig":"53"},{"size":341,"mtime":1699980005505,"results":"75","hashOfConfig":"53"},{"size":1119,"mtime":1699980005505,"results":"76","hashOfConfig":"53"},{"size":3003,"mtime":1699980005505,"results":"77","hashOfConfig":"53"},{"size":5841,"mtime":1699980005505,"results":"78","hashOfConfig":"53"},{"size":2103,"mtime":1699980005505,"results":"79","hashOfConfig":"53"},{"size":31,"mtime":1699980005505,"results":"80","hashOfConfig":"53"},{"size":4376,"mtime":1699980005505,"results":"81","hashOfConfig":"53"},{"size":323,"mtime":1699980005505,"results":"82","hashOfConfig":"53"},{"size":368,"mtime":1699980005505,"results":"83","hashOfConfig":"53"},{"size":1248,"mtime":1699980005505,"results":"84","hashOfConfig":"53"},{"size":641,"mtime":1699980005505,"results":"85","hashOfConfig":"53"},{"size":1524,"mtime":1699980005505,"results":"86","hashOfConfig":"53"},{"size":2854,"mtime":1699980005505,"results":"87","hashOfConfig":"53"},{"size":6187,"mtime":1699980005505,"results":"88","hashOfConfig":"53"},{"size":516,"mtime":1699980005505,"results":"89","hashOfConfig":"53"},{"size":496,"mtime":1699980005505,"results":"90","hashOfConfig":"53"},{"size":607,"mtime":1699980005505,"results":"91","hashOfConfig":"53"},{"size":1560,"mtime":1699980005505,"results":"92","hashOfConfig":"53"},{"size":59,"mtime":1699980005505,"results":"93","hashOfConfig":"53"},{"size":1681,"mtime":1699980005505,"results":"94","hashOfConfig":"53"},{"size":298,"mtime":1699980005505,"results":"95","hashOfConfig":"53"},{"size":932,"mtime":1699980005505,"results":"96","hashOfConfig":"53"},{"size":468,"mtime":1699980005505,"results":"97","hashOfConfig":"53"},{"size":156,"mtime":1699980005505,"results":"98","hashOfConfig":"53"},{"size":31,"mtime":1699980005505,"results":"99","hashOfConfig":"53"},{"size":5247,"mtime":1699980005505,"results":"100","hashOfConfig":"53"},{"size":1950,"mtime":1699980005505,"results":"101","hashOfConfig":"53"},{"size":1316,"mtime":1699980005505,"results":"102","hashOfConfig":"53"},{"size":1993,"mtime":1699980005505,"results":"103","hashOfConfig":"53"},{"filePath":"104","messages":"105","suppressedMessages":"106","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1haxrgn",{"filePath":"107","messages":"108","suppressedMessages":"109","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"110","messages":"111","suppressedMessages":"112","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"113","messages":"114","suppressedMessages":"115","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"116","messages":"117","suppressedMessages":"118","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"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},"/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",[],[],"/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",[],["257"],"/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/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.ts",[],[],{"ruleId":"258","severity":2,"message":"259","line":51,"column":10,"nodeType":"260","messageId":"261","endLine":51,"endColumn":38,"suppressions":"262"},"@typescript-eslint/no-unused-vars","'getFeaturevisorTypeFromValue' is defined but never used.","Identifier","unusedVar",["263"],{"kind":"264","justification":"265"},"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/testFeature.ts":"48","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testProject.ts":"49","/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/testSegment.ts":"50","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/extractKeys.ts":"51","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/git.ts":"52","/home/runner/work/featurevisor/featurevisor/packages/core/src/utils/index.ts":"53"},{"size":3214,"mtime":1700413419231,"results":"54","hashOfConfig":"55"},{"size":1014,"mtime":1700413419231,"results":"56","hashOfConfig":"55"},{"size":8468,"mtime":1700413419231,"results":"57","hashOfConfig":"55"},{"size":1359,"mtime":1700413419231,"results":"58","hashOfConfig":"55"},{"size":1755,"mtime":1700413419231,"results":"59","hashOfConfig":"55"},{"size":65,"mtime":1700413419231,"results":"60","hashOfConfig":"55"},{"size":12889,"mtime":1700413419231,"results":"61","hashOfConfig":"55"},{"size":4799,"mtime":1700413419231,"results":"62","hashOfConfig":"55"},{"size":60,"mtime":1700413419231,"results":"63","hashOfConfig":"55"},{"size":1035,"mtime":1700413419231,"results":"64","hashOfConfig":"55"},{"size":3464,"mtime":1700413419231,"results":"65","hashOfConfig":"55"},{"size":1305,"mtime":1700413419231,"results":"66","hashOfConfig":"55"},{"size":5028,"mtime":1700413419231,"results":"67","hashOfConfig":"55"},{"size":9261,"mtime":1700413419231,"results":"68","hashOfConfig":"55"},{"size":94,"mtime":1700413419231,"results":"69","hashOfConfig":"55"},{"size":279,"mtime":1700413419231,"results":"70","hashOfConfig":"55"},{"size":1033,"mtime":1700413419231,"results":"71","hashOfConfig":"55"},{"size":540,"mtime":1700413419231,"results":"72","hashOfConfig":"55"},{"size":1476,"mtime":1700413419231,"results":"73","hashOfConfig":"55"},{"size":6250,"mtime":1700413419231,"results":"74","hashOfConfig":"55"},{"size":318,"mtime":1700413419231,"results":"75","hashOfConfig":"55"},{"size":1308,"mtime":1700413419231,"results":"76","hashOfConfig":"55"},{"size":341,"mtime":1700413419231,"results":"77","hashOfConfig":"55"},{"size":1119,"mtime":1700413419231,"results":"78","hashOfConfig":"55"},{"size":3003,"mtime":1700413419231,"results":"79","hashOfConfig":"55"},{"size":5841,"mtime":1700413419231,"results":"80","hashOfConfig":"55"},{"size":2103,"mtime":1700413419235,"results":"81","hashOfConfig":"55"},{"size":31,"mtime":1700413419235,"results":"82","hashOfConfig":"55"},{"size":4376,"mtime":1700413419235,"results":"83","hashOfConfig":"55"},{"size":323,"mtime":1700413419235,"results":"84","hashOfConfig":"55"},{"size":368,"mtime":1700413419235,"results":"85","hashOfConfig":"55"},{"size":1248,"mtime":1700413419235,"results":"86","hashOfConfig":"55"},{"size":641,"mtime":1700413419235,"results":"87","hashOfConfig":"55"},{"size":1481,"mtime":1700413419235,"results":"88","hashOfConfig":"55"},{"size":814,"mtime":1700413419235,"results":"89","hashOfConfig":"55"},{"size":6187,"mtime":1700413419235,"results":"90","hashOfConfig":"55"},{"size":516,"mtime":1700413419235,"results":"91","hashOfConfig":"55"},{"size":496,"mtime":1700413419235,"results":"92","hashOfConfig":"55"},{"size":607,"mtime":1700413419235,"results":"93","hashOfConfig":"55"},{"size":1560,"mtime":1700413419235,"results":"94","hashOfConfig":"55"},{"size":59,"mtime":1700413419235,"results":"95","hashOfConfig":"55"},{"size":1681,"mtime":1700413419235,"results":"96","hashOfConfig":"55"},{"size":298,"mtime":1700413419235,"results":"97","hashOfConfig":"55"},{"size":932,"mtime":1700413419235,"results":"98","hashOfConfig":"55"},{"size":468,"mtime":1700413419235,"results":"99","hashOfConfig":"55"},{"size":156,"mtime":1700413419235,"results":"100","hashOfConfig":"55"},{"size":31,"mtime":1700413419235,"results":"101","hashOfConfig":"55"},{"size":5412,"mtime":1700413419235,"results":"102","hashOfConfig":"55"},{"size":2628,"mtime":1700413419235,"results":"103","hashOfConfig":"55"},{"size":1441,"mtime":1700413419235,"results":"104","hashOfConfig":"55"},{"size":1993,"mtime":1700413419235,"results":"105","hashOfConfig":"55"},{"size":3641,"mtime":1700413419235,"results":"106","hashOfConfig":"55"},{"size":54,"mtime":1700413419235,"results":"107","hashOfConfig":"55"},{"filePath":"108","messages":"109","suppressedMessages":"110","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1haxrgn",{"filePath":"111","messages":"112","suppressedMessages":"113","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"114","messages":"115","suppressedMessages":"116","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"117","messages":"118","suppressedMessages":"119","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"120","messages":"121","suppressedMessages":"122","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"123","messages":"124","suppressedMessages":"125","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"126","messages":"127","suppressedMessages":"128","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"129","messages":"130","suppressedMessages":"131","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"132","messages":"133","suppressedMessages":"134","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"135","messages":"136","suppressedMessages":"137","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"138","messages":"139","suppressedMessages":"140","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"141","messages":"142","suppressedMessages":"143","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"144","messages":"145","suppressedMessages":"146","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"147","messages":"148","suppressedMessages":"149","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"150","messages":"151","suppressedMessages":"152","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"153","messages":"154","suppressedMessages":"155","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"156","messages":"157","suppressedMessages":"158","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"159","messages":"160","suppressedMessages":"161","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"162","messages":"163","suppressedMessages":"164","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"165","messages":"166","suppressedMessages":"167","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"168","messages":"169","suppressedMessages":"170","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"171","messages":"172","suppressedMessages":"173","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"174","messages":"175","suppressedMessages":"176","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"177","messages":"178","suppressedMessages":"179","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"180","messages":"181","suppressedMessages":"182","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"183","messages":"184","suppressedMessages":"185","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"186","messages":"187","suppressedMessages":"188","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"189","messages":"190","suppressedMessages":"191","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"192","messages":"193","suppressedMessages":"194","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"195","messages":"196","suppressedMessages":"197","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"198","messages":"199","suppressedMessages":"200","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"201","messages":"202","suppressedMessages":"203","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"204","messages":"205","suppressedMessages":"206","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"207","messages":"208","suppressedMessages":"209","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"210","messages":"211","suppressedMessages":"212","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"213","messages":"214","suppressedMessages":"215","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"216","messages":"217","suppressedMessages":"218","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"219","messages":"220","suppressedMessages":"221","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"222","messages":"223","suppressedMessages":"224","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"225","messages":"226","suppressedMessages":"227","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"228","messages":"229","suppressedMessages":"230","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"231","messages":"232","suppressedMessages":"233","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"234","messages":"235","suppressedMessages":"236","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"237","messages":"238","suppressedMessages":"239","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"240","messages":"241","suppressedMessages":"242","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"243","messages":"244","suppressedMessages":"245","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"246","messages":"247","suppressedMessages":"248","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"249","messages":"250","suppressedMessages":"251","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"252","messages":"253","suppressedMessages":"254","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"255","messages":"256","suppressedMessages":"257","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"258","messages":"259","suppressedMessages":"260","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"261","messages":"262","suppressedMessages":"263","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"264","messages":"265","suppressedMessages":"266","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",[],["267","268"],"/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",[],["269"],"/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/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":"270","severity":2,"message":"271","line":22,"column":7,"nodeType":"272","messageId":"273","endLine":22,"endColumn":18,"suppressions":"274"},{"ruleId":"275","severity":2,"message":"276","line":22,"column":21,"nodeType":"277","messageId":"278","endLine":22,"endColumn":81,"fix":"279","suppressions":"280"},{"ruleId":"270","severity":2,"message":"281","line":51,"column":10,"nodeType":"272","messageId":"273","endLine":51,"endColumn":38,"suppressions":"282"},"@typescript-eslint/no-unused-vars","'commitRegex' is assigned a value but never used.","Identifier","unusedVar",["283"],"no-regex-spaces","Spaces are hard to count. Use {3}.","Literal","multipleSpaces",{"range":"284","text":"285"},["286"],"'getFeaturevisorTypeFromValue' is defined but never used.",["287"],{"kind":"288","justification":"289"},[515,518]," {3}",{"kind":"288","justification":"289"},{"kind":"288","justification":"289"},"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
|
+
# [0.62.0](https://github.com/featurevisor/featurevisor/compare/v0.61.0...v0.62.0) (2023-11-19)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* get history info from datasource ([#213](https://github.com/featurevisor/featurevisor/issues/213)) ([6107a6b](https://github.com/featurevisor/featurevisor/commit/6107a6bee14708114413e4e59cb7ebeb061a79bd))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [0.61.0](https://github.com/featurevisor/featurevisor/compare/v0.60.1...v0.61.0) (2023-11-14)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* filter tests and support verbosity for debugging ([#212](https://github.com/featurevisor/featurevisor/issues/212)) ([414ef6d](https://github.com/featurevisor/featurevisor/commit/414ef6dd7ad47d287a91088aab474216361ee6c6))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
6
28
|
## [0.60.1](https://github.com/featurevisor/featurevisor/compare/v0.60.0...v0.60.1) (2023-11-14)
|
|
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="1700413556219" clover="3.2.0">
|
|
3
|
+
<project timestamp="1700413556219" name="All files">
|
|
4
4
|
<metrics statements="201" coveredstatements="191" conditionals="110" coveredconditionals="92" methods="30" coveredmethods="30" elements="341" coveredelements="313" complexity="0" loc="201" ncloc="201" packages="4" files="6" classes="6"/>
|
|
5
5
|
<package name="lib.builder">
|
|
6
6
|
<metrics statements="90" coveredstatements="86" conditionals="48" coveredconditionals="39" 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 2023-11-
|
|
149
|
+
at 2023-11-19T17:05:56.181Z
|
|
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 2023-11-
|
|
178
|
+
at 2023-11-19T17:05:56.181Z
|
|
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 2023-11-
|
|
119
|
+
at 2023-11-19T17:05:56.181Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../../prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -442,7 +442,7 @@ exports.getTraffic = getTraffic;
|
|
|
442
442
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
443
443
|
Code coverage generated by
|
|
444
444
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
445
|
-
at 2023-11-
|
|
445
|
+
at 2023-11-19T17:05:56.181Z
|
|
446
446
|
</div>
|
|
447
447
|
<script src="../../prettify.js"></script>
|
|
448
448
|
<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 2023-11-
|
|
142
|
+
at 2023-11-19T17:05:56.181Z
|
|
143
143
|
</div>
|
|
144
144
|
<script src="../../prettify.js"></script>
|
|
145
145
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2023-11-
|
|
104
|
+
at 2023-11-19T17:05:56.181Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../prettify.js"></script>
|
|
107
107
|
<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 2023-11-
|
|
196
|
+
at 2023-11-19T17:05:56.181Z
|
|
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 2023-11-
|
|
119
|
+
at 2023-11-19T17:05:56.181Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../../prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -553,7 +553,7 @@ export function getTraffic(
|
|
|
553
553
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
554
554
|
Code coverage generated by
|
|
555
555
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
556
|
-
at 2023-11-
|
|
556
|
+
at 2023-11-19T17:05:56.181Z
|
|
557
557
|
</div>
|
|
558
558
|
<script src="../../prettify.js"></script>
|
|
559
559
|
<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 2023-11-
|
|
145
|
+
at 2023-11-19T17:05:56.181Z
|
|
146
146
|
</div>
|
|
147
147
|
<script src="../../prettify.js"></script>
|
|
148
148
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2023-11-
|
|
104
|
+
at 2023-11-19T17:05:56.181Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { DatafileContent, EnvironmentKey, ExistingState } from "@featurevisor/types";
|
|
2
|
-
export type EntityType = "feature" | "group" | "segment" | "attribute" | "test";
|
|
1
|
+
import { DatafileContent, EnvironmentKey, ExistingState, HistoryEntry, Commit, CommitHash, EntityType } from "@featurevisor/types";
|
|
3
2
|
export interface DatafileOptions {
|
|
4
3
|
environment: EnvironmentKey;
|
|
5
4
|
tag: string;
|
|
@@ -14,4 +13,6 @@ export declare abstract class Adapter {
|
|
|
14
13
|
abstract writeState(environment: EnvironmentKey, existingState: ExistingState): Promise<void>;
|
|
15
14
|
abstract readDatafile(options: DatafileOptions): Promise<DatafileContent>;
|
|
16
15
|
abstract writeDatafile(datafileContent: DatafileContent, options: DatafileOptions): Promise<void>;
|
|
16
|
+
abstract listHistoryEntries(entityType?: EntityType, entityKey?: string): Promise<HistoryEntry[]>;
|
|
17
|
+
abstract readCommit(commit: CommitHash, entityType?: EntityType, entityKey?: string): Promise<Commit>;
|
|
17
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/datasource/adapter.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/datasource/adapter.ts"],"names":[],"mappings":";;;AAeA;IAAA;IAuBA,CAAC;IAAD,cAAC;AAAD,CAAC,AAvBD,IAuBC;AAvBqB,0BAAO"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { ParsedFeature, Segment, Attribute, Group, FeatureKey, Test, EnvironmentKey, ExistingState, SegmentKey, AttributeKey, DatafileContent } from "@featurevisor/types";
|
|
1
|
+
import { ParsedFeature, Segment, Attribute, Group, FeatureKey, Test, EnvironmentKey, ExistingState, SegmentKey, AttributeKey, DatafileContent, EntityType } from "@featurevisor/types";
|
|
2
2
|
import { ProjectConfig } from "../config";
|
|
3
3
|
import { DatafileOptions } from "./adapter";
|
|
4
4
|
export declare class Datasource {
|
|
5
5
|
private config;
|
|
6
|
+
private rootDirectoryPath?;
|
|
6
7
|
private adapter;
|
|
7
|
-
constructor(config: ProjectConfig);
|
|
8
|
+
constructor(config: ProjectConfig, rootDirectoryPath?: string);
|
|
8
9
|
getExtension(): string;
|
|
9
10
|
/**
|
|
10
11
|
* State
|
|
@@ -45,4 +46,6 @@ export declare class Datasource {
|
|
|
45
46
|
writeTest(testKey: string, test: Test): Promise<Test>;
|
|
46
47
|
deleteTest(testKey: string): Promise<void>;
|
|
47
48
|
getTestSpecName(testKey: string): string;
|
|
49
|
+
listHistoryEntries(entityType?: EntityType, entityKey?: string): Promise<import("@featurevisor/types").HistoryEntry[]>;
|
|
50
|
+
readCommit(commitHash: string, entityType?: EntityType, entityKey?: string): Promise<import("@featurevisor/types").Commit>;
|
|
48
51
|
}
|
|
@@ -38,9 +38,10 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.Datasource = void 0;
|
|
40
40
|
var Datasource = /** @class */ (function () {
|
|
41
|
-
function Datasource(config) {
|
|
41
|
+
function Datasource(config, rootDirectoryPath) {
|
|
42
42
|
this.config = config;
|
|
43
|
-
this.
|
|
43
|
+
this.rootDirectoryPath = rootDirectoryPath;
|
|
44
|
+
this.adapter = new config.adapter(config, rootDirectoryPath);
|
|
44
45
|
}
|
|
45
46
|
// @TODO: only site generator needs it, find a way to get it out of here later
|
|
46
47
|
Datasource.prototype.getExtension = function () {
|
|
@@ -185,6 +186,13 @@ var Datasource = /** @class */ (function () {
|
|
|
185
186
|
Datasource.prototype.getTestSpecName = function (testKey) {
|
|
186
187
|
return "".concat(testKey, ".").concat(this.getExtension());
|
|
187
188
|
};
|
|
189
|
+
// history
|
|
190
|
+
Datasource.prototype.listHistoryEntries = function (entityType, entityKey) {
|
|
191
|
+
return this.adapter.listHistoryEntries(entityType, entityKey);
|
|
192
|
+
};
|
|
193
|
+
Datasource.prototype.readCommit = function (commitHash, entityType, entityKey) {
|
|
194
|
+
return this.adapter.readCommit(commitHash, entityType, entityKey);
|
|
195
|
+
};
|
|
188
196
|
return Datasource;
|
|
189
197
|
}());
|
|
190
198
|
exports.Datasource = Datasource;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../src/datasource/datasource.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../src/datasource/datasource.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { ExistingState, EnvironmentKey, DatafileContent } from "@featurevisor/types";
|
|
2
|
-
import { Adapter,
|
|
1
|
+
import { ExistingState, EnvironmentKey, DatafileContent, EntityType, HistoryEntry, Commit, CommitHash } from "@featurevisor/types";
|
|
2
|
+
import { Adapter, DatafileOptions } from "./adapter";
|
|
3
3
|
import { ProjectConfig } from "../config";
|
|
4
4
|
export declare function getExistingStateFilePath(projectConfig: ProjectConfig, environment: EnvironmentKey): string;
|
|
5
5
|
export declare class FilesystemAdapter extends Adapter {
|
|
6
6
|
private config;
|
|
7
|
+
private rootDirectoryPath?;
|
|
7
8
|
private parser;
|
|
8
|
-
constructor(config: ProjectConfig);
|
|
9
|
+
constructor(config: ProjectConfig, rootDirectoryPath?: string);
|
|
9
10
|
getEntityDirectoryPath(entityType: EntityType): string;
|
|
10
11
|
getEntityPath(entityType: EntityType, entityKey: string): string;
|
|
11
12
|
listEntities(entityType: EntityType): Promise<string[]>;
|
|
@@ -24,4 +25,11 @@ export declare class FilesystemAdapter extends Adapter {
|
|
|
24
25
|
getDatafilePath(options: DatafileOptions): string;
|
|
25
26
|
readDatafile(options: DatafileOptions): Promise<DatafileContent>;
|
|
26
27
|
writeDatafile(datafileContent: DatafileContent, options: DatafileOptions): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* History
|
|
30
|
+
*/
|
|
31
|
+
getRawHistory(pathPatterns: string[]): string;
|
|
32
|
+
getPathPatterns(entityType?: EntityType, entityKey?: string): string[];
|
|
33
|
+
listHistoryEntries(entityType?: EntityType, entityKey?: string): Promise<HistoryEntry[]>;
|
|
34
|
+
readCommit(commitHash: CommitHash, entityType?: EntityType, entityKey?: string): Promise<Commit>;
|
|
27
35
|
}
|
|
@@ -54,17 +54,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
54
54
|
exports.FilesystemAdapter = exports.getExistingStateFilePath = void 0;
|
|
55
55
|
var fs = require("fs");
|
|
56
56
|
var path = require("path");
|
|
57
|
+
var child_process_1 = require("child_process");
|
|
57
58
|
var mkdirp = require("mkdirp");
|
|
58
59
|
var adapter_1 = require("./adapter");
|
|
60
|
+
var git_1 = require("../utils/git");
|
|
61
|
+
var commitRegex = /^commit (\w+)\nAuthor: (.+) <(.+)>\nDate: (.+)\n\n(.+)/gm; // eslint-disable-line
|
|
59
62
|
function getExistingStateFilePath(projectConfig, environment) {
|
|
60
63
|
return path.join(projectConfig.stateDirectoryPath, "existing-state-".concat(environment, ".json"));
|
|
61
64
|
}
|
|
62
65
|
exports.getExistingStateFilePath = getExistingStateFilePath;
|
|
63
66
|
var FilesystemAdapter = /** @class */ (function (_super) {
|
|
64
67
|
__extends(FilesystemAdapter, _super);
|
|
65
|
-
function FilesystemAdapter(config) {
|
|
68
|
+
function FilesystemAdapter(config, rootDirectoryPath) {
|
|
66
69
|
var _this = _super.call(this) || this;
|
|
67
70
|
_this.config = config;
|
|
71
|
+
_this.rootDirectoryPath = rootDirectoryPath;
|
|
68
72
|
_this.parser = config.parser;
|
|
69
73
|
return _this;
|
|
70
74
|
}
|
|
@@ -216,6 +220,128 @@ var FilesystemAdapter = /** @class */ (function (_super) {
|
|
|
216
220
|
});
|
|
217
221
|
});
|
|
218
222
|
};
|
|
223
|
+
/**
|
|
224
|
+
* History
|
|
225
|
+
*/
|
|
226
|
+
FilesystemAdapter.prototype.getRawHistory = function (pathPatterns) {
|
|
227
|
+
var gitPaths = pathPatterns.join(" ");
|
|
228
|
+
var logCommand = "git log --name-only --pretty=format:\"%h|%an|%aI\" --relative --no-merges -- ".concat(gitPaths);
|
|
229
|
+
var fullCommand = "(cd ".concat(this.rootDirectoryPath, " && ").concat(logCommand, ")");
|
|
230
|
+
return (0, child_process_1.execSync)(fullCommand, { encoding: "utf8" }).toString();
|
|
231
|
+
};
|
|
232
|
+
FilesystemAdapter.prototype.getPathPatterns = function (entityType, entityKey) {
|
|
233
|
+
var _this = this;
|
|
234
|
+
var pathPatterns = [];
|
|
235
|
+
if (entityType && entityKey) {
|
|
236
|
+
pathPatterns = [this.getEntityPath(entityType, entityKey)];
|
|
237
|
+
}
|
|
238
|
+
else if (entityType) {
|
|
239
|
+
if (entityType === "attribute") {
|
|
240
|
+
pathPatterns = [this.config.attributesDirectoryPath];
|
|
241
|
+
}
|
|
242
|
+
else if (entityType === "segment") {
|
|
243
|
+
pathPatterns = [this.config.segmentsDirectoryPath];
|
|
244
|
+
}
|
|
245
|
+
else if (entityType === "feature") {
|
|
246
|
+
pathPatterns = [this.config.featuresDirectoryPath];
|
|
247
|
+
}
|
|
248
|
+
else if (entityType === "group") {
|
|
249
|
+
pathPatterns = [this.config.groupsDirectoryPath];
|
|
250
|
+
}
|
|
251
|
+
else if (entityType === "test") {
|
|
252
|
+
pathPatterns = [this.config.testsDirectoryPath];
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
pathPatterns = [
|
|
257
|
+
this.config.featuresDirectoryPath,
|
|
258
|
+
this.config.attributesDirectoryPath,
|
|
259
|
+
this.config.segmentsDirectoryPath,
|
|
260
|
+
this.config.groupsDirectoryPath,
|
|
261
|
+
this.config.testsDirectoryPath,
|
|
262
|
+
];
|
|
263
|
+
}
|
|
264
|
+
return pathPatterns.map(function (p) { return p.replace(_this.rootDirectoryPath + path.sep, ""); });
|
|
265
|
+
};
|
|
266
|
+
FilesystemAdapter.prototype.listHistoryEntries = function (entityType, entityKey) {
|
|
267
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
268
|
+
var pathPatterns, rawHistory, fullHistory, blocks, i, block, lines, commitLine, _a, commitHash, author, timestamp, entities, filePathLines, j, relativePath, absolutePath, fileName, relativeDir, key, type;
|
|
269
|
+
return __generator(this, function (_b) {
|
|
270
|
+
pathPatterns = this.getPathPatterns(entityType, entityKey);
|
|
271
|
+
rawHistory = this.getRawHistory(pathPatterns);
|
|
272
|
+
fullHistory = [];
|
|
273
|
+
blocks = rawHistory.split("\n\n");
|
|
274
|
+
for (i = 0; i < blocks.length; i++) {
|
|
275
|
+
block = blocks[i];
|
|
276
|
+
if (block.length === 0) {
|
|
277
|
+
continue;
|
|
278
|
+
}
|
|
279
|
+
lines = block.split("\n");
|
|
280
|
+
commitLine = lines[0];
|
|
281
|
+
_a = commitLine.split("|"), commitHash = _a[0], author = _a[1], timestamp = _a[2];
|
|
282
|
+
entities = [];
|
|
283
|
+
filePathLines = lines.slice(1);
|
|
284
|
+
for (j = 0; j < filePathLines.length; j++) {
|
|
285
|
+
relativePath = filePathLines[j];
|
|
286
|
+
absolutePath = path.join(this.rootDirectoryPath, relativePath);
|
|
287
|
+
fileName = absolutePath.split(path.sep).pop();
|
|
288
|
+
relativeDir = path.dirname(absolutePath);
|
|
289
|
+
key = fileName.replace("." + this.parser.extension, "");
|
|
290
|
+
type = "attribute";
|
|
291
|
+
if (relativeDir === this.config.attributesDirectoryPath) {
|
|
292
|
+
type = "attribute";
|
|
293
|
+
}
|
|
294
|
+
else if (relativeDir === this.config.segmentsDirectoryPath) {
|
|
295
|
+
type = "segment";
|
|
296
|
+
}
|
|
297
|
+
else if (relativeDir === this.config.featuresDirectoryPath) {
|
|
298
|
+
type = "feature";
|
|
299
|
+
}
|
|
300
|
+
else if (relativeDir === this.config.groupsDirectoryPath) {
|
|
301
|
+
type = "group";
|
|
302
|
+
}
|
|
303
|
+
else if (relativeDir === this.config.testsDirectoryPath) {
|
|
304
|
+
type = "test";
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
continue;
|
|
308
|
+
}
|
|
309
|
+
entities.push({
|
|
310
|
+
type: type,
|
|
311
|
+
key: key,
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
if (entities.length === 0) {
|
|
315
|
+
continue;
|
|
316
|
+
}
|
|
317
|
+
fullHistory.push({
|
|
318
|
+
commit: commitHash,
|
|
319
|
+
author: author,
|
|
320
|
+
timestamp: timestamp,
|
|
321
|
+
entities: entities,
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
return [2 /*return*/, fullHistory];
|
|
325
|
+
});
|
|
326
|
+
});
|
|
327
|
+
};
|
|
328
|
+
FilesystemAdapter.prototype.readCommit = function (commitHash, entityType, entityKey) {
|
|
329
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
330
|
+
var pathPatterns, gitPaths, logCommand, fullCommand, gitShowOutput, commit;
|
|
331
|
+
return __generator(this, function (_a) {
|
|
332
|
+
pathPatterns = this.getPathPatterns(entityType, entityKey);
|
|
333
|
+
gitPaths = pathPatterns.join(" ");
|
|
334
|
+
logCommand = "git show ".concat(commitHash, " --relative -- ").concat(gitPaths);
|
|
335
|
+
fullCommand = "(cd ".concat(this.rootDirectoryPath, " && ").concat(logCommand, ")");
|
|
336
|
+
gitShowOutput = (0, child_process_1.execSync)(fullCommand, { encoding: "utf8" }).toString();
|
|
337
|
+
commit = (0, git_1.getCommit)(gitShowOutput, {
|
|
338
|
+
rootDirectoryPath: this.rootDirectoryPath,
|
|
339
|
+
projectConfig: this.config,
|
|
340
|
+
});
|
|
341
|
+
return [2 /*return*/, commit];
|
|
342
|
+
});
|
|
343
|
+
});
|
|
344
|
+
};
|
|
219
345
|
return FilesystemAdapter;
|
|
220
346
|
}(adapter_1.Adapter));
|
|
221
347
|
exports.FilesystemAdapter = FilesystemAdapter;
|