@teambit/component-log 1.0.510 → 1.0.512
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/artifacts/__bit_junit.xml +1 -1
- package/artifacts/preview/teambit_component_component_log-preview.js +1 -1
- package/dist/component-log.main.runtime.js +7 -7
- package/dist/component-log.main.runtime.js.map +1 -1
- package/dist/{preview-1736705249371.js → preview-1736824735631.js} +2 -2
- package/package.json +9 -9
- package/artifacts/schema.json +0 -2236
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<testsuites tests="0" failures="0" errors="0" skipped="0">
|
|
3
|
-
<testsuite name="teambit.component/component-log@1.0.
|
|
3
|
+
<testsuite name="teambit.component/component-log@1.0.512" tests="0" failures="0" errors="0" skipped="0"/>
|
|
4
4
|
</testsuites>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["teambit.component/component-log-preview"]=t():e["teambit.component/component-log-preview"]=t()}(self,(()=>(()=>{"use strict";var e={
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["teambit.component/component-log-preview"]=t():e["teambit.component/component-log-preview"]=t()}(self,(()=>(()=>{"use strict";var e={8071:(e,t,o)=>{var n={id:"teambit.component/component-log@1.0.512",homepage:"https://bit.cloud/teambit/component/component-log",exported:!0};function r(){const e=i(o(1594));return r=function(){return e},e}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Logo=void 0,r.__bit_component=n,i.__bit_component=n;const c=()=>r().default.createElement("div",{style:{height:"100%",display:"flex",justifyContent:"center"}},r().default.createElement("img",{style:{width:70},src:"https://static.bit.dev/extensions-icons/component-log.svg"}));c.__bit_component=n,t.Logo=c},1594:e=>{e.exports=React}},t={};function o(n){var r=t[n];if(void 0!==r)return r.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,o),i.exports}o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};o.r(n),o.d(n,{compositions:()=>m,compositions_metadata:()=>v,overview:()=>f});var r={};o.r(r),o.d(r,{default:()=>d});var i=o(8071);o(1594);const c=MdxJsReact,p=TeambitMdxUiMdxScopeContext;var a=["components"];function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)({}).hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},s.apply(null,arguments)}var l={},u="wrapper";function d(e){var t=e.components,o=function(e,t){if(null==e)return{};var o,n,r=function(e,t){if(null==e)return{};var o={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.includes(n))continue;o[n]=e[n]}return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)o=i[n],t.includes(o)||{}.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}(e,a);return(0,c.mdx)(u,s({},l,o,{components:t,mdxType:"MDXLayout"}),(0,c.mdx)(p.MDXScopeProvider,{components:{},mdxType:"MDXScopeProvider"}))}d.isMDXComponent=!0;const m=[i],f=[r],v={compositions:[{displayName:"Logo",identifier:"Logo"}]};return n})()));
|
|
@@ -60,9 +60,9 @@ function _pMapSeries() {
|
|
|
60
60
|
};
|
|
61
61
|
return data;
|
|
62
62
|
}
|
|
63
|
-
function
|
|
64
|
-
const data = require("@teambit/
|
|
65
|
-
|
|
63
|
+
function _objects() {
|
|
64
|
+
const data = require("@teambit/objects");
|
|
65
|
+
_objects = function () {
|
|
66
66
|
return data;
|
|
67
67
|
};
|
|
68
68
|
return data;
|
|
@@ -88,9 +88,9 @@ function _chalk() {
|
|
|
88
88
|
};
|
|
89
89
|
return data;
|
|
90
90
|
}
|
|
91
|
-
function
|
|
91
|
+
function _scope() {
|
|
92
92
|
const data = require("@teambit/scope.remotes");
|
|
93
|
-
|
|
93
|
+
_scope = function () {
|
|
94
94
|
return data;
|
|
95
95
|
};
|
|
96
96
|
return data;
|
|
@@ -158,7 +158,7 @@ class ComponentLogMain {
|
|
|
158
158
|
if (isRemote) {
|
|
159
159
|
const consumer = this.workspace?.consumer;
|
|
160
160
|
const bitId = _componentId().ComponentID.fromString(id);
|
|
161
|
-
const remote = await (0,
|
|
161
|
+
const remote = await (0, _scope().getRemoteByName)(bitId.scope, consumer);
|
|
162
162
|
return remote.log(bitId);
|
|
163
163
|
}
|
|
164
164
|
if (!this.workspace) throw new (_workspace().OutsideWorkspaceError)();
|
|
@@ -289,7 +289,7 @@ class ComponentLogMain {
|
|
|
289
289
|
// reverse order so it'll be from newer to older
|
|
290
290
|
const logs = reversedLogs.reverse();
|
|
291
291
|
const getFileContent = async hash => {
|
|
292
|
-
const source = await workspace.scope.legacyScope.objects.load(
|
|
292
|
+
const source = await workspace.scope.legacyScope.objects.load(_objects().Ref.from(hash), true);
|
|
293
293
|
return source.contents.toString();
|
|
294
294
|
};
|
|
295
295
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_cli","data","require","_componentId","_path","_interopRequireDefault","_moment","_pMap","_workspace","_lodash","_pMapSeries","_scope","_toolboxPath","_legacy","_chalk","_scope2","_diff","_componentLog","_logCmd","_snapGraph","_logFileCmd","_blameCmd","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ComponentLogMain","constructor","workspace","getLogs","id","options","isRemote","shortHash","shortMessage","consumer","bitId","ComponentID","fromString","remote","getRemoteByName","scope","log","OutsideWorkspaceError","componentId","resolveComponentId","hasVersion","inWs","getIdIfExist","logs","undefined","forEach","date","moment","Date","parseInt","format","message","split","showHidden","filter","l","hidden","getLogsWithParents","graph","buildSnapGraph","sorted","toposort","map","node","stringifyLogInfoOneLine","attr","getChangedFilesFromParent","modelComp","getBitObjectModelComponent","versionObj","getBitObjectVersion","version","firstParent","parents","parentObj","toString","compDir","componentDir","ignoreVersion","results","compact","files","file","parentFile","find","f","relativePath","isEqual","filePath","path","join","hash","parentHash","filesOnParentOnly","length","push","getFileHistoryHashes","getComponentIdByPath","rootDir","filePathAsLinux","pathNormalizeToLinux","filePathRelativeInComponent","replace","pMap","logItem","fileInComp","fileHash","getFileHashFromParent","parent","parentFileInComp","fileHashesFromParent","Promise","all","getParentFileHash","includes","tag","username","email","parentFileHash","parentHashes","p","concurrency","result","onlyParent","parentResult","blame","absPath","isAbsolute","toAbsolutePath","reversedLogs","reverse","getFileContent","source","legacyScope","objects","load","Ref","from","contents","currentLog","currentContentStr","currentContentLines","blameArray","lineContent","index","lineNumber","populateBlameArray","unblamedLineIndices","Set","_","pMapSeries","size","currentHash","parentContentStr","diff","diffLines","removedLines","addedLines","currentLineNum","part","lines","pop","added","has","delete","removed","line","keys","lineNum","previousLineContent","oldestLog","lineIdx","getFileLog","Error","relative","lastFile","component","get","changeVersion","filesystem","lastResult","lastHash","toSourceAsLinuxEOL","getFilesDiff","fileDiff","diffOutput","logInfo","chalk","yellow","provider","cli","componentLog","register","LogCmd","LogFileCmd","BlameCmd","exports","CLIAspect","WorkspaceAspect","MainRuntime","ComponentLogAspect","addRuntime"],"sources":["component-log.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ComponentID } from '@teambit/component-id';\nimport { LegacyComponentLog as ComponentLog } from '@teambit/legacy-component-log';\nimport path from 'path';\nimport moment from 'moment';\nimport pMap from 'p-map';\nimport { WorkspaceAspect, OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { compact } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport { Ref, Source, Version } from '@teambit/scope.objects';\nimport { pathNormalizeToLinux, PathOsBased, PathOsBasedAbsolute } from '@teambit/toolbox.path.path';\nimport { getFilesDiff } from '@teambit/legacy.component-diff';\nimport chalk from 'chalk';\nimport { getRemoteByName } from '@teambit/scope.remotes';\nimport { diffLines } from 'diff';\nimport { ComponentLogAspect } from './component-log.aspect';\nimport LogCmd from './log-cmd';\nimport { buildSnapGraph } from './snap-graph';\nimport { LogFileCmd } from './log-file-cmd';\nimport { BlameCmd } from './blame-cmd';\n\nexport type FileLog = {\n hash: string;\n tag?: string;\n username?: string;\n email?: string;\n date: string;\n message: string;\n fileHash: string;\n parentFileHash?: string;\n fileDiff?: string;\n hidden?: boolean;\n parentHashes?: string[];\n};\n\nexport type BlameLineInfo = {\n lineNumber: number;\n lineContent: string;\n previousLineContent?: string;\n username: string;\n email?: string;\n date: string;\n message: string;\n hash: string;\n tag?: string;\n};\n\nexport type LogOpts = {\n isRemote?: boolean;\n shortHash?: boolean;\n shortMessage?: boolean;\n showHidden?: boolean;\n};\n\nexport type FileHashDiffFromParent = {\n filePath: string; // path OS absolute\n hash?: string; // if undefined, the file was deleted in this snap\n parentHash?: string; // if undefined, the file was added in this snap\n};\n\nexport class ComponentLogMain {\n constructor(private workspace: Workspace | undefined) {}\n\n /**\n * get component log sorted by the timestamp in ascending order (from the earliest to the latest)\n */\n async getLogs(id: string, options: LogOpts = {}): Promise<ComponentLog[]> {\n const { isRemote = false, shortHash = false, shortMessage = false } = options;\n if (isRemote) {\n const consumer = this.workspace?.consumer;\n const bitId = ComponentID.fromString(id);\n const remote = await getRemoteByName(bitId.scope as string, consumer);\n return remote.log(bitId);\n }\n if (!this.workspace) throw new OutsideWorkspaceError();\n const componentId = await this.workspace.resolveComponentId(id);\n if (!componentId.hasVersion()) {\n const inWs = this.workspace.getIdIfExist(componentId);\n if (inWs && !inWs.hasVersion()) {\n return []; // component is new\n }\n }\n const logs = await this.workspace.scope.getLogs(componentId, shortHash, undefined, true);\n logs.forEach((log) => {\n log.date = log.date ? moment(new Date(parseInt(log.date))).format('YYYY-MM-DD HH:mm:ss') : undefined;\n log.message = shortMessage ? log.message.split('\\n')[0] : log.message;\n });\n return options.showHidden ? logs : logs.filter((l) => !l.hidden);\n }\n\n async getLogsWithParents(id: string, options: LogOpts) {\n const logs = await this.getLogs(id, options);\n const graph = buildSnapGraph(logs);\n const sorted = graph.toposort();\n return sorted.map((node) => this.stringifyLogInfoOneLine(node.attr));\n }\n\n async getChangedFilesFromParent(id: string): Promise<FileHashDiffFromParent[]> {\n const workspace = this.workspace;\n if (!workspace) throw new OutsideWorkspaceError();\n const componentId = await workspace.resolveComponentId(id);\n const modelComp = await workspace.scope.getBitObjectModelComponent(componentId, true);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const versionObj = (await workspace.scope.getBitObjectVersion(modelComp!, componentId.version!, true)) as Version;\n const firstParent = versionObj.parents[0];\n const parentObj = firstParent\n ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n ((await workspace.scope.getBitObjectVersion(modelComp!, firstParent.toString(), true)) as Version)\n : null;\n const compDir = workspace.componentDir(componentId, { ignoreVersion: true });\n const results: FileHashDiffFromParent[] = compact(\n versionObj.files.map((file) => {\n const parentFile = parentObj?.files.find((f) => f.relativePath === file.relativePath);\n if (parentFile?.file.isEqual(file.file)) return null;\n return {\n filePath: path.join(compDir, file.relativePath),\n hash: file.file.toString(),\n parentHash: parentFile?.file.toString(),\n };\n })\n );\n const filesOnParentOnly = (parentObj?.files || []).filter(\n (parentFile) => !versionObj.files.find((file) => file.relativePath === parentFile.relativePath)\n );\n if (filesOnParentOnly.length) {\n results.push(\n ...filesOnParentOnly.map((file) => ({\n filePath: file.relativePath,\n hash: undefined,\n parentHash: file.file.toString(),\n }))\n );\n }\n\n return results;\n }\n\n async getFileHistoryHashes(filePath: PathOsBasedAbsolute): Promise<FileLog[]> {\n const workspace = this.workspace;\n if (!workspace) throw new OutsideWorkspaceError();\n const componentId = await workspace.getComponentIdByPath(filePath);\n if (!componentId) {\n // filePath could be from the component dir but the file is not part of the bit-component (such as component.json)\n return [];\n }\n\n const rootDir = workspace.componentDir(componentId, undefined);\n\n const logs = await this.getLogs(componentId.toString(), { showHidden: true });\n\n const filePathAsLinux = pathNormalizeToLinux(filePath);\n const filePathRelativeInComponent = filePathAsLinux.replace(`${rootDir}/`, '');\n\n const modelComp = await workspace.scope.getBitObjectModelComponent(componentId);\n if (!modelComp) return []; // probably a new component\n const results: FileLog[] = [];\n await pMap(\n logs,\n async (logItem) => {\n const versionObj = await workspace.scope.getBitObjectVersion(modelComp, logItem.hash, true);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const fileInComp = versionObj!.files.find((f) => f.relativePath === filePathRelativeInComponent);\n if (!fileInComp) return;\n const fileHash = fileInComp.file.toString();\n const getFileHashFromParent = async (parent: Ref) => {\n const parentObj = parent\n ? await workspace.scope.getBitObjectVersion(modelComp, parent.toString(), true)\n : undefined;\n\n const parentFileInComp = parentObj\n ? parentObj.files.find((f) => f.relativePath === filePathRelativeInComponent)\n : undefined;\n\n return parentFileInComp?.file.toString();\n };\n const fileHashesFromParent = versionObj ? await Promise.all(versionObj.parents.map(getFileHashFromParent)) : [];\n\n const getParentFileHash = () => {\n if (fileHashesFromParent.length === 0) return undefined;\n if (fileHashesFromParent.length === 1) return fileHashesFromParent[0];\n // if one parent has it, it means that this merge-snap didn't change the file.\n if (fileHashesFromParent.includes(fileHash)) return fileHash;\n return fileHashesFromParent[0];\n };\n\n results.push({\n hash: logItem.hash,\n tag: logItem.tag,\n username: logItem.username,\n email: logItem.email,\n date: logItem.date || '<N/A>',\n message: logItem.message,\n fileHash,\n parentFileHash: getParentFileHash(),\n hidden: logItem.hidden,\n parentHashes: versionObj?.parents.map((p) => p.toString()),\n });\n },\n { concurrency: 100 }\n );\n\n // remove entries that their fileHash is the same as their parent.\n // however, if their parent is hidden, because they're going to be removed, use their parents.\n results.forEach((result) => {\n const parents = result.parentHashes || [];\n if (parents.length !== 1) return;\n const onlyParent = parents[0];\n const parentResult = results.find((r) => r.hash === onlyParent);\n if (parentResult && parentResult.hidden) {\n result.parentFileHash = parentResult.parentFileHash;\n }\n });\n return results.filter((r) => !r.hidden).filter((r) => r.fileHash !== r.parentFileHash);\n }\n\n async blame(filePath: PathOsBased): Promise<BlameLineInfo[]> {\n const workspace = this.workspace;\n if (!workspace) throw new OutsideWorkspaceError();\n const absPath = path.isAbsolute(filePath) ? filePath : workspace.consumer.toAbsolutePath(filePath);\n const reversedLogs = await this.getFileHistoryHashes(absPath);\n if (!reversedLogs.length) return [];\n // reverse order so it'll be from newer to older\n const logs = reversedLogs.reverse();\n\n const getFileContent = async (hash: string) => {\n const source = (await workspace.scope.legacyScope.objects.load(Ref.from(hash), true)) as Source;\n return source.contents.toString();\n };\n\n // Initialize the blame array with the current file content\n const currentLog = logs[0];\n let currentContentStr = await getFileContent(currentLog.fileHash);\n const currentContentLines = currentContentStr.split('\\n');\n const blameArray: Partial<BlameLineInfo>[] = currentContentLines.map((lineContent, index) => ({\n lineNumber: index + 1,\n lineContent,\n }));\n const populateBlameArray = (lineNumber: number, log: FileLog) => {\n blameArray[lineNumber].username = log.username;\n blameArray[lineNumber].email = log.email;\n blameArray[lineNumber].date = log.date;\n blameArray[lineNumber].message = log.message;\n blameArray[lineNumber].hash = log.hash;\n blameArray[lineNumber].tag = log.tag;\n };\n\n // Keep track of unassigned lines\n const unblamedLineIndices = new Set(blameArray.map((_, index) => index));\n\n await pMapSeries(logs, async (logItem) => {\n if (unblamedLineIndices.size === 0) return; // All lines have been assigned\n\n const currentHash = logItem.fileHash;\n const parentHash = logItem.parentFileHash;\n\n // Skip if there is no parent to compare with\n if (!parentHash) return;\n\n currentContentStr = await getFileContent(currentHash);\n const parentContentStr = await getFileContent(parentHash);\n\n const diff = diffLines(parentContentStr, currentContentStr);\n\n const removedLines: Record<number, string> = {};\n const addedLines: number[] = [];\n\n let currentLineNum = 0;\n\n diff.forEach((part) => {\n const lines = part.value.split('\\n');\n // Remove the last empty line if the string ends with a newline\n if (lines[lines.length - 1] === '') lines.pop();\n\n if (part.added) {\n // Lines added in the current version\n lines.forEach(() => {\n if (unblamedLineIndices.has(currentLineNum)) {\n populateBlameArray(currentLineNum, logItem);\n addedLines.push(currentLineNum);\n unblamedLineIndices.delete(currentLineNum);\n }\n currentLineNum++;\n });\n } else if (part.removed) {\n lines.forEach((line, index) => {\n removedLines[currentLineNum + index] = line;\n });\n // Lines removed from parent version; do not advance currentLineNum\n // Since these lines are not in the current version, we ignore them\n } else {\n // Unchanged lines\n currentLineNum += lines.length;\n }\n });\n Object.keys(removedLines).forEach((lineNum) => {\n if (addedLines.includes(parseInt(lineNum))) {\n blameArray[parseInt(lineNum)].previousLineContent = removedLines[parseInt(lineNum)];\n }\n });\n });\n\n // Assign the oldest log info to any remaining unblamed lines\n const oldestLog = logs[logs.length - 1];\n unblamedLineIndices.forEach((lineIdx) => {\n populateBlameArray(lineIdx, oldestLog);\n });\n\n return blameArray as BlameLineInfo[];\n }\n\n async getFileLog(filePath: string) {\n const workspace = this.workspace;\n if (!workspace) throw new OutsideWorkspaceError();\n const componentId = await workspace.getComponentIdByPath(filePath);\n if (!componentId) throw new Error(`unable to find component for file ${filePath}`);\n\n const rootDir = workspace.componentDir(componentId, undefined, { relative: true });\n\n const logs = await this.getLogs(componentId.toString());\n\n const filePathAsLinux = pathNormalizeToLinux(filePath);\n const filePathRelativeInComponent = filePathAsLinux.replace(`${rootDir}/`, '');\n\n const results: FileLog[] = [];\n let lastFile;\n await pMapSeries(logs, async (logItem) => {\n const component = await workspace.get(componentId.changeVersion(logItem.tag || logItem.hash));\n const fileInComp = component.filesystem.files.find((f) => f.relative === filePathRelativeInComponent);\n const lastResult = results[results.length - 1];\n const lastHash = lastResult?.fileHash;\n let fileHash: string;\n if (!fileInComp) {\n if (!lastHash) return;\n fileHash = '<REMOVED>';\n } else {\n fileHash = fileInComp.toSourceAsLinuxEOL().hash().toString();\n }\n if (fileHash === lastHash) return;\n\n let diff;\n if (lastFile && fileInComp) {\n diff = await getFilesDiff([lastFile], [fileInComp], logItem.hash, lastResult.hash, undefined);\n }\n\n lastFile = fileInComp;\n\n results.push({\n hash: logItem.hash,\n tag: logItem.tag,\n username: logItem.username,\n email: logItem.email,\n date: logItem.date || '<N/A>',\n message: logItem.message,\n fileDiff: diff?.length ? diff[0].diffOutput : undefined,\n fileHash,\n });\n });\n return results;\n }\n\n private stringifyLogInfoOneLine(logInfo: ComponentLogInfo) {\n const parents = logInfo.parents.length ? `Parent(s): ${logInfo.parents.join(', ')}` : '<N/A>';\n return `${chalk.yellow(logInfo.hash)} ${logInfo.username || ''} ${logInfo.date || ''} ${\n logInfo.message\n }, ${parents}`;\n }\n\n static slots = [];\n static dependencies = [CLIAspect, WorkspaceAspect];\n static runtime = MainRuntime;\n static async provider([cli, workspace]: [CLIMain, Workspace]) {\n const componentLog = new ComponentLogMain(workspace);\n cli.register(new LogCmd(componentLog), new LogFileCmd(componentLog), new BlameCmd(componentLog));\n return componentLog;\n }\n}\n\nComponentLogAspect.addRuntime(ComponentLogMain);\n\nexport type ComponentLogInfo = {\n hash: string;\n message: string;\n onLane?: boolean;\n parents: string[];\n username?: string;\n email?: string;\n date?: string;\n tag?: string;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_cli","data","require","_componentId","_path","_interopRequireDefault","_moment","_pMap","_workspace","_lodash","_pMapSeries","_objects","_toolboxPath","_legacy","_chalk","_scope","_diff","_componentLog","_logCmd","_snapGraph","_logFileCmd","_blameCmd","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ComponentLogMain","constructor","workspace","getLogs","id","options","isRemote","shortHash","shortMessage","consumer","bitId","ComponentID","fromString","remote","getRemoteByName","scope","log","OutsideWorkspaceError","componentId","resolveComponentId","hasVersion","inWs","getIdIfExist","logs","undefined","forEach","date","moment","Date","parseInt","format","message","split","showHidden","filter","l","hidden","getLogsWithParents","graph","buildSnapGraph","sorted","toposort","map","node","stringifyLogInfoOneLine","attr","getChangedFilesFromParent","modelComp","getBitObjectModelComponent","versionObj","getBitObjectVersion","version","firstParent","parents","parentObj","toString","compDir","componentDir","ignoreVersion","results","compact","files","file","parentFile","find","f","relativePath","isEqual","filePath","path","join","hash","parentHash","filesOnParentOnly","length","push","getFileHistoryHashes","getComponentIdByPath","rootDir","filePathAsLinux","pathNormalizeToLinux","filePathRelativeInComponent","replace","pMap","logItem","fileInComp","fileHash","getFileHashFromParent","parent","parentFileInComp","fileHashesFromParent","Promise","all","getParentFileHash","includes","tag","username","email","parentFileHash","parentHashes","p","concurrency","result","onlyParent","parentResult","blame","absPath","isAbsolute","toAbsolutePath","reversedLogs","reverse","getFileContent","source","legacyScope","objects","load","Ref","from","contents","currentLog","currentContentStr","currentContentLines","blameArray","lineContent","index","lineNumber","populateBlameArray","unblamedLineIndices","Set","_","pMapSeries","size","currentHash","parentContentStr","diff","diffLines","removedLines","addedLines","currentLineNum","part","lines","pop","added","has","delete","removed","line","keys","lineNum","previousLineContent","oldestLog","lineIdx","getFileLog","Error","relative","lastFile","component","get","changeVersion","filesystem","lastResult","lastHash","toSourceAsLinuxEOL","getFilesDiff","fileDiff","diffOutput","logInfo","chalk","yellow","provider","cli","componentLog","register","LogCmd","LogFileCmd","BlameCmd","exports","CLIAspect","WorkspaceAspect","MainRuntime","ComponentLogAspect","addRuntime"],"sources":["component-log.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ComponentID } from '@teambit/component-id';\nimport { LegacyComponentLog as ComponentLog } from '@teambit/legacy-component-log';\nimport path from 'path';\nimport moment from 'moment';\nimport pMap from 'p-map';\nimport { WorkspaceAspect, OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { compact } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport { Ref, Source, Version } from '@teambit/objects';\nimport { pathNormalizeToLinux, PathOsBased, PathOsBasedAbsolute } from '@teambit/toolbox.path.path';\nimport { getFilesDiff } from '@teambit/legacy.component-diff';\nimport chalk from 'chalk';\nimport { getRemoteByName } from '@teambit/scope.remotes';\nimport { diffLines } from 'diff';\nimport { ComponentLogAspect } from './component-log.aspect';\nimport LogCmd from './log-cmd';\nimport { buildSnapGraph } from './snap-graph';\nimport { LogFileCmd } from './log-file-cmd';\nimport { BlameCmd } from './blame-cmd';\n\nexport type FileLog = {\n hash: string;\n tag?: string;\n username?: string;\n email?: string;\n date: string;\n message: string;\n fileHash: string;\n parentFileHash?: string;\n fileDiff?: string;\n hidden?: boolean;\n parentHashes?: string[];\n};\n\nexport type BlameLineInfo = {\n lineNumber: number;\n lineContent: string;\n previousLineContent?: string;\n username: string;\n email?: string;\n date: string;\n message: string;\n hash: string;\n tag?: string;\n};\n\nexport type LogOpts = {\n isRemote?: boolean;\n shortHash?: boolean;\n shortMessage?: boolean;\n showHidden?: boolean;\n};\n\nexport type FileHashDiffFromParent = {\n filePath: string; // path OS absolute\n hash?: string; // if undefined, the file was deleted in this snap\n parentHash?: string; // if undefined, the file was added in this snap\n};\n\nexport class ComponentLogMain {\n constructor(private workspace: Workspace | undefined) {}\n\n /**\n * get component log sorted by the timestamp in ascending order (from the earliest to the latest)\n */\n async getLogs(id: string, options: LogOpts = {}): Promise<ComponentLog[]> {\n const { isRemote = false, shortHash = false, shortMessage = false } = options;\n if (isRemote) {\n const consumer = this.workspace?.consumer;\n const bitId = ComponentID.fromString(id);\n const remote = await getRemoteByName(bitId.scope as string, consumer);\n return remote.log(bitId);\n }\n if (!this.workspace) throw new OutsideWorkspaceError();\n const componentId = await this.workspace.resolveComponentId(id);\n if (!componentId.hasVersion()) {\n const inWs = this.workspace.getIdIfExist(componentId);\n if (inWs && !inWs.hasVersion()) {\n return []; // component is new\n }\n }\n const logs = await this.workspace.scope.getLogs(componentId, shortHash, undefined, true);\n logs.forEach((log) => {\n log.date = log.date ? moment(new Date(parseInt(log.date))).format('YYYY-MM-DD HH:mm:ss') : undefined;\n log.message = shortMessage ? log.message.split('\\n')[0] : log.message;\n });\n return options.showHidden ? logs : logs.filter((l) => !l.hidden);\n }\n\n async getLogsWithParents(id: string, options: LogOpts) {\n const logs = await this.getLogs(id, options);\n const graph = buildSnapGraph(logs);\n const sorted = graph.toposort();\n return sorted.map((node) => this.stringifyLogInfoOneLine(node.attr));\n }\n\n async getChangedFilesFromParent(id: string): Promise<FileHashDiffFromParent[]> {\n const workspace = this.workspace;\n if (!workspace) throw new OutsideWorkspaceError();\n const componentId = await workspace.resolveComponentId(id);\n const modelComp = await workspace.scope.getBitObjectModelComponent(componentId, true);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const versionObj = (await workspace.scope.getBitObjectVersion(modelComp!, componentId.version!, true)) as Version;\n const firstParent = versionObj.parents[0];\n const parentObj = firstParent\n ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n ((await workspace.scope.getBitObjectVersion(modelComp!, firstParent.toString(), true)) as Version)\n : null;\n const compDir = workspace.componentDir(componentId, { ignoreVersion: true });\n const results: FileHashDiffFromParent[] = compact(\n versionObj.files.map((file) => {\n const parentFile = parentObj?.files.find((f) => f.relativePath === file.relativePath);\n if (parentFile?.file.isEqual(file.file)) return null;\n return {\n filePath: path.join(compDir, file.relativePath),\n hash: file.file.toString(),\n parentHash: parentFile?.file.toString(),\n };\n })\n );\n const filesOnParentOnly = (parentObj?.files || []).filter(\n (parentFile) => !versionObj.files.find((file) => file.relativePath === parentFile.relativePath)\n );\n if (filesOnParentOnly.length) {\n results.push(\n ...filesOnParentOnly.map((file) => ({\n filePath: file.relativePath,\n hash: undefined,\n parentHash: file.file.toString(),\n }))\n );\n }\n\n return results;\n }\n\n async getFileHistoryHashes(filePath: PathOsBasedAbsolute): Promise<FileLog[]> {\n const workspace = this.workspace;\n if (!workspace) throw new OutsideWorkspaceError();\n const componentId = await workspace.getComponentIdByPath(filePath);\n if (!componentId) {\n // filePath could be from the component dir but the file is not part of the bit-component (such as component.json)\n return [];\n }\n\n const rootDir = workspace.componentDir(componentId, undefined);\n\n const logs = await this.getLogs(componentId.toString(), { showHidden: true });\n\n const filePathAsLinux = pathNormalizeToLinux(filePath);\n const filePathRelativeInComponent = filePathAsLinux.replace(`${rootDir}/`, '');\n\n const modelComp = await workspace.scope.getBitObjectModelComponent(componentId);\n if (!modelComp) return []; // probably a new component\n const results: FileLog[] = [];\n await pMap(\n logs,\n async (logItem) => {\n const versionObj = await workspace.scope.getBitObjectVersion(modelComp, logItem.hash, true);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const fileInComp = versionObj!.files.find((f) => f.relativePath === filePathRelativeInComponent);\n if (!fileInComp) return;\n const fileHash = fileInComp.file.toString();\n const getFileHashFromParent = async (parent: Ref) => {\n const parentObj = parent\n ? await workspace.scope.getBitObjectVersion(modelComp, parent.toString(), true)\n : undefined;\n\n const parentFileInComp = parentObj\n ? parentObj.files.find((f) => f.relativePath === filePathRelativeInComponent)\n : undefined;\n\n return parentFileInComp?.file.toString();\n };\n const fileHashesFromParent = versionObj ? await Promise.all(versionObj.parents.map(getFileHashFromParent)) : [];\n\n const getParentFileHash = () => {\n if (fileHashesFromParent.length === 0) return undefined;\n if (fileHashesFromParent.length === 1) return fileHashesFromParent[0];\n // if one parent has it, it means that this merge-snap didn't change the file.\n if (fileHashesFromParent.includes(fileHash)) return fileHash;\n return fileHashesFromParent[0];\n };\n\n results.push({\n hash: logItem.hash,\n tag: logItem.tag,\n username: logItem.username,\n email: logItem.email,\n date: logItem.date || '<N/A>',\n message: logItem.message,\n fileHash,\n parentFileHash: getParentFileHash(),\n hidden: logItem.hidden,\n parentHashes: versionObj?.parents.map((p) => p.toString()),\n });\n },\n { concurrency: 100 }\n );\n\n // remove entries that their fileHash is the same as their parent.\n // however, if their parent is hidden, because they're going to be removed, use their parents.\n results.forEach((result) => {\n const parents = result.parentHashes || [];\n if (parents.length !== 1) return;\n const onlyParent = parents[0];\n const parentResult = results.find((r) => r.hash === onlyParent);\n if (parentResult && parentResult.hidden) {\n result.parentFileHash = parentResult.parentFileHash;\n }\n });\n return results.filter((r) => !r.hidden).filter((r) => r.fileHash !== r.parentFileHash);\n }\n\n async blame(filePath: PathOsBased): Promise<BlameLineInfo[]> {\n const workspace = this.workspace;\n if (!workspace) throw new OutsideWorkspaceError();\n const absPath = path.isAbsolute(filePath) ? filePath : workspace.consumer.toAbsolutePath(filePath);\n const reversedLogs = await this.getFileHistoryHashes(absPath);\n if (!reversedLogs.length) return [];\n // reverse order so it'll be from newer to older\n const logs = reversedLogs.reverse();\n\n const getFileContent = async (hash: string) => {\n const source = (await workspace.scope.legacyScope.objects.load(Ref.from(hash), true)) as Source;\n return source.contents.toString();\n };\n\n // Initialize the blame array with the current file content\n const currentLog = logs[0];\n let currentContentStr = await getFileContent(currentLog.fileHash);\n const currentContentLines = currentContentStr.split('\\n');\n const blameArray: Partial<BlameLineInfo>[] = currentContentLines.map((lineContent, index) => ({\n lineNumber: index + 1,\n lineContent,\n }));\n const populateBlameArray = (lineNumber: number, log: FileLog) => {\n blameArray[lineNumber].username = log.username;\n blameArray[lineNumber].email = log.email;\n blameArray[lineNumber].date = log.date;\n blameArray[lineNumber].message = log.message;\n blameArray[lineNumber].hash = log.hash;\n blameArray[lineNumber].tag = log.tag;\n };\n\n // Keep track of unassigned lines\n const unblamedLineIndices = new Set(blameArray.map((_, index) => index));\n\n await pMapSeries(logs, async (logItem) => {\n if (unblamedLineIndices.size === 0) return; // All lines have been assigned\n\n const currentHash = logItem.fileHash;\n const parentHash = logItem.parentFileHash;\n\n // Skip if there is no parent to compare with\n if (!parentHash) return;\n\n currentContentStr = await getFileContent(currentHash);\n const parentContentStr = await getFileContent(parentHash);\n\n const diff = diffLines(parentContentStr, currentContentStr);\n\n const removedLines: Record<number, string> = {};\n const addedLines: number[] = [];\n\n let currentLineNum = 0;\n\n diff.forEach((part) => {\n const lines = part.value.split('\\n');\n // Remove the last empty line if the string ends with a newline\n if (lines[lines.length - 1] === '') lines.pop();\n\n if (part.added) {\n // Lines added in the current version\n lines.forEach(() => {\n if (unblamedLineIndices.has(currentLineNum)) {\n populateBlameArray(currentLineNum, logItem);\n addedLines.push(currentLineNum);\n unblamedLineIndices.delete(currentLineNum);\n }\n currentLineNum++;\n });\n } else if (part.removed) {\n lines.forEach((line, index) => {\n removedLines[currentLineNum + index] = line;\n });\n // Lines removed from parent version; do not advance currentLineNum\n // Since these lines are not in the current version, we ignore them\n } else {\n // Unchanged lines\n currentLineNum += lines.length;\n }\n });\n Object.keys(removedLines).forEach((lineNum) => {\n if (addedLines.includes(parseInt(lineNum))) {\n blameArray[parseInt(lineNum)].previousLineContent = removedLines[parseInt(lineNum)];\n }\n });\n });\n\n // Assign the oldest log info to any remaining unblamed lines\n const oldestLog = logs[logs.length - 1];\n unblamedLineIndices.forEach((lineIdx) => {\n populateBlameArray(lineIdx, oldestLog);\n });\n\n return blameArray as BlameLineInfo[];\n }\n\n async getFileLog(filePath: string) {\n const workspace = this.workspace;\n if (!workspace) throw new OutsideWorkspaceError();\n const componentId = await workspace.getComponentIdByPath(filePath);\n if (!componentId) throw new Error(`unable to find component for file ${filePath}`);\n\n const rootDir = workspace.componentDir(componentId, undefined, { relative: true });\n\n const logs = await this.getLogs(componentId.toString());\n\n const filePathAsLinux = pathNormalizeToLinux(filePath);\n const filePathRelativeInComponent = filePathAsLinux.replace(`${rootDir}/`, '');\n\n const results: FileLog[] = [];\n let lastFile;\n await pMapSeries(logs, async (logItem) => {\n const component = await workspace.get(componentId.changeVersion(logItem.tag || logItem.hash));\n const fileInComp = component.filesystem.files.find((f) => f.relative === filePathRelativeInComponent);\n const lastResult = results[results.length - 1];\n const lastHash = lastResult?.fileHash;\n let fileHash: string;\n if (!fileInComp) {\n if (!lastHash) return;\n fileHash = '<REMOVED>';\n } else {\n fileHash = fileInComp.toSourceAsLinuxEOL().hash().toString();\n }\n if (fileHash === lastHash) return;\n\n let diff;\n if (lastFile && fileInComp) {\n diff = await getFilesDiff([lastFile], [fileInComp], logItem.hash, lastResult.hash, undefined);\n }\n\n lastFile = fileInComp;\n\n results.push({\n hash: logItem.hash,\n tag: logItem.tag,\n username: logItem.username,\n email: logItem.email,\n date: logItem.date || '<N/A>',\n message: logItem.message,\n fileDiff: diff?.length ? diff[0].diffOutput : undefined,\n fileHash,\n });\n });\n return results;\n }\n\n private stringifyLogInfoOneLine(logInfo: ComponentLogInfo) {\n const parents = logInfo.parents.length ? `Parent(s): ${logInfo.parents.join(', ')}` : '<N/A>';\n return `${chalk.yellow(logInfo.hash)} ${logInfo.username || ''} ${logInfo.date || ''} ${\n logInfo.message\n }, ${parents}`;\n }\n\n static slots = [];\n static dependencies = [CLIAspect, WorkspaceAspect];\n static runtime = MainRuntime;\n static async provider([cli, workspace]: [CLIMain, Workspace]) {\n const componentLog = new ComponentLogMain(workspace);\n cli.register(new LogCmd(componentLog), new LogFileCmd(componentLog), new BlameCmd(componentLog));\n return componentLog;\n }\n}\n\nComponentLogAspect.addRuntime(ComponentLogMain);\n\nexport type ComponentLogInfo = {\n hash: string;\n message: string;\n onLane?: boolean;\n parents: string[];\n username?: string;\n email?: string;\n date?: string;\n tag?: string;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component-log@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component-log@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component-log@1.0.512/dist/component-log.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component-log@1.0.512/dist/component-log.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/component-log",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.512",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/component/component-log",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.component",
|
|
8
8
|
"name": "component-log",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.512"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"chalk": "2.4.2",
|
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
"@teambit/harmony": "0.4.6",
|
|
20
20
|
"@teambit/component-id": "1.2.2",
|
|
21
21
|
"@teambit/graph.cleargraph": "0.0.11",
|
|
22
|
-
"@teambit/cli": "0.0.
|
|
23
|
-
"@teambit/legacy-component-log": "0.0.
|
|
24
|
-
"@teambit/legacy.component-diff": "0.0.
|
|
25
|
-
"@teambit/
|
|
26
|
-
"@teambit/scope.remotes": "0.0.
|
|
27
|
-
"@teambit/toolbox.path.path": "0.0.
|
|
28
|
-
"@teambit/workspace": "1.0.
|
|
22
|
+
"@teambit/cli": "0.0.1089",
|
|
23
|
+
"@teambit/legacy-component-log": "0.0.405",
|
|
24
|
+
"@teambit/legacy.component-diff": "0.0.72",
|
|
25
|
+
"@teambit/objects": "0.0.19",
|
|
26
|
+
"@teambit/scope.remotes": "0.0.19",
|
|
27
|
+
"@teambit/toolbox.path.path": "0.0.6",
|
|
28
|
+
"@teambit/workspace": "1.0.512"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/diff": "^5.2.3",
|