@teambit/objects 0.0.0-e6dd2d6d6b41ceddfa3e9cd2db3154bbae7b31b4 → 0.0.0-e7bd922645b62e592ffbf30c8880dc4d288d1674
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/models/lane-history.d.ts +1 -0
- package/dist/models/lane-history.js +3 -0
- package/dist/models/lane-history.js.map +1 -1
- package/dist/models/lane.d.ts +2 -2
- package/dist/models/version-history.js +20 -11
- package/dist/models/version-history.js.map +1 -1
- package/dist/models/version.d.ts +2 -2
- package/models/lane-history.ts +6 -0
- package/models/version-history.ts +23 -11
- package/package.json +28 -28
- /package/dist/{preview-1765936264441.js → preview-1773937252164.js} +0 -0
|
@@ -32,6 +32,7 @@ export declare class LaneHistory extends BitObject {
|
|
|
32
32
|
toString(pretty: boolean): string;
|
|
33
33
|
toBuffer(pretty: any): Buffer;
|
|
34
34
|
getHistory(): History;
|
|
35
|
+
getHistoryIds(): string[];
|
|
35
36
|
addHistory(laneObj: Lane, msg?: string): Promise<void>;
|
|
36
37
|
merge(laneHistory: LaneHistory): void;
|
|
37
38
|
static create(name: string, scope: string, laneHash: string): LaneHistory;
|
|
@@ -78,6 +78,9 @@ class LaneHistory extends _objects().BitObject {
|
|
|
78
78
|
getHistory() {
|
|
79
79
|
return this.history;
|
|
80
80
|
}
|
|
81
|
+
getHistoryIds() {
|
|
82
|
+
return Object.entries(this.history).sort(([, a], [, b]) => Number(a.log.date) - Number(b.log.date)).map(([id]) => id);
|
|
83
|
+
}
|
|
81
84
|
async addHistory(laneObj, msg) {
|
|
82
85
|
const log = await (0, _harmonyModules().getBasicLog)();
|
|
83
86
|
if (msg) log.message = msg;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_uuid","data","require","_legacy","_harmonyModules","_objects","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LaneHistory","BitObject","constructor","props","name","scope","laneHash","history","id","fromLaneObject","laneObject","hash","toString","toObject","pretty","args","getStringifyArgs","JSON","stringify","toBuffer","Buffer","from","getHistory","
|
|
1
|
+
{"version":3,"names":["_uuid","data","require","_legacy","_harmonyModules","_objects","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LaneHistory","BitObject","constructor","props","name","scope","laneHash","history","id","fromLaneObject","laneObject","hash","toString","toObject","pretty","args","getStringifyArgs","JSON","stringify","toBuffer","Buffer","from","getHistory","getHistoryIds","entries","sort","a","b","log","date","map","addHistory","laneObj","msg","getBasicLog","message","components","toComponentIds","toStringArray","deleted","c","isDeleted","changeVersion","head","v4","merge","laneHistory","create","parse","contents","parsed","exports"],"sources":["lane-history.ts"],"sourcesContent":["import { v4 } from 'uuid';\nimport { getStringifyArgs } from '@teambit/legacy.utils';\nimport { getBasicLog } from '@teambit/harmony.modules.get-basic-log';\nimport { BitObject } from '../objects';\nimport type Lane from './lane';\n\ntype Log = { date: string; username?: string; email?: string; message?: string };\n\nexport type HistoryItem = {\n log: Log;\n components: string[];\n deleted?: string[];\n};\n\ntype History = { [uuid: string]: HistoryItem };\n\ntype LaneHistoryProps = {\n name: string;\n scope: string;\n laneHash: string;\n history: History;\n};\n\nexport class LaneHistory extends BitObject {\n private name: string;\n private scope: string;\n private laneHash: string;\n private history: History;\n\n constructor(props: LaneHistoryProps) {\n super();\n this.name = props.name;\n this.scope = props.scope;\n this.laneHash = props.laneHash;\n this.history = props.history;\n }\n\n id() {\n return `${this.laneHash}:${LaneHistory.name}`;\n }\n\n static fromLaneObject(laneObject: Lane): LaneHistory {\n return new LaneHistory({\n scope: laneObject.scope,\n name: laneObject.name,\n laneHash: laneObject.hash().toString(),\n history: {},\n });\n }\n\n toObject(): Record<string, any> {\n return {\n name: this.name,\n scope: this.scope,\n laneHash: this.laneHash,\n history: this.history,\n };\n }\n\n toString(pretty: boolean): string {\n const args = getStringifyArgs(pretty);\n return JSON.stringify(this.toObject(), ...args);\n }\n\n toBuffer(pretty): Buffer {\n return Buffer.from(this.toString(pretty));\n }\n\n getHistory(): History {\n return this.history;\n }\n\n getHistoryIds(): string[] {\n return Object.entries(this.history)\n .sort(([, a], [, b]) => Number(a.log.date) - Number(b.log.date))\n .map(([id]) => id);\n }\n\n async addHistory(laneObj: Lane, msg?: string) {\n const log: Log = await getBasicLog();\n if (msg) log.message = msg;\n const components = laneObj.toComponentIds().toStringArray();\n const deleted = laneObj.components\n .filter((c) => c.isDeleted)\n .map((c) => c.id.changeVersion(c.head.toString()).toString());\n this.history[v4()] = { log, components, ...(deleted.length && { deleted }) };\n }\n\n merge(laneHistory: LaneHistory) {\n this.history = { ...this.history, ...laneHistory.history };\n }\n\n static create(name: string, scope: string, laneHash: string) {\n return new LaneHistory({\n name,\n scope,\n laneHash,\n history: {},\n });\n }\n\n static parse(contents: string): LaneHistory {\n const parsed = JSON.parse(contents);\n const props: LaneHistoryProps = {\n name: parsed.name,\n scope: parsed.scope,\n laneHash: parsed.laneHash,\n history: parsed.history,\n };\n return new LaneHistory(props);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/models/lane.d.ts
CHANGED
|
@@ -56,7 +56,7 @@ export default class Lane extends BitObject {
|
|
|
56
56
|
changeScope(scope: string): void;
|
|
57
57
|
refs(): Ref[];
|
|
58
58
|
validateBeforePersisting(str: string): void;
|
|
59
|
-
toObject(): import("lodash").Dictionary<string | boolean | string[] | {
|
|
59
|
+
toObject(): import("lodash").Dictionary<string | boolean | string[] | Log | {
|
|
60
60
|
scope: string;
|
|
61
61
|
name: string;
|
|
62
62
|
} | {
|
|
@@ -66,7 +66,7 @@ export default class Lane extends BitObject {
|
|
|
66
66
|
name: string;
|
|
67
67
|
};
|
|
68
68
|
head: string;
|
|
69
|
-
}[] |
|
|
69
|
+
}[] | {
|
|
70
70
|
id: {
|
|
71
71
|
scope: string;
|
|
72
72
|
name: string;
|
|
@@ -146,21 +146,30 @@ class VersionHistory extends _objects().BitObject {
|
|
|
146
146
|
if (!item) return {
|
|
147
147
|
missing: [start.toString()]
|
|
148
148
|
};
|
|
149
|
-
const
|
|
149
|
+
const hashSet = new Set();
|
|
150
|
+
const allHashes = [];
|
|
150
151
|
const missing = [];
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
152
|
+
|
|
153
|
+
// Use iterative approach with a stack to avoid stack overflow on deep histories
|
|
154
|
+
const stack = [item];
|
|
155
|
+
hashSet.add(item.hash.toString());
|
|
156
|
+
while (stack.length > 0) {
|
|
157
|
+
const ver = stack.pop();
|
|
158
|
+
const verHash = ver.hash.toString();
|
|
159
|
+
allHashes.push(verHash);
|
|
160
|
+
for (const parent of ver.parents) {
|
|
161
|
+
const parentHash = parent.toString();
|
|
162
|
+
if (hashSet.has(parentHash)) continue;
|
|
154
163
|
const parentVer = this.getVersionData(parent);
|
|
155
164
|
if (!parentVer) {
|
|
156
|
-
missing.push(
|
|
157
|
-
|
|
165
|
+
missing.push(parentHash);
|
|
166
|
+
continue;
|
|
158
167
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
168
|
+
// Mark as processed before pushing to prevent duplicate stack entries
|
|
169
|
+
hashSet.add(parentHash);
|
|
170
|
+
stack.push(parentVer);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
164
173
|
return {
|
|
165
174
|
found: allHashes,
|
|
166
175
|
missing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_graph","data","require","_componentId","_bitError","_lodash","_legacy","_ref","_interopRequireDefault","_objects","_component","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","VersionHistory","BitObject","constructor","props","name","scope","versionsObj","versionParentsToObject","versions","graphCompleteRefs","values","reduce","acc","version","hash","id","fromId","toObject","map","v","toString","parents","p","unrelated","squashed","undefined","pretty","args","getStringifyArgs","JSON","stringify","toBuffer","Buffer","from","getVersionData","ref","hasHash","Boolean","addFromVersionsObjects","forEach","exists","head","previousParents","versionData","getVersionParentsFromVersion","isEmpty","length","getAllHashesFrom","start","item","missing","allHashes","addHashesRecursively","ver","parent","includes","parentVer","push","found","isRefPartOfHistory","startFrom","searchFor","isGraphCompleteSince","isComplete","hasChanged","getAllHashesAsString","keys","merge","versionHistory","existingHashes","incomingHashes","hashesInExistingOnly","difference","versionsDataOnExistingOnly","filter","newVersions","getAncestor","numOfGenerationsToGoBack","errorMsg","compId","BitError","getGraph","modelComponent","laneHeads","shortHash","limitVersions","refToStr","toShortString","graph","Graph","allVersions","slice","compact","flat","allHashesUniq","uniqBy","getMetadata","tag","getTagOfRefIfExists","pointers","nodes","Node","edges","verEdges","Edge","s","find","isEqual","setNodes","setEdges","ComponentID","fromObject","create","parse","contents","parsed","Ref","exports","versionParentsToGraph"],"sources":["version-history.ts"],"sourcesContent":["import { Graph, Edge, Node } from '@teambit/graph.cleargraph';\nimport { ComponentID } from '@teambit/component-id';\nimport { BitError } from '@teambit/bit-error';\nimport { compact, difference, uniqBy } from 'lodash';\nimport { getStringifyArgs } from '@teambit/legacy.utils';\nimport Ref from '../objects/ref';\nimport { BitObject } from '../objects';\nimport type Version from './version';\nimport { getVersionParentsFromVersion } from '@teambit/component.snap-distance';\nimport type ModelComponent from './model-component';\n\nexport type VersionParents = {\n hash: Ref;\n parents: Ref[];\n unrelated?: Ref;\n squashed?: Ref[];\n};\n\nexport type VersionHistoryGraph = Graph<string | HashMetadata, string>;\n\ntype VersionHistoryProps = {\n name: string;\n scope: string;\n versions: VersionParents[];\n graphCompleteRefs?: string[];\n};\n\ntype HashMetadata = {\n tag?: string;\n pointers?: string[];\n};\n\nexport default class VersionHistory extends BitObject {\n name: string;\n scope: string;\n private versionsObj: { [hash: string]: VersionParents };\n graphCompleteRefs: string[];\n hasChanged = false; // whether the version history has changed since the last persist\n constructor(props: VersionHistoryProps) {\n super();\n this.name = props.name;\n this.scope = props.scope;\n this.versionsObj = this.versionParentsToObject(props.versions);\n this.graphCompleteRefs = props.graphCompleteRefs || [];\n }\n\n get versions() {\n return Object.values(this.versionsObj);\n }\n\n private versionParentsToObject(versions: VersionParents[]) {\n return versions.reduce((acc, version) => {\n acc[version.hash.hash] = version;\n return acc;\n }, {});\n }\n\n id() {\n return `${this.scope}/${this.name}:${VersionHistory.name}`;\n }\n\n static fromId(name: string, scope: string) {\n return new VersionHistory({ scope, name, versions: [] });\n }\n\n toObject(): Record<string, any> {\n return {\n name: this.name,\n scope: this.scope,\n versions: this.versions.map((v) => ({\n hash: v.hash.toString(),\n parents: v.parents.map((p) => p.toString()),\n unrelated: v.unrelated?.toString(),\n squashed: v.squashed ? v.squashed.map((p) => p.toString()) : undefined,\n })),\n graphCompleteRefs: this.graphCompleteRefs,\n };\n }\n\n toString(pretty: boolean): string {\n const args = getStringifyArgs(pretty);\n return JSON.stringify(this.toObject(), ...args);\n }\n\n toBuffer(pretty): Buffer {\n return Buffer.from(this.toString(pretty));\n }\n\n getVersionData(ref: Ref): VersionParents | undefined {\n return this.versionsObj[ref.toString()];\n }\n\n hasHash(ref: Ref) {\n return Boolean(this.getVersionData(ref));\n }\n\n addFromVersionsObjects(versions: Version[]) {\n versions.forEach((version) => {\n const exists = this.getVersionData(version.hash());\n if (exists) {\n // just in case the parents got updated as a result of a merge/squash\n exists.parents = version.parents;\n exists.unrelated = version.unrelated?.head;\n exists.squashed = version.squashed?.previousParents;\n } else {\n const versionData = getVersionParentsFromVersion(version);\n this.versionsObj[version.hash().hash] = versionData;\n }\n });\n }\n\n isEmpty() {\n return !this.versions.length;\n }\n\n getAllHashesFrom(start: Ref): { found?: string[]; missing?: string[] } {\n const item = this.getVersionData(start);\n if (!item) return { missing: [start.toString()] };\n const allHashes: string[] = [item.hash.toString()];\n const missing: string[] = [];\n const addHashesRecursively = (ver: VersionParents) => {\n ver.parents.forEach((parent) => {\n if (allHashes.includes(parent.toString())) return;\n const parentVer = this.getVersionData(parent);\n if (!parentVer) {\n missing.push(parent.toString());\n return;\n }\n allHashes.push(parent.toString());\n if (parentVer.parents.length) addHashesRecursively(parentVer);\n });\n };\n addHashesRecursively(item);\n return { found: allHashes, missing };\n }\n\n isRefPartOfHistory(startFrom: Ref, searchFor: Ref) {\n const { found } = this.getAllHashesFrom(startFrom);\n return found?.includes(searchFor.toString());\n }\n\n isGraphCompleteSince(ref: Ref) {\n if (this.graphCompleteRefs.includes(ref.toString())) return true;\n const { missing } = this.getAllHashesFrom(ref);\n const isComplete = !missing || !missing.length;\n if (isComplete) {\n this.graphCompleteRefs.push(ref.toString());\n this.hasChanged = true;\n }\n return isComplete;\n }\n\n getAllHashesAsString(): string[] {\n return Object.keys(this.versionsObj);\n }\n\n merge(versionHistory: VersionHistory) {\n const existingHashes = this.getAllHashesAsString();\n const incomingHashes = versionHistory.getAllHashesAsString();\n const hashesInExistingOnly = difference(existingHashes, incomingHashes);\n const versionsDataOnExistingOnly = this.versions.filter((v) => hashesInExistingOnly.includes(v.hash.toString()));\n const newVersions = [...versionHistory.versions, ...versionsDataOnExistingOnly];\n this.versionsObj = this.versionParentsToObject(newVersions);\n }\n\n getAncestor(numOfGenerationsToGoBack: number, ref: Ref): Ref {\n const errorMsg = `unable to get an older parent of ${this.compId.toString()}`;\n const versionData = this.getVersionData(ref);\n if (!versionData)\n throw new BitError(`${errorMsg}, version \"${ref.toString()}\" was not found in the version history`);\n if (numOfGenerationsToGoBack === 0) return versionData.hash;\n if (!versionData.parents.length) throw new BitError(`${errorMsg}, version \"${ref.toString()}\" has no parents`);\n const parent = versionData.parents[0];\n return this.getAncestor(numOfGenerationsToGoBack - 1, parent);\n }\n\n getGraph(\n modelComponent?: ModelComponent,\n laneHeads?: { [hash: string]: string[] },\n shortHash = false,\n limitVersions?: number\n ): VersionHistoryGraph {\n const refToStr = (ref: Ref) => (shortHash ? ref.toShortString() : ref.toString());\n const graph = new Graph<string | HashMetadata, string>();\n const allVersions = limitVersions ? [...this.versions].slice(-limitVersions) : this.versions;\n const allHashes = allVersions\n .map((v) => compact([v.hash, ...v.parents, ...(v.squashed || []), v.unrelated]))\n .flat();\n\n const allHashesUniq = uniqBy(allHashes, 'hash');\n\n const getMetadata = (ref: Ref): HashMetadata | undefined => {\n if (!modelComponent || !laneHeads) return undefined;\n const tag = modelComponent.getTagOfRefIfExists(ref);\n const pointers = laneHeads[ref.toString()];\n return { tag, pointers };\n };\n const nodes = allHashesUniq.map((v) => new Node(refToStr(v), getMetadata(v) || refToStr(v)));\n\n const edges = allVersions\n .map((v) => {\n const verEdges = v.parents.map((p) => new Edge(refToStr(v.hash), refToStr(p), 'parent'));\n if (v.unrelated) verEdges.push(new Edge(refToStr(v.hash), refToStr(v.unrelated), 'unrelated'));\n if (v.squashed) {\n const squashed = v.squashed.filter((s) => !v.parents.find((p) => p.isEqual(s)));\n squashed.map((p) => verEdges.push(new Edge(refToStr(v.hash), refToStr(p), 'squashed')));\n }\n return verEdges;\n })\n .flat();\n graph.setNodes(nodes);\n graph.setEdges(edges);\n return graph;\n }\n\n get compId() {\n return ComponentID.fromObject({ scope: this.scope, name: this.name });\n }\n\n static create(name: string, scope: string, versions: VersionParents[]) {\n return new VersionHistory({\n name,\n scope,\n versions,\n });\n }\n\n static parse(contents: string): VersionHistory {\n const parsed = JSON.parse(contents);\n const props: VersionHistoryProps = {\n name: parsed.name,\n scope: parsed.scope,\n versions: parsed.versions.map((ver) => ({\n hash: Ref.from(ver.hash),\n parents: ver.parents.map((p) => Ref.from(p)),\n unrelated: ver.unrelated ? Ref.from(ver.unrelated) : undefined,\n squashed: ver.squashed ? ver.squashed.map((p) => Ref.from(p)) : undefined,\n })),\n graphCompleteRefs: parsed.graphCompleteRefs,\n };\n return new VersionHistory(props);\n }\n}\n\nexport function versionParentsToGraph(versions: VersionParents[]): Graph<string, string> {\n const refToStr = (ref: Ref) => ref.toString();\n const graph = new Graph<string, string>();\n const allHashes = uniqBy(\n versions\n .map((v) => {\n return compact([v.hash, ...v.parents, ...(v.squashed || []), v.unrelated]);\n })\n .flat(),\n 'hash'\n );\n const nodes = allHashes.map((v) => new Node(refToStr(v), refToStr(v)));\n const edges = versions\n .map((v) => {\n const verEdges = v.parents.map((p) => new Edge(refToStr(v.hash), refToStr(p), 'parent'));\n if (v.unrelated) verEdges.push(new Edge(refToStr(v.hash), refToStr(v.unrelated), 'unrelated'));\n if (v.squashed) {\n const squashed = v.squashed.filter((s) => !v.parents.find((p) => p.isEqual(s)));\n squashed.map((p) => verEdges.push(new Edge(refToStr(v.hash), refToStr(p), 'squashed')));\n }\n return verEdges;\n })\n .flat();\n graph.setNodes(nodes);\n graph.setEdges(edges);\n return graph;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_graph","data","require","_componentId","_bitError","_lodash","_legacy","_ref","_interopRequireDefault","_objects","_component","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","VersionHistory","BitObject","constructor","props","name","scope","versionsObj","versionParentsToObject","versions","graphCompleteRefs","values","reduce","acc","version","hash","id","fromId","toObject","map","v","toString","parents","p","unrelated","squashed","undefined","pretty","args","getStringifyArgs","JSON","stringify","toBuffer","Buffer","from","getVersionData","ref","hasHash","Boolean","addFromVersionsObjects","forEach","exists","head","previousParents","versionData","getVersionParentsFromVersion","isEmpty","length","getAllHashesFrom","start","item","missing","hashSet","Set","allHashes","stack","add","ver","pop","verHash","push","parent","parentHash","has","parentVer","found","isRefPartOfHistory","startFrom","searchFor","includes","isGraphCompleteSince","isComplete","hasChanged","getAllHashesAsString","keys","merge","versionHistory","existingHashes","incomingHashes","hashesInExistingOnly","difference","versionsDataOnExistingOnly","filter","newVersions","getAncestor","numOfGenerationsToGoBack","errorMsg","compId","BitError","getGraph","modelComponent","laneHeads","shortHash","limitVersions","refToStr","toShortString","graph","Graph","allVersions","slice","compact","flat","allHashesUniq","uniqBy","getMetadata","tag","getTagOfRefIfExists","pointers","nodes","Node","edges","verEdges","Edge","s","find","isEqual","setNodes","setEdges","ComponentID","fromObject","create","parse","contents","parsed","Ref","exports","versionParentsToGraph"],"sources":["version-history.ts"],"sourcesContent":["import { Graph, Edge, Node } from '@teambit/graph.cleargraph';\nimport { ComponentID } from '@teambit/component-id';\nimport { BitError } from '@teambit/bit-error';\nimport { compact, difference, uniqBy } from 'lodash';\nimport { getStringifyArgs } from '@teambit/legacy.utils';\nimport Ref from '../objects/ref';\nimport { BitObject } from '../objects';\nimport type Version from './version';\nimport { getVersionParentsFromVersion } from '@teambit/component.snap-distance';\nimport type ModelComponent from './model-component';\n\nexport type VersionParents = {\n hash: Ref;\n parents: Ref[];\n unrelated?: Ref;\n squashed?: Ref[];\n};\n\nexport type VersionHistoryGraph = Graph<string | HashMetadata, string>;\n\ntype VersionHistoryProps = {\n name: string;\n scope: string;\n versions: VersionParents[];\n graphCompleteRefs?: string[];\n};\n\ntype HashMetadata = {\n tag?: string;\n pointers?: string[];\n};\n\nexport default class VersionHistory extends BitObject {\n name: string;\n scope: string;\n private versionsObj: { [hash: string]: VersionParents };\n graphCompleteRefs: string[];\n hasChanged = false; // whether the version history has changed since the last persist\n constructor(props: VersionHistoryProps) {\n super();\n this.name = props.name;\n this.scope = props.scope;\n this.versionsObj = this.versionParentsToObject(props.versions);\n this.graphCompleteRefs = props.graphCompleteRefs || [];\n }\n\n get versions() {\n return Object.values(this.versionsObj);\n }\n\n private versionParentsToObject(versions: VersionParents[]) {\n return versions.reduce((acc, version) => {\n acc[version.hash.hash] = version;\n return acc;\n }, {});\n }\n\n id() {\n return `${this.scope}/${this.name}:${VersionHistory.name}`;\n }\n\n static fromId(name: string, scope: string) {\n return new VersionHistory({ scope, name, versions: [] });\n }\n\n toObject(): Record<string, any> {\n return {\n name: this.name,\n scope: this.scope,\n versions: this.versions.map((v) => ({\n hash: v.hash.toString(),\n parents: v.parents.map((p) => p.toString()),\n unrelated: v.unrelated?.toString(),\n squashed: v.squashed ? v.squashed.map((p) => p.toString()) : undefined,\n })),\n graphCompleteRefs: this.graphCompleteRefs,\n };\n }\n\n toString(pretty: boolean): string {\n const args = getStringifyArgs(pretty);\n return JSON.stringify(this.toObject(), ...args);\n }\n\n toBuffer(pretty): Buffer {\n return Buffer.from(this.toString(pretty));\n }\n\n getVersionData(ref: Ref): VersionParents | undefined {\n return this.versionsObj[ref.toString()];\n }\n\n hasHash(ref: Ref) {\n return Boolean(this.getVersionData(ref));\n }\n\n addFromVersionsObjects(versions: Version[]) {\n versions.forEach((version) => {\n const exists = this.getVersionData(version.hash());\n if (exists) {\n // just in case the parents got updated as a result of a merge/squash\n exists.parents = version.parents;\n exists.unrelated = version.unrelated?.head;\n exists.squashed = version.squashed?.previousParents;\n } else {\n const versionData = getVersionParentsFromVersion(version);\n this.versionsObj[version.hash().hash] = versionData;\n }\n });\n }\n\n isEmpty() {\n return !this.versions.length;\n }\n\n getAllHashesFrom(start: Ref): { found?: string[]; missing?: string[] } {\n const item = this.getVersionData(start);\n if (!item) return { missing: [start.toString()] };\n const hashSet = new Set<string>();\n const allHashes: string[] = [];\n const missing: string[] = [];\n\n // Use iterative approach with a stack to avoid stack overflow on deep histories\n const stack: VersionParents[] = [item];\n hashSet.add(item.hash.toString());\n\n while (stack.length > 0) {\n const ver = stack.pop()!;\n const verHash = ver.hash.toString();\n allHashes.push(verHash);\n\n for (const parent of ver.parents) {\n const parentHash = parent.toString();\n if (hashSet.has(parentHash)) continue;\n const parentVer = this.getVersionData(parent);\n if (!parentVer) {\n missing.push(parentHash);\n continue;\n }\n // Mark as processed before pushing to prevent duplicate stack entries\n hashSet.add(parentHash);\n stack.push(parentVer);\n }\n }\n\n return { found: allHashes, missing };\n }\n\n isRefPartOfHistory(startFrom: Ref, searchFor: Ref) {\n const { found } = this.getAllHashesFrom(startFrom);\n return found?.includes(searchFor.toString());\n }\n\n isGraphCompleteSince(ref: Ref) {\n if (this.graphCompleteRefs.includes(ref.toString())) return true;\n const { missing } = this.getAllHashesFrom(ref);\n const isComplete = !missing || !missing.length;\n if (isComplete) {\n this.graphCompleteRefs.push(ref.toString());\n this.hasChanged = true;\n }\n return isComplete;\n }\n\n getAllHashesAsString(): string[] {\n return Object.keys(this.versionsObj);\n }\n\n merge(versionHistory: VersionHistory) {\n const existingHashes = this.getAllHashesAsString();\n const incomingHashes = versionHistory.getAllHashesAsString();\n const hashesInExistingOnly = difference(existingHashes, incomingHashes);\n const versionsDataOnExistingOnly = this.versions.filter((v) => hashesInExistingOnly.includes(v.hash.toString()));\n const newVersions = [...versionHistory.versions, ...versionsDataOnExistingOnly];\n this.versionsObj = this.versionParentsToObject(newVersions);\n }\n\n getAncestor(numOfGenerationsToGoBack: number, ref: Ref): Ref {\n const errorMsg = `unable to get an older parent of ${this.compId.toString()}`;\n const versionData = this.getVersionData(ref);\n if (!versionData)\n throw new BitError(`${errorMsg}, version \"${ref.toString()}\" was not found in the version history`);\n if (numOfGenerationsToGoBack === 0) return versionData.hash;\n if (!versionData.parents.length) throw new BitError(`${errorMsg}, version \"${ref.toString()}\" has no parents`);\n const parent = versionData.parents[0];\n return this.getAncestor(numOfGenerationsToGoBack - 1, parent);\n }\n\n getGraph(\n modelComponent?: ModelComponent,\n laneHeads?: { [hash: string]: string[] },\n shortHash = false,\n limitVersions?: number\n ): VersionHistoryGraph {\n const refToStr = (ref: Ref) => (shortHash ? ref.toShortString() : ref.toString());\n const graph = new Graph<string | HashMetadata, string>();\n const allVersions = limitVersions ? [...this.versions].slice(-limitVersions) : this.versions;\n const allHashes = allVersions\n .map((v) => compact([v.hash, ...v.parents, ...(v.squashed || []), v.unrelated]))\n .flat();\n\n const allHashesUniq = uniqBy(allHashes, 'hash');\n\n const getMetadata = (ref: Ref): HashMetadata | undefined => {\n if (!modelComponent || !laneHeads) return undefined;\n const tag = modelComponent.getTagOfRefIfExists(ref);\n const pointers = laneHeads[ref.toString()];\n return { tag, pointers };\n };\n const nodes = allHashesUniq.map((v) => new Node(refToStr(v), getMetadata(v) || refToStr(v)));\n\n const edges = allVersions\n .map((v) => {\n const verEdges = v.parents.map((p) => new Edge(refToStr(v.hash), refToStr(p), 'parent'));\n if (v.unrelated) verEdges.push(new Edge(refToStr(v.hash), refToStr(v.unrelated), 'unrelated'));\n if (v.squashed) {\n const squashed = v.squashed.filter((s) => !v.parents.find((p) => p.isEqual(s)));\n squashed.map((p) => verEdges.push(new Edge(refToStr(v.hash), refToStr(p), 'squashed')));\n }\n return verEdges;\n })\n .flat();\n graph.setNodes(nodes);\n graph.setEdges(edges);\n return graph;\n }\n\n get compId() {\n return ComponentID.fromObject({ scope: this.scope, name: this.name });\n }\n\n static create(name: string, scope: string, versions: VersionParents[]) {\n return new VersionHistory({\n name,\n scope,\n versions,\n });\n }\n\n static parse(contents: string): VersionHistory {\n const parsed = JSON.parse(contents);\n const props: VersionHistoryProps = {\n name: parsed.name,\n scope: parsed.scope,\n versions: parsed.versions.map((ver) => ({\n hash: Ref.from(ver.hash),\n parents: ver.parents.map((p) => Ref.from(p)),\n unrelated: ver.unrelated ? Ref.from(ver.unrelated) : undefined,\n squashed: ver.squashed ? ver.squashed.map((p) => Ref.from(p)) : undefined,\n })),\n graphCompleteRefs: parsed.graphCompleteRefs,\n };\n return new VersionHistory(props);\n }\n}\n\nexport function versionParentsToGraph(versions: VersionParents[]): Graph<string, string> {\n const refToStr = (ref: Ref) => ref.toString();\n const graph = new Graph<string, string>();\n const allHashes = uniqBy(\n versions\n .map((v) => {\n return compact([v.hash, ...v.parents, ...(v.squashed || []), v.unrelated]);\n })\n .flat(),\n 'hash'\n );\n const nodes = allHashes.map((v) => new Node(refToStr(v), refToStr(v)));\n const edges = versions\n .map((v) => {\n const verEdges = v.parents.map((p) => new Edge(refToStr(v.hash), refToStr(p), 'parent'));\n if (v.unrelated) verEdges.push(new Edge(refToStr(v.hash), refToStr(v.unrelated), 'unrelated'));\n if (v.squashed) {\n const squashed = v.squashed.filter((s) => !v.parents.find((p) => p.isEqual(s)));\n squashed.map((p) => verEdges.push(new Edge(refToStr(v.hash), refToStr(p), 'squashed')));\n }\n return verEdges;\n })\n .flat();\n graph.setNodes(nodes);\n graph.setEdges(edges);\n return graph;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/models/version.d.ts
CHANGED
|
@@ -187,12 +187,12 @@ export default class Version extends BitObject {
|
|
|
187
187
|
static depEdgeFromArray(depEdgeArr: string[]): DepEdge;
|
|
188
188
|
static flattenedEdgeToSource(flattenedEdges?: DepEdge[]): Source | undefined;
|
|
189
189
|
static dependenciesGraphToSource(dependenciesGraph?: DependenciesGraph): Source | undefined;
|
|
190
|
-
toObject(): import("lodash").Dictionary<string | boolean | string[] | Record<string, any> | {
|
|
190
|
+
toObject(): import("lodash").Dictionary<string | boolean | Record<string, any> | string[] | Record<string, any>[] | Doclet[] | {
|
|
191
191
|
file: any;
|
|
192
192
|
relativePath: any;
|
|
193
193
|
name: any;
|
|
194
194
|
test: any;
|
|
195
|
-
}[] |
|
|
195
|
+
}[] | import("@teambit/component-id").ComponentIdObj[] | {
|
|
196
196
|
extensionId: ComponentID | import("@teambit/component-id").ComponentIdObj | undefined;
|
|
197
197
|
config: {
|
|
198
198
|
[key: string]: any;
|
package/models/lane-history.ts
CHANGED
|
@@ -70,6 +70,12 @@ export class LaneHistory extends BitObject {
|
|
|
70
70
|
return this.history;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
+
getHistoryIds(): string[] {
|
|
74
|
+
return Object.entries(this.history)
|
|
75
|
+
.sort(([, a], [, b]) => Number(a.log.date) - Number(b.log.date))
|
|
76
|
+
.map(([id]) => id);
|
|
77
|
+
}
|
|
78
|
+
|
|
73
79
|
async addHistory(laneObj: Lane, msg?: string) {
|
|
74
80
|
const log: Log = await getBasicLog();
|
|
75
81
|
if (msg) log.message = msg;
|
|
@@ -116,21 +116,33 @@ export default class VersionHistory extends BitObject {
|
|
|
116
116
|
getAllHashesFrom(start: Ref): { found?: string[]; missing?: string[] } {
|
|
117
117
|
const item = this.getVersionData(start);
|
|
118
118
|
if (!item) return { missing: [start.toString()] };
|
|
119
|
-
const
|
|
119
|
+
const hashSet = new Set<string>();
|
|
120
|
+
const allHashes: string[] = [];
|
|
120
121
|
const missing: string[] = [];
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
122
|
+
|
|
123
|
+
// Use iterative approach with a stack to avoid stack overflow on deep histories
|
|
124
|
+
const stack: VersionParents[] = [item];
|
|
125
|
+
hashSet.add(item.hash.toString());
|
|
126
|
+
|
|
127
|
+
while (stack.length > 0) {
|
|
128
|
+
const ver = stack.pop()!;
|
|
129
|
+
const verHash = ver.hash.toString();
|
|
130
|
+
allHashes.push(verHash);
|
|
131
|
+
|
|
132
|
+
for (const parent of ver.parents) {
|
|
133
|
+
const parentHash = parent.toString();
|
|
134
|
+
if (hashSet.has(parentHash)) continue;
|
|
124
135
|
const parentVer = this.getVersionData(parent);
|
|
125
136
|
if (!parentVer) {
|
|
126
|
-
missing.push(
|
|
127
|
-
|
|
137
|
+
missing.push(parentHash);
|
|
138
|
+
continue;
|
|
128
139
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
140
|
+
// Mark as processed before pushing to prevent duplicate stack entries
|
|
141
|
+
hashSet.add(parentHash);
|
|
142
|
+
stack.push(parentVer);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
134
146
|
return { found: allHashes, missing };
|
|
135
147
|
}
|
|
136
148
|
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/objects",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-e7bd922645b62e592ffbf30c8880dc4d288d1674",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/scope/objects",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.scope",
|
|
8
8
|
"name": "objects",
|
|
9
|
-
"version": "
|
|
9
|
+
"version": "e7bd922645b62e592ffbf30c8880dc4d288d1674"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"lodash": "4.17.21",
|
|
@@ -16,48 +16,48 @@
|
|
|
16
16
|
"fs-extra": "10.0.0",
|
|
17
17
|
"glob": "13.0.0",
|
|
18
18
|
"uid-number": "0.0.6",
|
|
19
|
-
"@pnpm/dependency-path": "1001.1.
|
|
20
|
-
"@pnpm/lockfile.types": "^1002.0.
|
|
19
|
+
"@pnpm/dependency-path": "1001.1.10",
|
|
20
|
+
"@pnpm/lockfile.types": "^1002.0.9",
|
|
21
21
|
"semver": "7.7.1",
|
|
22
22
|
"uuid": "8.3.2",
|
|
23
23
|
"@teambit/harmony": "0.4.7",
|
|
24
|
+
"@teambit/cli": "0.0.1303",
|
|
24
25
|
"@teambit/component-id": "1.2.4",
|
|
26
|
+
"@teambit/component.snap-distance": "0.0.102",
|
|
25
27
|
"@teambit/graph.cleargraph": "0.0.11",
|
|
28
|
+
"@teambit/harmony.modules.concurrency": "0.0.25",
|
|
29
|
+
"@teambit/legacy.logger": "0.0.35",
|
|
30
|
+
"@teambit/legacy.scope": "0.0.101",
|
|
31
|
+
"@teambit/toolbox.promise.map-pool": "0.0.14",
|
|
32
|
+
"@teambit/legacy.constants": "0.0.24",
|
|
33
|
+
"@teambit/legacy.utils": "0.0.34",
|
|
34
|
+
"@teambit/toolbox.crypto.sha1": "0.0.15",
|
|
26
35
|
"@teambit/bit-error": "0.0.404",
|
|
27
36
|
"@teambit/component-version": "1.0.4",
|
|
37
|
+
"@teambit/harmony.modules.in-memory-cache": "0.0.28",
|
|
38
|
+
"@teambit/toolbox.fs.remove-empty-dir": "0.0.13",
|
|
28
39
|
"@teambit/lane-id": "0.0.312",
|
|
40
|
+
"@teambit/harmony.modules.get-basic-log": "0.0.102",
|
|
41
|
+
"@teambit/config-store": "0.0.183",
|
|
42
|
+
"@teambit/legacy.cli.error": "0.0.35",
|
|
43
|
+
"@teambit/component.sources": "0.0.153",
|
|
29
44
|
"@teambit/legacy-bit-id": "1.1.3",
|
|
45
|
+
"@teambit/legacy-component-log": "0.0.417",
|
|
46
|
+
"@teambit/legacy.consumer-component": "0.0.102",
|
|
47
|
+
"@teambit/legacy.consumer-config": "0.0.101",
|
|
48
|
+
"@teambit/legacy.extension-data": "0.0.103",
|
|
49
|
+
"@teambit/pkg.modules.semver-helper": "0.0.22",
|
|
30
50
|
"@teambit/toolbox.array.duplications-finder": "0.0.3",
|
|
31
|
-
"@teambit/
|
|
32
|
-
"@teambit/
|
|
33
|
-
"@teambit/graph": "0.0.0-
|
|
34
|
-
"@teambit/harmony.modules.concurrency": "0.0.0-66411eb1c40237b2965d3276a2e180c7b2bf92fe",
|
|
35
|
-
"@teambit/legacy.logger": "0.0.0-57275725b15a6edcc8afbbbcd4dd821ed471d02d",
|
|
36
|
-
"@teambit/legacy.scope": "0.0.0-fba45da51e25b1c322078034296bf07d9b324a59",
|
|
37
|
-
"@teambit/toolbox.promise.map-pool": "0.0.0-8f8404279b2c18cf8919a1290210fcaffd90906d",
|
|
38
|
-
"@teambit/legacy.constants": "0.0.0-6732b6c4322feb62b694721e5319ce5046cb8810",
|
|
39
|
-
"@teambit/legacy.utils": "0.0.0-8257d6a8edeb95dc71dc774c6943e5ef52eb9201",
|
|
40
|
-
"@teambit/toolbox.crypto.sha1": "0.0.0-2256a09b52b703c3702a56e357aca0dc0b7e7897",
|
|
41
|
-
"@teambit/harmony.modules.in-memory-cache": "0.0.0-aa9c6d778a3c0057376e8cbf6f88d7a09f052e43",
|
|
42
|
-
"@teambit/toolbox.fs.remove-empty-dir": "0.0.0-ccc5fd0608b09350e915c892ebfb3d9414dc423b",
|
|
43
|
-
"@teambit/harmony.modules.get-basic-log": "0.0.0-c11c6b00b3820cf507af6c7b38ff4ca9696bfdc3",
|
|
44
|
-
"@teambit/config-store": "0.0.0-86dc71ce2244748dae9281debee1c3c828e8c94c",
|
|
45
|
-
"@teambit/legacy.cli.error": "0.0.0-20c145303a681d9d6d20a49e399581ccdbed4597",
|
|
46
|
-
"@teambit/component.sources": "0.0.0-2ea81367893459ae6fff842121c033aef1c7804b",
|
|
47
|
-
"@teambit/legacy-component-log": "0.0.0-9ca42c47127ea73a7e476b4b6e458ed35ca61acf",
|
|
48
|
-
"@teambit/legacy.consumer-component": "0.0.0-451e62564faf9ed47a9dee8e109341d4b3324eb4",
|
|
49
|
-
"@teambit/legacy.consumer-config": "0.0.0-3b836f92ce1ba32a44c2581609f00fe290f45de5",
|
|
50
|
-
"@teambit/legacy.extension-data": "0.0.0-59687cb858f2ae60ae1fbec8eb6526bfe9e145f2",
|
|
51
|
-
"@teambit/pkg.modules.semver-helper": "0.0.0-9137e38d7002bb7a174398b4d57509dbf7d8087e",
|
|
52
|
-
"@teambit/bit.get-bit-version": "0.0.0-90f96a0a01226c71abec977b25bb567571529558",
|
|
53
|
-
"@teambit/semantics.doc-parser": "0.0.0-5bc36d906b0ce8f241d0b30acb6079467ec93bcb"
|
|
51
|
+
"@teambit/bit.get-bit-version": "0.0.15",
|
|
52
|
+
"@teambit/semantics.doc-parser": "0.0.109",
|
|
53
|
+
"@teambit/graph": "0.0.0-cf408328ed96e1e3a31c82139b7a7abe5ea7d1db"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@types/lodash": "4.14.165",
|
|
57
57
|
"@types/fs-extra": "9.0.7",
|
|
58
58
|
"@types/semver": "7.5.8",
|
|
59
59
|
"@types/uuid": "8.3.4",
|
|
60
|
-
"@teambit/harmony.envs.core-aspect-env": "0.1.
|
|
60
|
+
"@teambit/harmony.envs.core-aspect-env": "0.1.4"
|
|
61
61
|
},
|
|
62
62
|
"peerDependencies": {
|
|
63
63
|
"chai": "5.2.1",
|
|
File without changes
|