@teambit/component-log 1.0.187 → 1.0.189

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,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.187" tests="0" failures="0" errors="0" skipped="0"/>
3
+ <testsuite name="teambit.component/component-log@1.0.189" 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={14032:(e,t,o)=>{var n={id:"teambit.component/component-log@1.0.187",homepage:"https://bit.cloud/teambit/component/component-log",exported:!0};function r(){const e=i(o(41594));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 p=()=>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"}));p.__bit_component=n,t.Logo=p},41594: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={};return(()=>{o.r(n),o.d(n,{compositions:()=>d,compositions_metadata:()=>m,overview:()=>u});var e={};o.r(e),o.d(e,{default:()=>l});var t=o(14032);o(41594);const r=MdxJsReact,i=TeambitMdxUiMdxScopeContext;var p=["components"];function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},c.apply(this,arguments)}var a={},s="wrapper";function l(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,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)o=i[n],t.indexOf(o)>=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)o=i[n],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}(e,p);return(0,r.mdx)(s,c({},a,o,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)(i.MDXScopeProvider,{components:{},mdxType:"MDXScopeProvider"}))}l.isMDXComponent=!0;const d=[t],u=[e],m={compositions:[{displayName:"Logo",identifier:"Logo"}]}})(),n})()));
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={28738:(e,t,o)=>{var n={id:"teambit.component/component-log@1.0.189",homepage:"https://bit.cloud/teambit/component/component-log",exported:!0};function r(){const e=i(o(41594));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 p=()=>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"}));p.__bit_component=n,t.Logo=p},41594: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={};return(()=>{o.r(n),o.d(n,{compositions:()=>d,compositions_metadata:()=>m,overview:()=>u});var e={};o.r(e),o.d(e,{default:()=>l});var t=o(28738);o(41594);const r=MdxJsReact,i=TeambitMdxUiMdxScopeContext;var p=["components"];function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},c.apply(this,arguments)}var a={},s="wrapper";function l(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,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)o=i[n],t.indexOf(o)>=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)o=i[n],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}(e,p);return(0,r.mdx)(s,c({},a,o,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)(i.MDXScopeProvider,{components:{},mdxType:"MDXScopeProvider"}))}l.isMDXComponent=!0;const d=[t],u=[e],m={compositions:[{displayName:"Logo",identifier:"Logo"}]}})(),n})()));
@@ -56,7 +56,11 @@
56
56
  "line": 40,
57
57
  "character": 34
58
58
  },
59
- "name": "Workspace"
59
+ "name": "Workspace",
60
+ "componentId": {
61
+ "scope": "teambit.workspace",
62
+ "name": "workspace"
63
+ }
60
64
  },
61
65
  {
62
66
  "__schema": "KeywordTypeSchema",
@@ -422,7 +426,8 @@
422
426
  "line": 109,
423
427
  "character": 57
424
428
  },
425
- "name": "FileLog"
429
+ "name": "FileLog",
430
+ "internalFilePath": "component-log.main.runtime.ts"
426
431
  }
427
432
  }
428
433
  ]
@@ -571,7 +576,11 @@
571
576
  "line": 235,
572
577
  "character": 44
573
578
  },
574
- "name": "CLIMain"
579
+ "name": "CLIMain",
580
+ "componentId": {
581
+ "scope": "teambit.harmony",
582
+ "name": "cli"
583
+ }
575
584
  },
576
585
  {
577
586
  "__schema": "TypeRefSchema",
@@ -580,7 +589,11 @@
580
589
  "line": 235,
581
590
  "character": 53
582
591
  },
583
- "name": "Workspace"
592
+ "name": "Workspace",
593
+ "componentId": {
594
+ "scope": "teambit.workspace",
595
+ "name": "workspace"
596
+ }
584
597
  }
585
598
  ]
586
599
  },
@@ -1057,7 +1070,11 @@
1057
1070
  "line": 40,
1058
1071
  "character": 34
1059
1072
  },
