@teambit/export 1.0.511 → 1.0.513

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  import { ComponentIdList } from '@teambit/component-id';
2
2
  import { Remote } from '@teambit/scope.remotes';
3
3
  import { MergeResult, Scope } from '@teambit/legacy.scope';
4
- import { Lane, LaneHistory, BitObjectList, ObjectList } from '@teambit/scope.objects';
4
+ import { Lane, LaneHistory, BitObjectList, ObjectList } from '@teambit/objects';
5
5
  /**
6
6
  * ** Legacy and "bit sign" Only **
7
7
  *
@@ -52,16 +52,16 @@ function _legacy2() {
52
52
  };
53
53
  return data;
54
54
  }
55
- function _scope2() {
56
- const data = require("@teambit/scope.objects");
57
- _scope2 = function () {
55
+ function _objects() {
56
+ const data = require("@teambit/objects");
57
+ _objects = function () {
58
58
  return data;
59
59
  };
60
60
  return data;
61
61
  }
62
- function _scope3() {
62
+ function _scope2() {
63
63
  const data = require("@teambit/scope.remote-actions");
64
- _scope3 = function () {
64
+ _scope2 = function () {
65
65
  return data;
66
66
  };
67
67
  return data;
@@ -119,7 +119,7 @@ async function saveObjects(scope, objectList) {
119
119
  mergedLaneHistories
120
120
  } = await mergeObjects(scope, bitObjectList);
121
121
  const mergedComponents = mergedComponentsResults.map(_ => _.mergedComponent);
122
- const versionObjects = objectsNotRequireMerge.filter(o => o instanceof _scope2().Version);
122
+ const versionObjects = objectsNotRequireMerge.filter(o => o instanceof _objects().Version);
123
123
  const versionsHistory = await updateVersionHistory(scope, mergedComponents, versionObjects);
124
124
  const allObjects = [...mergedComponents, ...mergedLanes, ...objectsNotRequireMerge, ...versionsHistory, ...mergedLaneHistories];
125
125
  scope.objects.validateObjects(true, allObjects);
@@ -277,7 +277,7 @@ async function throwForMissingLocalDependencies(scope, versions, components, lan
277
277
  const getOriginCompWithVer = () => {
278
278
  const compObj = components.find(c => c.toComponentId().isEqualWithoutVersion(originComp));
279
279
  if (!compObj) return originComp;
280
- const tag = compObj.getTagOfRefIfExists(_scope2().Ref.from(originComp.version));
280
+ const tag = compObj.getTagOfRefIfExists(_objects().Ref.from(originComp.version));
281
281
  if (tag) return originComp.changeVersion(tag);
282
282
  return originComp;
283
283
  };
@@ -302,7 +302,7 @@ async function throwForMissingLocalDependencies(scope, versions, components, lan
302
302
  async function validateRemotes(remotes, clientId, isResumingExport = true) {
303
303
  _legacy3().loader.start('verifying that objects can be merged on the remotes...');
304
304
  try {
305
- await Promise.all(remotes.map(remote => remote.action(_scope3().ExportValidate.name, {
305
+ await Promise.all(remotes.map(remote => remote.action(_scope2().ExportValidate.name, {
306
306
  clientId,
307
307
  isResumingExport: true
308
308
  })));
@@ -329,7 +329,7 @@ async function persistRemotes(manyObjectsPerRemote, clientId) {
329
329
  for (let i = 0; i < maxRetries; i += 1) {
330
330
  try {
331
331
  // eslint-disable-next-line no-await-in-loop
332
- const exportedIds = await remote.action(_scope3().ExportPersist.name, {
332
+ const exportedIds = await remote.action(_scope2().ExportPersist.name, {
333
333
  clientId
334
334
  });
335
335
  objectsPerRemote.exportedIds = exportedIds;
@@ -360,7 +360,7 @@ async function resumeExport(scope, exportId, remotes) {
360
360
  return (0, _lodash().compact)(remotesForPersist.map(r => r.exportedIds).flat());
361
361
  }
362
362
  async function removePendingDirs(pushedRemotes, clientId) {
363
- await Promise.all(pushedRemotes.map(remote => remote.action(_scope3().RemovePendingDir.name, {
363
+ await Promise.all(pushedRemotes.map(remote => remote.action(_scope2().RemovePendingDir.name, {
364
364
  clientId
365
365
  })));
366
366
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_lodash","_componentId","_legacy","_scope","_legacy2","_scope2","_scope3","_legacy3","_toolboxPromise","_harmonyModules","e","__esModule","default","exportManyBareScope","scope","objectList","logger","debugAndAddBreadCrumb","objects","length","mergedIds","saveObjects","scopeComponentsImporter","scopeImporter","importManyFromOriginalScopes","bitObjectList","toBitObjects","objectsNotRequireMerge","getObjectsNotRequireMerge","mergedComponentsResults","mergedLanes","mergedLaneHistories","mergeObjects","mergedComponents","map","_","mergedComponent","versionObjects","filter","o","Version","versionsHistory","updateVersionHistory","allObjects","validateObjects","writeObjectsToTheFS","debug","versionsWithComponentId","obj","origin","id","versionsWithOrigin","versionWithoutOrigin","partition","v","versionHistoryOfVersionsWithOrigin","_updateVersionHistoryForVersionsWithOrigin","versionHistoryOfVersionsWithoutOrigin","_updateVersionHistoryForVersionsWithoutOrigin","mutatedVersionObjects","squashed","unrelated","Promise","all","modelComp","updateRebasedVersionHistory","versionsHistoryNoNull","compact","compId","toString","join","componentVersionMap","Map","forEach","version","component","find","c","name","error","hash","versions","get","set","pMapPool","undefined","concurrency","concurrentComponentsLimit","throwForMissingDeps","components","getComponents","lanesObjects","getLanes","getVersions","lanesHistory","getLaneHistories","mergeResults","errors","sources","mergeComponents","mergeAllLanesResults","mapSeries","laneObject","mergeLane","lanesErrors","r","mergeErrors","flat","componentsNeedUpdate","result","ComponentNeedsUpdate","componentsWithConflicts","MergeConflict","idsAndVersions","idsAndVersionsWithConflicts","sortBy","property","idsOfNeedUpdateComps","lane","clearObjectsFromCache","MergeConflictOnRemote","throwForMissingLocalDependencies","mergedVersions","mergedLanesComponents","getMergedIds","toBitId","changeVersion","ComponentIdList","uniqFromArray","laneHistory","existingLaneHistory","load","merge","lanes","compsWithHeads","toBitIds","toComponentIdWithHead","originComp","getOriginCompWithVer","compObj","toComponentId","isEqualWithoutVersion","tag","getTagOfRefIfExists","Ref","from","depsIds","getAllFlattenedDependencies","depId","existingModelComponent","getModelComponentIfExist","ComponentNotFound","versionRef","getRef","Error","objectExist","getCache","has","isEqual","validateRemotes","remotes","clientId","isResumingExport","loader","start","remote","action","ExportValidate","err","errorAndAddBreadCrumb","removePendingDirs","persistRemotes","manyObjectsPerRemote","persistedRemotes","objectsPerRemote","maxRetries","succeed","lastErrMsg","i","exportedIds","ExportPersist","message","PersistFailed","push","resumeExport","exportId","scopeRemotes","getScopeRemotes","remotesObj","resolve","remotesForPersist","pushedRemotes","RemovePendingDir"],"sources":["export-scope-components.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport { compact, partition, property, sortBy } from 'lodash';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { logger } from '@teambit/legacy.logger';\nimport { Remotes, Remote, getScopeRemotes } from '@teambit/scope.remotes';\nimport {\n MergeResult,\n PersistFailed,\n Scope,\n ComponentNeedsUpdate,\n ComponentNotFound,\n MergeConflict,\n MergeConflictOnRemote,\n} from '@teambit/legacy.scope';\nimport {\n Lane,\n Version,\n ModelComponent,\n VersionHistory,\n LaneHistory,\n Ref,\n BitObjectList,\n ObjectList,\n} from '@teambit/scope.objects';\nimport { ExportPersist, ExportValidate, RemovePendingDir } from '@teambit/scope.remote-actions';\nimport { loader } from '@teambit/legacy.loader';\nimport { pMapPool } from '@teambit/toolbox.promise.map-pool';\nimport { concurrentComponentsLimit } from '@teambit/harmony.modules.concurrency';\n\n/**\n * ** Legacy and \"bit sign\" Only **\n *\n * @TODO there is no real difference between bare scope and a working directory scope - let's adjust terminology to avoid confusions in the future\n * saves a component into the objects directory of the remote scope, then, resolves its\n * dependencies, saves them as well. Finally runs the build process if needed on an isolated\n * environment.\n */\nexport async function exportManyBareScope(scope: Scope, objectList: ObjectList): Promise<ComponentIdList> {\n logger.debugAndAddBreadCrumb('exportManyBareScope', `started with ${objectList.objects.length} objects`);\n const mergedIds = await saveObjects(scope, objectList);\n logger.debugAndAddBreadCrumb('exportManyBareScope', 'will try to importMany in case there are missing dependencies');\n const scopeComponentsImporter = scope.scopeImporter;\n await scopeComponentsImporter.importManyFromOriginalScopes(mergedIds); // resolve dependencies\n logger.debugAndAddBreadCrumb('exportManyBareScope', 'successfully ran importMany');\n\n return mergedIds;\n}\n\ntype RemotesForPersist = {\n remote: Remote;\n exportedIds?: string[];\n};\n\n/**\n * save objects into the scope.\n */\nexport async function saveObjects(scope: Scope, objectList: ObjectList): Promise<ComponentIdList> {\n const bitObjectList = await objectList.toBitObjects();\n const objectsNotRequireMerge = bitObjectList.getObjectsNotRequireMerge();\n // components and lanes can't be just added, they need to be carefully merged.\n const { mergedIds, mergedComponentsResults, mergedLanes, mergedLaneHistories } = await mergeObjects(\n scope,\n bitObjectList\n );\n const mergedComponents = mergedComponentsResults.map((_) => _.mergedComponent);\n const versionObjects = objectsNotRequireMerge.filter((o) => o instanceof Version) as Version[];\n const versionsHistory = await updateVersionHistory(scope, mergedComponents, versionObjects);\n const allObjects = [\n ...mergedComponents,\n ...mergedLanes,\n ...objectsNotRequireMerge,\n ...versionsHistory,\n ...mergedLaneHistories,\n ];\n scope.objects.validateObjects(true, allObjects);\n await scope.objects.writeObjectsToTheFS(allObjects);\n logger.debug(\n `export-scope-components.saveObjects, ${allObjects.length} objects were written successfully to the filesystem`\n );\n\n return mergedIds;\n}\n\n/**\n * Previously, the VersionHistory was populated during fetch. However, we want the fetch operation to be more efficient\n * so we move this logic to the export operation.\n * Before version 0.2.22, the Version object didn't have any info about the component-id, so we do update only for\n * rebase. For versions that tagged by > 0.2.22, we have the \"origin.id\" and we know to what component this version\n * belongs to.\n */\nasync function updateVersionHistory(\n scope: Scope,\n mergedComponents: ModelComponent[],\n versionObjects: Version[]\n): Promise<VersionHistory[]> {\n if (!mergedComponents.length) {\n // this is important for bit-sign to not try to update VersionHistory and then error due to missing components\n logger.debug('updateVersionHistory, no components were merged, no need to update VersionHistory');\n return [];\n }\n logger.debug(\n `updateVersionHistory, total components: ${mergedComponents.length}, total versions: ${versionObjects.length}`\n );\n\n const versionsWithComponentId = versionObjects.filter((obj) => obj.origin?.id);\n\n const [versionsWithOrigin, versionWithoutOrigin] = partition(versionsWithComponentId, (v) => v.origin?.id);\n\n const versionHistoryOfVersionsWithOrigin = await _updateVersionHistoryForVersionsWithOrigin(\n scope,\n mergedComponents,\n versionsWithOrigin\n );\n\n const versionHistoryOfVersionsWithoutOrigin = await _updateVersionHistoryForVersionsWithoutOrigin(\n scope,\n mergedComponents,\n versionWithoutOrigin\n );\n\n return [...versionHistoryOfVersionsWithOrigin, ...versionHistoryOfVersionsWithoutOrigin];\n}\n\n/**\n * In case of rebase (squash / unrelated) where the version history is changed, make the necessary changes in the\n * VersionHistory.\n * Because previously (bit-version < 0.2.22) we only knew about this from the Version object, and the Version object\n * didn't have any info about what the component-id is, we have to iterate all model-components, grab their\n * version-history and check whether the version-hash is inside their VersionHistory.\n * it's not ideal performance wise. however, in most cases, this rebase is about squashing, and when squashing, it's\n * done for the entire lane, so all components need to be updated regardless.\n */\nasync function _updateVersionHistoryForVersionsWithoutOrigin(\n scope: Scope,\n mergedComponents: ModelComponent[],\n versionWithoutOrigin: Version[]\n): Promise<VersionHistory[]> {\n const mutatedVersionObjects = versionWithoutOrigin.filter((v) => v.squashed || v.unrelated);\n if (!mutatedVersionObjects.length) return [];\n logger.debug(`_updateVersionHistoryForVersionsWithoutOrigin, found ${mutatedVersionObjects.length} mutated version`);\n const versionsHistory = await Promise.all(\n mergedComponents.map(async (modelComp) =>\n modelComp.updateRebasedVersionHistory(scope.objects, mutatedVersionObjects)\n )\n );\n const versionsHistoryNoNull = compact(versionsHistory);\n logger.debug(`_updateVersionHistoryForVersionsWithoutOrigin, found ${\n versionsHistoryNoNull.length\n } versionsHistory to update\n${versionsHistoryNoNull.map((v) => v.compId.toString()).join(', ')}`);\n\n return versionsHistoryNoNull;\n}\n\nasync function _updateVersionHistoryForVersionsWithOrigin(\n scope: Scope,\n mergedComponents: ModelComponent[],\n versionObjects: Version[]\n): Promise<VersionHistory[]> {\n if (!versionObjects.length) return [];\n logger.debug(`_updateVersionHistoryForVersionsWithOrigin, found ${versionObjects.length} versions with origin`);\n const componentVersionMap = new Map<ModelComponent, Version[]>();\n versionObjects.forEach((version) => {\n const component = mergedComponents.find(\n (c) => c.scope === version.origin?.id.scope && c.name === version.origin?.id.name\n );\n if (!component) {\n logger.error(`updateVersionHistoryIfNeeded, unable to find component for version ${version.hash().toString()}`);\n return;\n }\n const versions = componentVersionMap.get(component) || [];\n componentVersionMap.set(component, [...versions, version]);\n });\n\n const versionsHistory = await pMapPool(\n mergedComponents,\n async (modelComp) => {\n const versions = componentVersionMap.get(modelComp);\n if (!versions || !versions.length) return undefined;\n return modelComp.updateVersionHistory(scope.objects, versions);\n },\n { concurrency: concurrentComponentsLimit() }\n );\n\n return compact(versionsHistory);\n}\n\ntype MergeObjectsResult = {\n mergedIds: ComponentIdList;\n mergedComponentsResults: MergeResult[];\n mergedLanes: Lane[];\n mergedLaneHistories: LaneHistory[];\n};\n\n/**\n * merge components into the scope.\n *\n * a component might have multiple versions that some where merged and some were not.\n * the BitIds returned here includes the versions that were merged. so it could contain multiple\n * ids of the same component with different versions\n */\nexport async function mergeObjects(\n scope: Scope,\n bitObjectList: BitObjectList,\n throwForMissingDeps = false\n): Promise<MergeObjectsResult> {\n const components = bitObjectList.getComponents();\n const lanesObjects = bitObjectList.getLanes();\n const versions = bitObjectList.getVersions();\n const lanesHistory = bitObjectList.getLaneHistories();\n logger.debugAndAddBreadCrumb(\n 'export-scope-components.mergeObjects',\n `Going to merge ${components.length} components, ${lanesObjects.length} lanes`\n );\n const { mergeResults, errors } = lanesObjects.length\n ? { mergeResults: [], errors: [] } // for lanes, no need to merge component objects, the lane is merged later.\n : await scope.sources.mergeComponents(components, versions);\n\n const mergeAllLanesResults = await mapSeries(lanesObjects, (laneObject) =>\n scope.sources.mergeLane(laneObject, false, versions, components)\n );\n const lanesErrors = mergeAllLanesResults.map((r) => r.mergeErrors).flat();\n const componentsNeedUpdate = [\n ...errors.filter((result) => result instanceof ComponentNeedsUpdate),\n ...lanesErrors,\n ] as ComponentNeedsUpdate[];\n const componentsWithConflicts = errors.filter((result) => result instanceof MergeConflict) as MergeConflict[];\n if (componentsWithConflicts.length || componentsNeedUpdate.length) {\n const idsAndVersions = componentsWithConflicts.map((c) => ({ id: c.id, versions: c.versions }));\n const idsAndVersionsWithConflicts = sortBy(idsAndVersions, property('id'));\n const idsOfNeedUpdateComps = sortBy(\n componentsNeedUpdate.map((c) => ({ id: c.id, lane: c.lane })),\n property('id')\n );\n scope.objects.clearObjectsFromCache(); // just in case this error is caught. we don't want to persist anything by mistake.\n throw new MergeConflictOnRemote(idsAndVersionsWithConflicts, idsOfNeedUpdateComps);\n }\n if (throwForMissingDeps) await throwForMissingLocalDependencies(scope, versions, components, lanesObjects);\n const mergedComponents = mergeResults.filter(({ mergedVersions }) => mergedVersions.length);\n const mergedLanesComponents = mergeAllLanesResults\n .map((r) => r.mergeResults)\n .flat()\n .filter(({ mergedVersions }) => mergedVersions.length);\n const mergedComponentsResults = [...mergedComponents, ...mergedLanesComponents];\n const getMergedIds = ({ mergedComponent, mergedVersions }): ComponentID[] =>\n mergedVersions.map((version) => mergedComponent.toBitId().changeVersion(version));\n const mergedIds = ComponentIdList.uniqFromArray(mergedComponentsResults.map(getMergedIds).flat());\n const mergedLanes = mergeAllLanesResults.map((r) => r.mergeLane);\n\n const mergedLaneHistories = await mapSeries(lanesHistory, async (laneHistory) => {\n const existingLaneHistory = (await scope.objects.load(laneHistory.hash())) as LaneHistory | undefined;\n if (existingLaneHistory) {\n existingLaneHistory.merge(laneHistory);\n return existingLaneHistory;\n }\n return laneHistory;\n });\n\n return { mergedIds, mergedComponentsResults, mergedLanes, mergedLaneHistories };\n}\n\n/**\n * make sure that all local objects were actually transferred into the remote.\n * this gets called as part of the export-validate step. it doesn't check for dependencies from\n * other scopes, as they'll be retrieved later by the fetch-missing-deps step.\n * we can't wait for that step to validate local dependencies because it happens after persisting,\n * and we don't want to persist when local dependencies were not exported.\n */\nasync function throwForMissingLocalDependencies(\n scope: Scope,\n versions: Version[],\n components: ModelComponent[],\n lanes: Lane[]\n) {\n const compsWithHeads = lanes.length\n ? lanes.map((lane) => lane.toBitIds()).flat()\n : components.map((c) => c.toComponentIdWithHead());\n\n await Promise.all(\n versions.map(async (version) => {\n const originComp = compsWithHeads.find((id) => version.hash().toString() === id.version);\n if (!originComp) {\n // coz if an older version has a missing dep, then, it's fine. (it can easily happen when exporting lane, which\n // all old versions are exported)\n return;\n }\n const getOriginCompWithVer = () => {\n const compObj = components.find((c) => c.toComponentId().isEqualWithoutVersion(originComp));\n if (!compObj) return originComp;\n const tag = compObj.getTagOfRefIfExists(Ref.from(originComp.version as string));\n if (tag) return originComp.changeVersion(tag);\n return originComp;\n };\n const depsIds = version.getAllFlattenedDependencies();\n await Promise.all(\n depsIds.map(async (depId) => {\n if (depId.scope !== scope.name) return;\n const existingModelComponent =\n (await scope.getModelComponentIfExist(depId)) ||\n components.find((c) => c.toComponentId().isEqualWithoutVersion(depId));\n if (!existingModelComponent) {\n scope.objects.clearObjectsFromCache(); // just in case this error is caught. we don't want to persist anything by mistake.\n throw new ComponentNotFound(depId.toString(), getOriginCompWithVer().toString());\n }\n const versionRef = existingModelComponent.getRef(depId.version as string);\n if (!versionRef) throw new Error(`unable to find Ref/Hash of ${depId.toString()}`);\n const objectExist =\n scope.objects.getCache(versionRef) ||\n (await scope.objects.has(versionRef)) ||\n versions.find((v) => v.hash().isEqual(versionRef));\n if (!objectExist) {\n scope.objects.clearObjectsFromCache(); // just in case this error is caught. we don't want to persist anything by mistake.\n throw new ComponentNotFound(depId.toString(), getOriginCompWithVer().toString());\n }\n })\n );\n })\n );\n}\n\nexport async function validateRemotes(remotes: Remote[], clientId: string, isResumingExport = true) {\n loader.start('verifying that objects can be merged on the remotes...');\n try {\n await Promise.all(\n remotes.map((remote) =>\n remote.action(ExportValidate.name, {\n clientId,\n isResumingExport: true,\n })\n )\n );\n } catch (err: any) {\n logger.errorAndAddBreadCrumb('validateRemotes', 'failed validating remotes', {}, err);\n if (!isResumingExport) {\n // when resuming export, we don't want to delete the pending-objects because some scopes\n // have them persisted and some not. we want to persist to all failing scopes.\n await removePendingDirs(remotes, clientId);\n }\n throw err;\n }\n}\n\nexport async function persistRemotes(manyObjectsPerRemote: RemotesForPersist[], clientId: string) {\n const persistedRemotes: string[] = [];\n await mapSeries(manyObjectsPerRemote, async (objectsPerRemote: RemotesForPersist) => {\n const { remote } = objectsPerRemote;\n loader.start(`persisting data on the remote \"${remote.name}\"...`);\n const maxRetries = 3;\n let succeed = false;\n let lastErrMsg = '';\n for (let i = 0; i < maxRetries; i += 1) {\n try {\n // eslint-disable-next-line no-await-in-loop\n const exportedIds: string[] = await remote.action(ExportPersist.name, { clientId });\n objectsPerRemote.exportedIds = exportedIds;\n succeed = true;\n break;\n } catch (err: any) {\n lastErrMsg = err.message;\n logger.errorAndAddBreadCrumb(\n 'persistRemotes',\n `failed on remote ${remote.name}, attempt ${i + 1} out of ${maxRetries}`,\n {},\n err\n );\n }\n }\n if (!succeed) {\n throw new PersistFailed([remote.name], { [remote.name]: lastErrMsg });\n }\n logger.debugAndAddBreadCrumb('persistRemotes', `successfully pushed all ids to the bare-scope ${remote.name}`);\n persistedRemotes.push(remote.name);\n });\n}\n\nexport async function resumeExport(scope: Scope, exportId: string, remotes: string[]): Promise<string[]> {\n const scopeRemotes: Remotes = await getScopeRemotes(scope);\n const remotesObj = await Promise.all(remotes.map((r) => scopeRemotes.resolve(r)));\n const remotesForPersist: RemotesForPersist[] = remotesObj.map((remote) => ({ remote }));\n await validateRemotes(remotesObj, exportId);\n await persistRemotes(remotesForPersist, exportId);\n return compact(remotesForPersist.map((r) => r.exportedIds).flat());\n}\n\nexport async function removePendingDirs(pushedRemotes: Remote[], clientId: string) {\n await Promise.all(pushedRemotes.map((remote) => remote.action(RemovePendingDir.name, { clientId })));\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_lodash","_componentId","_legacy","_scope","_legacy2","_objects","_scope2","_legacy3","_toolboxPromise","_harmonyModules","e","__esModule","default","exportManyBareScope","scope","objectList","logger","debugAndAddBreadCrumb","objects","length","mergedIds","saveObjects","scopeComponentsImporter","scopeImporter","importManyFromOriginalScopes","bitObjectList","toBitObjects","objectsNotRequireMerge","getObjectsNotRequireMerge","mergedComponentsResults","mergedLanes","mergedLaneHistories","mergeObjects","mergedComponents","map","_","mergedComponent","versionObjects","filter","o","Version","versionsHistory","updateVersionHistory","allObjects","validateObjects","writeObjectsToTheFS","debug","versionsWithComponentId","obj","origin","id","versionsWithOrigin","versionWithoutOrigin","partition","v","versionHistoryOfVersionsWithOrigin","_updateVersionHistoryForVersionsWithOrigin","versionHistoryOfVersionsWithoutOrigin","_updateVersionHistoryForVersionsWithoutOrigin","mutatedVersionObjects","squashed","unrelated","Promise","all","modelComp","updateRebasedVersionHistory","versionsHistoryNoNull","compact","compId","toString","join","componentVersionMap","Map","forEach","version","component","find","c","name","error","hash","versions","get","set","pMapPool","undefined","concurrency","concurrentComponentsLimit","throwForMissingDeps","components","getComponents","lanesObjects","getLanes","getVersions","lanesHistory","getLaneHistories","mergeResults","errors","sources","mergeComponents","mergeAllLanesResults","mapSeries","laneObject","mergeLane","lanesErrors","r","mergeErrors","flat","componentsNeedUpdate","result","ComponentNeedsUpdate","componentsWithConflicts","MergeConflict","idsAndVersions","idsAndVersionsWithConflicts","sortBy","property","idsOfNeedUpdateComps","lane","clearObjectsFromCache","MergeConflictOnRemote","throwForMissingLocalDependencies","mergedVersions","mergedLanesComponents","getMergedIds","toBitId","changeVersion","ComponentIdList","uniqFromArray","laneHistory","existingLaneHistory","load","merge","lanes","compsWithHeads","toBitIds","toComponentIdWithHead","originComp","getOriginCompWithVer","compObj","toComponentId","isEqualWithoutVersion","tag","getTagOfRefIfExists","Ref","from","depsIds","getAllFlattenedDependencies","depId","existingModelComponent","getModelComponentIfExist","ComponentNotFound","versionRef","getRef","Error","objectExist","getCache","has","isEqual","validateRemotes","remotes","clientId","isResumingExport","loader","start","remote","action","ExportValidate","err","errorAndAddBreadCrumb","removePendingDirs","persistRemotes","manyObjectsPerRemote","persistedRemotes","objectsPerRemote","maxRetries","succeed","lastErrMsg","i","exportedIds","ExportPersist","message","PersistFailed","push","resumeExport","exportId","scopeRemotes","getScopeRemotes","remotesObj","resolve","remotesForPersist","pushedRemotes","RemovePendingDir"],"sources":["export-scope-components.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport { compact, partition, property, sortBy } from 'lodash';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { logger } from '@teambit/legacy.logger';\nimport { Remotes, Remote, getScopeRemotes } from '@teambit/scope.remotes';\nimport {\n MergeResult,\n PersistFailed,\n Scope,\n ComponentNeedsUpdate,\n ComponentNotFound,\n MergeConflict,\n MergeConflictOnRemote,\n} from '@teambit/legacy.scope';\nimport {\n Lane,\n Version,\n ModelComponent,\n VersionHistory,\n LaneHistory,\n Ref,\n BitObjectList,\n ObjectList,\n} from '@teambit/objects';\nimport { ExportPersist, ExportValidate, RemovePendingDir } from '@teambit/scope.remote-actions';\nimport { loader } from '@teambit/legacy.loader';\nimport { pMapPool } from '@teambit/toolbox.promise.map-pool';\nimport { concurrentComponentsLimit } from '@teambit/harmony.modules.concurrency';\n\n/**\n * ** Legacy and \"bit sign\" Only **\n *\n * @TODO there is no real difference between bare scope and a working directory scope - let's adjust terminology to avoid confusions in the future\n * saves a component into the objects directory of the remote scope, then, resolves its\n * dependencies, saves them as well. Finally runs the build process if needed on an isolated\n * environment.\n */\nexport async function exportManyBareScope(scope: Scope, objectList: ObjectList): Promise<ComponentIdList> {\n logger.debugAndAddBreadCrumb('exportManyBareScope', `started with ${objectList.objects.length} objects`);\n const mergedIds = await saveObjects(scope, objectList);\n logger.debugAndAddBreadCrumb('exportManyBareScope', 'will try to importMany in case there are missing dependencies');\n const scopeComponentsImporter = scope.scopeImporter;\n await scopeComponentsImporter.importManyFromOriginalScopes(mergedIds); // resolve dependencies\n logger.debugAndAddBreadCrumb('exportManyBareScope', 'successfully ran importMany');\n\n return mergedIds;\n}\n\ntype RemotesForPersist = {\n remote: Remote;\n exportedIds?: string[];\n};\n\n/**\n * save objects into the scope.\n */\nexport async function saveObjects(scope: Scope, objectList: ObjectList): Promise<ComponentIdList> {\n const bitObjectList = await objectList.toBitObjects();\n const objectsNotRequireMerge = bitObjectList.getObjectsNotRequireMerge();\n // components and lanes can't be just added, they need to be carefully merged.\n const { mergedIds, mergedComponentsResults, mergedLanes, mergedLaneHistories } = await mergeObjects(\n scope,\n bitObjectList\n );\n const mergedComponents = mergedComponentsResults.map((_) => _.mergedComponent);\n const versionObjects = objectsNotRequireMerge.filter((o) => o instanceof Version) as Version[];\n const versionsHistory = await updateVersionHistory(scope, mergedComponents, versionObjects);\n const allObjects = [\n ...mergedComponents,\n ...mergedLanes,\n ...objectsNotRequireMerge,\n ...versionsHistory,\n ...mergedLaneHistories,\n ];\n scope.objects.validateObjects(true, allObjects);\n await scope.objects.writeObjectsToTheFS(allObjects);\n logger.debug(\n `export-scope-components.saveObjects, ${allObjects.length} objects were written successfully to the filesystem`\n );\n\n return mergedIds;\n}\n\n/**\n * Previously, the VersionHistory was populated during fetch. However, we want the fetch operation to be more efficient\n * so we move this logic to the export operation.\n * Before version 0.2.22, the Version object didn't have any info about the component-id, so we do update only for\n * rebase. For versions that tagged by > 0.2.22, we have the \"origin.id\" and we know to what component this version\n * belongs to.\n */\nasync function updateVersionHistory(\n scope: Scope,\n mergedComponents: ModelComponent[],\n versionObjects: Version[]\n): Promise<VersionHistory[]> {\n if (!mergedComponents.length) {\n // this is important for bit-sign to not try to update VersionHistory and then error due to missing components\n logger.debug('updateVersionHistory, no components were merged, no need to update VersionHistory');\n return [];\n }\n logger.debug(\n `updateVersionHistory, total components: ${mergedComponents.length}, total versions: ${versionObjects.length}`\n );\n\n const versionsWithComponentId = versionObjects.filter((obj) => obj.origin?.id);\n\n const [versionsWithOrigin, versionWithoutOrigin] = partition(versionsWithComponentId, (v) => v.origin?.id);\n\n const versionHistoryOfVersionsWithOrigin = await _updateVersionHistoryForVersionsWithOrigin(\n scope,\n mergedComponents,\n versionsWithOrigin\n );\n\n const versionHistoryOfVersionsWithoutOrigin = await _updateVersionHistoryForVersionsWithoutOrigin(\n scope,\n mergedComponents,\n versionWithoutOrigin\n );\n\n return [...versionHistoryOfVersionsWithOrigin, ...versionHistoryOfVersionsWithoutOrigin];\n}\n\n/**\n * In case of rebase (squash / unrelated) where the version history is changed, make the necessary changes in the\n * VersionHistory.\n * Because previously (bit-version < 0.2.22) we only knew about this from the Version object, and the Version object\n * didn't have any info about what the component-id is, we have to iterate all model-components, grab their\n * version-history and check whether the version-hash is inside their VersionHistory.\n * it's not ideal performance wise. however, in most cases, this rebase is about squashing, and when squashing, it's\n * done for the entire lane, so all components need to be updated regardless.\n */\nasync function _updateVersionHistoryForVersionsWithoutOrigin(\n scope: Scope,\n mergedComponents: ModelComponent[],\n versionWithoutOrigin: Version[]\n): Promise<VersionHistory[]> {\n const mutatedVersionObjects = versionWithoutOrigin.filter((v) => v.squashed || v.unrelated);\n if (!mutatedVersionObjects.length) return [];\n logger.debug(`_updateVersionHistoryForVersionsWithoutOrigin, found ${mutatedVersionObjects.length} mutated version`);\n const versionsHistory = await Promise.all(\n mergedComponents.map(async (modelComp) =>\n modelComp.updateRebasedVersionHistory(scope.objects, mutatedVersionObjects)\n )\n );\n const versionsHistoryNoNull = compact(versionsHistory);\n logger.debug(`_updateVersionHistoryForVersionsWithoutOrigin, found ${\n versionsHistoryNoNull.length\n } versionsHistory to update\n${versionsHistoryNoNull.map((v) => v.compId.toString()).join(', ')}`);\n\n return versionsHistoryNoNull;\n}\n\nasync function _updateVersionHistoryForVersionsWithOrigin(\n scope: Scope,\n mergedComponents: ModelComponent[],\n versionObjects: Version[]\n): Promise<VersionHistory[]> {\n if (!versionObjects.length) return [];\n logger.debug(`_updateVersionHistoryForVersionsWithOrigin, found ${versionObjects.length} versions with origin`);\n const componentVersionMap = new Map<ModelComponent, Version[]>();\n versionObjects.forEach((version) => {\n const component = mergedComponents.find(\n (c) => c.scope === version.origin?.id.scope && c.name === version.origin?.id.name\n );\n if (!component) {\n logger.error(`updateVersionHistoryIfNeeded, unable to find component for version ${version.hash().toString()}`);\n return;\n }\n const versions = componentVersionMap.get(component) || [];\n componentVersionMap.set(component, [...versions, version]);\n });\n\n const versionsHistory = await pMapPool(\n mergedComponents,\n async (modelComp) => {\n const versions = componentVersionMap.get(modelComp);\n if (!versions || !versions.length) return undefined;\n return modelComp.updateVersionHistory(scope.objects, versions);\n },\n { concurrency: concurrentComponentsLimit() }\n );\n\n return compact(versionsHistory);\n}\n\ntype MergeObjectsResult = {\n mergedIds: ComponentIdList;\n mergedComponentsResults: MergeResult[];\n mergedLanes: Lane[];\n mergedLaneHistories: LaneHistory[];\n};\n\n/**\n * merge components into the scope.\n *\n * a component might have multiple versions that some where merged and some were not.\n * the BitIds returned here includes the versions that were merged. so it could contain multiple\n * ids of the same component with different versions\n */\nexport async function mergeObjects(\n scope: Scope,\n bitObjectList: BitObjectList,\n throwForMissingDeps = false\n): Promise<MergeObjectsResult> {\n const components = bitObjectList.getComponents();\n const lanesObjects = bitObjectList.getLanes();\n const versions = bitObjectList.getVersions();\n const lanesHistory = bitObjectList.getLaneHistories();\n logger.debugAndAddBreadCrumb(\n 'export-scope-components.mergeObjects',\n `Going to merge ${components.length} components, ${lanesObjects.length} lanes`\n );\n const { mergeResults, errors } = lanesObjects.length\n ? { mergeResults: [], errors: [] } // for lanes, no need to merge component objects, the lane is merged later.\n : await scope.sources.mergeComponents(components, versions);\n\n const mergeAllLanesResults = await mapSeries(lanesObjects, (laneObject) =>\n scope.sources.mergeLane(laneObject, false, versions, components)\n );\n const lanesErrors = mergeAllLanesResults.map((r) => r.mergeErrors).flat();\n const componentsNeedUpdate = [\n ...errors.filter((result) => result instanceof ComponentNeedsUpdate),\n ...lanesErrors,\n ] as ComponentNeedsUpdate[];\n const componentsWithConflicts = errors.filter((result) => result instanceof MergeConflict) as MergeConflict[];\n if (componentsWithConflicts.length || componentsNeedUpdate.length) {\n const idsAndVersions = componentsWithConflicts.map((c) => ({ id: c.id, versions: c.versions }));\n const idsAndVersionsWithConflicts = sortBy(idsAndVersions, property('id'));\n const idsOfNeedUpdateComps = sortBy(\n componentsNeedUpdate.map((c) => ({ id: c.id, lane: c.lane })),\n property('id')\n );\n scope.objects.clearObjectsFromCache(); // just in case this error is caught. we don't want to persist anything by mistake.\n throw new MergeConflictOnRemote(idsAndVersionsWithConflicts, idsOfNeedUpdateComps);\n }\n if (throwForMissingDeps) await throwForMissingLocalDependencies(scope, versions, components, lanesObjects);\n const mergedComponents = mergeResults.filter(({ mergedVersions }) => mergedVersions.length);\n const mergedLanesComponents = mergeAllLanesResults\n .map((r) => r.mergeResults)\n .flat()\n .filter(({ mergedVersions }) => mergedVersions.length);\n const mergedComponentsResults = [...mergedComponents, ...mergedLanesComponents];\n const getMergedIds = ({ mergedComponent, mergedVersions }): ComponentID[] =>\n mergedVersions.map((version) => mergedComponent.toBitId().changeVersion(version));\n const mergedIds = ComponentIdList.uniqFromArray(mergedComponentsResults.map(getMergedIds).flat());\n const mergedLanes = mergeAllLanesResults.map((r) => r.mergeLane);\n\n const mergedLaneHistories = await mapSeries(lanesHistory, async (laneHistory) => {\n const existingLaneHistory = (await scope.objects.load(laneHistory.hash())) as LaneHistory | undefined;\n if (existingLaneHistory) {\n existingLaneHistory.merge(laneHistory);\n return existingLaneHistory;\n }\n return laneHistory;\n });\n\n return { mergedIds, mergedComponentsResults, mergedLanes, mergedLaneHistories };\n}\n\n/**\n * make sure that all local objects were actually transferred into the remote.\n * this gets called as part of the export-validate step. it doesn't check for dependencies from\n * other scopes, as they'll be retrieved later by the fetch-missing-deps step.\n * we can't wait for that step to validate local dependencies because it happens after persisting,\n * and we don't want to persist when local dependencies were not exported.\n */\nasync function throwForMissingLocalDependencies(\n scope: Scope,\n versions: Version[],\n components: ModelComponent[],\n lanes: Lane[]\n) {\n const compsWithHeads = lanes.length\n ? lanes.map((lane) => lane.toBitIds()).flat()\n : components.map((c) => c.toComponentIdWithHead());\n\n await Promise.all(\n versions.map(async (version) => {\n const originComp = compsWithHeads.find((id) => version.hash().toString() === id.version);\n if (!originComp) {\n // coz if an older version has a missing dep, then, it's fine. (it can easily happen when exporting lane, which\n // all old versions are exported)\n return;\n }\n const getOriginCompWithVer = () => {\n const compObj = components.find((c) => c.toComponentId().isEqualWithoutVersion(originComp));\n if (!compObj) return originComp;\n const tag = compObj.getTagOfRefIfExists(Ref.from(originComp.version as string));\n if (tag) return originComp.changeVersion(tag);\n return originComp;\n };\n const depsIds = version.getAllFlattenedDependencies();\n await Promise.all(\n depsIds.map(async (depId) => {\n if (depId.scope !== scope.name) return;\n const existingModelComponent =\n (await scope.getModelComponentIfExist(depId)) ||\n components.find((c) => c.toComponentId().isEqualWithoutVersion(depId));\n if (!existingModelComponent) {\n scope.objects.clearObjectsFromCache(); // just in case this error is caught. we don't want to persist anything by mistake.\n throw new ComponentNotFound(depId.toString(), getOriginCompWithVer().toString());\n }\n const versionRef = existingModelComponent.getRef(depId.version as string);\n if (!versionRef) throw new Error(`unable to find Ref/Hash of ${depId.toString()}`);\n const objectExist =\n scope.objects.getCache(versionRef) ||\n (await scope.objects.has(versionRef)) ||\n versions.find((v) => v.hash().isEqual(versionRef));\n if (!objectExist) {\n scope.objects.clearObjectsFromCache(); // just in case this error is caught. we don't want to persist anything by mistake.\n throw new ComponentNotFound(depId.toString(), getOriginCompWithVer().toString());\n }\n })\n );\n })\n );\n}\n\nexport async function validateRemotes(remotes: Remote[], clientId: string, isResumingExport = true) {\n loader.start('verifying that objects can be merged on the remotes...');\n try {\n await Promise.all(\n remotes.map((remote) =>\n remote.action(ExportValidate.name, {\n clientId,\n isResumingExport: true,\n })\n )\n );\n } catch (err: any) {\n logger.errorAndAddBreadCrumb('validateRemotes', 'failed validating remotes', {}, err);\n if (!isResumingExport) {\n // when resuming export, we don't want to delete the pending-objects because some scopes\n // have them persisted and some not. we want to persist to all failing scopes.\n await removePendingDirs(remotes, clientId);\n }\n throw err;\n }\n}\n\nexport async function persistRemotes(manyObjectsPerRemote: RemotesForPersist[], clientId: string) {\n const persistedRemotes: string[] = [];\n await mapSeries(manyObjectsPerRemote, async (objectsPerRemote: RemotesForPersist) => {\n const { remote } = objectsPerRemote;\n loader.start(`persisting data on the remote \"${remote.name}\"...`);\n const maxRetries = 3;\n let succeed = false;\n let lastErrMsg = '';\n for (let i = 0; i < maxRetries; i += 1) {\n try {\n // eslint-disable-next-line no-await-in-loop\n const exportedIds: string[] = await remote.action(ExportPersist.name, { clientId });\n objectsPerRemote.exportedIds = exportedIds;\n succeed = true;\n break;\n } catch (err: any) {\n lastErrMsg = err.message;\n logger.errorAndAddBreadCrumb(\n 'persistRemotes',\n `failed on remote ${remote.name}, attempt ${i + 1} out of ${maxRetries}`,\n {},\n err\n );\n }\n }\n if (!succeed) {\n throw new PersistFailed([remote.name], { [remote.name]: lastErrMsg });\n }\n logger.debugAndAddBreadCrumb('persistRemotes', `successfully pushed all ids to the bare-scope ${remote.name}`);\n persistedRemotes.push(remote.name);\n });\n}\n\nexport async function resumeExport(scope: Scope, exportId: string, remotes: string[]): Promise<string[]> {\n const scopeRemotes: Remotes = await getScopeRemotes(scope);\n const remotesObj = await Promise.all(remotes.map((r) => scopeRemotes.resolve(r)));\n const remotesForPersist: RemotesForPersist[] = remotesObj.map((remote) => ({ remote }));\n await validateRemotes(remotesObj, exportId);\n await persistRemotes(remotesForPersist, exportId);\n return compact(remotesForPersist.map((r) => r.exportedIds).flat());\n}\n\nexport async function removePendingDirs(pushedRemotes: Remote[], clientId: string) {\n await Promise.all(pushedRemotes.map((remote) => remote.action(RemovePendingDir.name, { clientId })));\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,7 @@ import { Remotes, Remote } from '@teambit/scope.remotes';
9
9
  import { EjectMain, EjectResults } from '@teambit/eject';
10
10
  import { ExportOrigin } from '@teambit/scope.network';
11
11
  import { DependencyResolverMain } from '@teambit/dependency-resolver';
12
- import { Lane, ObjectList } from '@teambit/scope.objects';
12
+ import { Lane, ObjectList } from '@teambit/objects';
13
13
  import { Scope } from '@teambit/legacy.scope';
14
14
  export type OnExportIdTransformer = (id: ComponentID) => ComponentID;
15
15
  export type ObjectsPerRemote = {
@@ -152,9 +152,9 @@ function _exportScopeComponents() {
152
152
  };
153
153
  return data;
154
154
  }
155
- function _scope4() {
156
- const data = require("@teambit/scope.objects");
157
- _scope4 = function () {
155
+ function _objects() {
156
+ const data = require("@teambit/objects");
157
+ _objects = function () {
158
158
  return data;
159
159
  };
160
160
  return data;
@@ -445,7 +445,7 @@ if the export fails with missing objects/versions/components, run "bit fetch --l
445
445
  const remote = await scopeRemotes.resolve(remoteNameStr);
446
446
  const idsToChangeLocally = _componentId().ComponentIdList.fromArray(bitIds.filter(id => !scope.isExported(id)));
447
447
  const componentsAndObjects = [];
448
- const objectList = new (_scope4().ObjectList)();
448
+ const objectList = new (_objects().ObjectList)();
449
449
  const objectListPerName = {};
450
450
  const modelComponents = await (0, _pMapSeries().default)(bitIds, id => scope.getModelComponent(id));
451
451
  // super important! otherwise, the processModelComponent() changes objects in memory, while the key remains the same
@@ -496,7 +496,7 @@ if the export fails with missing objects/versions/components, run "bit fetch --l
496
496
  const idFromWorkspace = this.workspace?.getIdIfExist(modelComponent.toComponentId());
497
497
  modelComponent.clearStateData();
498
498
  const objectItems = await modelComponent.collectVersionsObjects(scope.objects, refs.map(ref => ref.toString()), throwForMissingArtifacts, idFromWorkspace);
499
- const objectsList = await new (_scope4().ObjectList)(objectItems).toBitObjects();
499
+ const objectsList = await new (_objects().ObjectList)(objectItems).toBitObjects();
500
500
  const componentAndObject = {
501
501
  component: modelComponent,
502
502
  objects: objectsList.getAll()
@@ -517,7 +517,7 @@ if the export fails with missing objects/versions/components, run "bit fetch --l
517
517
  };
518
518
  const objectsBuffer = await Promise.all(componentAndObject.objects.map(async obj => bitObjectToObjectItem(obj)));
519
519
  const allObjectsData = [componentData, ...objectsBuffer];
520
- objectListPerName[modelComponent.name] = new (_scope4().ObjectList)(allObjectsData);
520
+ objectListPerName[modelComponent.name] = new (_objects().ObjectList)(allObjectsData);
521
521
  objectList.addIfNotExist(allObjectsData);
522
522
  };
523
523
  const refsToExportPerComponent = await getRefsToExportPerComp();
@@ -638,7 +638,7 @@ if the export fails with missing objects/versions/components, run "bit fetch --l
638
638
  };
639
639
  }
640
640
  transformToOneObjectListWithScopeData(objectsPerRemote) {
641
- const objectList = new (_scope4().ObjectList)();
641
+ const objectList = new (_objects().ObjectList)();
642
642
  objectsPerRemote.forEach(objPerRemote => {
643
643
  objPerRemote.objectList.addScopeName(objPerRemote.remote.name);
644
644
  objectList.mergeObjectList(objPerRemote.objectList);