@teambit/component-log 1.0.667 → 1.0.669

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.
@@ -1,5 +1,5 @@
1
- import { Command, CommandOptions } from '@teambit/cli';
2
- import { ComponentLogMain } from './component-log.main.runtime';
1
+ import type { Command, CommandOptions } from '@teambit/cli';
2
+ import type { ComponentLogMain } from './component-log.main.runtime';
3
3
  export declare class BlameCmd implements Command {
4
4
  private componentLog;
5
5
  name: string;
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_logCmd","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","BlameCmd","constructor","componentLog","name","description","report","filePath","includeMessage","results","blame","length","chalk","yellow","table","getEmptyTableWithoutStyle","forEach","hash","tag","username","date","message","lineNumber","lineContent","shortHash","substring","shortMessage","split","push","toString","exports"],"sources":["blame-cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport { ComponentLogMain } from './component-log.main.runtime';\nimport { getEmptyTableWithoutStyle } from './log-cmd';\n\nexport class BlameCmd implements Command {\n name = 'blame <filepath>';\n description = 'EXPERIMENTAL. per line, show who and when was the last to modify it';\n group = 'version-control';\n alias = '';\n options = [['m', 'include-message', 'show the commit message']] as CommandOptions;\n arguments = [{ name: 'filepath', description: 'file path relative to the workspace' }];\n\n constructor(private componentLog: ComponentLogMain) {}\n\n async report([filePath]: [string], { includeMessage = false }: { includeMessage?: boolean }) {\n const results = await this.componentLog.blame(filePath);\n if (!results.length) return chalk.yellow('no results found');\n const table = getEmptyTableWithoutStyle();\n results.forEach(({ hash, tag, username, date, message, lineNumber, lineContent }) => {\n const shortHash = hash.substring(0, 9);\n const shortMessage = includeMessage ? message.split('\\n')[0] : '';\n table.push([shortHash, tag || '', username, date, shortMessage, `${lineNumber})`, lineContent]);\n });\n return table.toString();\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_logCmd","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","BlameCmd","constructor","componentLog","name","description","report","filePath","includeMessage","results","blame","length","chalk","yellow","table","getEmptyTableWithoutStyle","forEach","hash","tag","username","date","message","lineNumber","lineContent","shortHash","substring","shortMessage","split","push","toString","exports"],"sources":["blame-cmd.ts"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport type { ComponentLogMain } from './component-log.main.runtime';\nimport { getEmptyTableWithoutStyle } from './log-cmd';\n\nexport class BlameCmd implements Command {\n name = 'blame <filepath>';\n description = 'EXPERIMENTAL. per line, show who and when was the last to modify it';\n group = 'version-control';\n alias = '';\n options = [['m', 'include-message', 'show the commit message']] as CommandOptions;\n arguments = [{ name: 'filepath', description: 'file path relative to the workspace' }];\n\n constructor(private componentLog: ComponentLogMain) {}\n\n async report([filePath]: [string], { includeMessage = false }: { includeMessage?: boolean }) {\n const results = await this.componentLog.blame(filePath);\n if (!results.length) return chalk.yellow('no results found');\n const table = getEmptyTableWithoutStyle();\n results.forEach(({ hash, tag, username, date, message, lineNumber, lineContent }) => {\n const shortHash = hash.substring(0, 9);\n const shortMessage = includeMessage ? message.split('\\n')[0] : '';\n table.push([shortHash, tag || '', username, date, shortMessage, `${lineNumber})`, lineContent]);\n });\n return table.toString();\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
- import { CLIMain } from '@teambit/cli';
2
- import { LegacyComponentLog as ComponentLog } from '@teambit/legacy-component-log';
3
- import { Workspace } from '@teambit/workspace';
4
- import { PathOsBased, PathOsBasedAbsolute } from '@teambit/toolbox.path.path';
1
+ import type { CLIMain } from '@teambit/cli';
2
+ import type { LegacyComponentLog as ComponentLog } from '@teambit/legacy-component-log';
3
+ import type { Workspace } from '@teambit/workspace';
4
+ import type { PathOsBased, PathOsBasedAbsolute } from '@teambit/toolbox.path.path';
5
5
  export type FileLog = {
6
6
  hash: string;
7
7
  tag?: string;
@@ -1 +1 @@
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
+ {"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 type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport { ComponentID } from '@teambit/component-id';\nimport type { LegacyComponentLog as ComponentLog } from '@teambit/legacy-component-log';\nimport path from 'path';\nimport moment from 'moment';\nimport pMap from 'p-map';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect, OutsideWorkspaceError } from '@teambit/workspace';\nimport { compact } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport type { Source, Version } from '@teambit/objects';\nimport { Ref } from '@teambit/objects';\nimport type { PathOsBased, PathOsBasedAbsolute } from '@teambit/toolbox.path.path';\nimport { pathNormalizeToLinux } 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":[]}
package/dist/log-cmd.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import Table from 'cli-table';
2
- import { Command, CommandOptions } from '@teambit/cli';
3
- import { LegacyComponentLog } from '@teambit/legacy-component-log';
4
- import { ComponentLogMain } from './component-log.main.runtime';
2
+ import type { Command, CommandOptions } from '@teambit/cli';
3
+ import type { LegacyComponentLog } from '@teambit/legacy-component-log';
4
+ import type { ComponentLogMain } from './component-log.main.runtime';
5
5
  type LogFlags = {
6
6
  remote?: boolean;
7
7
  parents?: boolean;
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_cliTable","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LogCmd","constructor","componentLog","name","description","report","id","remote","parents","oneLine","fullHash","fullMessage","showHidden","logOpts","isRemote","shortHash","shortMessage","logs","getLogsWithParents","join","getLogs","logOneLine","reverse","map","paintLog","json","exports","paintAuthor","email","username","c","white","log","message","date","tag","hash","deleted","deprecated","deletedStr","red","deprecatedStr","yellow","title","getEmptyTableWithoutStyle","Table","chars","top","bottom","left","mid","right","middle","style","table","push","toString"],"sources":["log-cmd.ts"],"sourcesContent":["import c from 'chalk';\nimport Table from 'cli-table';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { LegacyComponentLog } from '@teambit/legacy-component-log';\nimport { ComponentLogMain, LogOpts } from './component-log.main.runtime';\n\ntype LogFlags = {\n remote?: boolean;\n parents?: boolean;\n oneLine?: boolean;\n fullHash?: boolean;\n fullMessage?: boolean;\n showHidden?: boolean;\n};\nexport default class LogCmd implements Command {\n name = 'log <id>';\n description = 'show components(s) version history';\n helpUrl = 'reference/components/navigating-history';\n extendedDescription: string;\n group = 'version-control';\n alias = '';\n options = [\n ['r', 'remote', 'show log of a remote component'],\n ['', 'parents', 'show parents and lanes data'],\n ['o', 'one-line', 'show each log entry in one line'],\n ['f', 'full-hash', 'show full hash of the snap (default to the first 9 characters for --one-line/--parents flags)'],\n ['m', 'full-message', 'show full message of the snap (default to the first line for --one-line/--parents flags)'],\n [\n '',\n 'show-hidden',\n 'show hidden snaps (snaps are marked as hidden typically when the following tag has the same files/config)',\n ],\n ['j', 'json', 'json format'],\n ] as CommandOptions;\n remoteOp = true; // should support log against remote\n skipWorkspace = true;\n arguments = [{ name: 'id', description: 'component-id or component-name' }];\n\n constructor(private componentLog: ComponentLogMain) {}\n\n async report(\n [id]: [string],\n { remote = false, parents = false, oneLine = false, fullHash = false, fullMessage, showHidden }: LogFlags\n ) {\n if (!parents && !oneLine) {\n fullHash = true;\n fullMessage = true;\n }\n const logOpts: LogOpts = { isRemote: remote, shortHash: !fullHash, shortMessage: !fullMessage, showHidden };\n if (parents) {\n const logs = await this.componentLog.getLogsWithParents(id, logOpts);\n return logs.join('\\n');\n }\n const logs = await this.componentLog.getLogs(id, logOpts);\n if (oneLine) {\n return logOneLine(logs.reverse());\n }\n // reverse to show from the latest to earliest\n return logs.reverse().map(paintLog).join('\\n');\n }\n\n async json(\n [id]: [string],\n { remote = false, parents = false, oneLine = false, fullHash = false, fullMessage, showHidden }: LogFlags\n ) {\n if (!parents && !oneLine) {\n fullHash = true;\n fullMessage = true;\n }\n const logOpts: LogOpts = { isRemote: remote, shortHash: !fullHash, shortMessage: !fullMessage, showHidden };\n if (parents) {\n return this.componentLog.getLogsWithParents(id, logOpts);\n }\n return this.componentLog.getLogs(id, logOpts);\n }\n}\n\nexport function paintAuthor(email: string | null | undefined, username: string | null | undefined) {\n if (email && username) {\n return c.white(`author: ${username} <${email}>\\n`);\n }\n if (email && !username) {\n return c.white(`author: <${email}>\\n`);\n }\n if (!email && username) {\n return c.white(`author: ${username}\\n`);\n }\n\n return '';\n}\n\nfunction paintLog(log: LegacyComponentLog): string {\n const { message, date, tag, hash, username, email, deleted, deprecated } = log;\n const deletedStr = deleted ? c.red(' [deleted]') : '';\n const deprecatedStr = !deleted && deprecated ? c.yellow(' [deprecated]') : '';\n const title = tag ? `tag ${tag} (${hash})${deletedStr}${deprecatedStr}\\n` : `snap ${hash}\\n`;\n return (\n c.yellow(title) +\n paintAuthor(email, username) +\n (date ? c.white(`date: ${date}\\n`) : '') +\n (message ? c.white(`\\n ${message}\\n`) : '')\n );\n}\n\n/**\n * table with no style and no borders, just to align the columns.\n */\nexport function getEmptyTableWithoutStyle() {\n return new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n middle: ' ',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n });\n}\n\nfunction logOneLine(logs: LegacyComponentLog[]) {\n const table = getEmptyTableWithoutStyle();\n\n logs.map(({ hash, tag, username, date, message }) =>\n table.push([hash, tag || '', username || '', date || '', message || ''])\n );\n\n return table.toString();\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_cliTable","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LogCmd","constructor","componentLog","name","description","report","id","remote","parents","oneLine","fullHash","fullMessage","showHidden","logOpts","isRemote","shortHash","shortMessage","logs","getLogsWithParents","join","getLogs","logOneLine","reverse","map","paintLog","json","exports","paintAuthor","email","username","c","white","log","message","date","tag","hash","deleted","deprecated","deletedStr","red","deprecatedStr","yellow","title","getEmptyTableWithoutStyle","Table","chars","top","bottom","left","mid","right","middle","style","table","push","toString"],"sources":["log-cmd.ts"],"sourcesContent":["import c from 'chalk';\nimport Table from 'cli-table';\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport type { LegacyComponentLog } from '@teambit/legacy-component-log';\nimport type { ComponentLogMain, LogOpts } from './component-log.main.runtime';\n\ntype LogFlags = {\n remote?: boolean;\n parents?: boolean;\n oneLine?: boolean;\n fullHash?: boolean;\n fullMessage?: boolean;\n showHidden?: boolean;\n};\nexport default class LogCmd implements Command {\n name = 'log <id>';\n description = 'show components(s) version history';\n helpUrl = 'reference/components/navigating-history';\n extendedDescription: string;\n group = 'version-control';\n alias = '';\n options = [\n ['r', 'remote', 'show log of a remote component'],\n ['', 'parents', 'show parents and lanes data'],\n ['o', 'one-line', 'show each log entry in one line'],\n ['f', 'full-hash', 'show full hash of the snap (default to the first 9 characters for --one-line/--parents flags)'],\n ['m', 'full-message', 'show full message of the snap (default to the first line for --one-line/--parents flags)'],\n [\n '',\n 'show-hidden',\n 'show hidden snaps (snaps are marked as hidden typically when the following tag has the same files/config)',\n ],\n ['j', 'json', 'json format'],\n ] as CommandOptions;\n remoteOp = true; // should support log against remote\n skipWorkspace = true;\n arguments = [{ name: 'id', description: 'component-id or component-name' }];\n\n constructor(private componentLog: ComponentLogMain) {}\n\n async report(\n [id]: [string],\n { remote = false, parents = false, oneLine = false, fullHash = false, fullMessage, showHidden }: LogFlags\n ) {\n if (!parents && !oneLine) {\n fullHash = true;\n fullMessage = true;\n }\n const logOpts: LogOpts = { isRemote: remote, shortHash: !fullHash, shortMessage: !fullMessage, showHidden };\n if (parents) {\n const logs = await this.componentLog.getLogsWithParents(id, logOpts);\n return logs.join('\\n');\n }\n const logs = await this.componentLog.getLogs(id, logOpts);\n if (oneLine) {\n return logOneLine(logs.reverse());\n }\n // reverse to show from the latest to earliest\n return logs.reverse().map(paintLog).join('\\n');\n }\n\n async json(\n [id]: [string],\n { remote = false, parents = false, oneLine = false, fullHash = false, fullMessage, showHidden }: LogFlags\n ) {\n if (!parents && !oneLine) {\n fullHash = true;\n fullMessage = true;\n }\n const logOpts: LogOpts = { isRemote: remote, shortHash: !fullHash, shortMessage: !fullMessage, showHidden };\n if (parents) {\n return this.componentLog.getLogsWithParents(id, logOpts);\n }\n return this.componentLog.getLogs(id, logOpts);\n }\n}\n\nexport function paintAuthor(email: string | null | undefined, username: string | null | undefined) {\n if (email && username) {\n return c.white(`author: ${username} <${email}>\\n`);\n }\n if (email && !username) {\n return c.white(`author: <${email}>\\n`);\n }\n if (!email && username) {\n return c.white(`author: ${username}\\n`);\n }\n\n return '';\n}\n\nfunction paintLog(log: LegacyComponentLog): string {\n const { message, date, tag, hash, username, email, deleted, deprecated } = log;\n const deletedStr = deleted ? c.red(' [deleted]') : '';\n const deprecatedStr = !deleted && deprecated ? c.yellow(' [deprecated]') : '';\n const title = tag ? `tag ${tag} (${hash})${deletedStr}${deprecatedStr}\\n` : `snap ${hash}\\n`;\n return (\n c.yellow(title) +\n paintAuthor(email, username) +\n (date ? c.white(`date: ${date}\\n`) : '') +\n (message ? c.white(`\\n ${message}\\n`) : '')\n );\n}\n\n/**\n * table with no style and no borders, just to align the columns.\n */\nexport function getEmptyTableWithoutStyle() {\n return new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n middle: ' ',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n });\n}\n\nfunction logOneLine(logs: LegacyComponentLog[]) {\n const table = getEmptyTableWithoutStyle();\n\n logs.map(({ hash, tag, username, date, message }) =>\n table.push([hash, tag || '', username || '', date || '', message || ''])\n );\n\n return table.toString();\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { Command, CommandOptions } from '@teambit/cli';
2
- import { ComponentLogMain } from './component-log.main.runtime';
1
+ import type { Command, CommandOptions } from '@teambit/cli';
2
+ import type { ComponentLogMain } from './component-log.main.runtime';
3
3
  export declare class LogFileCmd implements Command {
4
4
  private componentLog;
5
5
  name: string;
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_logCmd","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LogFileCmd","constructor","componentLog","name","description","report","filePath","oneLine","results","getFileLog","table","getEmptyTableWithoutStyle","forEach","hash","tag","username","date","message","fileHash","push","toString","output","map","email","fileDiff","title","author","paintAuthor","body","chalk","green","split","line","join","yellow","white","exports"],"sources":["log-file-cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport { ComponentLogMain } from './component-log.main.runtime';\nimport { getEmptyTableWithoutStyle, paintAuthor } from './log-cmd';\n\nexport class LogFileCmd implements Command {\n name = 'log-file <filepath>';\n description = 'EXPERIMENTAL. show file history';\n group = 'version-control';\n alias = '';\n options = [['o', 'one-line', 'show each log entry in one line']] as CommandOptions;\n arguments = [{ name: 'filepath', description: 'file path relative to the workspace' }];\n\n constructor(private componentLog: ComponentLogMain) {}\n\n async report([filePath]: [string], { oneLine = false }: { oneLine?: boolean }) {\n const results = await this.componentLog.getFileLog(filePath);\n if (oneLine) {\n const table = getEmptyTableWithoutStyle();\n results.forEach(({ hash, tag, username, date, message, fileHash }) => {\n table.push([hash, tag || '', username || '', date, message, fileHash]);\n });\n return table.toString();\n }\n const output = results.map(({ hash, tag, username, email, date, message, fileDiff }) => {\n const title = tag ? `tag ${tag} (${hash})\\n` : `snap ${hash}\\n`;\n const author = paintAuthor(email, username);\n const body = (fileDiff || chalk.green('<FILE-ADDED>'))\n .split('\\n')\n .map((line) => ` ${line}`)\n .join('\\n');\n return (\n chalk.yellow(title) +\n author +\n (date ? chalk.white(`date: ${date}\\n`) : '') +\n (message ? chalk.white(`message: ${message}\\n\\n`) : '\\n') +\n body\n );\n });\n return output.join('\\n');\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_logCmd","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LogFileCmd","constructor","componentLog","name","description","report","filePath","oneLine","results","getFileLog","table","getEmptyTableWithoutStyle","forEach","hash","tag","username","date","message","fileHash","push","toString","output","map","email","fileDiff","title","author","paintAuthor","body","chalk","green","split","line","join","yellow","white","exports"],"sources":["log-file-cmd.ts"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport type { ComponentLogMain } from './component-log.main.runtime';\nimport { getEmptyTableWithoutStyle, paintAuthor } from './log-cmd';\n\nexport class LogFileCmd implements Command {\n name = 'log-file <filepath>';\n description = 'EXPERIMENTAL. show file history';\n group = 'version-control';\n alias = '';\n options = [['o', 'one-line', 'show each log entry in one line']] as CommandOptions;\n arguments = [{ name: 'filepath', description: 'file path relative to the workspace' }];\n\n constructor(private componentLog: ComponentLogMain) {}\n\n async report([filePath]: [string], { oneLine = false }: { oneLine?: boolean }) {\n const results = await this.componentLog.getFileLog(filePath);\n if (oneLine) {\n const table = getEmptyTableWithoutStyle();\n results.forEach(({ hash, tag, username, date, message, fileHash }) => {\n table.push([hash, tag || '', username || '', date, message, fileHash]);\n });\n return table.toString();\n }\n const output = results.map(({ hash, tag, username, email, date, message, fileDiff }) => {\n const title = tag ? `tag ${tag} (${hash})\\n` : `snap ${hash}\\n`;\n const author = paintAuthor(email, username);\n const body = (fileDiff || chalk.green('<FILE-ADDED>'))\n .split('\\n')\n .map((line) => ` ${line}`)\n .join('\\n');\n return (\n chalk.yellow(title) +\n author +\n (date ? chalk.white(`date: ${date}\\n`) : '') +\n (message ? chalk.white(`message: ${message}\\n\\n`) : '\\n') +\n body\n );\n });\n return output.join('\\n');\n }\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.667/dist/component-log.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component-log@1.0.667/dist/component-log.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component-log@1.0.669/dist/component-log.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component-log@1.0.669/dist/component-log.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -1,3 +1,3 @@
1
1
  import { Graph } from '@teambit/graph.cleargraph';
2
- import { ComponentLogInfo } from './component-log.main.runtime';
2
+ import type { ComponentLogInfo } from './component-log.main.runtime';
3
3
  export declare function buildSnapGraph(componentLog: ComponentLogInfo[]): Graph<ComponentLogInfo, string>;
@@ -1 +1 @@
1
- {"version":3,"names":["_graph","data","require","buildSnapGraph","componentLog","graph","Graph","forEach","snap","setNode","Node","hash","parents","parent","setEdge","Edge"],"sources":["snap-graph.ts"],"sourcesContent":["import { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport { ComponentLogInfo } from './component-log.main.runtime';\n\nexport function buildSnapGraph(componentLog: ComponentLogInfo[]) {\n const graph = new Graph<ComponentLogInfo, string>();\n // add nodes\n componentLog.forEach((snap) => {\n graph.setNode(new Node(snap.hash, snap));\n });\n // add edges\n componentLog.forEach((snap) => {\n snap.parents.forEach((parent) => {\n graph.setEdge(new Edge(snap.hash, parent, 'parent'));\n });\n });\n return graph;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGO,SAASE,cAAcA,CAACC,YAAgC,EAAE;EAC/D,MAAMC,KAAK,GAAG,KAAIC,cAAK,EAA2B,CAAC;EACnD;EACAF,YAAY,CAACG,OAAO,CAAEC,IAAI,IAAK;IAC7BH,KAAK,CAACI,OAAO,CAAC,KAAIC,aAAI,EAACF,IAAI,CAACG,IAAI,EAAEH,IAAI,CAAC,CAAC;EAC1C,CAAC,CAAC;EACF;EACAJ,YAAY,CAACG,OAAO,CAAEC,IAAI,IAAK;IAC7BA,IAAI,CAACI,OAAO,CAACL,OAAO,CAAEM,MAAM,IAAK;MAC/BR,KAAK,CAACS,OAAO,CAAC,KAAIC,aAAI,EAACP,IAAI,CAACG,IAAI,EAAEE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC,CAAC;EACJ,CAAC,CAAC;EACF,OAAOR,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"names":["_graph","data","require","buildSnapGraph","componentLog","graph","Graph","forEach","snap","setNode","Node","hash","parents","parent","setEdge","Edge"],"sources":["snap-graph.ts"],"sourcesContent":["import { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport type { ComponentLogInfo } from './component-log.main.runtime';\n\nexport function buildSnapGraph(componentLog: ComponentLogInfo[]) {\n const graph = new Graph<ComponentLogInfo, string>();\n // add nodes\n componentLog.forEach((snap) => {\n graph.setNode(new Node(snap.hash, snap));\n });\n // add edges\n componentLog.forEach((snap) => {\n snap.parents.forEach((parent) => {\n graph.setEdge(new Edge(snap.hash, parent, 'parent'));\n });\n });\n return graph;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGO,SAASE,cAAcA,CAACC,YAAgC,EAAE;EAC/D,MAAMC,KAAK,GAAG,KAAIC,cAAK,EAA2B,CAAC;EACnD;EACAF,YAAY,CAACG,OAAO,CAAEC,IAAI,IAAK;IAC7BH,KAAK,CAACI,OAAO,CAAC,KAAIC,aAAI,EAACF,IAAI,CAACG,IAAI,EAAEH,IAAI,CAAC,CAAC;EAC1C,CAAC,CAAC;EACF;EACAJ,YAAY,CAACG,OAAO,CAAEC,IAAI,IAAK;IAC7BA,IAAI,CAACI,OAAO,CAACL,OAAO,CAAEM,MAAM,IAAK;MAC/BR,KAAK,CAACS,OAAO,CAAC,KAAIC,aAAI,EAACP,IAAI,CAACG,IAAI,EAAEE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC,CAAC;EACJ,CAAC,CAAC;EACF,OAAOR,KAAK;AACd","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/component-log",
3
- "version": "1.0.667",
3
+ "version": "1.0.669",
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.667"
9
+ "version": "1.0.669"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "4.1.2",
@@ -19,13 +19,13 @@
19
19
  "@teambit/harmony": "0.4.7",
20
20
  "@teambit/component-id": "1.2.4",
21
21
  "@teambit/legacy-component-log": "0.0.408",
22
- "@teambit/legacy.component-diff": "0.0.111",
23
- "@teambit/scope.remotes": "0.0.57",
22
+ "@teambit/legacy.component-diff": "0.0.112",
23
+ "@teambit/scope.remotes": "0.0.58",
24
24
  "@teambit/toolbox.path.path": "0.0.8",
25
25
  "@teambit/graph.cleargraph": "0.0.11",
26
- "@teambit/cli": "0.0.1244",
27
- "@teambit/objects": "0.0.174",
28
- "@teambit/workspace": "1.0.667"
26
+ "@teambit/cli": "0.0.1246",
27
+ "@teambit/objects": "0.0.176",
28
+ "@teambit/workspace": "1.0.669"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/diff": "^5.2.3",