@teambit/objects 0.0.429 → 0.0.430
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.d.ts
CHANGED
|
@@ -56,10 +56,10 @@ 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
|
+
} | {
|
|
63
63
|
isDeleted?: true | undefined;
|
|
64
64
|
id: {
|
|
65
65
|
scope: string;
|
package/dist/models/version.d.ts
CHANGED
|
@@ -92,6 +92,7 @@ export type VersionProps = {
|
|
|
92
92
|
modified?: Log[];
|
|
93
93
|
origin?: VersionOrigin;
|
|
94
94
|
hidden?: boolean;
|
|
95
|
+
batchId?: string;
|
|
95
96
|
};
|
|
96
97
|
/**
|
|
97
98
|
* Represent a version model in the scope
|
|
@@ -147,6 +148,7 @@ export default class Version extends BitObject {
|
|
|
147
148
|
modified: Log[];
|
|
148
149
|
origin?: VersionOrigin;
|
|
149
150
|
hidden?: boolean;
|
|
151
|
+
batchId?: string;
|
|
150
152
|
constructor(props: VersionProps);
|
|
151
153
|
/**
|
|
152
154
|
* use only this method to get the flattened edges (graph of flattened dependencies).
|
|
@@ -187,12 +189,12 @@ export default class Version extends BitObject {
|
|
|
187
189
|
static depEdgeFromArray(depEdgeArr: string[]): DepEdge;
|
|
188
190
|
static flattenedEdgeToSource(flattenedEdges?: DepEdge[]): Source | undefined;
|
|
189
191
|
static dependenciesGraphToSource(dependenciesGraph?: DependenciesGraph): Source | undefined;
|
|
190
|
-
toObject(): import("lodash").Dictionary<string | boolean |
|
|
192
|
+
toObject(): import("lodash").Dictionary<string | boolean | Record<string, any> | string[] | Record<string, any>[] | Doclet[] | {
|
|
191
193
|
file: any;
|
|
192
194
|
relativePath: any;
|
|
193
195
|
name: any;
|
|
194
196
|
test: any;
|
|
195
|
-
}[] |
|
|
197
|
+
}[] | import("@teambit/component-id").ComponentIdObj[] | {
|
|
196
198
|
extensionId: ComponentID | import("@teambit/component-id").ComponentIdObj | undefined;
|
|
197
199
|
config: {
|
|
198
200
|
[key: string]: any;
|
|
@@ -209,7 +211,7 @@ export default class Version extends BitObject {
|
|
|
209
211
|
[key: string]: string;
|
|
210
212
|
} | {
|
|
211
213
|
[key: string]: string;
|
|
212
|
-
} | Log[] | VersionOrigin | {
|
|
214
|
+
} | ComponentOverridesData | Log[] | VersionOrigin | {
|
|
213
215
|
message: string;
|
|
214
216
|
date: string;
|
|
215
217
|
username: string | undefined;
|
package/dist/models/version.js
CHANGED
|
@@ -131,7 +131,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
|
131
131
|
* Represent a version model in the scope
|
|
132
132
|
*/
|
|
133
133
|
class Version extends _objects().BitObject {
|
|
134
|
-
//
|
|
134
|
+
// a shared UUID for all versions created in the same snap/tag operation
|
|
135
135
|
|
|
136
136
|
constructor(props) {
|
|
137
137
|
super();
|
|
@@ -188,6 +188,8 @@ class Version extends _objects().BitObject {
|
|
|
188
188
|
_defineProperty(this, "origin", void 0);
|
|
189
189
|
// for debugging purposes
|
|
190
190
|
_defineProperty(this, "hidden", void 0);
|
|
191
|
+
// whether the version is hidden from commands such as "bit log", "bit blame". (needed for un-meaningful snaps, such as merged-lane snap prior to the tag)
|
|
192
|
+
_defineProperty(this, "batchId", void 0);
|
|
191
193
|
this.mainFile = props.mainFile;
|
|
192
194
|
this.files = props.files;
|
|
193
195
|
this.log = props.log;
|
|
@@ -218,6 +220,7 @@ class Version extends _objects().BitObject {
|
|
|
218
220
|
this.modified = props.modified || [];
|
|
219
221
|
this.origin = props.origin;
|
|
220
222
|
this.hidden = props.hidden;
|
|
223
|
+
this.batchId = props.batchId;
|
|
221
224
|
this.validateVersion();
|
|
222
225
|
}
|
|
223
226
|
|
|
@@ -478,7 +481,8 @@ class Version extends _objects().BitObject {
|
|
|
478
481
|
bitVersion: this.bitVersion,
|
|
479
482
|
modified: this.modified,
|
|
480
483
|
origin: this.origin,
|
|
481
|
-
hidden: this.hidden
|
|
484
|
+
hidden: this.hidden,
|
|
485
|
+
batchId: this.batchId
|
|
482
486
|
}, val => !!val);
|
|
483
487
|
}
|
|
484
488
|
validateBeforePersisting(versionStr) {
|
|
@@ -525,7 +529,8 @@ class Version extends _objects().BitObject {
|
|
|
525
529
|
bitVersion,
|
|
526
530
|
modified,
|
|
527
531
|
origin,
|
|
528
|
-
hidden
|
|
532
|
+
hidden,
|
|
533
|
+
batchId
|
|
529
534
|
} = contentParsed;
|
|
530
535
|
const _getDependencies = (deps = []) => {
|
|
531
536
|
const getRelativePath = relativePath => {
|
|
@@ -623,7 +628,8 @@ class Version extends _objects().BitObject {
|
|
|
623
628
|
bitVersion,
|
|
624
629
|
modified,
|
|
625
630
|
origin,
|
|
626
|
-
hidden
|
|
631
|
+
hidden,
|
|
632
|
+
batchId
|
|
627
633
|
});
|
|
628
634
|
}
|
|
629
635
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","data","require","_componentVersion","_componentId","_laneId","_uuid","_legacy","_legacy2","_component","_legacy3","_legacy4","_legacy5","_toolboxCrypto","_objects","_legacy6","_source","_interopRequireDefault","_dependenciesGraph","_bit","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","Version","BitObject","constructor","props","mainFile","files","log","dependencies","Dependencies","devDependencies","peerDependencies","docs","flattenedDependencies","ComponentIdList","flattenedEdges","flattenedEdgesRef","dependenciesGraphRef","packageDependencies","devPackageDependencies","peerPackageDependencies","bindingPrefix","schema","overrides","packageJsonChangedProps","_hash","hash","parents","squashed","unrelated","extensions","ExtensionDataList","fromArray","buildStatus","componentId","bitVersion","modified","origin","hidden","validateVersion","getFlattenedEdges","repo","getWithBackwardCompatibility","throws","flattenedEdgesSource","load","flattenedEdgesJson","JSON","parse","contents","toString","map","item","Array","isArray","depEdgeFromArray","depEdgeFromObject","_flattenedEdges","loadDependenciesGraph","dependenciesGraphSource","DependenciesGraph","deserialize","nonEmptyFields","forEach","field","VersionInvalid","id","obj","toObject","getDependencies","deps","clonedDependencies","cloneAsString","dependency","getExtensions","sortedConfigOnly","sortById","toConfigArray","filterFunction","val","key","isEmpty","stringify","pickBy","extensionDependencies","calculateHash","Ref","makeHash","Error","extensionsBitIds","Dependency","lastModified","length","date","getAllFlattenedDependencies","getAllDependencies","depsIdsGroupedByType","getAllIds","getAllDependenciesCloned","getClone","getAllDependenciesIds","allDependencies","values","flat","getDependenciesIdsExcludeExtensions","updateFlattenedDependency","currentId","newId","getUpdated","updatedIds","depId","isEqual","refs","refsWithOptions","includeParents","includeArtifacts","allRefs","extractRefsFromFiles","file","push","artifacts","getRefsFromExtensions","refsWithoutParents","filter","ref","collectManyObjects","loadManyRaw","depEdgeToObject","depEdge","source","serialize","target","type","depEdgeObj","ComponentID","fromObject","depEdgeToArray","depEdgeArr","sourceStr","targetStr","fromString","flattenedEdgeToSource","undefined","flattenedEdgesObj","f","flattenedEdgesBuffer","Buffer","from","Source","dependenciesGraphToSource","dependenciesGraph","dependenciesGraphBuffer","_convertFileToObject","relativePath","name","test","message","username","email","cloneAsObject","dep","toModelObjects","p","previousParents","laneId","head","validateBeforePersisting","versionStr","logger","trace","version","validate","toBuffer","pretty","args","getStringifyArgs","str","validateBeforePersist","contentParsed","flattenedDevDependencies","_getDependencies","getRelativePath","importSpecifiers","importSpecifier","scope","BitIdCompIdError","relativePaths","parseFlattenedDeps","_groupFlattenedDependencies","flattenedDeps","flattenedDevDeps","parseFile","_getExtensions","exts","newExts","extension","extensionId","entry","ExtensionDataEntry","config","fromModelObject","LaneId","versionProps","fromComponent","component","pathNormalizeToLinux","get","componentOverridesData","getBitVersion","isSnap","setNewHash","sha1","v4","ignoreSharedDir","isSchemaSupport","SchemaFeature","sharedDir","isLegacy","SchemaName","Legacy","originLaneId","lane","originId","setDist","dist","DEFAULT_BUNDLE_FILENAME","hasParent","find","addParent","setSquashed","squashData","replaceMessage","addModifiedLog","Date","now","setUnrelated","externalHead","addAsOnlyParent","removeParent","removeAllParents","modelFilesToSourceFiles","repository","Promise","all","SourceFile","loadFromSourceFileModel","isRemoved","Boolean","findCoreExtension","Extensions","remove","removed","shouldRemoveFromMain","removeOnMain","validateVersionInstance","exports"],"sources":["version.ts"],"sourcesContent":["import { isEmpty, pickBy } from 'lodash';\nimport { isSnap } from '@teambit/component-version';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { LaneId } from '@teambit/lane-id';\nimport { v4 } from 'uuid';\nimport type { BuildStatus } from '@teambit/legacy.constants';\nimport { DEFAULT_BUNDLE_FILENAME, Extensions } from '@teambit/legacy.constants';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport {\n isSchemaSupport,\n SchemaFeature,\n SchemaName,\n Dependencies,\n Dependency,\n} from '@teambit/legacy.consumer-component';\nimport { getRefsFromExtensions, SourceFile } from '@teambit/component.sources';\nimport type { ComponentOverridesData } from '@teambit/legacy.consumer-config';\nimport { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy.extension-data';\nimport type { Doclet } from '@teambit/semantics.doc-parser';\nimport { logger } from '@teambit/legacy.logger';\nimport type { PathLinux } from '@teambit/legacy.utils';\nimport { getStringifyArgs, pathNormalizeToLinux } from '@teambit/legacy.utils';\nimport { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport type { Repository } from '../objects';\nimport { BitObject, Ref } from '../objects';\nimport type { ObjectItem } from '../objects/object-list';\nimport { BitIdCompIdError, VersionInvalid, validateVersionInstance } from '@teambit/legacy.scope';\nimport Source from './source';\nimport { DependenciesGraph } from './dependencies-graph';\nimport { getBitVersion } from '@teambit/bit.get-bit-version';\n\nexport type SourceFileModel = {\n name: string;\n relativePath: PathLinux;\n test: boolean;\n file: Ref;\n};\n\nexport type DistFileModel = SourceFileModel;\n\nexport type ArtifactFileModel = {\n relativePath: PathLinux;\n file: Ref;\n};\n\nexport type Log = {\n message: string;\n date: string;\n username: string | undefined;\n email: string | undefined;\n};\n\nexport type DepEdgeType = 'prod' | 'dev' | 'peer' | 'ext';\nexport type DepEdge = { source: ComponentID; target: ComponentID; type: DepEdgeType };\n\ntype ExternalHead = { head: Ref; laneId: LaneId };\ntype SquashData = { previousParents: Ref[]; laneId: LaneId };\ntype VersionOrigin = { id: { scope: string; name: string }; lane?: { scope: string; name: string; hash: string } };\n\nexport type VersionProps = {\n mainFile: PathLinux;\n files: Array<SourceFileModel>;\n log: Log;\n docs?: Doclet[];\n dependencies?: Dependency[];\n devDependencies?: Dependency[];\n peerDependencies?: Dependency[];\n flattenedDependencies?: ComponentIdList;\n _flattenedEdges?: DepEdge[];\n flattenedEdges?: DepEdge[];\n flattenedEdgesRef?: Ref;\n dependenciesGraphRef?: Ref;\n packageDependencies?: { [key: string]: string };\n devPackageDependencies?: { [key: string]: string };\n peerPackageDependencies?: { [key: string]: string };\n bindingPrefix: string;\n schema?: string;\n overrides: ComponentOverridesData;\n packageJsonChangedProps?: Record<string, any>;\n hash?: string;\n parents?: Ref[];\n squashed?: SquashData;\n unrelated?: ExternalHead;\n extensions?: ExtensionDataList;\n buildStatus?: BuildStatus;\n componentId?: ComponentID;\n bitVersion?: string;\n modified?: Log[];\n origin?: VersionOrigin;\n hidden?: boolean;\n};\n\n/**\n * Represent a version model in the scope\n */\nexport default class Version extends BitObject {\n mainFile: PathLinux;\n files: Array<SourceFileModel>;\n log: Log;\n docs: Doclet[] | undefined;\n dependencies: Dependencies;\n devDependencies: Dependencies;\n peerDependencies: Dependencies;\n flattenedDependencies: ComponentIdList;\n dependenciesGraphRef?: Ref;\n _dependenciesGraph?: DependenciesGraph; // caching for the dependencies graph\n flattenedEdgesRef?: Ref; // ref to a BitObject Source file, which is a JSON object containing the flattened edge\n _flattenedEdges?: DepEdge[]; // caching for the flattenedEdges\n /**\n * @deprecated\n * to get the flattenedEdges, please use `this.getFlattenedEdges()`.\n * this function handles the backward compatibility and provides the flattened edges regardless whether it was saved\n * the `flattenedEdgesRef` introduced or after.\n *\n * the reason this is left here is not for backward compatibility, but for forward compatibility. meaning, if a\n * Version object created by the new version is parsed by an old version that doesn't support the flattenedEdgesRef,\n * then, it'll be able to still get the flattenedEdges by this prop.\n * this is causing duplication currently. the data is kept in both, `this.flattenedEdges` and the file stored in `flattenedEdgesRef`.\n * so it'll be best to delete this prop as soon as all scopes are deployed with the new version.\n * (around August 2023 should be safe)\n */\n private flattenedEdges: DepEdge[];\n packageDependencies: { [key: string]: string };\n devPackageDependencies: { [key: string]: string };\n peerPackageDependencies: { [key: string]: string };\n bindingPrefix: string;\n schema: string | undefined;\n overrides: ComponentOverridesData;\n packageJsonChangedProps: Record<string, any>;\n _hash: string; // reason for the underscore prefix is that we already have hash as a method\n parents: Ref[];\n squashed?: SquashData; // when a component is squashed during lane-merge\n unrelated?: ExternalHead; // when a component from a lane was created with the same name/scope as main, this ref points to the component of the lane\n extensions: ExtensionDataList;\n buildStatus?: BuildStatus;\n componentId?: ComponentID; // can help debugging errors when validating Version object\n bitVersion?: string;\n modified: Log[] = []; // currently mutation could happen as a result of either \"squash\" or \"sign\".\n origin?: VersionOrigin; // for debugging purposes\n hidden?: boolean; // whether the version is hidden from commands such as \"bit log\", \"bit blame\". (needed for un-meaningful snaps, such as merged-lane snap prior to the tag)\n\n constructor(props: VersionProps) {\n super();\n this.mainFile = props.mainFile;\n this.files = props.files;\n this.log = props.log;\n this.dependencies = new Dependencies(props.dependencies);\n this.devDependencies = new Dependencies(props.devDependencies);\n this.peerDependencies = new Dependencies(props.peerDependencies);\n this.docs = props.docs;\n this.flattenedDependencies = props.flattenedDependencies || new ComponentIdList();\n this.flattenedEdges = props.flattenedEdges || [];\n this.flattenedEdgesRef = props.flattenedEdgesRef;\n this.dependenciesGraphRef = props.dependenciesGraphRef;\n this.packageDependencies = props.packageDependencies || {};\n this.devPackageDependencies = props.devPackageDependencies || {};\n this.peerPackageDependencies = props.peerPackageDependencies || {};\n this.bindingPrefix = props.bindingPrefix;\n this.schema = props.schema;\n this.overrides = props.overrides || {};\n this.packageJsonChangedProps = props.packageJsonChangedProps || {};\n // @ts-ignore yes, props.hash can be undefined here, but it gets populated as soon as Version is created\n this._hash = props.hash;\n this.parents = props.parents || [];\n this.squashed = props.squashed;\n this.unrelated = props.unrelated;\n this.extensions = props.extensions || ExtensionDataList.fromArray([]);\n this.buildStatus = props.buildStatus;\n this.componentId = props.componentId;\n this.bitVersion = props.bitVersion;\n this.modified = props.modified || [];\n this.origin = props.origin;\n this.hidden = props.hidden;\n this.validateVersion();\n }\n\n /**\n * use only this method to get the flattened edges (graph of flattened dependencies).\n * it's backward compatible with the previous way this was stored on the Version object itself.\n */\n async getFlattenedEdges(repo: Repository): Promise<DepEdge[]> {\n const getWithBackwardCompatibility = async (): Promise<DepEdge[]> => {\n if (this.flattenedEdgesRef) {\n // it's possible that there is a ref but the file is not there.\n // it can happen if the remote-scope uses an older version that doesn't know to collect this ref.\n // in which case, the client will get the Version object with the ref prop, but not the Source object.\n const throws = false;\n const flattenedEdgesSource = (await repo.load(this.flattenedEdgesRef, throws)) as Source | undefined;\n if (flattenedEdgesSource) {\n const flattenedEdgesJson = JSON.parse(flattenedEdgesSource.contents.toString());\n return flattenedEdgesJson.map((item) =>\n Array.isArray(item) ? Version.depEdgeFromArray(item) : Version.depEdgeFromObject(item)\n );\n }\n }\n return this.flattenedEdges || [];\n };\n\n if (!this._flattenedEdges) {\n this._flattenedEdges = await getWithBackwardCompatibility();\n }\n\n return this._flattenedEdges;\n }\n\n async loadDependenciesGraph(repo: Repository): Promise<DependenciesGraph | undefined> {\n if (!this._dependenciesGraph) {\n if (this.dependenciesGraphRef) {\n // it's possible that there is a ref but the file is not there.\n // it can happen if the remote-scope uses an older version that doesn't know to collect this ref.\n // in which case, the client will get the Version object with the ref prop, but not the Source object.\n const throws = false;\n const dependenciesGraphSource = (await repo.load(this.dependenciesGraphRef, throws)) as Source | undefined;\n if (dependenciesGraphSource) {\n this._dependenciesGraph = DependenciesGraph.deserialize(dependenciesGraphSource.contents.toString());\n }\n }\n }\n return this._dependenciesGraph;\n }\n\n validateVersion() {\n const nonEmptyFields = ['mainFile', 'files'];\n nonEmptyFields.forEach((field) => {\n if (!this[field]) {\n throw new VersionInvalid(`failed creating a version object, the field \"${field}\" can't be empty`);\n }\n });\n }\n\n id() {\n const obj = this.toObject();\n\n const getDependencies = (deps: Dependencies) => {\n const clonedDependencies = deps.cloneAsString();\n return clonedDependencies.map((dependency) => {\n return {\n id: dependency.id,\n };\n });\n };\n\n const getExtensions = (extensions: ExtensionDataList) => {\n const sortedConfigOnly = extensions.sortById().toConfigArray();\n return sortedConfigOnly;\n };\n\n const filterFunction = (val, key) => {\n if (\n key === 'devDependencies' ||\n key === 'extensionDependencies' ||\n key === 'devPackageDependencies' ||\n key === 'peerPackageDependencies' ||\n key === 'overrides' ||\n key === 'extensions'\n ) {\n return !isEmpty(val);\n }\n return !!val;\n };\n\n return JSON.stringify(\n pickBy(\n {\n mainFile: obj.mainFile,\n files: obj.files,\n log: obj.log,\n dependencies: getDependencies(this.dependencies),\n devDependencies: getDependencies(this.devDependencies),\n extensionDependencies: getDependencies(this.extensionDependencies),\n packageDependencies: obj.packageDependencies,\n devPackageDependencies: obj.devPackageDependencies,\n peerPackageDependencies: obj.peerPackageDependencies,\n bindingPrefix: obj.bindingPrefix,\n overrides: obj.overrides,\n extensions: getExtensions(this.extensions),\n },\n filterFunction\n )\n );\n }\n\n calculateHash(): Ref {\n return new Ref(BitObject.makeHash(this.id()));\n }\n\n hash(): Ref {\n if (!this._hash) {\n throw new Error('hash is missing from a Version object');\n }\n return new Ref(this._hash);\n }\n\n get extensionDependencies() {\n return new Dependencies(this.extensions.extensionsBitIds.map((id) => new Dependency(id, [])));\n }\n\n lastModified(): string {\n if (!this.modified || !this.modified.length) return this.log.date;\n return this.modified[this.modified.length - 1].date;\n }\n\n getAllFlattenedDependencies(): ComponentIdList {\n return ComponentIdList.fromArray([...this.flattenedDependencies]);\n }\n\n getAllDependencies(): Dependency[] {\n return [\n ...this.dependencies.dependencies,\n ...this.devDependencies.dependencies,\n ...this.extensionDependencies.dependencies,\n ];\n }\n\n get depsIdsGroupedByType(): {\n dependencies: ComponentIdList;\n devDependencies: ComponentIdList;\n peerDependencies: ComponentIdList;\n extensionDependencies: ComponentIdList;\n } {\n return {\n dependencies: this.dependencies.getAllIds(),\n devDependencies: this.devDependencies.getAllIds(),\n peerDependencies: this.peerDependencies.getAllIds(),\n extensionDependencies: this.extensions.extensionsBitIds,\n };\n }\n\n getAllDependenciesCloned(): Dependencies {\n const dependencies = [...this.dependencies.getClone(), ...this.devDependencies.getClone()];\n return new Dependencies(dependencies);\n }\n\n getAllDependenciesIds(): ComponentIdList {\n const allDependencies = Object.values(this.depsIdsGroupedByType).flat();\n return ComponentIdList.fromArray(allDependencies);\n }\n\n getDependenciesIdsExcludeExtensions(): ComponentIdList {\n return ComponentIdList.fromArray([...this.dependencies.getAllIds(), ...this.devDependencies.getAllIds()]);\n }\n\n updateFlattenedDependency(currentId: ComponentID, newId: ComponentID) {\n const getUpdated = (flattenedDependencies: ComponentIdList): ComponentIdList => {\n const updatedIds = flattenedDependencies.map((depId) => {\n if (depId.isEqual(currentId)) return newId;\n return depId;\n });\n return ComponentIdList.fromArray(updatedIds);\n };\n this.flattenedDependencies = getUpdated(this.flattenedDependencies);\n }\n\n refs(): Ref[] {\n return this.refsWithOptions();\n }\n\n refsWithOptions(includeParents = true, includeArtifacts = true): Ref[] {\n const allRefs: Ref[] = [];\n const extractRefsFromFiles = (files) => {\n const refs = files ? files.map((file) => file.file) : [];\n return refs;\n };\n const files = extractRefsFromFiles(this.files);\n allRefs.push(...files);\n if (includeParents) {\n allRefs.push(...this.parents);\n }\n if (includeArtifacts) {\n const artifacts = getRefsFromExtensions(this.extensions);\n allRefs.push(...artifacts);\n }\n if (this.flattenedEdgesRef) allRefs.push(this.flattenedEdgesRef);\n if (this.dependenciesGraphRef) allRefs.push(this.dependenciesGraphRef);\n return allRefs;\n }\n\n refsWithoutParents(): Ref[] {\n const extractRefsFromFiles = (files) => {\n const refs = files ? files.map((file) => file.file) : [];\n return refs;\n };\n const files = extractRefsFromFiles(this.files);\n const artifacts = getRefsFromExtensions(this.extensions);\n return [...files, ...artifacts].filter((ref) => ref);\n }\n\n async collectManyObjects(repo: Repository, refs: Ref[]): Promise<ObjectItem[]> {\n return repo.loadManyRaw(refs);\n }\n\n static depEdgeToObject(depEdge: DepEdge): Record<string, any> {\n return {\n source: depEdge.source.serialize(),\n target: depEdge.target.serialize(),\n type: depEdge.type,\n };\n }\n static depEdgeFromObject(depEdgeObj: Record<string, any>): DepEdge {\n return {\n source: ComponentID.fromObject(depEdgeObj.source),\n target: ComponentID.fromObject(depEdgeObj.target),\n type: depEdgeObj.type,\n };\n }\n /**\n * until 1.9.86, we used depEdgeToObject.\n * this one makes this object much much smaller (for 604 edges, it's now 143KB, with the array format it's 6KB!)\n * this format has been supported (but not used) since v1.6.97.\n */\n static depEdgeToArray(depEdge: DepEdge): Record<string, any> {\n return [depEdge.source.toString(), depEdge.target.toString(), depEdge.type];\n }\n static depEdgeFromArray(depEdgeArr: string[]): DepEdge {\n const [sourceStr, targetStr, type] = depEdgeArr;\n return {\n source: ComponentID.fromString(sourceStr),\n target: ComponentID.fromString(targetStr),\n type: type as DepEdgeType,\n };\n }\n static flattenedEdgeToSource(flattenedEdges?: DepEdge[]): Source | undefined {\n if (!flattenedEdges) return undefined;\n // const flattenedEdgesObj = flattenedEdges.map((f) => Version.depEdgeToArray(f));\n const flattenedEdgesObj = flattenedEdges.map((f) => Version.depEdgeToObject(f));\n const flattenedEdgesBuffer = Buffer.from(JSON.stringify(flattenedEdgesObj));\n return Source.from(flattenedEdgesBuffer);\n }\n static dependenciesGraphToSource(dependenciesGraph?: DependenciesGraph): Source | undefined {\n if (!dependenciesGraph) return undefined;\n const dependenciesGraphBuffer = Buffer.from(dependenciesGraph.serialize());\n return Source.from(dependenciesGraphBuffer);\n }\n\n toObject() {\n const _convertFileToObject = (file) => {\n return {\n file: file.file.toString(),\n relativePath: file.relativePath,\n name: file.name,\n test: file.test,\n };\n };\n\n return pickBy(\n {\n files: this.files ? this.files.map(_convertFileToObject) : null,\n mainFile: this.mainFile,\n bindingPrefix: this.bindingPrefix,\n schema: this.schema,\n log: {\n message: this.log.message,\n date: this.log.date,\n username: this.log.username,\n email: this.log.email,\n },\n docs: this.docs,\n dependencies: this.dependencies.cloneAsObject(),\n devDependencies: this.devDependencies.cloneAsObject(),\n flattenedDependencies: this.flattenedDependencies.map((dep) => dep.toObject()),\n // @todo: uncomment this in the future, once all remotes are updated to support the backward compatibility.\n // flattenedDependencies: this.flattenedDependencies.map((dep) => dep.toString()),\n flattenedEdges: this.flattenedEdgesRef ? undefined : this.flattenedEdges.map((f) => Version.depEdgeToObject(f)),\n flattenedEdgesRef: this.flattenedEdgesRef?.toString(),\n dependenciesGraphRef: this.dependenciesGraphRef?.toString(),\n extensions: this.extensions.toModelObjects(),\n packageDependencies: this.packageDependencies,\n devPackageDependencies: this.devPackageDependencies,\n peerPackageDependencies: this.peerPackageDependencies,\n overrides: this.overrides,\n buildStatus: this.buildStatus,\n packageJsonChangedProps: this.packageJsonChangedProps,\n parents: this.parents.map((p) => p.toString()),\n squashed: this.squashed\n ? {\n previousParents: this.squashed.previousParents.map((p) => p.toString()),\n laneId: this.squashed.laneId.toObject(),\n }\n : undefined,\n unrelated: this.unrelated\n ? { head: this.unrelated.head.toString(), laneId: this.unrelated.laneId.toObject() }\n : undefined,\n bitVersion: this.bitVersion,\n modified: this.modified,\n origin: this.origin,\n hidden: this.hidden,\n },\n (val) => !!val\n );\n }\n\n validateBeforePersisting(versionStr: string): void {\n logger.trace(`validating version object, hash: ${this.hash().hash}`);\n const version = Version.parse(versionStr, this._hash);\n version.validate();\n }\n\n toBuffer(pretty: boolean): Buffer {\n const obj = this.toObject();\n const args = getStringifyArgs(pretty);\n const str = JSON.stringify(obj, ...args);\n if (this.validateBeforePersist) this.validateBeforePersisting(str);\n return Buffer.from(str);\n }\n /**\n * used by the super class BitObject\n */\n static parse(contents: string, hash: string): Version {\n const contentParsed = JSON.parse(contents);\n const {\n mainFile,\n files,\n bindingPrefix,\n schema,\n log,\n docs,\n dependencies,\n devDependencies,\n flattenedDependencies,\n flattenedDevDependencies,\n flattenedEdges,\n flattenedEdgesRef,\n dependenciesGraphRef,\n devPackageDependencies,\n peerPackageDependencies,\n packageDependencies,\n overrides,\n packageJsonChangedProps,\n extensions,\n buildStatus,\n parents,\n squashed,\n unrelated,\n bitVersion,\n modified,\n origin,\n hidden,\n } = contentParsed;\n\n const _getDependencies = (deps = []): Dependency[] => {\n const getRelativePath = (relativePath) => {\n if (relativePath.importSpecifiers) {\n // backward compatibility. Before the massive validation was added, an item of\n // relativePath.importSpecifiers array could be missing the mainFile property, which is\n // an invalid ImportSpecifier. (instead the mainFile it had another importSpecifiers object).\n relativePath.importSpecifiers = relativePath.importSpecifiers.filter(\n (importSpecifier) => importSpecifier.mainFile\n );\n if (!relativePath.importSpecifiers.length) delete relativePath.importSpecifiers;\n }\n\n return relativePath;\n };\n\n return deps.map((dependency: any) => {\n if (!dependency.id.scope) {\n throw new BitIdCompIdError(dependency.id.name);\n }\n return new Dependency(\n ComponentID.fromObject(dependency.id),\n Array.isArray(dependency.relativePaths)\n ? dependency.relativePaths.map(getRelativePath)\n : dependency.relativePaths\n );\n });\n };\n\n // Accept both string[] and object[] for backward compatibility\n const parseFlattenedDeps = (deps = []): ComponentID[] => {\n if (!deps.length) return [];\n if (typeof deps[0] === 'string') return deps.map((dep) => ComponentID.fromString(dep));\n return deps.map((dep) => ComponentID.fromObject(dep));\n };\n\n const _groupFlattenedDependencies = () => {\n // support backward compatibility. until v15, there was both flattenedDependencies and\n // flattenedDevDependencies. since then, these both were grouped to one flattenedDependencies\n const flattenedDeps = parseFlattenedDeps(flattenedDependencies);\n const flattenedDevDeps = parseFlattenedDeps(flattenedDevDependencies);\n return ComponentIdList.fromArray([...flattenedDeps, ...flattenedDevDeps]);\n };\n\n const parseFile = (file) => {\n return {\n file: Ref.from(file.file),\n relativePath: file.relativePath,\n name: file.name,\n test: file.test,\n };\n };\n const _getExtensions = (exts = []): ExtensionDataList => {\n if (exts.length) {\n const newExts = exts.map((extension: any) => {\n if (extension.extensionId) {\n const extensionId = ComponentID.fromObject(extension.extensionId);\n const entry = new ExtensionDataEntry(undefined, extensionId, undefined, extension.config, extension.data);\n return entry;\n }\n const entry = new ExtensionDataEntry(\n extension.id,\n undefined,\n extension.name,\n extension.config,\n extension.data\n );\n return entry;\n });\n return ExtensionDataList.fromModelObject(newExts);\n }\n return new ExtensionDataList();\n };\n\n return new Version({\n mainFile,\n files: files.map(parseFile),\n bindingPrefix,\n schema: schema || undefined,\n log: {\n // workaround for a bug where the log.message was saved as boolean when running `bit tag -m \"\"`\n // the bug was fixed since v0.1.27, but old objects might still have this bug\n message: typeof log.message !== 'string' ? '' : log.message,\n date: log.date,\n username: log.username,\n email: log.email,\n },\n docs,\n dependencies: _getDependencies(dependencies),\n devDependencies: _getDependencies(devDependencies),\n flattenedDependencies: _groupFlattenedDependencies(),\n // backward compatibility. before introducing `flattenedEdgesRef`, we only had `flattenedEdges`. see getFlattenedEdges() for more info.\n flattenedEdges: flattenedEdgesRef ? [] : flattenedEdges?.map((f) => Version.depEdgeFromObject(f)) || [],\n flattenedEdgesRef: flattenedEdgesRef ? Ref.from(flattenedEdgesRef) : undefined,\n dependenciesGraphRef: dependenciesGraphRef ? Ref.from(dependenciesGraphRef) : undefined,\n devPackageDependencies,\n peerPackageDependencies,\n packageDependencies,\n overrides,\n packageJsonChangedProps,\n hash,\n parents: parents ? parents.map((p) => Ref.from(p)) : [],\n squashed: squashed\n ? { previousParents: squashed.previousParents.map((r) => Ref.from(r)), laneId: new LaneId(squashed.laneId) }\n : undefined,\n unrelated: unrelated ? { head: Ref.from(unrelated.head), laneId: new LaneId(unrelated.laneId) } : undefined,\n extensions: _getExtensions(extensions),\n buildStatus,\n bitVersion,\n modified,\n origin,\n hidden,\n });\n }\n\n /**\n * used by raw-object.toRealObject()\n */\n static from(versionProps: VersionProps, hash: string): Version {\n return Version.parse(JSON.stringify(versionProps), hash);\n }\n\n /**\n * Create version model object from consumer component\n * @param {*} param0\n */\n static fromComponent({\n component,\n files,\n flattenedEdges,\n dependenciesGraph,\n }: {\n component: ConsumerComponent;\n files: Array<SourceFileModel>;\n flattenedEdges?: Source;\n dependenciesGraph?: Source;\n }) {\n const parseFile = (file) => {\n return {\n file: file.file.hash(),\n relativePath: file.relativePath,\n name: file.name,\n test: file.test,\n };\n };\n\n if (!component.log) throw new Error('Version.fromComponent - component.log is missing');\n const version = new Version({\n mainFile: pathNormalizeToLinux(component.mainFile),\n files: files.map(parseFile),\n bindingPrefix: component.bindingPrefix,\n log: component.log as Log,\n docs: component.docs,\n dependencies: component.dependencies.get(),\n devDependencies: component.devDependencies.get(),\n packageDependencies: component.packageDependencies,\n devPackageDependencies: component.devPackageDependencies,\n peerPackageDependencies: component.peerPackageDependencies,\n dependenciesGraphRef: dependenciesGraph?.hash(),\n flattenedDependencies: component.flattenedDependencies,\n // it's safe to remove this line once the version.flattenedEdges prop is deleted\n flattenedEdges: component.flattenedEdges,\n flattenedEdgesRef: flattenedEdges?.hash(),\n schema: component.schema,\n overrides: component.overrides.componentOverridesData,\n packageJsonChangedProps: component.packageJsonChangedProps,\n extensions: component.extensions,\n buildStatus: component.buildStatus,\n componentId: component.id,\n bitVersion: getBitVersion(),\n });\n if (isSnap(component.version)) {\n version._hash = component.version as string;\n } else {\n version.setNewHash();\n }\n\n return version;\n }\n\n setNewHash() {\n this._hash = sha1(v4());\n }\n\n get ignoreSharedDir(): boolean {\n return !isSchemaSupport(SchemaFeature.sharedDir, this.schema);\n }\n\n get isLegacy(): boolean {\n return !this.schema || this.schema === SchemaName.Legacy;\n }\n\n get originLaneId(): LaneId | undefined {\n return this.origin?.lane ? new LaneId({ name: this.origin.lane.name, scope: this.origin.lane.scope }) : undefined;\n }\n get originId(): ComponentID | undefined {\n return this.origin?.id\n ? ComponentID.fromObject({ scope: this.origin.id.scope, name: this.origin.id.name })\n : undefined;\n }\n\n setDist(dist: Source | undefined) {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.dist = dist\n ? {\n file: dist.hash(),\n name: DEFAULT_BUNDLE_FILENAME,\n }\n : null;\n }\n\n hasParent(ref: Ref) {\n return this.parents.find((p) => p.toString() === ref.toString());\n }\n\n addParent(ref: Ref) {\n if (this.isLegacy) return;\n if (this.hasParent(ref)) {\n return; // make sure to not add twice\n }\n this.parents.push(ref);\n }\n\n setSquashed(squashData: SquashData, log: Log, replaceMessage?: string) {\n this.squashed = squashData;\n this.addModifiedLog(log);\n if (replaceMessage) {\n this.addModifiedLog({\n username: undefined,\n email: undefined,\n date: Date.now().toString(),\n message: `squashing: replacing the original log.message, which was: \"${this.log.message || '<empty>'}\"`,\n });\n this.log.message = replaceMessage;\n }\n }\n\n setUnrelated(externalHead: ExternalHead) {\n this.unrelated = externalHead;\n }\n\n addModifiedLog(log: Log) {\n this.modified.push(log);\n }\n\n addAsOnlyParent(ref: Ref) {\n if (this.isLegacy) return;\n this.parents = [ref];\n }\n\n removeParent(ref: Ref) {\n this.parents = this.parents.filter((p) => p.toString() !== ref.toString());\n }\n\n removeAllParents() {\n this.parents = [];\n }\n\n modelFilesToSourceFiles(repository: Repository): Promise<SourceFile[]> {\n return Promise.all(this.files.map((file) => SourceFile.loadFromSourceFileModel(file, repository)));\n }\n\n isRemoved(): boolean {\n return Boolean(this.extensions.findCoreExtension(Extensions.remove)?.config?.removed);\n }\n shouldRemoveFromMain(): boolean {\n return Boolean(this.extensions.findCoreExtension(Extensions.remove)?.config?.removeOnMain);\n }\n\n /**\n * Validate the version model properties, to make sure we are not inserting something\n * in the wrong format\n */\n validate(): void {\n validateVersionInstance(this);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_lodash","data","require","_componentVersion","_componentId","_laneId","_uuid","_legacy","_legacy2","_component","_legacy3","_legacy4","_legacy5","_toolboxCrypto","_objects","_legacy6","_source","_interopRequireDefault","_dependenciesGraph","_bit","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","Version","BitObject","constructor","props","mainFile","files","log","dependencies","Dependencies","devDependencies","peerDependencies","docs","flattenedDependencies","ComponentIdList","flattenedEdges","flattenedEdgesRef","dependenciesGraphRef","packageDependencies","devPackageDependencies","peerPackageDependencies","bindingPrefix","schema","overrides","packageJsonChangedProps","_hash","hash","parents","squashed","unrelated","extensions","ExtensionDataList","fromArray","buildStatus","componentId","bitVersion","modified","origin","hidden","batchId","validateVersion","getFlattenedEdges","repo","getWithBackwardCompatibility","throws","flattenedEdgesSource","load","flattenedEdgesJson","JSON","parse","contents","toString","map","item","Array","isArray","depEdgeFromArray","depEdgeFromObject","_flattenedEdges","loadDependenciesGraph","dependenciesGraphSource","DependenciesGraph","deserialize","nonEmptyFields","forEach","field","VersionInvalid","id","obj","toObject","getDependencies","deps","clonedDependencies","cloneAsString","dependency","getExtensions","sortedConfigOnly","sortById","toConfigArray","filterFunction","val","key","isEmpty","stringify","pickBy","extensionDependencies","calculateHash","Ref","makeHash","Error","extensionsBitIds","Dependency","lastModified","length","date","getAllFlattenedDependencies","getAllDependencies","depsIdsGroupedByType","getAllIds","getAllDependenciesCloned","getClone","getAllDependenciesIds","allDependencies","values","flat","getDependenciesIdsExcludeExtensions","updateFlattenedDependency","currentId","newId","getUpdated","updatedIds","depId","isEqual","refs","refsWithOptions","includeParents","includeArtifacts","allRefs","extractRefsFromFiles","file","push","artifacts","getRefsFromExtensions","refsWithoutParents","filter","ref","collectManyObjects","loadManyRaw","depEdgeToObject","depEdge","source","serialize","target","type","depEdgeObj","ComponentID","fromObject","depEdgeToArray","depEdgeArr","sourceStr","targetStr","fromString","flattenedEdgeToSource","undefined","flattenedEdgesObj","f","flattenedEdgesBuffer","Buffer","from","Source","dependenciesGraphToSource","dependenciesGraph","dependenciesGraphBuffer","_convertFileToObject","relativePath","name","test","message","username","email","cloneAsObject","dep","toModelObjects","p","previousParents","laneId","head","validateBeforePersisting","versionStr","logger","trace","version","validate","toBuffer","pretty","args","getStringifyArgs","str","validateBeforePersist","contentParsed","flattenedDevDependencies","_getDependencies","getRelativePath","importSpecifiers","importSpecifier","scope","BitIdCompIdError","relativePaths","parseFlattenedDeps","_groupFlattenedDependencies","flattenedDeps","flattenedDevDeps","parseFile","_getExtensions","exts","newExts","extension","extensionId","entry","ExtensionDataEntry","config","fromModelObject","LaneId","versionProps","fromComponent","component","pathNormalizeToLinux","get","componentOverridesData","getBitVersion","isSnap","setNewHash","sha1","v4","ignoreSharedDir","isSchemaSupport","SchemaFeature","sharedDir","isLegacy","SchemaName","Legacy","originLaneId","lane","originId","setDist","dist","DEFAULT_BUNDLE_FILENAME","hasParent","find","addParent","setSquashed","squashData","replaceMessage","addModifiedLog","Date","now","setUnrelated","externalHead","addAsOnlyParent","removeParent","removeAllParents","modelFilesToSourceFiles","repository","Promise","all","SourceFile","loadFromSourceFileModel","isRemoved","Boolean","findCoreExtension","Extensions","remove","removed","shouldRemoveFromMain","removeOnMain","validateVersionInstance","exports"],"sources":["version.ts"],"sourcesContent":["import { isEmpty, pickBy } from 'lodash';\nimport { isSnap } from '@teambit/component-version';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { LaneId } from '@teambit/lane-id';\nimport { v4 } from 'uuid';\nimport type { BuildStatus } from '@teambit/legacy.constants';\nimport { DEFAULT_BUNDLE_FILENAME, Extensions } from '@teambit/legacy.constants';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport {\n isSchemaSupport,\n SchemaFeature,\n SchemaName,\n Dependencies,\n Dependency,\n} from '@teambit/legacy.consumer-component';\nimport { getRefsFromExtensions, SourceFile } from '@teambit/component.sources';\nimport type { ComponentOverridesData } from '@teambit/legacy.consumer-config';\nimport { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy.extension-data';\nimport type { Doclet } from '@teambit/semantics.doc-parser';\nimport { logger } from '@teambit/legacy.logger';\nimport type { PathLinux } from '@teambit/legacy.utils';\nimport { getStringifyArgs, pathNormalizeToLinux } from '@teambit/legacy.utils';\nimport { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport type { Repository } from '../objects';\nimport { BitObject, Ref } from '../objects';\nimport type { ObjectItem } from '../objects/object-list';\nimport { BitIdCompIdError, VersionInvalid, validateVersionInstance } from '@teambit/legacy.scope';\nimport Source from './source';\nimport { DependenciesGraph } from './dependencies-graph';\nimport { getBitVersion } from '@teambit/bit.get-bit-version';\n\nexport type SourceFileModel = {\n name: string;\n relativePath: PathLinux;\n test: boolean;\n file: Ref;\n};\n\nexport type DistFileModel = SourceFileModel;\n\nexport type ArtifactFileModel = {\n relativePath: PathLinux;\n file: Ref;\n};\n\nexport type Log = {\n message: string;\n date: string;\n username: string | undefined;\n email: string | undefined;\n};\n\nexport type DepEdgeType = 'prod' | 'dev' | 'peer' | 'ext';\nexport type DepEdge = { source: ComponentID; target: ComponentID; type: DepEdgeType };\n\ntype ExternalHead = { head: Ref; laneId: LaneId };\ntype SquashData = { previousParents: Ref[]; laneId: LaneId };\ntype VersionOrigin = { id: { scope: string; name: string }; lane?: { scope: string; name: string; hash: string } };\n\nexport type VersionProps = {\n mainFile: PathLinux;\n files: Array<SourceFileModel>;\n log: Log;\n docs?: Doclet[];\n dependencies?: Dependency[];\n devDependencies?: Dependency[];\n peerDependencies?: Dependency[];\n flattenedDependencies?: ComponentIdList;\n _flattenedEdges?: DepEdge[];\n flattenedEdges?: DepEdge[];\n flattenedEdgesRef?: Ref;\n dependenciesGraphRef?: Ref;\n packageDependencies?: { [key: string]: string };\n devPackageDependencies?: { [key: string]: string };\n peerPackageDependencies?: { [key: string]: string };\n bindingPrefix: string;\n schema?: string;\n overrides: ComponentOverridesData;\n packageJsonChangedProps?: Record<string, any>;\n hash?: string;\n parents?: Ref[];\n squashed?: SquashData;\n unrelated?: ExternalHead;\n extensions?: ExtensionDataList;\n buildStatus?: BuildStatus;\n componentId?: ComponentID;\n bitVersion?: string;\n modified?: Log[];\n origin?: VersionOrigin;\n hidden?: boolean;\n batchId?: string;\n};\n\n/**\n * Represent a version model in the scope\n */\nexport default class Version extends BitObject {\n mainFile: PathLinux;\n files: Array<SourceFileModel>;\n log: Log;\n docs: Doclet[] | undefined;\n dependencies: Dependencies;\n devDependencies: Dependencies;\n peerDependencies: Dependencies;\n flattenedDependencies: ComponentIdList;\n dependenciesGraphRef?: Ref;\n _dependenciesGraph?: DependenciesGraph; // caching for the dependencies graph\n flattenedEdgesRef?: Ref; // ref to a BitObject Source file, which is a JSON object containing the flattened edge\n _flattenedEdges?: DepEdge[]; // caching for the flattenedEdges\n /**\n * @deprecated\n * to get the flattenedEdges, please use `this.getFlattenedEdges()`.\n * this function handles the backward compatibility and provides the flattened edges regardless whether it was saved\n * the `flattenedEdgesRef` introduced or after.\n *\n * the reason this is left here is not for backward compatibility, but for forward compatibility. meaning, if a\n * Version object created by the new version is parsed by an old version that doesn't support the flattenedEdgesRef,\n * then, it'll be able to still get the flattenedEdges by this prop.\n * this is causing duplication currently. the data is kept in both, `this.flattenedEdges` and the file stored in `flattenedEdgesRef`.\n * so it'll be best to delete this prop as soon as all scopes are deployed with the new version.\n * (around August 2023 should be safe)\n */\n private flattenedEdges: DepEdge[];\n packageDependencies: { [key: string]: string };\n devPackageDependencies: { [key: string]: string };\n peerPackageDependencies: { [key: string]: string };\n bindingPrefix: string;\n schema: string | undefined;\n overrides: ComponentOverridesData;\n packageJsonChangedProps: Record<string, any>;\n _hash: string; // reason for the underscore prefix is that we already have hash as a method\n parents: Ref[];\n squashed?: SquashData; // when a component is squashed during lane-merge\n unrelated?: ExternalHead; // when a component from a lane was created with the same name/scope as main, this ref points to the component of the lane\n extensions: ExtensionDataList;\n buildStatus?: BuildStatus;\n componentId?: ComponentID; // can help debugging errors when validating Version object\n bitVersion?: string;\n modified: Log[] = []; // currently mutation could happen as a result of either \"squash\" or \"sign\".\n origin?: VersionOrigin; // for debugging purposes\n hidden?: boolean; // whether the version is hidden from commands such as \"bit log\", \"bit blame\". (needed for un-meaningful snaps, such as merged-lane snap prior to the tag)\n batchId?: string; // a shared UUID for all versions created in the same snap/tag operation\n\n constructor(props: VersionProps) {\n super();\n this.mainFile = props.mainFile;\n this.files = props.files;\n this.log = props.log;\n this.dependencies = new Dependencies(props.dependencies);\n this.devDependencies = new Dependencies(props.devDependencies);\n this.peerDependencies = new Dependencies(props.peerDependencies);\n this.docs = props.docs;\n this.flattenedDependencies = props.flattenedDependencies || new ComponentIdList();\n this.flattenedEdges = props.flattenedEdges || [];\n this.flattenedEdgesRef = props.flattenedEdgesRef;\n this.dependenciesGraphRef = props.dependenciesGraphRef;\n this.packageDependencies = props.packageDependencies || {};\n this.devPackageDependencies = props.devPackageDependencies || {};\n this.peerPackageDependencies = props.peerPackageDependencies || {};\n this.bindingPrefix = props.bindingPrefix;\n this.schema = props.schema;\n this.overrides = props.overrides || {};\n this.packageJsonChangedProps = props.packageJsonChangedProps || {};\n // @ts-ignore yes, props.hash can be undefined here, but it gets populated as soon as Version is created\n this._hash = props.hash;\n this.parents = props.parents || [];\n this.squashed = props.squashed;\n this.unrelated = props.unrelated;\n this.extensions = props.extensions || ExtensionDataList.fromArray([]);\n this.buildStatus = props.buildStatus;\n this.componentId = props.componentId;\n this.bitVersion = props.bitVersion;\n this.modified = props.modified || [];\n this.origin = props.origin;\n this.hidden = props.hidden;\n this.batchId = props.batchId;\n this.validateVersion();\n }\n\n /**\n * use only this method to get the flattened edges (graph of flattened dependencies).\n * it's backward compatible with the previous way this was stored on the Version object itself.\n */\n async getFlattenedEdges(repo: Repository): Promise<DepEdge[]> {\n const getWithBackwardCompatibility = async (): Promise<DepEdge[]> => {\n if (this.flattenedEdgesRef) {\n // it's possible that there is a ref but the file is not there.\n // it can happen if the remote-scope uses an older version that doesn't know to collect this ref.\n // in which case, the client will get the Version object with the ref prop, but not the Source object.\n const throws = false;\n const flattenedEdgesSource = (await repo.load(this.flattenedEdgesRef, throws)) as Source | undefined;\n if (flattenedEdgesSource) {\n const flattenedEdgesJson = JSON.parse(flattenedEdgesSource.contents.toString());\n return flattenedEdgesJson.map((item) =>\n Array.isArray(item) ? Version.depEdgeFromArray(item) : Version.depEdgeFromObject(item)\n );\n }\n }\n return this.flattenedEdges || [];\n };\n\n if (!this._flattenedEdges) {\n this._flattenedEdges = await getWithBackwardCompatibility();\n }\n\n return this._flattenedEdges;\n }\n\n async loadDependenciesGraph(repo: Repository): Promise<DependenciesGraph | undefined> {\n if (!this._dependenciesGraph) {\n if (this.dependenciesGraphRef) {\n // it's possible that there is a ref but the file is not there.\n // it can happen if the remote-scope uses an older version that doesn't know to collect this ref.\n // in which case, the client will get the Version object with the ref prop, but not the Source object.\n const throws = false;\n const dependenciesGraphSource = (await repo.load(this.dependenciesGraphRef, throws)) as Source | undefined;\n if (dependenciesGraphSource) {\n this._dependenciesGraph = DependenciesGraph.deserialize(dependenciesGraphSource.contents.toString());\n }\n }\n }\n return this._dependenciesGraph;\n }\n\n validateVersion() {\n const nonEmptyFields = ['mainFile', 'files'];\n nonEmptyFields.forEach((field) => {\n if (!this[field]) {\n throw new VersionInvalid(`failed creating a version object, the field \"${field}\" can't be empty`);\n }\n });\n }\n\n id() {\n const obj = this.toObject();\n\n const getDependencies = (deps: Dependencies) => {\n const clonedDependencies = deps.cloneAsString();\n return clonedDependencies.map((dependency) => {\n return {\n id: dependency.id,\n };\n });\n };\n\n const getExtensions = (extensions: ExtensionDataList) => {\n const sortedConfigOnly = extensions.sortById().toConfigArray();\n return sortedConfigOnly;\n };\n\n const filterFunction = (val, key) => {\n if (\n key === 'devDependencies' ||\n key === 'extensionDependencies' ||\n key === 'devPackageDependencies' ||\n key === 'peerPackageDependencies' ||\n key === 'overrides' ||\n key === 'extensions'\n ) {\n return !isEmpty(val);\n }\n return !!val;\n };\n\n return JSON.stringify(\n pickBy(\n {\n mainFile: obj.mainFile,\n files: obj.files,\n log: obj.log,\n dependencies: getDependencies(this.dependencies),\n devDependencies: getDependencies(this.devDependencies),\n extensionDependencies: getDependencies(this.extensionDependencies),\n packageDependencies: obj.packageDependencies,\n devPackageDependencies: obj.devPackageDependencies,\n peerPackageDependencies: obj.peerPackageDependencies,\n bindingPrefix: obj.bindingPrefix,\n overrides: obj.overrides,\n extensions: getExtensions(this.extensions),\n },\n filterFunction\n )\n );\n }\n\n calculateHash(): Ref {\n return new Ref(BitObject.makeHash(this.id()));\n }\n\n hash(): Ref {\n if (!this._hash) {\n throw new Error('hash is missing from a Version object');\n }\n return new Ref(this._hash);\n }\n\n get extensionDependencies() {\n return new Dependencies(this.extensions.extensionsBitIds.map((id) => new Dependency(id, [])));\n }\n\n lastModified(): string {\n if (!this.modified || !this.modified.length) return this.log.date;\n return this.modified[this.modified.length - 1].date;\n }\n\n getAllFlattenedDependencies(): ComponentIdList {\n return ComponentIdList.fromArray([...this.flattenedDependencies]);\n }\n\n getAllDependencies(): Dependency[] {\n return [\n ...this.dependencies.dependencies,\n ...this.devDependencies.dependencies,\n ...this.extensionDependencies.dependencies,\n ];\n }\n\n get depsIdsGroupedByType(): {\n dependencies: ComponentIdList;\n devDependencies: ComponentIdList;\n peerDependencies: ComponentIdList;\n extensionDependencies: ComponentIdList;\n } {\n return {\n dependencies: this.dependencies.getAllIds(),\n devDependencies: this.devDependencies.getAllIds(),\n peerDependencies: this.peerDependencies.getAllIds(),\n extensionDependencies: this.extensions.extensionsBitIds,\n };\n }\n\n getAllDependenciesCloned(): Dependencies {\n const dependencies = [...this.dependencies.getClone(), ...this.devDependencies.getClone()];\n return new Dependencies(dependencies);\n }\n\n getAllDependenciesIds(): ComponentIdList {\n const allDependencies = Object.values(this.depsIdsGroupedByType).flat();\n return ComponentIdList.fromArray(allDependencies);\n }\n\n getDependenciesIdsExcludeExtensions(): ComponentIdList {\n return ComponentIdList.fromArray([...this.dependencies.getAllIds(), ...this.devDependencies.getAllIds()]);\n }\n\n updateFlattenedDependency(currentId: ComponentID, newId: ComponentID) {\n const getUpdated = (flattenedDependencies: ComponentIdList): ComponentIdList => {\n const updatedIds = flattenedDependencies.map((depId) => {\n if (depId.isEqual(currentId)) return newId;\n return depId;\n });\n return ComponentIdList.fromArray(updatedIds);\n };\n this.flattenedDependencies = getUpdated(this.flattenedDependencies);\n }\n\n refs(): Ref[] {\n return this.refsWithOptions();\n }\n\n refsWithOptions(includeParents = true, includeArtifacts = true): Ref[] {\n const allRefs: Ref[] = [];\n const extractRefsFromFiles = (files) => {\n const refs = files ? files.map((file) => file.file) : [];\n return refs;\n };\n const files = extractRefsFromFiles(this.files);\n allRefs.push(...files);\n if (includeParents) {\n allRefs.push(...this.parents);\n }\n if (includeArtifacts) {\n const artifacts = getRefsFromExtensions(this.extensions);\n allRefs.push(...artifacts);\n }\n if (this.flattenedEdgesRef) allRefs.push(this.flattenedEdgesRef);\n if (this.dependenciesGraphRef) allRefs.push(this.dependenciesGraphRef);\n return allRefs;\n }\n\n refsWithoutParents(): Ref[] {\n const extractRefsFromFiles = (files) => {\n const refs = files ? files.map((file) => file.file) : [];\n return refs;\n };\n const files = extractRefsFromFiles(this.files);\n const artifacts = getRefsFromExtensions(this.extensions);\n return [...files, ...artifacts].filter((ref) => ref);\n }\n\n async collectManyObjects(repo: Repository, refs: Ref[]): Promise<ObjectItem[]> {\n return repo.loadManyRaw(refs);\n }\n\n static depEdgeToObject(depEdge: DepEdge): Record<string, any> {\n return {\n source: depEdge.source.serialize(),\n target: depEdge.target.serialize(),\n type: depEdge.type,\n };\n }\n static depEdgeFromObject(depEdgeObj: Record<string, any>): DepEdge {\n return {\n source: ComponentID.fromObject(depEdgeObj.source),\n target: ComponentID.fromObject(depEdgeObj.target),\n type: depEdgeObj.type,\n };\n }\n /**\n * until 1.9.86, we used depEdgeToObject.\n * this one makes this object much much smaller (for 604 edges, it's now 143KB, with the array format it's 6KB!)\n * this format has been supported (but not used) since v1.6.97.\n */\n static depEdgeToArray(depEdge: DepEdge): Record<string, any> {\n return [depEdge.source.toString(), depEdge.target.toString(), depEdge.type];\n }\n static depEdgeFromArray(depEdgeArr: string[]): DepEdge {\n const [sourceStr, targetStr, type] = depEdgeArr;\n return {\n source: ComponentID.fromString(sourceStr),\n target: ComponentID.fromString(targetStr),\n type: type as DepEdgeType,\n };\n }\n static flattenedEdgeToSource(flattenedEdges?: DepEdge[]): Source | undefined {\n if (!flattenedEdges) return undefined;\n // const flattenedEdgesObj = flattenedEdges.map((f) => Version.depEdgeToArray(f));\n const flattenedEdgesObj = flattenedEdges.map((f) => Version.depEdgeToObject(f));\n const flattenedEdgesBuffer = Buffer.from(JSON.stringify(flattenedEdgesObj));\n return Source.from(flattenedEdgesBuffer);\n }\n static dependenciesGraphToSource(dependenciesGraph?: DependenciesGraph): Source | undefined {\n if (!dependenciesGraph) return undefined;\n const dependenciesGraphBuffer = Buffer.from(dependenciesGraph.serialize());\n return Source.from(dependenciesGraphBuffer);\n }\n\n toObject() {\n const _convertFileToObject = (file) => {\n return {\n file: file.file.toString(),\n relativePath: file.relativePath,\n name: file.name,\n test: file.test,\n };\n };\n\n return pickBy(\n {\n files: this.files ? this.files.map(_convertFileToObject) : null,\n mainFile: this.mainFile,\n bindingPrefix: this.bindingPrefix,\n schema: this.schema,\n log: {\n message: this.log.message,\n date: this.log.date,\n username: this.log.username,\n email: this.log.email,\n },\n docs: this.docs,\n dependencies: this.dependencies.cloneAsObject(),\n devDependencies: this.devDependencies.cloneAsObject(),\n flattenedDependencies: this.flattenedDependencies.map((dep) => dep.toObject()),\n // @todo: uncomment this in the future, once all remotes are updated to support the backward compatibility.\n // flattenedDependencies: this.flattenedDependencies.map((dep) => dep.toString()),\n flattenedEdges: this.flattenedEdgesRef ? undefined : this.flattenedEdges.map((f) => Version.depEdgeToObject(f)),\n flattenedEdgesRef: this.flattenedEdgesRef?.toString(),\n dependenciesGraphRef: this.dependenciesGraphRef?.toString(),\n extensions: this.extensions.toModelObjects(),\n packageDependencies: this.packageDependencies,\n devPackageDependencies: this.devPackageDependencies,\n peerPackageDependencies: this.peerPackageDependencies,\n overrides: this.overrides,\n buildStatus: this.buildStatus,\n packageJsonChangedProps: this.packageJsonChangedProps,\n parents: this.parents.map((p) => p.toString()),\n squashed: this.squashed\n ? {\n previousParents: this.squashed.previousParents.map((p) => p.toString()),\n laneId: this.squashed.laneId.toObject(),\n }\n : undefined,\n unrelated: this.unrelated\n ? { head: this.unrelated.head.toString(), laneId: this.unrelated.laneId.toObject() }\n : undefined,\n bitVersion: this.bitVersion,\n modified: this.modified,\n origin: this.origin,\n hidden: this.hidden,\n batchId: this.batchId,\n },\n (val) => !!val\n );\n }\n\n validateBeforePersisting(versionStr: string): void {\n logger.trace(`validating version object, hash: ${this.hash().hash}`);\n const version = Version.parse(versionStr, this._hash);\n version.validate();\n }\n\n toBuffer(pretty: boolean): Buffer {\n const obj = this.toObject();\n const args = getStringifyArgs(pretty);\n const str = JSON.stringify(obj, ...args);\n if (this.validateBeforePersist) this.validateBeforePersisting(str);\n return Buffer.from(str);\n }\n /**\n * used by the super class BitObject\n */\n static parse(contents: string, hash: string): Version {\n const contentParsed = JSON.parse(contents);\n const {\n mainFile,\n files,\n bindingPrefix,\n schema,\n log,\n docs,\n dependencies,\n devDependencies,\n flattenedDependencies,\n flattenedDevDependencies,\n flattenedEdges,\n flattenedEdgesRef,\n dependenciesGraphRef,\n devPackageDependencies,\n peerPackageDependencies,\n packageDependencies,\n overrides,\n packageJsonChangedProps,\n extensions,\n buildStatus,\n parents,\n squashed,\n unrelated,\n bitVersion,\n modified,\n origin,\n hidden,\n batchId,\n } = contentParsed;\n\n const _getDependencies = (deps = []): Dependency[] => {\n const getRelativePath = (relativePath) => {\n if (relativePath.importSpecifiers) {\n // backward compatibility. Before the massive validation was added, an item of\n // relativePath.importSpecifiers array could be missing the mainFile property, which is\n // an invalid ImportSpecifier. (instead the mainFile it had another importSpecifiers object).\n relativePath.importSpecifiers = relativePath.importSpecifiers.filter(\n (importSpecifier) => importSpecifier.mainFile\n );\n if (!relativePath.importSpecifiers.length) delete relativePath.importSpecifiers;\n }\n\n return relativePath;\n };\n\n return deps.map((dependency: any) => {\n if (!dependency.id.scope) {\n throw new BitIdCompIdError(dependency.id.name);\n }\n return new Dependency(\n ComponentID.fromObject(dependency.id),\n Array.isArray(dependency.relativePaths)\n ? dependency.relativePaths.map(getRelativePath)\n : dependency.relativePaths\n );\n });\n };\n\n // Accept both string[] and object[] for backward compatibility\n const parseFlattenedDeps = (deps = []): ComponentID[] => {\n if (!deps.length) return [];\n if (typeof deps[0] === 'string') return deps.map((dep) => ComponentID.fromString(dep));\n return deps.map((dep) => ComponentID.fromObject(dep));\n };\n\n const _groupFlattenedDependencies = () => {\n // support backward compatibility. until v15, there was both flattenedDependencies and\n // flattenedDevDependencies. since then, these both were grouped to one flattenedDependencies\n const flattenedDeps = parseFlattenedDeps(flattenedDependencies);\n const flattenedDevDeps = parseFlattenedDeps(flattenedDevDependencies);\n return ComponentIdList.fromArray([...flattenedDeps, ...flattenedDevDeps]);\n };\n\n const parseFile = (file) => {\n return {\n file: Ref.from(file.file),\n relativePath: file.relativePath,\n name: file.name,\n test: file.test,\n };\n };\n const _getExtensions = (exts = []): ExtensionDataList => {\n if (exts.length) {\n const newExts = exts.map((extension: any) => {\n if (extension.extensionId) {\n const extensionId = ComponentID.fromObject(extension.extensionId);\n const entry = new ExtensionDataEntry(undefined, extensionId, undefined, extension.config, extension.data);\n return entry;\n }\n const entry = new ExtensionDataEntry(\n extension.id,\n undefined,\n extension.name,\n extension.config,\n extension.data\n );\n return entry;\n });\n return ExtensionDataList.fromModelObject(newExts);\n }\n return new ExtensionDataList();\n };\n\n return new Version({\n mainFile,\n files: files.map(parseFile),\n bindingPrefix,\n schema: schema || undefined,\n log: {\n // workaround for a bug where the log.message was saved as boolean when running `bit tag -m \"\"`\n // the bug was fixed since v0.1.27, but old objects might still have this bug\n message: typeof log.message !== 'string' ? '' : log.message,\n date: log.date,\n username: log.username,\n email: log.email,\n },\n docs,\n dependencies: _getDependencies(dependencies),\n devDependencies: _getDependencies(devDependencies),\n flattenedDependencies: _groupFlattenedDependencies(),\n // backward compatibility. before introducing `flattenedEdgesRef`, we only had `flattenedEdges`. see getFlattenedEdges() for more info.\n flattenedEdges: flattenedEdgesRef ? [] : flattenedEdges?.map((f) => Version.depEdgeFromObject(f)) || [],\n flattenedEdgesRef: flattenedEdgesRef ? Ref.from(flattenedEdgesRef) : undefined,\n dependenciesGraphRef: dependenciesGraphRef ? Ref.from(dependenciesGraphRef) : undefined,\n devPackageDependencies,\n peerPackageDependencies,\n packageDependencies,\n overrides,\n packageJsonChangedProps,\n hash,\n parents: parents ? parents.map((p) => Ref.from(p)) : [],\n squashed: squashed\n ? { previousParents: squashed.previousParents.map((r) => Ref.from(r)), laneId: new LaneId(squashed.laneId) }\n : undefined,\n unrelated: unrelated ? { head: Ref.from(unrelated.head), laneId: new LaneId(unrelated.laneId) } : undefined,\n extensions: _getExtensions(extensions),\n buildStatus,\n bitVersion,\n modified,\n origin,\n hidden,\n batchId,\n });\n }\n\n /**\n * used by raw-object.toRealObject()\n */\n static from(versionProps: VersionProps, hash: string): Version {\n return Version.parse(JSON.stringify(versionProps), hash);\n }\n\n /**\n * Create version model object from consumer component\n * @param {*} param0\n */\n static fromComponent({\n component,\n files,\n flattenedEdges,\n dependenciesGraph,\n }: {\n component: ConsumerComponent;\n files: Array<SourceFileModel>;\n flattenedEdges?: Source;\n dependenciesGraph?: Source;\n }) {\n const parseFile = (file) => {\n return {\n file: file.file.hash(),\n relativePath: file.relativePath,\n name: file.name,\n test: file.test,\n };\n };\n\n if (!component.log) throw new Error('Version.fromComponent - component.log is missing');\n const version = new Version({\n mainFile: pathNormalizeToLinux(component.mainFile),\n files: files.map(parseFile),\n bindingPrefix: component.bindingPrefix,\n log: component.log as Log,\n docs: component.docs,\n dependencies: component.dependencies.get(),\n devDependencies: component.devDependencies.get(),\n packageDependencies: component.packageDependencies,\n devPackageDependencies: component.devPackageDependencies,\n peerPackageDependencies: component.peerPackageDependencies,\n dependenciesGraphRef: dependenciesGraph?.hash(),\n flattenedDependencies: component.flattenedDependencies,\n // it's safe to remove this line once the version.flattenedEdges prop is deleted\n flattenedEdges: component.flattenedEdges,\n flattenedEdgesRef: flattenedEdges?.hash(),\n schema: component.schema,\n overrides: component.overrides.componentOverridesData,\n packageJsonChangedProps: component.packageJsonChangedProps,\n extensions: component.extensions,\n buildStatus: component.buildStatus,\n componentId: component.id,\n bitVersion: getBitVersion(),\n });\n if (isSnap(component.version)) {\n version._hash = component.version as string;\n } else {\n version.setNewHash();\n }\n\n return version;\n }\n\n setNewHash() {\n this._hash = sha1(v4());\n }\n\n get ignoreSharedDir(): boolean {\n return !isSchemaSupport(SchemaFeature.sharedDir, this.schema);\n }\n\n get isLegacy(): boolean {\n return !this.schema || this.schema === SchemaName.Legacy;\n }\n\n get originLaneId(): LaneId | undefined {\n return this.origin?.lane ? new LaneId({ name: this.origin.lane.name, scope: this.origin.lane.scope }) : undefined;\n }\n get originId(): ComponentID | undefined {\n return this.origin?.id\n ? ComponentID.fromObject({ scope: this.origin.id.scope, name: this.origin.id.name })\n : undefined;\n }\n\n setDist(dist: Source | undefined) {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.dist = dist\n ? {\n file: dist.hash(),\n name: DEFAULT_BUNDLE_FILENAME,\n }\n : null;\n }\n\n hasParent(ref: Ref) {\n return this.parents.find((p) => p.toString() === ref.toString());\n }\n\n addParent(ref: Ref) {\n if (this.isLegacy) return;\n if (this.hasParent(ref)) {\n return; // make sure to not add twice\n }\n this.parents.push(ref);\n }\n\n setSquashed(squashData: SquashData, log: Log, replaceMessage?: string) {\n this.squashed = squashData;\n this.addModifiedLog(log);\n if (replaceMessage) {\n this.addModifiedLog({\n username: undefined,\n email: undefined,\n date: Date.now().toString(),\n message: `squashing: replacing the original log.message, which was: \"${this.log.message || '<empty>'}\"`,\n });\n this.log.message = replaceMessage;\n }\n }\n\n setUnrelated(externalHead: ExternalHead) {\n this.unrelated = externalHead;\n }\n\n addModifiedLog(log: Log) {\n this.modified.push(log);\n }\n\n addAsOnlyParent(ref: Ref) {\n if (this.isLegacy) return;\n this.parents = [ref];\n }\n\n removeParent(ref: Ref) {\n this.parents = this.parents.filter((p) => p.toString() !== ref.toString());\n }\n\n removeAllParents() {\n this.parents = [];\n }\n\n modelFilesToSourceFiles(repository: Repository): Promise<SourceFile[]> {\n return Promise.all(this.files.map((file) => SourceFile.loadFromSourceFileModel(file, repository)));\n }\n\n isRemoved(): boolean {\n return Boolean(this.extensions.findCoreExtension(Extensions.remove)?.config?.removed);\n }\n shouldRemoveFromMain(): boolean {\n return Boolean(this.extensions.findCoreExtension(Extensions.remove)?.config?.removeOnMain);\n }\n\n /**\n * Validate the version model properties, to make sure we are not inserting something\n * in the wrong format\n */\n validate(): void {\n validateVersionInstance(this);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/models/version.ts
CHANGED
|
@@ -88,6 +88,7 @@ export type VersionProps = {
|
|
|
88
88
|
modified?: Log[];
|
|
89
89
|
origin?: VersionOrigin;
|
|
90
90
|
hidden?: boolean;
|
|
91
|
+
batchId?: string;
|
|
91
92
|
};
|
|
92
93
|
|
|
93
94
|
/**
|
|
@@ -138,6 +139,7 @@ export default class Version extends BitObject {
|
|
|
138
139
|
modified: Log[] = []; // currently mutation could happen as a result of either "squash" or "sign".
|
|
139
140
|
origin?: VersionOrigin; // for debugging purposes
|
|
140
141
|
hidden?: boolean; // whether the version is hidden from commands such as "bit log", "bit blame". (needed for un-meaningful snaps, such as merged-lane snap prior to the tag)
|
|
142
|
+
batchId?: string; // a shared UUID for all versions created in the same snap/tag operation
|
|
141
143
|
|
|
142
144
|
constructor(props: VersionProps) {
|
|
143
145
|
super();
|
|
@@ -171,6 +173,7 @@ export default class Version extends BitObject {
|
|
|
171
173
|
this.modified = props.modified || [];
|
|
172
174
|
this.origin = props.origin;
|
|
173
175
|
this.hidden = props.hidden;
|
|
176
|
+
this.batchId = props.batchId;
|
|
174
177
|
this.validateVersion();
|
|
175
178
|
}
|
|
176
179
|
|
|
@@ -484,6 +487,7 @@ export default class Version extends BitObject {
|
|
|
484
487
|
modified: this.modified,
|
|
485
488
|
origin: this.origin,
|
|
486
489
|
hidden: this.hidden,
|
|
490
|
+
batchId: this.batchId,
|
|
487
491
|
},
|
|
488
492
|
(val) => !!val
|
|
489
493
|
);
|
|
@@ -535,6 +539,7 @@ export default class Version extends BitObject {
|
|
|
535
539
|
modified,
|
|
536
540
|
origin,
|
|
537
541
|
hidden,
|
|
542
|
+
batchId,
|
|
538
543
|
} = contentParsed;
|
|
539
544
|
|
|
540
545
|
const _getDependencies = (deps = []): Dependency[] => {
|
|
@@ -648,6 +653,7 @@ export default class Version extends BitObject {
|
|
|
648
653
|
modified,
|
|
649
654
|
origin,
|
|
650
655
|
hidden,
|
|
656
|
+
batchId,
|
|
651
657
|
});
|
|
652
658
|
}
|
|
653
659
|
|
package/package.json
CHANGED
|
@@ -1,62 +1,62 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/objects",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.430",
|
|
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": "0.0.
|
|
9
|
+
"version": "0.0.430"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@pnpm/dependency-path": "1001.1.10",
|
|
13
|
-
"@pnpm/lockfile.types": "^1002.1.0",
|
|
14
|
-
"semver": "7.7.1",
|
|
15
12
|
"lodash": "4.17.21",
|
|
16
|
-
"uuid": "8.3.2",
|
|
17
|
-
"async-mutex": "0.3.1",
|
|
18
|
-
"p-map-series": "2.1.0",
|
|
19
13
|
"tar-stream": "2.2.0",
|
|
14
|
+
"p-map-series": "2.1.0",
|
|
15
|
+
"async-mutex": "0.3.1",
|
|
20
16
|
"fs-extra": "10.0.0",
|
|
21
17
|
"glob": "13.0.0",
|
|
22
18
|
"uid-number": "0.0.6",
|
|
19
|
+
"@pnpm/dependency-path": "1001.1.10",
|
|
20
|
+
"@pnpm/lockfile.types": "^1002.1.0",
|
|
21
|
+
"semver": "7.7.1",
|
|
22
|
+
"uuid": "8.3.2",
|
|
23
23
|
"@teambit/harmony": "0.4.7",
|
|
24
|
+
"@teambit/cli": "0.0.1305",
|
|
24
25
|
"@teambit/component-id": "1.2.4",
|
|
25
|
-
"@teambit/
|
|
26
|
-
"@teambit/bit-error": "0.0.404",
|
|
27
|
-
"@teambit/component-version": "1.0.4",
|
|
28
|
-
"@teambit/lane-id": "0.0.312",
|
|
29
|
-
"@teambit/legacy.cli.error": "0.0.36",
|
|
30
|
-
"@teambit/legacy.constants": "0.0.24",
|
|
31
|
-
"@teambit/legacy.logger": "0.0.36",
|
|
32
|
-
"@teambit/toolbox.crypto.sha1": "0.0.15",
|
|
33
|
-
"@teambit/legacy-bit-id": "1.1.3",
|
|
34
|
-
"@teambit/legacy-component-log": "0.0.417",
|
|
35
|
-
"@teambit/pkg.modules.semver-helper": "0.0.22",
|
|
36
|
-
"@teambit/toolbox.array.duplications-finder": "0.0.3",
|
|
26
|
+
"@teambit/component.snap-distance": "0.0.104",
|
|
37
27
|
"@teambit/graph.cleargraph": "0.0.11",
|
|
38
|
-
"@teambit/bit.get-bit-version": "0.0.15",
|
|
39
28
|
"@teambit/harmony.modules.concurrency": "0.0.25",
|
|
29
|
+
"@teambit/legacy.logger": "0.0.36",
|
|
30
|
+
"@teambit/legacy.scope": "0.0.103",
|
|
40
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",
|
|
35
|
+
"@teambit/bit-error": "0.0.404",
|
|
36
|
+
"@teambit/component-version": "1.0.4",
|
|
41
37
|
"@teambit/harmony.modules.in-memory-cache": "0.0.28",
|
|
42
38
|
"@teambit/toolbox.fs.remove-empty-dir": "0.0.13",
|
|
43
|
-
"@teambit/
|
|
39
|
+
"@teambit/lane-id": "0.0.312",
|
|
44
40
|
"@teambit/harmony.modules.get-basic-log": "0.0.104",
|
|
45
|
-
"@teambit/component.snap-distance": "0.0.104",
|
|
46
41
|
"@teambit/config-store": "0.0.185",
|
|
47
|
-
"@teambit/legacy.
|
|
42
|
+
"@teambit/legacy.cli.error": "0.0.36",
|
|
48
43
|
"@teambit/component.sources": "0.0.155",
|
|
44
|
+
"@teambit/legacy-bit-id": "1.1.3",
|
|
45
|
+
"@teambit/legacy-component-log": "0.0.417",
|
|
49
46
|
"@teambit/legacy.consumer-component": "0.0.104",
|
|
50
47
|
"@teambit/legacy.consumer-config": "0.0.103",
|
|
51
48
|
"@teambit/legacy.extension-data": "0.0.105",
|
|
49
|
+
"@teambit/pkg.modules.semver-helper": "0.0.22",
|
|
50
|
+
"@teambit/toolbox.array.duplications-finder": "0.0.3",
|
|
51
|
+
"@teambit/bit.get-bit-version": "0.0.15",
|
|
52
52
|
"@teambit/semantics.doc-parser": "0.0.111",
|
|
53
|
-
"@teambit/graph": "1.0.
|
|
53
|
+
"@teambit/graph": "1.0.923"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@types/semver": "7.5.8",
|
|
57
56
|
"@types/lodash": "4.14.165",
|
|
58
|
-
"@types/uuid": "8.3.4",
|
|
59
57
|
"@types/fs-extra": "9.0.7",
|
|
58
|
+
"@types/semver": "7.5.8",
|
|
59
|
+
"@types/uuid": "8.3.4",
|
|
60
60
|
"@teambit/harmony.envs.core-aspect-env": "0.1.4"
|
|
61
61
|
},
|
|
62
62
|
"peerDependencies": {
|
|
File without changes
|