1060
- "name": "Workspace"
1073
+ "name": "Workspace",
1074
+ "componentId": {
1075
+ "scope": "teambit.workspace",
1076
+ "name": "workspace"
1077
+ }
1061
1078
  },
1062
1079
  {
1063
1080
  "__schema": "KeywordTypeSchema",
@@ -1423,7 +1440,8 @@
1423
1440
  "line": 109,
1424
1441
  "character": 57
1425
1442
  },
1426
- "name": "FileLog"
1443
+ "name": "FileLog",
1444
+ "internalFilePath": "component-log.main.runtime.ts"
1427
1445
  }
1428
1446
  }
1429
1447
  ]
@@ -1572,7 +1590,11 @@
1572
1590
  "line": 235,
1573
1591
  "character": 44
1574
1592
  },
1575
- "name": "CLIMain"
1593
+ "name": "CLIMain",
1594
+ "componentId": {
1595
+ "scope": "teambit.harmony",
1596
+ "name": "cli"
1597
+ }
1576
1598
  },
1577
1599
  {
1578
1600
  "__schema": "TypeRefSchema",
@@ -1581,7 +1603,11 @@
1581
1603
  "line": 235,
1582
1604
  "character": 53
1583
1605
  },
1584
- "name": "Workspace"
1606
+ "name": "Workspace",
1607
+ "componentId": {
1608
+ "scope": "teambit.workspace",
1609
+ "name": "workspace"
1610
+ }
1585
1611
  }
1586
1612
  ]
1587
1613
  },
@@ -1850,7 +1876,7 @@
1850
1876
  "componentId": {
1851
1877
  "scope": "teambit.component",
1852
1878
  "name": "component-log",
1853
- "version": "1.0.187"
1879
+ "version": "1.0.189"
1854
1880
  },
1855
1881
  "taggedModuleExports": []
