@teambit/objects 0.0.697 → 0.0.699

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.
@@ -189,6 +189,8 @@ export default class Version extends BitObject {
189
189
  static depEdgeFromArray(depEdgeArr: string[]): DepEdge;
190
190
  static flattenedEdgeToSource(flattenedEdges?: DepEdge[]): Source | undefined;
191
191
  static dependenciesGraphToSource(dependenciesGraph?: DependenciesGraph): Source | undefined;
192
+ private filesToObject;
193
+ private logToObject;
192
194
  toObject(): import("lodash").Dictionary<string | boolean | string[] | import("@teambit/component-id").ComponentIdObj[] | Doclet[] | Log[] | Record<string, any>[] | {
193
195
  extensionId: ComponentID | import("@teambit/component-id").ComponentIdObj | undefined;
194
196
  config: {
@@ -201,10 +203,10 @@ export default class Version extends BitObject {
201
203
  name: string | undefined;
202
204
  newExtensionId: ComponentID | undefined;
203
205
  }[] | {
204
- file: any;
205
- relativePath: any;
206
- name: any;
207
- test: any;
206
+ file: string;
207
+ relativePath: string;
208
+ name: string;
209
+ test: boolean;
208
210
  }[] | Record<string, any> | VersionOrigin | {
209
211
  [key: string]: string;
210
212
  } | {
@@ -216,14 +218,7 @@ export default class Version extends BitObject {
216
218
  date: string;
217
219
  username: string | undefined;
218
220
  email: string | undefined;
219
- previousParents?: undefined;
220
- head?: undefined;
221
- laneId?: undefined;
222
221
  } | {
223
- message?: undefined;
224
- date?: undefined;
225
- username?: undefined;
226
- email?: undefined;
227
222
  previousParents: string[];
228
223
  laneId: {
229
224
  scope: string;
@@ -231,17 +226,13 @@ export default class Version extends BitObject {
231
226
  };
232
227
  head?: undefined;
233
228
  } | {
234
- message?: undefined;
235
- date?: undefined;
236
- username?: undefined;
237
- email?: undefined;
238
229
  previousParents?: undefined;
239
230
  head: string;
240
231
  laneId: {
241
232
  scope: string;
242
233
  name: string;
243
234
  };
244
- } | ComponentOverridesData | null | undefined>;
235
+ } | ComponentOverridesData | undefined>;
245
236
  validateBeforePersisting(versionStr: string): void;
246
237
  toBuffer(pretty: boolean): Buffer;
247
238
  /**
@@ -275,7 +275,6 @@ class Version extends _objects().BitObject {
275
275
  });
276
276
  }
277
277
  id() {
278
- const obj = this.toObject();
279
278
  const getDependencies = deps => {
280
279
  const clonedDependencies = deps.cloneAsString();
281
280
  return clonedDependencies.map(dependency => {
@@ -295,17 +294,18 @@ class Version extends _objects().BitObject {
295
294
  return !!val;
296
295
  };
297
296
  return JSON.stringify((0, _lodash().pickBy)({
298
- mainFile: obj.mainFile,
299
- files: obj.files,
300
- log: obj.log,
297
+ // only what the hash needs, not `toObject()`, which serializes the whole version (e.g. a deep clone of all extensions)
298
+ mainFile: this.mainFile,
299
+ files: this.filesToObject(),
300
+ log: this.logToObject(),
301
301
  dependencies: getDependencies(this.dependencies),
302
302
  devDependencies: getDependencies(this.devDependencies),
303
303
  extensionDependencies: getDependencies(this.extensionDependencies),
304
- packageDependencies: obj.packageDependencies,
305
- devPackageDependencies: obj.devPackageDependencies,
306
- peerPackageDependencies: obj.peerPackageDependencies,
307
- bindingPrefix: obj.bindingPrefix,
308
- overrides: obj.overrides,
304
+ packageDependencies: this.packageDependencies,
305
+ devPackageDependencies: this.devPackageDependencies,
306
+ peerPackageDependencies: this.peerPackageDependencies,
307
+ bindingPrefix: this.bindingPrefix,
308
+ overrides: this.overrides,
309
309
  extensions: getExtensions(this.extensions)
310
310
  }, filterFunction));
311
311
  }
@@ -436,26 +436,29 @@ class Version extends _objects().BitObject {
436
436
  const dependenciesGraphBuffer = Buffer.from(dependenciesGraph.serialize());
437
437
  return _source().default.from(dependenciesGraphBuffer);
438
438
  }
439
- toObject() {
440
- const _convertFileToObject = file => {
441
- return {
442
- file: file.file.toString(),
443
- relativePath: file.relativePath,
444
- name: file.name,
445
- test: file.test
446
- };
439
+ filesToObject() {
440
+ return this.files?.map(file => ({
441
+ file: file.file.toString(),
442
+ relativePath: file.relativePath,
443
+ name: file.name,
444
+ test: file.test
445
+ }));
446
+ }
447
+ logToObject() {
448
+ return {
449
+ message: this.log.message,
450
+ date: this.log.date,
451
+ username: this.log.username,
452
+ email: this.log.email
447
453
  };
454
+ }
455
+ toObject() {
448
456
  return (0, _lodash().pickBy)({
449
- files: this.files ? this.files.map(_convertFileToObject) : null,
457
+ files: this.filesToObject(),
450
458
  mainFile: this.mainFile,
451
459
  bindingPrefix: this.bindingPrefix,
452
460
  schema: this.schema,
453
- log: {
454
- message: this.log.message,
455
- date: this.log.date,
456
- username: this.log.username,
457
- email: this.log.email
458
- },
461
+ log: this.logToObject(),
459
462
  docs: this.docs,
460
463
  dependencies: this.dependencies.cloneAsObject(),
461
464
  devDependencies: this.devDependencies.cloneAsObject(),
@@ -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","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 // where this version was made: the component id it was snapped as, and the lane it was snapped on\n // (absent on main). set on every snap and tag, see SnappingMain.addSource. it is read as data, not\n // only as a debugging aid: Scope.isPartOfLaneHistoryOrMain tells a snap of a given lane from one of\n // main by it, and ModelComponent.filterLeanLaneRefs keeps the refs a lean lane scope owns by it.\n origin?: VersionOrigin;\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":[]}
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","getDependencies","deps","clonedDependencies","cloneAsString","dependency","getExtensions","sortedConfigOnly","sortById","toConfigArray","filterFunction","val","key","isEmpty","stringify","pickBy","filesToObject","logToObject","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","relativePath","name","test","message","username","email","toObject","cloneAsObject","dep","toModelObjects","p","previousParents","laneId","head","validateBeforePersisting","versionStr","logger","trace","version","validate","toBuffer","pretty","obj","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 // where this version was made: the component id it was snapped as, and the lane it was snapped on\n // (absent on main). set on every snap and tag, see SnappingMain.addSource. it is read as data, not\n // only as a debugging aid: Scope.isPartOfLaneHistoryOrMain tells a snap of a given lane from one of\n // main by it, and ModelComponent.filterLeanLaneRefs keeps the refs a lean lane scope owns by it.\n origin?: VersionOrigin;\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 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 // only what the hash needs, not `toObject()`, which serializes the whole version (e.g. a deep clone of all extensions)\n mainFile: this.mainFile,\n files: this.filesToObject(),\n log: this.logToObject(),\n dependencies: getDependencies(this.dependencies),\n devDependencies: getDependencies(this.devDependencies),\n extensionDependencies: getDependencies(this.extensionDependencies),\n packageDependencies: this.packageDependencies,\n devPackageDependencies: this.devPackageDependencies,\n peerPackageDependencies: this.peerPackageDependencies,\n bindingPrefix: this.bindingPrefix,\n overrides: this.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 private filesToObject() {\n return this.files?.map((file) => ({\n file: file.file.toString(),\n relativePath: file.relativePath,\n name: file.name,\n test: file.test,\n }));\n }\n\n private logToObject() {\n return {\n message: this.log.message,\n date: this.log.date,\n username: this.log.username,\n email: this.log.email,\n };\n }\n\n toObject() {\n return pickBy(\n {\n files: this.filesToObject(),\n mainFile: this.mainFile,\n bindingPrefix: this.bindingPrefix,\n schema: this.schema,\n log: this.logToObject(),\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":[]}
@@ -1187,7 +1187,8 @@ bit import ${this.id()}@${resolvedVersion} --objects --all-history`
1187
1187
  mainFile: version.mainFile,
1188
1188
  dependencies: this.addDepsInfoFromDepsResolver(version.dependencies, extensions),
1189
1189
  devDependencies: this.addDepsInfoFromDepsResolver(version.devDependencies, extensions),
1190
- flattenedDependencies: version.flattenedDependencies.clone(),
1190
+ // a new list, but the ids themselves are immutable, no need to clone them
1191
+ flattenedDependencies: ComponentIdList.fromArray(version.flattenedDependencies),
1191
1192
  packageDependencies: clone(version.packageDependencies),
1192
1193
  devPackageDependencies: clone(version.devPackageDependencies),
1193
1194
  peerPackageDependencies: clone(version.peerPackageDependencies),
package/models/version.ts CHANGED
@@ -236,8 +236,6 @@ export default class Version extends BitObject {
236
236
  }
237
237
 
238
238
  id() {
239
- const obj = this.toObject();
240
-
241
239
  const getDependencies = (deps: Dependencies) => {
242
240
  const clonedDependencies = deps.cloneAsString();
243
241
  return clonedDependencies.map((dependency) => {
@@ -269,17 +267,18 @@ export default class Version extends BitObject {
269
267
  return JSON.stringify(
270
268
  pickBy(
271
269
  {
272
- mainFile: obj.mainFile,
273
- files: obj.files,
274
- log: obj.log,
270
+ // only what the hash needs, not `toObject()`, which serializes the whole version (e.g. a deep clone of all extensions)
271
+ mainFile: this.mainFile,
272
+ files: this.filesToObject(),
273
+ log: this.logToObject(),
275
274
  dependencies: getDependencies(this.dependencies),
276
275
  devDependencies: getDependencies(this.devDependencies),
277
276
  extensionDependencies: getDependencies(this.extensionDependencies),
278
- packageDependencies: obj.packageDependencies,
279
- devPackageDependencies: obj.devPackageDependencies,
280
- peerPackageDependencies: obj.peerPackageDependencies,
281
- bindingPrefix: obj.bindingPrefix,
282
- overrides: obj.overrides,
277
+ packageDependencies: this.packageDependencies,
278
+ devPackageDependencies: this.devPackageDependencies,
279
+ peerPackageDependencies: this.peerPackageDependencies,
280
+ bindingPrefix: this.bindingPrefix,
281
+ overrides: this.overrides,
283
282
  extensions: getExtensions(this.extensions),
284
283
  },
285
284
  filterFunction
@@ -439,28 +438,32 @@ export default class Version extends BitObject {
439
438
  return Source.from(dependenciesGraphBuffer);
440
439
  }
441
440
 
442
- toObject() {
443
- const _convertFileToObject = (file) => {
444
- return {
445
- file: file.file.toString(),
446
- relativePath: file.relativePath,
447
- name: file.name,
448
- test: file.test,
449
- };
441
+ private filesToObject() {
442
+ return this.files?.map((file) => ({
443
+ file: file.file.toString(),
444
+ relativePath: file.relativePath,
445
+ name: file.name,
446
+ test: file.test,
447
+ }));
448
+ }
449
+
450
+ private logToObject() {
451
+ return {
452
+ message: this.log.message,
453
+ date: this.log.date,
454
+ username: this.log.username,
455
+ email: this.log.email,
450
456
  };
457
+ }
451
458
 
459
+ toObject() {
452
460
  return pickBy(
453
461
  {
454
- files: this.files ? this.files.map(_convertFileToObject) : null,
462
+ files: this.filesToObject(),
455
463
  mainFile: this.mainFile,
456
464
  bindingPrefix: this.bindingPrefix,
457
465
  schema: this.schema,
458
- log: {
459
- message: this.log.message,
460
- date: this.log.date,
461
- username: this.log.username,
462
- email: this.log.email,
463
- },
466
+ log: this.logToObject(),
464
467
  docs: this.docs,
465
468
  dependencies: this.dependencies.cloneAsObject(),
466
469
  devDependencies: this.devDependencies.cloneAsObject(),
package/package.json CHANGED
@@ -1,60 +1,60 @@
1
1
  {
2
2
  "name": "@teambit/objects",
3
- "version": "0.0.697",
3
+ "version": "0.0.699",
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.697"
9
+ "version": "0.0.699"
10
10
  },
11
11
  "dependencies": {
12
- "@pnpm/lockfile.types": "1100.0.19",
13
- "semver": "7.7.1",
14
12
  "lodash": "4.17.21",
15
- "uuid": "8.3.2",
16
- "async-mutex": "0.3.1",
17
- "p-map-series": "2.1.0",
18
13
  "tar-stream": "2.2.0",
14
+ "p-map-series": "2.1.0",
15
+ "async-mutex": "0.3.1",
19
16
  "fs-extra": "10.0.0",
20
17
  "glob": "13.0.0",
18
+ "@pnpm/lockfile.types": "1100.0.19",
19
+ "semver": "7.7.1",
20
+ "uuid": "8.3.2",
21
21
  "@teambit/harmony": "0.4.12",
22
22
  "@teambit/harmony.modules.runtimes": "0.0.1",
23
23
  "@teambit/component-id": "1.2.4",
24
+ "@teambit/graph.cleargraph": "0.0.11",
25
+ "@teambit/harmony.modules.concurrency": "0.0.47",
26
+ "@teambit/legacy.logger": "0.0.63",
27
+ "@teambit/toolbox.promise.map-pool": "0.0.21",
28
+ "@teambit/legacy.constants": "0.0.46",
24
29
  "@teambit/legacy.utils": "0.0.52",
25
- "@teambit/harmony.modules.get-basic-log": "0.0.173",
30
+ "@teambit/toolbox.crypto.sha1": "0.0.22",
26
31
  "@teambit/bit-error": "0.0.404",
27
32
  "@teambit/component-version": "1.0.4",
28
- "@teambit/component.snap-distance": "0.0.173",
29
- "@teambit/config-store": "0.0.283",
33
+ "@teambit/harmony.modules.in-memory-cache": "0.0.51",
34
+ "@teambit/toolbox.fs.remove-empty-dir": "0.0.20",
30
35
  "@teambit/lane-id": "0.0.312",
31
36
  "@teambit/legacy.cli.error": "0.0.63",
32
- "@teambit/legacy.constants": "0.0.46",
33
- "@teambit/legacy.logger": "0.0.63",
34
- "@teambit/legacy.scope": "0.0.172",
35
- "@teambit/toolbox.crypto.sha1": "0.0.22",
36
- "@teambit/component.sources": "0.0.224",
37
- "@teambit/harmony.modules.concurrency": "0.0.47",
38
37
  "@teambit/legacy-bit-id": "1.1.3",
39
38
  "@teambit/legacy-component-log": "0.0.432",
40
- "@teambit/legacy.consumer-component": "0.0.173",
41
- "@teambit/legacy.consumer-config": "0.0.172",
42
- "@teambit/legacy.extension-data": "0.0.174",
43
39
  "@teambit/pkg.modules.semver-helper": "0.0.36",
44
40
  "@teambit/toolbox.array.duplications-finder": "0.0.16",
45
- "@teambit/toolbox.promise.map-pool": "0.0.21",
46
- "@teambit/graph.cleargraph": "0.0.11",
47
41
  "@teambit/bit.get-bit-version": "0.0.29",
48
- "@teambit/semantics.doc-parser": "0.0.180",
49
- "@teambit/harmony.modules.in-memory-cache": "0.0.51",
50
- "@teambit/toolbox.fs.remove-empty-dir": "0.0.20",
51
- "@teambit/graph": "1.0.1190"
42
+ "@teambit/component.snap-distance": "0.0.174",
43
+ "@teambit/graph": "1.0.1192",
44
+ "@teambit/legacy.scope": "0.0.173",
45
+ "@teambit/harmony.modules.get-basic-log": "0.0.174",
46
+ "@teambit/config-store": "0.0.285",
47
+ "@teambit/component.sources": "0.0.225",
48
+ "@teambit/legacy.consumer-component": "0.0.174",
49
+ "@teambit/legacy.consumer-config": "0.0.173",
50
+ "@teambit/legacy.extension-data": "0.0.175",
51
+ "@teambit/semantics.doc-parser": "0.0.181"
52
52
  },
53
53
  "devDependencies": {
54
- "@types/semver": "7.5.8",
55
54
  "@types/lodash": "4.14.165",
56
- "@types/uuid": "8.3.4",
57
55
  "@types/fs-extra": "9.0.7",
56
+ "@types/semver": "7.5.8",
57
+ "@types/uuid": "8.3.4",
58
58
  "@teambit/harmony.envs.core-aspect-env": "2.1.1"
59
59
  },
60
60
  "peerDependencies": {