1856
1882
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_harmony","data","require","ComponentLogAspect","exports","Aspect","create","id"],"sources":["component-log.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const ComponentLogAspect = Aspect.create({\n id: 'teambit.component/component-log',\n});\n"],"mappings":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAGE,iBAAM,CAACC,MAAM,CAAC;EAC9CC,EAAE,EAAE;AACN,CAAC,CAAC"}
1
+ {"version":3,"names":["_harmony","data","require","ComponentLogAspect","exports","Aspect","create","id"],"sources":["component-log.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const ComponentLogAspect = Aspect.create({\n id: 'teambit.component/component-log',\n});\n"],"mappings":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAGE,iBAAM,CAACC,MAAM,CAAC;EAC9CC,EAAE,EAAE;AACN,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireDefault","require","obj","__esModule","default","Logo","createElement","style","height","display","justifyContent","width","src","exports"],"sources":["component-log.composition.tsx"],"sourcesContent":["import React from 'react';\n\nexport const Logo = () => (\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center' }}>\n <img style={{ width: 70 }} src=\"https://static.bit.dev/extensions-icons/component-log.svg\" />\n </div>\n);\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0B,SAAAC,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEnB,MAAMG,IAAI,GAAGA,CAAA,kBAClBP,MAAA,GAAAM,OAAA,CAAAE,aAAA;EAAKC,KAAK,EAAE;IAAEC,MAAM,EAAE,MAAM;IAAEC,OAAO,EAAE,MAAM;IAAEC,cAAc,EAAE;EAAS;AAAE,gBACxEZ,MAAA,GAAAM,OAAA,CAAAE,aAAA;EAAKC,KAAK,EAAE;IAAEI,KAAK,EAAE;EAAG,CAAE;EAACC,GAAG,EAAC;AAA2D,CAAE,CACzF,CACN;AAACC,OAAA,CAAAR,IAAA,GAAAA,IAAA"}
1
+ {"version":3,"names":["_react","data","_interopRequireDefault","require","obj","__esModule","default","Logo","createElement","style","height","display","justifyContent","width","src","exports"],"sources":["component-log.composition.tsx"],"sourcesContent":["import React from 'react';\n\nexport const Logo = () => (\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center' }}>\n <img style={{ width: 70 }} src=\"https://static.bit.dev/extensions-icons/component-log.svg\" />\n </div>\n);\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0B,SAAAC,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEnB,MAAMG,IAAI,GAAGA,CAAA,kBAClBP,MAAA,GAAAM,OAAA,CAAAE,aAAA;EAAKC,KAAK,EAAE;IAAEC,MAAM,EAAE,MAAM;IAAEC,OAAO,EAAE,MAAM;IAAEC,cAAc,EAAE;EAAS;AAAE,gBACxEZ,MAAA,GAAAM,OAAA,CAAAE,aAAA;EAAKC,KAAK,EAAE;IAAEI,KAAK,EAAE;EAAG,CAAE;EAACC,GAAG,EAAC;AAA2D,CAAE,CACzF,CACN;AAACC,OAAA,CAAAR,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_cli","data","require","_componentId","_path","_interopRequireDefault","_moment","_pMap","_workspace","_lodash","_pMapSeries","_path2","_componentsDiff","_chalk","_getRemoteByName","_componentLog","_logCmd","_snapGraph","_logFileCmd","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","ComponentLogMain","constructor","workspace","getLogs","id","isRemote","shortHash","shortMessage","consumer","bitId","ComponentID","fromString","remote","getRemoteByName","scope","log","OutsideWorkspaceError","componentId","resolveComponentId","logs","forEach","date","moment","Date","parseInt","format","undefined","message","split","getLogsWithParents","fullHash","fullMessage","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","filter","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","concurrency","getFileLog","Error","relative","lastFile","pMapSeries","component","get","changeVersion","filesystem","lastResult","lastHash","toSourceAsLinuxEOL","diff","getFilesDiff","fileDiff","diffOutput","logInfo","chalk","yellow","provider","cli","componentLog","register","LogCmd","LogFileCmd","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 { Version } from '@teambit/legacy/dist/scope/models';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils/path';\nimport { Ref } from '@teambit/legacy/dist/scope/objects';\nimport { getFilesDiff } from '@teambit/legacy/dist/consumer/component-ops/components-diff';\nimport chalk from 'chalk';\nimport getRemoteByName from '@teambit/legacy/dist/remotes/get-remote-by-name';\nimport { ComponentLogAspect } from './component-log.aspect';\nimport LogCmd from './log-cmd';\nimport { buildSnapGraph } from './snap-graph';\nimport { LogFileCmd } from './log-file-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};\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, isRemote?: boolean, shortHash = false, shortMessage = false): Promise<ComponentLog[]> {\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 const logs = await this.workspace.scope.getLogs(componentId, shortHash);\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 logs;\n }\n\n async getLogsWithParents(id: string, fullHash = false, fullMessage = false) {\n const logs = await this.getLogs(id, false, !fullHash, !fullMessage);\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: string): 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());\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 });\n },\n { concurrency: 100 }\n );\n\n // remove entries that their fileHash is the same as their parent.\n return results.filter((r) => r.fileHash !== r.parentFileHash);\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));\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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"}
1
+ {"version":3,"names":["_cli","data","require","_componentId","_path","_interopRequireDefault","_moment","_pMap","_workspace","_lodash","_pMapSeries","_path2","_componentsDiff","_chalk","_getRemoteByName","_componentLog","_logCmd","_snapGraph","_logFileCmd","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","ComponentLogMain","constructor","workspace","getLogs","id","isRemote","shortHash","shortMessage","consumer","bitId","ComponentID","fromString","remote","getRemoteByName","scope","log","OutsideWorkspaceError","componentId","resolveComponentId","logs","forEach","date","moment","Date","parseInt","format","undefined","message","split","getLogsWithParents","fullHash","fullMessage","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","filter","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","concurrency","getFileLog","Error","relative","lastFile","pMapSeries","component","get","changeVersion","filesystem","lastResult","lastHash","toSourceAsLinuxEOL","diff","getFilesDiff","fileDiff","diffOutput","logInfo","chalk","yellow","provider","cli","componentLog","register","LogCmd","LogFileCmd","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 { Version } from '@teambit/legacy/dist/scope/models';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils/path';\nimport { Ref } from '@teambit/legacy/dist/scope/objects';\nimport { getFilesDiff } from '@teambit/legacy/dist/consumer/component-ops/components-diff';\nimport chalk from 'chalk';\nimport getRemoteByName from '@teambit/legacy/dist/remotes/get-remote-by-name';\nimport { ComponentLogAspect } from './component-log.aspect';\nimport LogCmd from './log-cmd';\nimport { buildSnapGraph } from './snap-graph';\nimport { LogFileCmd } from './log-file-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};\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, isRemote?: boolean, shortHash = false, shortMessage = false): Promise<ComponentLog[]> {\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 const logs = await this.workspace.scope.getLogs(componentId, shortHash);\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 logs;\n }\n\n async getLogsWithParents(id: string, fullHash = false, fullMessage = false) {\n const logs = await this.getLogs(id, false, !fullHash, !fullMessage);\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: string): 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());\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 });\n },\n { concurrency: 100 }\n );\n\n // remove entries that their fileHash is the same as their parent.\n return results.filter((r) => r.fileHash !== r.parentFileHash);\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));\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/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_componentLog","data","require","_default","exports","default","ComponentLogAspect"],"sources":["index.ts"],"sourcesContent":["import { ComponentLogAspect } from './component-log.aspect';\n\nexport type { ComponentLogMain, FileHashDiffFromParent } from './component-log.main.runtime';\nexport default ComponentLogAspect;\nexport { ComponentLogAspect };\n"],"mappings":";;;;;;;;;;;;AAAA,SAAAA,cAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,aAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4D,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAG7CC,kCAAkB"}
1
+ {"version":3,"names":["_componentLog","data","require","_default","exports","default","ComponentLogAspect"],"sources":["index.ts"],"sourcesContent":["import { ComponentLogAspect } from './component-log.aspect';\n\nexport type { ComponentLogMain, FileHashDiffFromParent } from './component-log.main.runtime';\nexport default ComponentLogAspect;\nexport { ComponentLogAspect };\n"],"mappings":";;;;;;;;;;;;AAAA,SAAAA,cAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,aAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4D,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAG7CC,kCAAkB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_cliTable","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","LogCmd","constructor","componentLog","name","description","report","id","remote","parents","oneLine","fullHash","fullMessage","logs","getLogsWithParents","join","getLogs","logOneLine","reverse","map","paintLog","json","exports","paintAuthor","email","username","c","white","log","message","date","tag","hash","title","yellow","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 } from './component-log.main.runtime';\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 = 'info';\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 ['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 {\n remote = false,\n parents = false,\n oneLine = false,\n fullHash = false,\n fullMessage,\n }: { remote: boolean; parents: boolean; oneLine?: boolean; fullHash?: boolean; fullMessage?: boolean }\n ) {\n if (!parents && !oneLine) {\n fullHash = true;\n fullMessage = true;\n }\n if (parents) {\n const logs = await this.componentLog.getLogsWithParents(id, fullHash, fullMessage);\n return logs.join('\\n');\n }\n const logs = await this.componentLog.getLogs(id, remote, !fullHash, !fullMessage);\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([id]: [string], { remote = false, parents = false }: { remote: boolean; parents: boolean }) {\n if (parents) {\n return this.componentLog.getLogsWithParents(id);\n }\n return this.componentLog.getLogs(id, remote);\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 } = log;\n const title = tag ? `tag ${tag} (${hash})\\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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"}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_cliTable","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","LogCmd","constructor","componentLog","name","description","report","id","remote","parents","oneLine","fullHash","fullMessage","logs","getLogsWithParents","join","getLogs","logOneLine","reverse","map","paintLog","json","exports","paintAuthor","email","username","c","white","log","message","date","tag","hash","title","yellow","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 } from './component-log.main.runtime';\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 = 'info';\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 ['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 {\n remote = false,\n parents = false,\n oneLine = false,\n fullHash = false,\n fullMessage,\n }: { remote: boolean; parents: boolean; oneLine?: boolean; fullHash?: boolean; fullMessage?: boolean }\n ) {\n if (!parents && !oneLine) {\n fullHash = true;\n fullMessage = true;\n }\n if (parents) {\n const logs = await this.componentLog.getLogsWithParents(id, fullHash, fullMessage);\n return logs.join('\\n');\n }\n const logs = await this.componentLog.getLogs(id, remote, !fullHash, !fullMessage);\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([id]: [string], { remote = false, parents = false }: { remote: boolean; parents: boolean }) {\n if (parents) {\n return this.componentLog.getLogsWithParents(id);\n }\n return this.componentLog.getLogs(id, remote);\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 } = log;\n const title = tag ? `tag ${tag} (${hash})\\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 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_logCmd","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","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 = 'info';\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":";;;;;;AACA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAG,QAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,OAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAmE,SAAAC,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,gBAAAH,GAAA,EAAAI,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAJ,GAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAR,GAAA,EAAAI,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAX,GAAA,CAAAI,GAAA,IAAAC,KAAA,WAAAL,GAAA;AAAA,SAAAM,eAAAM,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAF,CAAA,uCAAAC,CAAA,GAAAA,CAAA,GAAAE,MAAA,CAAAF,CAAA;AAAA,SAAAC,aAAAF,CAAA,EAAAI,CAAA,2BAAAJ,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAK,CAAA,GAAAL,CAAA,CAAAM,MAAA,CAAAC,WAAA,kBAAAF,CAAA,QAAAJ,CAAA,GAAAI,CAAA,CAAAG,IAAA,CAAAR,CAAA,EAAAI,CAAA,uCAAAH,CAAA,SAAAA,CAAA,YAAAQ,SAAA,yEAAAL,CAAA,GAAAD,MAAA,GAAAO,MAAA,EAAAV,CAAA;AAE5D,MAAMW,UAAU,CAAoB;EAQzCC,WAAWA,CAASC,YAA8B,EAAE;IAAA,KAAhCA,YAA8B,GAA9BA,YAA8B;IAAAtB,eAAA,eAP3C,qBAAqB;IAAAA,eAAA,sBACd,iCAAiC;IAAAA,eAAA,gBACvC,MAAM;IAAAA,eAAA,gBACN,EAAE;IAAAA,eAAA,kBACA,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,iCAAiC,CAAC,CAAC;IAAAA,eAAA,oBACpD,CAAC;MAAEuB,IAAI,EAAE,UAAU;MAAEC,WAAW,EAAE;IAAsC,CAAC,CAAC;EAEjC;EAErD,MAAMC,MAAMA,CAAC,CAACC,QAAQ,CAAW,EAAE;IAAEC,OAAO,GAAG;EAA6B,CAAC,EAAE;IAC7E,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACN,YAAY,CAACO,UAAU,CAACH,QAAQ,CAAC;IAC5D,IAAIC,OAAO,EAAE;MACX,MAAMG,KAAK,GAAG,IAAAC,mCAAyB,EAAC,CAAC;MACzCH,OAAO,CAACI,OAAO,CAAC,CAAC;QAAEC,IAAI;QAAEC,GAAG;QAAEC,QAAQ;QAAEC,IAAI;QAAEC,OAAO;QAAEC;MAAS,CAAC,KAAK;QACpER,KAAK,CAACS,IAAI,CAAC,CAACN,IAAI,EAAEC,GAAG,IAAI,EAAE,EAAEC,QAAQ,IAAI,EAAE,EAAEC,IAAI,EAAEC,OAAO,EAAEC,QAAQ,CAAC,CAAC;MACxE,CAAC,CAAC;MACF,OAAOR,KAAK,CAACU,QAAQ,CAAC,CAAC;IACzB;IACA,MAAMC,MAAM,GAAGb,OAAO,CAACc,GAAG,CAAC,CAAC;MAAET,IAAI;MAAEC,GAAG;MAAEC,QAAQ;MAAEQ,KAAK;MAAEP,IAAI;MAAEC,OAAO;MAAEO;IAAS,CAAC,KAAK;MACtF,MAAMC,KAAK,GAAGX,GAAG,GAAI,OAAMA,GAAI,KAAID,IAAK,KAAI,GAAI,QAAOA,IAAK,IAAG;MAC/D,MAAMa,MAAM,GAAG,IAAAC,qBAAW,EAACJ,KAAK,EAAER,QAAQ,CAAC;MAC3C,MAAMa,IAAI,GAAG,CAACJ,QAAQ,IAAIK,gBAAK,CAACC,KAAK,CAAC,cAAc,CAAC,EAClDC,KAAK,CAAC,IAAI,CAAC,CACXT,GAAG,CAAEU,IAAI,IAAM,SAAQA,IAAK,EAAC,CAAC,CAC9BC,IAAI,CAAC,IAAI,CAAC;MACb,OACEJ,gBAAK,CAACK,MAAM,CAACT,KAAK,CAAC,GACnBC,MAAM,IACLV,IAAI,GAAGa,gBAAK,CAACM,KAAK,CAAE,SAAQnB,IAAK,IAAG,CAAC,GAAG,EAAE,CAAC,IAC3CC,OAAO,GAAGY,gBAAK,CAACM,KAAK,CAAE,YAAWlB,OAAQ,MAAK,CAAC,GAAG,IAAI,CAAC,GACzDW,IAAI;IAER,CAAC,CAAC;IACF,OAAOP,MAAM,CAACY,IAAI,CAAC,IAAI,CAAC;EAC1B;AACF;AAACG,OAAA,CAAApC,UAAA,GAAAA,UAAA"}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_logCmd","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","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 = 'info';\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":[]}
@@ -0,0 +1,7 @@
1
+ import * as compositions_0 from '/Users/giladshoham/Library/Caches/Bit/capsules/root/b5ea46ec36fa42b9dbedfc12ecb7bb63e03fcfe6/teambit.component_component-log@1.0.189/dist/component-log.composition.js';
2
+ import * as overview_0 from '/Users/giladshoham/Library/Caches/Bit/capsules/root/b5ea46ec36fa42b9dbedfc12ecb7bb63e03fcfe6/teambit.component_component-log@1.0.189/dist/component-log.docs.mdx';
3
+
4
+ export const compositions = [compositions_0];
5
+ export const overview = [overview_0];
6
+
7
+ export const compositions_metadata = {"compositions":[{"displayName":"Logo","identifier":"Logo"}]};
@@ -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"}
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":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/component-log",
3
- "version": "1.0.187",
3
+ "version": "1.0.189",
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.187"
9
+ "version": "1.0.189"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -19,15 +19,15 @@
19
19
  "@teambit/component-id": "1.2.0",
20
20
  "@teambit/legacy-component-log": "0.0.402",
21
21
  "@teambit/graph.cleargraph": "0.0.8",
22
- "@teambit/cli": "0.0.855",
23
- "@teambit/workspace": "1.0.187"
22
+ "@teambit/cli": "0.0.856",
23
+ "@teambit/workspace": "1.0.189"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/lodash": "4.14.165",
27
27
  "@types/cli-table": "^0.3.0",
28
28
  "@types/mocha": "9.1.0",
29
29
  "chai": "4.3.0",
30
- "@teambit/harmony.envs.core-aspect-env": "0.0.25"
30
+ "@teambit/harmony.envs.core-aspect-env": "0.0.27"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "react": "^17.0.0 || ^18.0.0",
@@ -1,7 +0,0 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_component-log@1.0.187/dist/component-log.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_component-log@1.0.187/dist/component-log.docs.mdx';
3
-
4
- export const compositions = [compositions_0];
5
- export const overview = [overview_0];
6
-
7
- export const compositions_metadata = {"compositions":[{"displayName":"Logo","identifier":"Logo"}]};