@teambit/snapping 1.0.1282 → 1.0.1283
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/version-maker.js
CHANGED
|
@@ -1094,7 +1094,17 @@ isTag = true) {
|
|
|
1094
1094
|
const compMapObj = componentMap.toPlainObject();
|
|
1095
1095
|
const config = componentMap.config;
|
|
1096
1096
|
stagedConfig.addComponentConfig(compId, config, compMapObj);
|
|
1097
|
+
const removeConfig = config?.[_remove().RemoveAspect.id];
|
|
1097
1098
|
consumer.bitMap.removeConfig(id);
|
|
1099
|
+
if (removeConfig && removeConfig !== '-' && removeConfig.removed) {
|
|
1100
|
+
// a deleted component is removed from .bitmap at the end of the snap (see removeDeletedComponentsFromBitmap).
|
|
1101
|
+
// until then, keep it marked as removed. otherwise, it's loaded as a workspace component, although its files are
|
|
1102
|
+
// gone, and its dependents in this snap resolve it to the new (deleted) version.
|
|
1103
|
+
componentMap.config = {
|
|
1104
|
+
[_remove().RemoveAspect.id]: removeConfig
|
|
1105
|
+
};
|
|
1106
|
+
consumer.bitMap.markAsChanged();
|
|
1107
|
+
}
|
|
1098
1108
|
const hash = modelComponent.getRef(id.version);
|
|
1099
1109
|
if (!hash) throw new Error(`updateComponentsVersions: unable to find a hash for ${id.toString()}`);
|
|
1100
1110
|
workspace.scope.legacyScope.stagedSnaps.addSnap(hash?.toString());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_lodash","_uuid","_bitError","_componentId","_legacy","_legacy2","_workspaceModules","_legacy3","_remove","_cli","_pkgModules","_pkgModules2","_pkg","_harmonyModules","_toolboxCrypto","_componentVersion","_objects","_legacy4","_messagePerComponent","_versionFileParser","_plusRangeVersions","_publishedVersions","_dependencyResolver","_workspace","_workspaceRoot","_toolboxPromise","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","VersionMaker","constructor","snapping","components","consumerComponents","ids","params","workspace","scope","builder","dependencyResolver","consumer","legacyScope","makeVersion","batchId","v4","allWorkspaceComps","list","undefined","componentsToTag","getUniqCompsToTag","idsToTag","ComponentIdList","fromArray","map","c","id","removedIds","isRemoved","autoTagData","getAutoTagData","autoTagItem","has","component","autoTagComponents","autoTagIds","autoTag","autoTagHarmonyComponents","throwForComponentIssues","ignoreIssues","triggerOnPreSnap","allComponentsToTag","throwForPlusRangeVersions","parseVersionsFile","messagePerId","getMessagePerId","checkForNewerVersions","setCurrentSchema","isSnap","setHashes","setFutureVersions","updateDependenciesVersions","dependentsWithPinnedDeps","getDependentsWithPinnedDeps","recordWorkspaceRoot","addLogToComponents","unmergedComps","listComponentsDuringMerge","lane","getCurrentLaneObject","stagedConfig","getStagedConfig","soft","Error","updateNextVersionOnBitmap","preReleaseId","taggedComponents","autoTaggedResults","publishedPackages","totalComponentsCount","rebuildDepsGraph","noLockDeps","build","updateDependentsOnLane","setHeadAsParent","detachHead","overrideHead","_addFlattenedDependenciesToComponents","_addDependenciesGraphToComponents","throwForDepsFromAnotherLane","setUnbuiltBuilderData","addBuildStatus","BuildStatus","Pending","currentLane","getCurrentLaneId","mapSeries","isHiddenLaneEntry","Boolean","bitMap","getComponentIfExist","ignoreVersion","findUpdateDependent","isExplicitTarget","searchWithoutVersion","addToUpdateDependentsInLane","results","_addCompToObjects","source","shouldValidateVersion","addVersionOpts","dependenciesGraph","flattenedEdges","workspaceComp","_findWorkspaceCompByConsumerComp","state","_consumer","modelComponent","getModelComponent","updateVersions","addedVersionStr","hash","getRef","stagedSnaps","addSnap","toString","write","visibleCompsToTag","hiddenCompsToTag","harmonyVisibleCompsToTag","getManyByLegacy","harmonyHiddenCompsToTag","harmonyCompsToTag","removedComponents","removeDeletedComponentsFromBitmap","addLaneObject","objects","persist","removeMergeConfigFromComponents","linkToNodeModulesByComponents","clearObjectsFromCache","logger","setStatusLine","profile","componentIdByPkgName","_getComponentIdByPkgNameMap","options","rootDir","path","rootComponentsPath","consumerComponent","componentMap","componentRelativeDir","addDependenciesGraph","clearStatusLine","find","isEqualWithoutVersion","Map","pkgName","getPackageName","set","every","snappedComponent","allFunctions","onPreSnapSlot","values","func","message","msgStr","laneHistory","lanes","updateLaneHistory","add","disableTagAndSnapPipelines","ignoreBuildErrors","populateArtifactsFrom","skipTasks","packageManagerConfigRootDir","exitOnFirstFailedTask","populateArtifactsIgnorePkgJson","skipTests","loose","onTagOpts","throwOnError","forceDeploy","skipTasksParsed","split","trim","seedersOnly","isolateOptions","builderOptions","componentsToBuild","isDeleted","componentsToBuildLegacy","reloadAspectsWithNewVersion","builderDataMap","tagListener","buildResult","builderDataMapToLegacyOnTagResults","_updateComponentsByTagResult","packageIntegritiesByPublishedPackages","_getPublishedPackages","Array","from","addIntegritiesToConsumerComponentsGraphs","Succeed","comp","enrichComp","updateHiddenProp","ignoreNewestVersion","throwForNewestVersion","messagesFromEditorFetcher","MessagePerComponentFetcher","editor","tagDataPerComp","getMessagesFromEditor","tmp","componentId","msg","versionsFile","versionFileParser","VersionFileParser","autoAddedWorkspaceRoot","tagDataFromFile","consumerComponentsIdsMap","componentIdString","skipAutoTag","fromScope","getLaneAutoTagIdsFromScope","idsToTriggerAutoTag","hasVersion","autoTagDataWithLocalOnly","getAutoTagInfo","localOnly","listLocalOnly","fromWorkspace","hasWithoutVersion","workspaceIds","Set","a","toStringWithoutVersion","fromScopeFiltered","hiddenOnly","triggerIds","laneIds","updateDependents","toComponentIdsIncludeUpdateDependents","candidateLaneIds","import","includeUpdateDependents","reFetchUnBuiltVersion","reason","candidates","getManyConsumerComponents","notRemovedCandidates","candidate","getAutoTagInfoFromComponents","releaseType","autoTagReleaseType","incrementBy","exactVersion","isPreReleaseLike","includes","computedVersions","Promise","all","componentToTag","isAutoTag","sources","findOrAddComponent","nextVersion","version","isAutoAddedRoot","bumpRootAsPatch","getVersionToAdd","getNewVersion","tagData","versionToTag","exactVersionOrReleaseType","getValidVersionOrReleaseType","prereleaseId","preRelease","versionByEnteredId","getVersionByEnteredId","versionsToSkip","getVersionsPublishedToRegistry","setNewVersion","get","skipPublishedVersions","flatMap","hasExplicitVersion","pkgConfig","extensions","findExtension","PkgAspect","config","shouldPublishToExternalRegistry","packageName","componentIdToPackageName","registryUrl","getPublishRegistry","registries","getRegistries","err","console","formatWarningSummary","skipped","createIsVersionPublished","formatSection","formatItem","enteredVersion","softTagVersion","some","given","schema","CURRENT_SCHEMA","sha1","enteredIds","enteredId","buildStatus","Skipped","plannedTasksPerComp","getPlannedTasks","getHarmonyComps","clone","plannedTasks","existingBuilder","findCoreExtension","Extensions","ExtensionDataEntry","loadedComps","compact","consumerComp","getNewDependencyVersion","dependent","foundDependency","isDependencyVersionFromConfig","changeVersion","changeExtensionsVersion","ext","extensionId","newDepId","updateDepsResolverData","componentRangePrefix","entry","DependencyResolverAspect","dependencies","dep","__type","COMPONENT_DEP_TYPE","depId","ComponentID","fromObject","serialize","isSnapVersion","versionRange","oneComponentToTag","calcComponentRangePrefixByConsumerComponent","getAllDependencies","dependency","idsWithNewVersion","pinnedDependencies","getDependenciesWithVersionFromConfig","rootMap","findWorkspaceRootMap","rootInBatch","rootId","writeWorkspaceRoot","autoTagComps","messagePerComponent","copyLogFromPreviousSnap","basicLog","getBasicLog","getLog","msgFromEditor","item","currentLog","log","date","username","email","autoTagComp","defaultMsg","exports","newestVersionsP","componentFromModel","getModelComponentIfExist","BitError","listVersions","latest","getHeadRegardlessOfLaneAsTagOrHash","currentVersion","latestVersion","newestVersions","newestVersionsWithoutEmpty","NewerVersionFound","_addIntegritiesToDependenciesGraph","addIntegritiesToDependenciesGraph","bind","resolvedVersions","selector","integrity","previouslyUsedVersion","entries","index","indexOf","name","substring","pendingKey","packages","pendingPkg","resolution","replacePendingVersions","comps","removedComps","compBitIdsToRemove","deleteComponentsFiles","cleanFromBitMap","configMergeFile","getConflictMergeFile","compId","isNowSnapped","removeConflict","currentlyUnmerged","hasConflict","delete","isAvailableOnMain","isDefault","hasHead","versionToSetInBitmap","isTag","idLatest","toBitIdWithLatestVersionAllowNull","isOnBitmap","stagedData","getPerId","RemoveAspect","addFromComponentJson","componentMapObject","updateComponentId","availableOnMain","setOnLanesOnly","getComponent","resolveComponentId","compMapObj","toPlainObject","addComponentConfig","removeConfig","getConfigPerId","clearNextVersion","graph","s","replaceAll","updatedDependenciesGraph","DependenciesGraph","deserialize","pMapPool","versionObj","getBitObjectVersionById","hidden","addModifiedLog","concurrency"],"sources":["version-maker.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport { compact, get } from 'lodash';\nimport type { ReleaseType } from 'semver';\nimport { v4 } from 'uuid';\nimport { BitError } from '@teambit/bit-error';\nimport type { Scope } from '@teambit/legacy.scope';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { BuildStatus, Extensions } from '@teambit/legacy.constants';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport { CURRENT_SCHEMA } from '@teambit/legacy.consumer-component';\nimport { linkToNodeModulesByComponents } from '@teambit/workspace.modules.node-modules-linker';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport { NewerVersionFound } from '@teambit/legacy.consumer';\nimport type { Component } from '@teambit/component';\nimport { RemoveAspect, deleteComponentsFiles } from '@teambit/remove';\nimport { formatItem, formatSection, formatWarningSummary } from '@teambit/cli';\nimport { getValidVersionOrReleaseType } from '@teambit/pkg.modules.semver-helper';\nimport { componentIdToPackageName } from '@teambit/pkg.modules.component-package-name';\nimport { PkgAspect, getPublishRegistry, shouldPublishToExternalRegistry } from '@teambit/pkg';\nimport { getBasicLog } from '@teambit/harmony.modules.get-basic-log';\nimport { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport { isSnap as isSnapVersion } from '@teambit/component-version';\nimport type { BuilderMain, OnTagOpts, UnbuiltBuilderData } from '@teambit/builder';\nimport type { ModelComponent, Log, Lane } from '@teambit/objects';\nimport { DependenciesGraph } from '@teambit/objects';\nimport { ExtensionDataEntry } from '@teambit/legacy.extension-data';\nimport type { MessagePerComponent } from './message-per-component';\nimport { MessagePerComponentFetcher } from './message-per-component';\nimport { VersionFileParser } from './version-file-parser';\nimport { throwForPlusRangeVersions } from './plus-range-versions';\nimport type { VersionCandidate } from './published-versions';\nimport { createIsVersionPublished, skipPublishedVersions } from './published-versions';\nimport type { DependencyResolverMain, ComponentRangePrefix } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect, COMPONENT_DEP_TYPE } from '@teambit/dependency-resolver';\nimport type { Registries } from '@teambit/pkg.entities.registry';\nimport type { ScopeMain, StagedConfig } from '@teambit/scope';\nimport type { Workspace, AutoTagResult } from '@teambit/workspace';\nimport { getAutoTagInfoFromComponents } from '@teambit/workspace';\nimport { findWorkspaceRootMap, writeWorkspaceRoot } from '@teambit/workspace-root';\nimport { pMapPool } from '@teambit/toolbox.promise.map-pool';\nimport type { PackageIntegritiesByPublishedPackages, SnappingMain, TagDataPerComp } from './snapping.main.runtime';\nimport type { LaneId } from '@teambit/lane-id';\n\nexport type BasicTagSnapParams = {\n message: string;\n skipTests?: boolean;\n skipTasks?: string;\n build?: boolean;\n ignoreBuildErrors?: boolean;\n rebuildDepsGraph?: boolean;\n noLockDeps?: boolean;\n detachHead?: boolean;\n overrideHead?: boolean;\n loose?: boolean;\n};\n\nexport type BasicTagParams = BasicTagSnapParams & {\n ignoreNewestVersion?: boolean;\n skipAutoTag?: boolean;\n soft?: boolean;\n persist: boolean;\n disableTagAndSnapPipelines?: boolean;\n preReleaseId?: string;\n editor?: string;\n versionsFile?: string;\n unmodified?: boolean;\n ignoreIssues?: string;\n /**\n * when the computed version is already in the registry, tag the next version that isn't.\n */\n skipPublishedVersions?: boolean;\n};\n\n/**\n * a workspace component that depends on a tagged/snapped component, but its config sets the version of this\n * dependency (e.g. \"bit deps set\"). it doesn't use the workspace version, so it's not auto-tagged.\n */\nexport type DependentWithPinnedDeps = { id: ComponentID; pinnedDependencies: string[] };\n\nexport type VersionMakerParams = {\n tagDataPerComp?: TagDataPerComp[];\n populateArtifactsFrom?: ComponentID[];\n populateArtifactsIgnorePkgJson?: boolean;\n copyLogFromPreviousSnap?: boolean;\n exactVersion?: string | null | undefined;\n releaseType?: ReleaseType;\n autoTagReleaseType?: ReleaseType;\n incrementBy?: number;\n isSnap?: boolean;\n packageManagerConfigRootDir?: string;\n exitOnFirstFailedTask?: boolean;\n updateDependentsOnLane?: boolean;\n setHeadAsParent?: boolean;\n /**\n * the workspace-root component that joined the batch on its own, being new or modified. see\n * SnappingMain.getWorkspaceRootToTagAlong.\n */\n autoAddedWorkspaceRoot?: ComponentID;\n} & BasicTagParams;\n\ntype ComputedVersion = { componentToTag: ConsumerComponent; version: string };\n\n/**\n * create a tag or a snap of the given components and save them in the local scope.\n */\nexport class VersionMaker {\n private workspace?: Workspace;\n private consumer?: Consumer;\n private legacyScope: Scope;\n private scope: ScopeMain;\n private builder: BuilderMain;\n private dependencyResolver: DependencyResolverMain;\n private allComponentsToTag: ConsumerComponent[] = [];\n private allWorkspaceComps?: Component[];\n private batchId: string = '';\n constructor(\n private snapping: SnappingMain,\n private components: Component[],\n private consumerComponents: ConsumerComponent[],\n private ids: ComponentIdList,\n private params: VersionMakerParams\n ) {\n this.workspace = snapping.workspace;\n this.scope = snapping.scope;\n this.builder = snapping.builder;\n this.dependencyResolver = snapping.dependencyResolver;\n\n this.consumer = this.workspace?.consumer;\n this.legacyScope = this.scope.legacyScope;\n }\n\n async makeVersion(): Promise<{\n taggedComponents: ConsumerComponent[];\n autoTaggedResults: AutoTagResult[];\n dependentsWithPinnedDeps: DependentWithPinnedDeps[];\n publishedPackages: string[];\n stagedConfig?: StagedConfig;\n removedComponents?: ComponentIdList;\n totalComponentsCount?: number;\n batchId: string;\n }> {\n this.batchId = v4();\n this.allWorkspaceComps = this.workspace ? await this.workspace.list() : undefined;\n const componentsToTag = this.getUniqCompsToTag();\n const idsToTag = ComponentIdList.fromArray(componentsToTag.map((c) => c.id));\n // a component that is tagged explicitly is not auto-tagged too (the scope flow may find it as both)\n // like updateDependenciesVersions, a removed component is not a new version of its dependents' dependency\n const removedIds = ComponentIdList.fromArray(componentsToTag.filter((c) => c.isRemoved()).map((c) => c.id));\n const autoTagData = (await this.getAutoTagData(idsToTag, removedIds)).filter(\n (autoTagItem) => !idsToTag.has(autoTagItem.component.id)\n );\n const autoTagComponents = autoTagData.map((autoTagItem) => autoTagItem.component);\n const autoTagIds = ComponentIdList.fromArray(autoTagComponents.map((autoTag) => autoTag.id));\n\n // Validate component issues for auto-tag components\n if (this.allWorkspaceComps && autoTagIds.length) {\n const autoTagHarmonyComponents = this.allWorkspaceComps.filter((c) => autoTagIds.has(c.id));\n await this.builder.throwForComponentIssues(autoTagHarmonyComponents, this.params.ignoreIssues);\n }\n\n await this.triggerOnPreSnap(autoTagIds);\n this.allComponentsToTag = [...componentsToTag, ...autoTagComponents];\n // in a bare scope (e.g. bit.cloud), the components were already snapped in a workspace, so they passed this check\n if (this.workspace) throwForPlusRangeVersions(this.allComponentsToTag);\n await this.parseVersionsFile(idsToTag, autoTagIds);\n const messagePerId = await this.getMessagePerId(idsToTag, autoTagIds);\n await this.checkForNewerVersions();\n this.setCurrentSchema();\n // go through all components and find the future versions for them\n this.params.isSnap ? this.setHashes() : await this.setFutureVersions(autoTagIds);\n // go through all dependencies and update their versions\n this.updateDependenciesVersions();\n const dependentsWithPinnedDeps = this.getDependentsWithPinnedDeps();\n this.recordWorkspaceRoot();\n await this.addLogToComponents(componentsToTag, autoTagComponents, messagePerId);\n // don't move it down. otherwise, it'll be empty and we don't know which components were during merge.\n // (it's being deleted in snapping.main.runtime - `_addCompToObjects` method)\n const unmergedComps = (await this.workspace?.listComponentsDuringMerge()) || [];\n const lane = await this.legacyScope.getCurrentLaneObject();\n const stagedConfig = (await this.workspace?.scope.getStagedConfig()) || undefined;\n if (this.params.soft) {\n if (!this.consumer) throw new Error(`unable to soft-tag without consumer`);\n this.consumer.updateNextVersionOnBitmap(this.allComponentsToTag, this.params.preReleaseId);\n return {\n taggedComponents: componentsToTag,\n autoTaggedResults: autoTagData,\n dependentsWithPinnedDeps,\n publishedPackages: [],\n stagedConfig,\n totalComponentsCount: this.allComponentsToTag.length,\n batchId: this.batchId,\n };\n }\n\n const { rebuildDepsGraph, noLockDeps, build, updateDependentsOnLane, setHeadAsParent, detachHead, overrideHead } =\n this.params;\n await this.snapping._addFlattenedDependenciesToComponents(this.allComponentsToTag, rebuildDepsGraph);\n if (!noLockDeps) {\n await this._addDependenciesGraphToComponents();\n }\n await this.snapping.throwForDepsFromAnotherLane(this.allComponentsToTag);\n if (!build) this.setUnbuiltBuilderData();\n this.addBuildStatus(this.allComponentsToTag, BuildStatus.Pending);\n\n const currentLane = this.consumer?.getCurrentLaneId();\n await mapSeries(this.allComponentsToTag, async (component) => {\n // hidden lane entries (lane.updateDependents) cascade through autotag but must not enter\n // the workspace bitmap. Detect via two signals: workspace flow uses absence-from-bitmap\n // (cascade autotag loaded the comp from scope); bare-scope flow checks updateDependents.\n const isHiddenLaneEntry = Boolean(\n (this.consumer && !this.consumer.bitMap.getComponentIfExist(component.id, { ignoreVersion: true })) ||\n (!this.consumer && lane?.findUpdateDependent(component.id))\n );\n // explicit signal to addVersion. Order matters — auto-tag cascade results check the\n // existing entry's bucket BEFORE applying the caller-level `updateDependentsOnLane` flag,\n // so a bare-scope reverse cascade that auto-tags a *visible* lane.components dependent\n // doesn't accidentally move it into the hidden bucket.\n // - explicit target of `snapFromScope({ updateDependents: true })` → hidden (caller flag)\n // - hidden cascade snap (auto-tagged) → keep hidden, raise override flag\n // - workspace component (in bitmap) → promote to visible (the promote-on-import path)\n // - auto-tagged visible lane component → keep visible\n const isExplicitTarget = this.ids.searchWithoutVersion(component.id) !== undefined;\n const addToUpdateDependentsInLane = (updateDependentsOnLane && isExplicitTarget) || isHiddenLaneEntry;\n const results = await this.snapping._addCompToObjects({\n source: component,\n lane,\n shouldValidateVersion: Boolean(build),\n addVersionOpts: {\n addToUpdateDependentsInLane,\n setHeadAsParent,\n detachHead,\n overrideHead: overrideHead,\n },\n batchId: this.batchId,\n });\n if (!build) {\n component.dependenciesGraph = undefined;\n component.flattenedEdges = [];\n const workspaceComp = this._findWorkspaceCompByConsumerComp(component);\n if (workspaceComp?.state._consumer) {\n workspaceComp.state._consumer.dependenciesGraph = undefined;\n workspaceComp.state._consumer.flattenedEdges = [];\n }\n }\n if (this.workspace && !isHiddenLaneEntry) {\n const modelComponent = component.modelComponent || (await this.legacyScope.getModelComponent(component.id));\n await updateVersions(\n this.workspace,\n stagedConfig!,\n currentLane!,\n modelComponent,\n results.addedVersionStr,\n true\n );\n } else if (this.workspace && isHiddenLaneEntry) {\n // hidden cascade snaps don't get a bitmap entry, but the new Version still needs to be\n // tracked in stagedSnaps so `bit export` includes it when computing the export set and\n // sends its objects over the wire.\n const modelComponent = component.modelComponent || (await this.legacyScope.getModelComponent(component.id));\n const hash = modelComponent.getRef(results.addedVersionStr);\n if (hash) this.workspace.scope.legacyScope.stagedSnaps.addSnap(hash.toString());\n }\n });\n\n if (this.workspace) {\n await this.workspace.scope.legacyScope.stagedSnaps.write();\n }\n const publishedPackages: string[] = [];\n // hidden lane entries are scope-only — `workspace.getManyByLegacy` would throw\n // MissingBitMapComponent for them. Route the workspace path through visible-only and load\n // any hidden cascade entries from scope so the build pipeline still sees them.\n const visibleCompsToTag = this.workspace\n ? this.allComponentsToTag.filter((c) => this.consumer?.bitMap.getComponentIfExist(c.id, { ignoreVersion: true }))\n : this.allComponentsToTag;\n const hiddenCompsToTag = this.workspace\n ? this.allComponentsToTag.filter((c) => !this.consumer?.bitMap.getComponentIfExist(c.id, { ignoreVersion: true }))\n : [];\n const harmonyVisibleCompsToTag = await (this.workspace || this.scope).getManyByLegacy(visibleCompsToTag);\n const harmonyHiddenCompsToTag = hiddenCompsToTag.length ? await this.scope.getManyByLegacy(hiddenCompsToTag) : [];\n const harmonyCompsToTag = [...harmonyVisibleCompsToTag, ...harmonyHiddenCompsToTag];\n // this is not necessarily the same as the previous allComponentsToTag. although it should be, because\n // harmonyCompsToTag is created from allComponentsToTag. however, for aspects, the getMany returns them from cache\n // and therefore, their instance of ConsumerComponent can be different than the one in allComponentsToTag.\n this.allComponentsToTag = harmonyCompsToTag.map((c) => c.state._consumer);\n await this.build(harmonyCompsToTag, publishedPackages);\n\n const removedComponents = await removeDeletedComponentsFromBitmap(this.allComponentsToTag, this.workspace);\n await this.addLaneObject(lane);\n await this.legacyScope.objects.persist();\n await removeMergeConfigFromComponents(unmergedComps, this.allComponentsToTag, this.workspace);\n if (this.workspace) {\n await linkToNodeModulesByComponents(harmonyCompsToTag, this.workspace);\n }\n // clear all objects. otherwise, ModelComponent has the wrong divergeData\n this.legacyScope.objects.clearObjectsFromCache();\n\n return {\n taggedComponents: componentsToTag,\n autoTaggedResults: autoTagData,\n dependentsWithPinnedDeps,\n publishedPackages,\n stagedConfig,\n removedComponents,\n totalComponentsCount: this.allComponentsToTag.length,\n batchId: this.batchId,\n };\n }\n\n private async _addDependenciesGraphToComponents(): Promise<void> {\n if (!this.workspace || !this.allWorkspaceComps) {\n return;\n }\n this.snapping.logger.setStatusLine('adding dependencies graph...');\n this.snapping.logger.profile('snap._addDependenciesGraphToComponents');\n const componentIdByPkgName = this._getComponentIdByPkgNameMap();\n const options = {\n rootDir: this.workspace.path,\n rootComponentsPath: this.workspace.rootComponentsPath,\n componentIdByPkgName,\n };\n const components: Array<{ component: Component; componentRelativeDir: string }> = [];\n for (const consumerComponent of this.allComponentsToTag) {\n const component = this._findWorkspaceCompByConsumerComp(consumerComponent);\n if (consumerComponent.componentMap?.rootDir && component) {\n components.push({\n component,\n componentRelativeDir: consumerComponent.componentMap.rootDir,\n });\n }\n }\n await this.dependencyResolver.addDependenciesGraph(components, options);\n this.snapping.logger.clearStatusLine();\n this.snapping.logger.profile('snap._addDependenciesGraphToComponents');\n }\n\n private _findWorkspaceCompByConsumerComp(consumerComponent: ConsumerComponent): Component | undefined {\n return this.allWorkspaceComps?.find((component) => component.id.isEqualWithoutVersion(consumerComponent.id));\n }\n\n private _getComponentIdByPkgNameMap(): Map<string, ComponentID> {\n if (!this.allWorkspaceComps) throw new Error('please make sure to populate this.allWorkspaceComps before');\n const componentIdByPkgName = new Map<string, ComponentID>();\n this.allComponentsToTag.forEach((consumerComponent) => {\n const component = this._findWorkspaceCompByConsumerComp(consumerComponent);\n if (component) {\n const pkgName = this.dependencyResolver.getPackageName(component);\n componentIdByPkgName.set(pkgName, consumerComponent.id);\n }\n });\n for (const workspaceComp of this.allWorkspaceComps) {\n if (\n this.allComponentsToTag.every(\n (snappedComponent) => !snappedComponent.id.isEqualWithoutVersion(workspaceComp.id)\n )\n ) {\n componentIdByPkgName.set(this.dependencyResolver.getPackageName(workspaceComp), workspaceComp.id);\n }\n }\n return componentIdByPkgName;\n }\n\n private async triggerOnPreSnap(autoTagIds: ComponentIdList) {\n const allFunctions = this.snapping.onPreSnapSlot.values();\n await mapSeries(allFunctions, (func) => func(this.components, autoTagIds, this.params));\n }\n\n private async addLaneObject(lane?: Lane) {\n if (lane) {\n const { message } = this.params;\n const msgStr = message ? ` (${message})` : '';\n // Use batchId as the lane history key so `bit reset` can identify and remove the\n // corresponding entry when it deletes the snapped versions.\n const laneHistory = await this.legacyScope.lanes.updateLaneHistory(lane, `snap${msgStr}`, this.batchId);\n this.legacyScope.objects.add(laneHistory);\n }\n }\n\n private async build(harmonyCompsToTag: Component[], publishedPackages: string[]) {\n if (!this.params.build) {\n return;\n }\n const {\n disableTagAndSnapPipelines,\n ignoreBuildErrors,\n isSnap,\n populateArtifactsFrom,\n skipTasks,\n packageManagerConfigRootDir,\n exitOnFirstFailedTask,\n populateArtifactsIgnorePkgJson,\n skipTests,\n loose,\n } = this.params;\n const onTagOpts: OnTagOpts = {\n disableTagAndSnapPipelines,\n throwOnError: true,\n forceDeploy: ignoreBuildErrors,\n isSnap,\n populateArtifactsFrom,\n loose,\n };\n const skipTasksParsed = skipTasks ? skipTasks.split(',').map((t) => t.trim()) : undefined;\n const seedersOnly = !this.workspace; // if tag from scope, build only the given components\n const isolateOptions = { packageManagerConfigRootDir, seedersOnly, populateArtifactsIgnorePkgJson };\n const builderOptions = { exitOnFirstFailedTask, skipTests, skipTasks: skipTasksParsed, loose };\n\n const componentsToBuild = harmonyCompsToTag.filter((c) => !c.isDeleted());\n if (componentsToBuild.length) {\n const componentsToBuildLegacy: ConsumerComponent[] = componentsToBuild.map((c) => c.state._consumer);\n await this.scope.reloadAspectsWithNewVersion(componentsToBuildLegacy);\n const { builderDataMap } = await this.builder.tagListener(\n componentsToBuild,\n onTagOpts,\n isolateOptions,\n builderOptions\n );\n const buildResult = this.builder.builderDataMapToLegacyOnTagResults(builderDataMap);\n\n this.snapping._updateComponentsByTagResult(componentsToBuildLegacy, buildResult);\n const packageIntegritiesByPublishedPackages = this.snapping._getPublishedPackages(componentsToBuildLegacy);\n publishedPackages.push(...Array.from(packageIntegritiesByPublishedPackages.keys()));\n\n addIntegritiesToConsumerComponentsGraphs(packageIntegritiesByPublishedPackages, this.allComponentsToTag);\n this.addBuildStatus(componentsToBuildLegacy, BuildStatus.Succeed);\n await mapSeries(componentsToBuild, (comp) => this.snapping.enrichComp(comp));\n if (populateArtifactsFrom) await updateHiddenProp(this.scope, populateArtifactsFrom);\n }\n }\n\n private async checkForNewerVersions() {\n // check for each one of the components whether it is using an old version\n // TODO: once --detach-head is supported by the remote, deprecate --ignore-newest-version. and change this\n // throwForNewestVersion to suggest using --detach-head instead. also, it the error should not be limited\n // to tags and can be thrown for snaps as well.\n // once --ignore-newest-version is removed, no need for this condition. it's ok to not provide the override-head option.\n const { detachHead, ignoreNewestVersion, isSnap } = this.params;\n if (ignoreNewestVersion && !detachHead) this.params.overrideHead = true;\n if (!ignoreNewestVersion && !isSnap) {\n await throwForNewestVersion(this.allComponentsToTag, this.legacyScope);\n }\n }\n\n private async getMessagePerId(idsToTag: ComponentIdList, autoTagIds: ComponentIdList) {\n const messagesFromEditorFetcher = new MessagePerComponentFetcher(idsToTag, autoTagIds);\n const { editor, message, tagDataPerComp } = this.params;\n if (editor) return messagesFromEditorFetcher.getMessagesFromEditor(this.legacyScope.tmp, editor);\n if (tagDataPerComp) return tagDataPerComp.map((t) => ({ id: t.componentId, msg: t.message || message }));\n return [];\n }\n\n private async parseVersionsFile(idsToTag: ComponentIdList, autoTagIds: ComponentIdList) {\n const { versionsFile } = this.params;\n if (!versionsFile) return;\n\n const allComponentsToTag = ComponentIdList.fromArray([...idsToTag, ...autoTagIds]);\n const versionFileParser = new VersionFileParser(allComponentsToTag, this.params.autoAddedWorkspaceRoot);\n const tagDataFromFile = await versionFileParser.parseVersionsFile(versionsFile);\n this.params.tagDataPerComp = tagDataFromFile;\n }\n\n private getUniqCompsToTag(): ConsumerComponent[] {\n const consumerComponentsIdsMap = {};\n // Concat and unique all the dependencies from all the components so we will not import\n // the same dependency more then once, it's mainly for performance purpose\n this.consumerComponents.forEach((consumerComponent) => {\n const componentIdString = consumerComponent.id.toString();\n // Store it in a map so we can take it easily from the sorted array which contain only the id\n consumerComponentsIdsMap[componentIdString] = consumerComponent;\n });\n return Object.values(consumerComponentsIdsMap); // consumerComponents unique\n }\n\n private async getAutoTagData(idsToTag: ComponentIdList, removedIds: ComponentIdList): Promise<AutoTagResult[]> {\n if (this.params.skipAutoTag) return [];\n // hidden lane.updateDependents are scope-only — they're not in the workspace\n // bitmap, so the workspace autotag candidate pool can't see them. Always run the scope-side\n // autotag pass alongside the workspace one when on a lane, so cascading a hidden updateDependent\n // off a workspace snap (scenario 1) works.\n const fromScope = await this.getLaneAutoTagIdsFromScope(\n idsToTag,\n removedIds,\n /* hiddenOnly */ Boolean(this.workspace)\n );\n if (!this.workspace) return fromScope;\n // ids without versions are new. it's impossible that tagged (and not-modified) components has\n // them as dependencies. Also filter out hidden lane entries — getAutoTagInfo loads\n // `[potentialComponents, ...changedComponents]` from the workspace, so a hidden id in\n // changedComponents throws MissingBitMapComponent. Hidden cascade is already covered by the\n // scope-side `fromScope` pass above.\n const consumer = this.workspace.consumer;\n const idsToTriggerAutoTag = idsToTag.filter(\n (id) => id.hasVersion() && consumer.bitMap.getComponentIfExist(id, { ignoreVersion: true })\n );\n const autoTagDataWithLocalOnly = await this.workspace.getAutoTagInfo(\n ComponentIdList.fromArray(idsToTriggerAutoTag)\n );\n const localOnly = this.workspace?.listLocalOnly();\n const fromWorkspace = localOnly\n ? autoTagDataWithLocalOnly.filter((autoTagItem) => !localOnly.hasWithoutVersion(autoTagItem.component.id))\n : autoTagDataWithLocalOnly;\n if (!fromScope.length) return fromWorkspace;\n // Dedupe: workspace autotag wins if the same id surfaces in both (the workspace consumer\n // component is the authoritative one to snap).\n const workspaceIds = new Set(fromWorkspace.map((a) => a.component.id.toStringWithoutVersion()));\n const fromScopeFiltered = fromScope.filter((a) => !workspaceIds.has(a.component.id.toStringWithoutVersion()));\n return [...fromWorkspace, ...fromScopeFiltered];\n }\n\n private async getLaneAutoTagIdsFromScope(\n idsToTag: ComponentIdList,\n removedIds: ComponentIdList,\n hiddenOnly = false\n ): Promise<AutoTagResult[]> {\n const triggerIds = ComponentIdList.fromArray(idsToTag.filter((id) => !removedIds.has(id)));\n if (!triggerIds.length) return [];\n const lane = await this.legacyScope.getCurrentLaneObject();\n if (!lane) return [];\n // for the workspace+lane path we only care about hidden entries — workspace autotag handles\n // visible ones. for the bare-scope path (no workspace), include all lane entries.\n const laneIds = hiddenOnly ? lane.updateDependents || [] : lane.toComponentIdsIncludeUpdateDependents();\n const candidateLaneIds = laneIds.filter((id) => !idsToTag.hasWithoutVersion(id));\n if (!candidateLaneIds.length) return [];\n // a bare scope (e.g. a Ripple cascade) has only the components it snaps. fetch the lane entries that are missing.\n await this.scope.import(candidateLaneIds, {\n lane,\n includeUpdateDependents: true,\n reFetchUnBuiltVersion: false,\n reason: 'to find the lane components to snap along',\n });\n const candidates = await this.legacyScope.getManyConsumerComponents(ComponentIdList.fromArray(candidateLaneIds));\n // a component that was removed from the lane is not snapped again, same as in a workspace, where it's not loaded\n const notRemovedCandidates = candidates.filter((candidate) => !candidate.isRemoved());\n return getAutoTagInfoFromComponents(notRemovedCandidates, triggerIds);\n }\n\n private async setFutureVersions(autoTagIds: ComponentIdList): Promise<void> {\n const { releaseType, autoTagReleaseType, tagDataPerComp, incrementBy, persist, soft, exactVersion, preReleaseId } =\n this.params;\n const isPreReleaseLike = releaseType\n ? ['prerelease', 'premajor', 'preminor', 'prepatch'].includes(releaseType)\n : false;\n const computedVersions: ComputedVersion[] = await Promise.all(\n this.allComponentsToTag.map(async (componentToTag) => {\n const isAutoTag = autoTagIds.hasWithoutVersion(componentToTag.id);\n const modelComponent = await this.legacyScope.sources.findOrAddComponent(componentToTag);\n const nextVersion = componentToTag.componentMap?.nextVersion?.version;\n const isAutoAddedRoot = Boolean(this.params.autoAddedWorkspaceRoot?.isEqualWithoutVersion(componentToTag.id));\n // the root joined the batch on its own. a version given for the members - `--ver`, the id, or\n // a versions-file DEFAULT - is not meant for it, so it is bumped the way an auto-tagged\n // dependent is.\n const bumpRootAsPatch = () =>\n soft ? 'patch' : modelComponent.getVersionToAdd('patch', undefined, incrementBy, preReleaseId);\n const getNewVersion = (): string => {\n if (tagDataPerComp) {\n const tagData = tagDataPerComp.find((t) => t.componentId.isEqualWithoutVersion(componentToTag.id));\n // a versions file names the components being tagged. it covers the root only when it names\n // it, see VersionFileParser - otherwise the root is still bumped on its own.\n if (!tagData && isAutoAddedRoot) return bumpRootAsPatch();\n if (!tagData) throw new Error(`tag-data is missing for ${componentToTag.id.toStringWithoutVersion()}`);\n if (!tagData.versionToTag)\n throw new Error(`tag-data.TagResults is missing for ${componentToTag.id.toStringWithoutVersion()}`);\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(tagData.versionToTag);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion,\n incrementBy,\n tagData.prereleaseId\n );\n }\n if (nextVersion && persist) {\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(nextVersion);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion,\n undefined,\n componentToTag.componentMap?.nextVersion?.preRelease\n );\n }\n if (isAutoTag) {\n // when set, it overrides the default patch bump (and the pre-release propagation below)\n if (autoTagReleaseType) {\n return soft\n ? autoTagReleaseType\n : modelComponent.getVersionToAdd(autoTagReleaseType, undefined, incrementBy, preReleaseId);\n }\n // auto-tag always bumped as patch unless it's pre-release\n if (isPreReleaseLike) {\n return soft\n ? (releaseType as string)\n : modelComponent.getVersionToAdd(releaseType, exactVersion, incrementBy, preReleaseId);\n }\n return soft ? 'patch' : modelComponent.getVersionToAdd('patch', undefined, incrementBy, preReleaseId);\n }\n if (isAutoAddedRoot) return bumpRootAsPatch();\n const versionByEnteredId = this.getVersionByEnteredId(this.ids, componentToTag, modelComponent);\n return soft\n ? versionByEnteredId || exactVersion || (releaseType as string)\n : versionByEnteredId ||\n modelComponent.getVersionToAdd(releaseType, exactVersion, incrementBy, preReleaseId);\n };\n return { componentToTag, version: getNewVersion() };\n })\n );\n const versionsToSkip = await this.getVersionsPublishedToRegistry(computedVersions);\n computedVersions.forEach(({ componentToTag, version }) => {\n componentToTag.setNewVersion(versionsToSkip.get(componentToTag.id.toStringWithoutVersion()) || version);\n });\n }\n\n /**\n * a version that is already in the registry can't be published again, so tagging it only fails\n * later on, during the publish task. see `published-versions.ts` for how the registry gets ahead\n * of the scope in the first place, and why a probe is enough to detect it.\n *\n * only derived versions are checked. a version given explicitly - `--ver`, a versions file, or\n * on the id itself (\"foo@1.2.3\") - is tagged as given, the registry is not consulted for it.\n *\n * @returns the version to tag instead, by component id, for the components that collided.\n */\n private async getVersionsPublishedToRegistry(computedVersions: ComputedVersion[]): Promise<Map<string, string>> {\n const { soft, exactVersion, tagDataPerComp } = this.params;\n // on a soft-tag the \"version\" is a release-type (e.g. \"patch\"), there is nothing to look up yet.\n if (!this.params.skipPublishedVersions || soft || exactVersion || tagDataPerComp) return new Map();\n // only an external registry can get ahead of the scope: a component published to bit's own\n // registry gets there during the export itself, so the export failing leaves nothing behind.\n // by default nothing is published externally, which makes this a no-op for most workspaces.\n const candidates = computedVersions.flatMap(({ componentToTag, version }): VersionCandidate[] => {\n if (this.hasExplicitVersion(componentToTag)) return [];\n const pkgConfig = componentToTag.extensions.findExtension(PkgAspect.id)?.config;\n if (!shouldPublishToExternalRegistry(pkgConfig)) return [];\n return [\n {\n id: componentToTag.id.toStringWithoutVersion(),\n packageName: componentIdToPackageName(componentToTag),\n version,\n registryUrl: getPublishRegistry(pkgConfig),\n },\n ];\n });\n if (!candidates.length) return new Map();\n let registries: Registries;\n try {\n registries = await this.dependencyResolver.getRegistries();\n } catch (err: any) {\n // skipping published versions is a safety net for a stuck release, never a reason to fail one.\n this.snapping.logger.console(\n formatWarningSummary(`unable to check the registry for published versions, tagging without it: ${err.message}`)\n );\n return new Map();\n }\n const skipped = await skipPublishedVersions(candidates, createIsVersionPublished(registries, this.snapping.logger));\n if (skipped.length) {\n // one section rather than a line per component: a run that got stuck can collide on all of them\n this.snapping.logger.console(\n formatSection(\n 'Versions already in the registry',\n 'an earlier run published these versions, tagging the next free one instead',\n skipped.map(({ packageName, version, versionToTag }) =>\n formatItem(`${packageName}: ${version} is taken, tagging ${versionToTag}`)\n )\n )\n );\n }\n return new Map(skipped.map(({ id, versionToTag }) => [id, versionToTag]));\n }\n\n /**\n * whether the version was given by the user for this specific component: on the id (\"foo@1.2.3\")\n * or on the soft-tag now being persisted. `--ver` and a versions file are explicit for the whole run.\n */\n private hasExplicitVersion(componentToTag: ConsumerComponent): boolean {\n const enteredVersion = this.ids.searchWithoutVersion(componentToTag.id)?.version;\n const softTagVersion = this.params.persist ? componentToTag.componentMap?.nextVersion?.version : undefined;\n return [enteredVersion, softTagVersion].some(\n (given) => given && Boolean(getValidVersionOrReleaseType(given).exactVersion)\n );\n }\n\n private setCurrentSchema() {\n this.allComponentsToTag.forEach((component) => {\n component.schema = CURRENT_SCHEMA;\n });\n }\n\n private setHashes(): void {\n this.allComponentsToTag.forEach((componentToTag) => {\n componentToTag.setNewVersion(sha1(v4()));\n });\n }\n\n private getVersionByEnteredId(\n enteredIds: ComponentIdList,\n component: ConsumerComponent,\n modelComponent: ModelComponent\n ): string | undefined {\n const enteredId = enteredIds.searchWithoutVersion(component.id);\n if (enteredId && enteredId.hasVersion()) {\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(enteredId.version as string);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion\n );\n }\n return undefined;\n }\n\n private addBuildStatus(components: ConsumerComponent[], buildStatus: BuildStatus) {\n components.forEach((component) => {\n component.buildStatus = component.isRemoved() ? BuildStatus.Skipped : buildStatus;\n });\n }\n\n /**\n * when not building, replace the builder data, otherwise, it has the old build data of the previous snap/tag.\n * (when building, the build overrides it anyway).\n * the new data has only the tasks that are going to run once the component is built (e.g. by the CI), so they can\n * be shown before the build starts.\n */\n private setUnbuiltBuilderData() {\n const plannedTasksPerComp = this.builder.getPlannedTasks(\n this.getHarmonyComps(this.allComponentsToTag.filter((c) => !c.isRemoved())),\n this.params.isSnap ? 'snap' : 'tag'\n );\n this.allComponentsToTag.forEach((component) => {\n component.extensions = component.extensions.clone();\n const plannedTasks = plannedTasksPerComp.get(component.id.toStringWithoutVersion());\n const data: Partial<UnbuiltBuilderData> = plannedTasks ? { plannedTasks } : {};\n const existingBuilder = component.extensions.findCoreExtension(Extensions.builder);\n if (existingBuilder) existingBuilder.data = data;\n else if (plannedTasks)\n component.extensions.push(new ExtensionDataEntry(undefined, undefined, Extensions.builder, {}, data));\n });\n }\n\n /**\n * the harmony components that were already loaded. (the auto-tagged ones are available only in a workspace).\n */\n private getHarmonyComps(consumerComponents: ConsumerComponent[]): Component[] {\n const loadedComps = [...this.components, ...(this.allWorkspaceComps || [])];\n return compact(\n consumerComponents.map((consumerComp) =>\n loadedComps.find((comp) => comp.id.isEqualWithoutVersion(consumerComp.id))\n )\n );\n }\n\n private updateDependenciesVersions() {\n // filter out removed components.\n // if a component has a deleted-component as a dependency, it was probably running \"bit install <dep>\" with a version\n // from main. we want to keep it as the user requested. Otherwise, this changes the dependency version to the newly\n // snapped one unintentionally.\n const componentsToTag = this.allComponentsToTag.filter((c) => !c.isRemoved());\n const getNewDependencyVersion = (id: ComponentID, dependent?: ConsumerComponent): ComponentID | null => {\n const foundDependency = componentsToTag.find((component) => component.id.isEqualWithoutVersion(id));\n if (!foundDependency) return null;\n // the dependent uses the version set in its config (e.g. \"bit deps set\"), not the workspace one. keep it.\n if (dependent?.isDependencyVersionFromConfig(id)) return null;\n return id.changeVersion(foundDependency.version);\n };\n const changeExtensionsVersion = (component: ConsumerComponent): void => {\n component.extensions.forEach((ext) => {\n if (ext.extensionId) {\n const newDepId = getNewDependencyVersion(ext.extensionId);\n if (newDepId) ext.extensionId = newDepId;\n }\n });\n };\n // in case we update dependencies according to the currently tagged component, we want to keep the versionRange\n // up to date with the new tags. e.g. 0.0.1 -> 0.0.2, will change the versionRange to ^0.0.2 or ~0.0.2.\n // in case componentRangePrefix is \"+\", we care only about packages in workspace.jsonc. so it won't be relevant.\n const updateDepsResolverData = (component: ConsumerComponent, componentRangePrefix?: ComponentRangePrefix) => {\n const entry = component.extensions.findCoreExtension(DependencyResolverAspect.id);\n if (!entry) {\n return component;\n }\n const dependencies = get(entry, ['data', 'dependencies'], []);\n dependencies.forEach((dep) => {\n if (dep.__type !== COMPONENT_DEP_TYPE) {\n return;\n }\n // @todo: it's unclear why \"dep.componentId\" randomly becomes a ComponentID instance.\n // this check is added because on Ripple in some scenarios it was throwing:\n // \"ComponentID.fromObject expect to get an object, got an instance of ComponentID\" (locally it didn't happen)\n const depId =\n dep.componentId instanceof ComponentID ? dep.componentId : ComponentID.fromObject(dep.componentId);\n const newDepId = getNewDependencyVersion(depId, component);\n dep.componentId = (newDepId || depId).serialize();\n dep.id = (newDepId || depId).toString();\n dep.version = (newDepId || depId).version;\n // if newDepId, then it means the dependency is in the current workspace and currently being tagged.\n // the versionRange needs to be updated to the new version.\n // However, for snaps, we should not apply range prefixes as they are not valid semver\n if (newDepId && (componentRangePrefix === '^' || componentRangePrefix === '~') && !isSnapVersion(dep.version)) {\n dep.versionRange = `${componentRangePrefix}${dep.version}`;\n }\n });\n return component;\n };\n\n componentsToTag.forEach((oneComponentToTag) => {\n const componentRangePrefix =\n this.dependencyResolver.calcComponentRangePrefixByConsumerComponent(oneComponentToTag);\n oneComponentToTag.getAllDependencies().forEach((dependency) => {\n const newDepId = getNewDependencyVersion(dependency.id, oneComponentToTag);\n if (!newDepId) return;\n dependency.id = newDepId;\n // if componentRangePrefix === '+', then, only it only saves packages in workspace.jsonc.\n // in this case, these dependencies are in .bitmap. not in workspace.jsonc. so it's not relevant.\n // For snaps (hash versions), we should not apply range prefixes as they are not valid semver\n if ((componentRangePrefix === '^' || componentRangePrefix === '~') && !isSnapVersion(newDepId.version)) {\n dependency.versionRange = `${componentRangePrefix}${newDepId.version}`;\n }\n });\n changeExtensionsVersion(oneComponentToTag);\n oneComponentToTag = updateDepsResolverData(oneComponentToTag);\n });\n }\n\n private getDependentsWithPinnedDeps(): DependentWithPinnedDeps[] {\n if (!this.allWorkspaceComps) return [];\n const idsToTag = ComponentIdList.fromArray(this.allComponentsToTag.map((c) => c.id));\n // like updateDependenciesVersions, a removed component doesn't count as a new version of a dependency\n const idsWithNewVersion = ComponentIdList.fromArray(\n this.allComponentsToTag.filter((c) => !c.isRemoved()).map((c) => c.id)\n );\n return compact(\n this.allWorkspaceComps.map((component) => {\n const consumerComponent: ConsumerComponent = component.state._consumer;\n const pinnedDependencies = consumerComponent.getDependenciesWithVersionFromConfig((id) =>\n idsWithNewVersion.hasWithoutVersion(id)\n );\n if (!pinnedDependencies.length || idsToTag.hasWithoutVersion(component.id)) return null;\n return { id: component.id, pinnedDependencies };\n })\n );\n }\n\n /**\n * every member of a workspace-root component records the root it is snapped in, at the version the\n * root has after this batch: its new version when it is snapped along, otherwise the one in .bitmap.\n * tag and snap bring a new or modified root into the batch (see SnappingMain.getWorkspaceRootToTagAlong),\n * so the version is only missing on the paths that don't, such as a merge snap made while the root\n * was never snapped. the root itself records nothing here, it carries the isRoot marker instead.\n * see WorkspaceRootMain.\n *\n * a workspace with no root of its own writes nothing, and has nothing to undo either: aspect data is\n * supplied fresh by the loader on every load rather than inherited from the version before it, so a\n * component imported from a workspace that had a root arrives here without one. what does carry over\n * is the extension's (empty) config, which is why the entry itself outlives the data it held.\n */\n private recordWorkspaceRoot() {\n const consumer = this.consumer;\n if (!consumer) return;\n const rootMap = findWorkspaceRootMap(consumer.bitMap);\n if (!rootMap) return;\n const rootInBatch = this.allComponentsToTag.find((component) => component.id.isEqualWithoutVersion(rootMap.id));\n const rootId = rootInBatch ? rootInBatch.id.changeVersion(rootInBatch.version) : rootMap.id;\n this.allComponentsToTag.forEach((component) => {\n // the root records no root of its own, it carries the isRoot marker the loader gives it\n if (component.id.isEqualWithoutVersion(rootMap.id)) return;\n // hidden lane entries (lane.updateDependents) cascade into the batch from the scope rather than\n // from the workspace, so they were not snapped in this root. absence from .bitmap is how they\n // are told apart elsewhere in this file as well\n if (!consumer.bitMap.getComponentIfExist(component.id, { ignoreVersion: true })) return;\n writeWorkspaceRoot(component.extensions, rootId);\n });\n }\n\n private async addLogToComponents(\n components: ConsumerComponent[],\n autoTagComps: ConsumerComponent[],\n messagePerComponent: MessagePerComponent[]\n ) {\n let { message } = this.params;\n const { persist, copyLogFromPreviousSnap } = this.params;\n // @ts-ignore this happens when running `bit tag -m \"\"`.\n if (message === true) {\n message = '';\n }\n const basicLog = await getBasicLog();\n const getLog = (component: ConsumerComponent): Log => {\n const nextVersion = persist ? component.componentMap?.nextVersion : null;\n const msgFromEditor = messagePerComponent.find((item) => item.id.isEqualWithoutVersion(component.id))?.msg;\n if (copyLogFromPreviousSnap) {\n const currentLog = component.log;\n if (!currentLog) {\n throw new Error(\n `addLogToComponents is set copyLogFromPreviousSnap: true, but it is unable to find log in the previous snap`\n );\n }\n // return a new object rather than mutating the current log. the current log object belongs\n // to the previous snap Version instance, which is cached in the repository. mutating it and\n // later persisting that Version (e.g. when marking it as hidden) would overwrite the\n // previous snap's message and date with the new version's data.\n return {\n ...currentLog,\n message: msgFromEditor || message || currentLog.message,\n date: basicLog.date,\n };\n }\n\n return {\n username: nextVersion?.username || basicLog.username,\n email: nextVersion?.email || basicLog.email,\n message: nextVersion?.message || msgFromEditor || message,\n date: basicLog.date,\n };\n };\n\n components.forEach((component) => {\n component.log = getLog(component);\n });\n autoTagComps.forEach((autoTagComp) => {\n autoTagComp.log = getLog(autoTagComp);\n const defaultMsg = 'bump dependencies versions';\n if (message) {\n autoTagComp.log.message += ` (${defaultMsg})`;\n } else if (!autoTagComp.log.message) {\n autoTagComp.log.message = defaultMsg;\n }\n });\n }\n}\n\nasync function throwForNewestVersion(allComponentsToTag: ConsumerComponent[], legacyScope: Scope) {\n const newestVersionsP = allComponentsToTag.map(async (component) => {\n if (component.componentFromModel) {\n // otherwise it's a new component, so this check is irrelevant\n const modelComponent = await legacyScope.getModelComponentIfExist(component.id);\n if (!modelComponent) throw new BitError(`component ${component.id} was not found in the model`);\n if (!modelComponent.listVersions().length) return null; // no versions yet, no issues.\n const latest = modelComponent.getHeadRegardlessOfLaneAsTagOrHash();\n if (latest !== component.version) {\n return {\n componentId: component.id.toStringWithoutVersion(),\n currentVersion: component.version!,\n latestVersion: latest,\n };\n }\n }\n return null;\n });\n const newestVersions = await Promise.all(newestVersionsP);\n const newestVersionsWithoutEmpty = compact(newestVersions);\n if (newestVersionsWithoutEmpty.length) {\n throw new NewerVersionFound(newestVersionsWithoutEmpty);\n }\n}\n\nfunction addIntegritiesToConsumerComponentsGraphs(\n packageIntegritiesByPublishedPackages: PackageIntegritiesByPublishedPackages,\n consumerComponents: ConsumerComponent[]\n) {\n const _addIntegritiesToDependenciesGraph = addIntegritiesToDependenciesGraph.bind(\n null,\n packageIntegritiesByPublishedPackages\n );\n for (const consumerComponent of consumerComponents) {\n if (consumerComponent.dependenciesGraph) {\n consumerComponent.dependenciesGraph = _addIntegritiesToDependenciesGraph(consumerComponent.dependenciesGraph);\n }\n }\n}\n\n/**\n * Updates the dependencies graph by replacing all \"pending\" version numbers of component dependencies\n * with the actual version numbers of the recently published packages. It also attaches the integrity\n * checksums of these components to ensure data integrity for each resolved dependency.\n *\n * @param packageIntegritiesByPublishedPackages - A map of package names and versions to their integrity checksums.\n * @param dependenciesGraph - The current dependencies graph, containing nodes with potentially \"pending\" versions.\n * @returns A new DependenciesGraph with updated versions and integrity checksums for all previously pending dependencies.\n */\nfunction addIntegritiesToDependenciesGraph(\n packageIntegritiesByPublishedPackages: PackageIntegritiesByPublishedPackages,\n dependenciesGraph: DependenciesGraph\n): DependenciesGraph {\n const resolvedVersions: Array<{ name: string; version: string; previouslyUsedVersion?: string }> = [];\n for (const [selector, { integrity, previouslyUsedVersion }] of packageIntegritiesByPublishedPackages.entries()) {\n if (integrity == null) continue;\n const index = selector.indexOf('@', 1);\n const name = selector.substring(0, index);\n const version = selector.substring(index + 1);\n const pendingKey = dependenciesGraph.packages.has(`${name}@${previouslyUsedVersion}`)\n ? `${name}@${previouslyUsedVersion}`\n : `${name}@${version}`;\n const pendingPkg = dependenciesGraph.packages.get(pendingKey);\n if (pendingPkg) {\n dependenciesGraph.packages.set(pendingKey, { ...pendingPkg, resolution: { integrity } });\n resolvedVersions.push({ name, version, previouslyUsedVersion });\n }\n }\n return replacePendingVersions(dependenciesGraph, resolvedVersions) as DependenciesGraph;\n}\n\nasync function removeDeletedComponentsFromBitmap(\n comps: ConsumerComponent[],\n workspace?: Workspace\n): Promise<ComponentIdList | undefined> {\n if (!workspace) {\n return undefined;\n }\n const removedComps = comps.filter((comp) => comp.isRemoved());\n if (!removedComps.length) return undefined;\n const compBitIdsToRemove = ComponentIdList.fromArray(removedComps.map((c) => c.id));\n await deleteComponentsFiles(workspace.consumer, compBitIdsToRemove);\n await workspace.consumer.cleanFromBitMap(compBitIdsToRemove);\n\n return compBitIdsToRemove;\n}\n\nasync function removeMergeConfigFromComponents(\n unmergedComps: ComponentID[],\n components: ConsumerComponent[],\n workspace?: Workspace\n) {\n if (!workspace || !unmergedComps.length) {\n return;\n }\n const configMergeFile = workspace.getConflictMergeFile();\n\n unmergedComps.forEach((compId) => {\n const isNowSnapped = components.find((c) => c.id.isEqualWithoutVersion(compId));\n if (isNowSnapped) {\n configMergeFile.removeConflict(compId.toStringWithoutVersion());\n }\n });\n const currentlyUnmerged = workspace ? await workspace.listComponentsDuringMerge() : [];\n if (configMergeFile.hasConflict() && currentlyUnmerged.length) {\n // it's possible that \"workspace\" section is still there. but if all \"unmerged\" are now merged,\n // then, it's safe to delete the file.\n await configMergeFile.write();\n } else {\n await configMergeFile.delete();\n }\n}\n\nexport type BitCloudUser = {\n username?: string;\n name?: string;\n displayName?: string;\n profileImage?: string;\n};\n\nfunction isAvailableOnMain(currentLane: LaneId, modelComponent: ModelComponent, id: ComponentID) {\n if (currentLane.isDefault()) {\n return true;\n }\n if (!id.hasVersion()) {\n // component was unsnapped on the current lane and is back to a new component\n return true;\n }\n return modelComponent.hasHead();\n}\n\nexport async function updateVersions(\n workspace: Workspace,\n stagedConfig: StagedConfig,\n currentLane: LaneId,\n modelComponent: ModelComponent,\n versionToSetInBitmap?: string, // helpful for detached head\n isTag = true\n) {\n const consumer = workspace.consumer;\n const idLatest: ComponentID = modelComponent.toBitIdWithLatestVersionAllowNull();\n const id = versionToSetInBitmap ? idLatest.changeVersion(versionToSetInBitmap) : idLatest;\n const isOnBitmap = consumer.bitMap.getComponentIfExist(id, { ignoreVersion: true });\n if (!isOnBitmap && !isTag) {\n // handle the case when a component was deleted, snapped/tagged and is now reset.\n const stagedData = stagedConfig.getPerId(id);\n if (stagedData?.config && stagedData.config[RemoveAspect.id]) {\n consumer.bitMap.addFromComponentJson(stagedData.id, stagedData.componentMapObject);\n }\n }\n consumer.bitMap.updateComponentId(id, undefined, undefined, true);\n const availableOnMain = isAvailableOnMain(currentLane, modelComponent, id);\n if (!availableOnMain) {\n consumer.bitMap.setOnLanesOnly(id, true);\n }\n const componentMap = consumer.bitMap.getComponent(id);\n const compId = await workspace.resolveComponentId(id);\n // it can be either a tag/snap or reset.\n if (isTag) {\n const compMapObj = componentMap.toPlainObject();\n const config = componentMap.config;\n stagedConfig.addComponentConfig(compId, config, compMapObj);\n consumer.bitMap.removeConfig(id);\n const hash = modelComponent.getRef(id.version as string);\n if (!hash) throw new Error(`updateComponentsVersions: unable to find a hash for ${id.toString()}`);\n workspace.scope.legacyScope.stagedSnaps.addSnap(hash?.toString());\n } else if (!componentMap.config) {\n componentMap.config = stagedConfig.getConfigPerId(compId);\n }\n componentMap.clearNextVersion();\n}\n\nfunction replacePendingVersions(\n graph: DependenciesGraph,\n resolvedVersions: Array<{ name: string; version: string; previouslyUsedVersion?: string }>\n): DependenciesGraph {\n let s = graph.serialize();\n for (const { name, version, previouslyUsedVersion } of resolvedVersions) {\n if (previouslyUsedVersion) {\n s = s.replaceAll(`${name}@${previouslyUsedVersion}:`, `${name}@${version}`);\n }\n }\n const updatedDependenciesGraph = DependenciesGraph.deserialize(s);\n // This should never happen as we know at this point that the schema version is supported\n if (updatedDependenciesGraph == null) {\n throw new BitError('Failed to deserialize dependencies graph in replacePendingVersions()');\n }\n return updatedDependenciesGraph;\n}\n\n/**\n * relevant for \"_tag\" (tag-from-scope) command.\n * the new tag uses the same files/config/build-artifacts as the previous snap.\n * we want to mark the previous snap as hidden. so then \"bit log\" and \"bit blame\" won't show it.\n */\nasync function updateHiddenProp(scope: ScopeMain, ids: ComponentID[]) {\n const log = await getBasicLog();\n log.message = 'marked as hidden';\n await pMapPool(\n ids,\n async (id) => {\n const versionObj = await scope.getBitObjectVersionById(id);\n if (!versionObj) return;\n versionObj.hidden = true;\n versionObj.addModifiedLog(log);\n scope.legacyScope.objects.add(versionObj);\n },\n { concurrency: 50 }\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_lodash","_uuid","_bitError","_componentId","_legacy","_legacy2","_workspaceModules","_legacy3","_remove","_cli","_pkgModules","_pkgModules2","_pkg","_harmonyModules","_toolboxCrypto","_componentVersion","_objects","_legacy4","_messagePerComponent","_versionFileParser","_plusRangeVersions","_publishedVersions","_dependencyResolver","_workspace","_workspaceRoot","_toolboxPromise","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","VersionMaker","constructor","snapping","components","consumerComponents","ids","params","workspace","scope","builder","dependencyResolver","consumer","legacyScope","makeVersion","batchId","v4","allWorkspaceComps","list","undefined","componentsToTag","getUniqCompsToTag","idsToTag","ComponentIdList","fromArray","map","c","id","removedIds","isRemoved","autoTagData","getAutoTagData","autoTagItem","has","component","autoTagComponents","autoTagIds","autoTag","autoTagHarmonyComponents","throwForComponentIssues","ignoreIssues","triggerOnPreSnap","allComponentsToTag","throwForPlusRangeVersions","parseVersionsFile","messagePerId","getMessagePerId","checkForNewerVersions","setCurrentSchema","isSnap","setHashes","setFutureVersions","updateDependenciesVersions","dependentsWithPinnedDeps","getDependentsWithPinnedDeps","recordWorkspaceRoot","addLogToComponents","unmergedComps","listComponentsDuringMerge","lane","getCurrentLaneObject","stagedConfig","getStagedConfig","soft","Error","updateNextVersionOnBitmap","preReleaseId","taggedComponents","autoTaggedResults","publishedPackages","totalComponentsCount","rebuildDepsGraph","noLockDeps","build","updateDependentsOnLane","setHeadAsParent","detachHead","overrideHead","_addFlattenedDependenciesToComponents","_addDependenciesGraphToComponents","throwForDepsFromAnotherLane","setUnbuiltBuilderData","addBuildStatus","BuildStatus","Pending","currentLane","getCurrentLaneId","mapSeries","isHiddenLaneEntry","Boolean","bitMap","getComponentIfExist","ignoreVersion","findUpdateDependent","isExplicitTarget","searchWithoutVersion","addToUpdateDependentsInLane","results","_addCompToObjects","source","shouldValidateVersion","addVersionOpts","dependenciesGraph","flattenedEdges","workspaceComp","_findWorkspaceCompByConsumerComp","state","_consumer","modelComponent","getModelComponent","updateVersions","addedVersionStr","hash","getRef","stagedSnaps","addSnap","toString","write","visibleCompsToTag","hiddenCompsToTag","harmonyVisibleCompsToTag","getManyByLegacy","harmonyHiddenCompsToTag","harmonyCompsToTag","removedComponents","removeDeletedComponentsFromBitmap","addLaneObject","objects","persist","removeMergeConfigFromComponents","linkToNodeModulesByComponents","clearObjectsFromCache","logger","setStatusLine","profile","componentIdByPkgName","_getComponentIdByPkgNameMap","options","rootDir","path","rootComponentsPath","consumerComponent","componentMap","componentRelativeDir","addDependenciesGraph","clearStatusLine","find","isEqualWithoutVersion","Map","pkgName","getPackageName","set","every","snappedComponent","allFunctions","onPreSnapSlot","values","func","message","msgStr","laneHistory","lanes","updateLaneHistory","add","disableTagAndSnapPipelines","ignoreBuildErrors","populateArtifactsFrom","skipTasks","packageManagerConfigRootDir","exitOnFirstFailedTask","populateArtifactsIgnorePkgJson","skipTests","loose","onTagOpts","throwOnError","forceDeploy","skipTasksParsed","split","trim","seedersOnly","isolateOptions","builderOptions","componentsToBuild","isDeleted","componentsToBuildLegacy","reloadAspectsWithNewVersion","builderDataMap","tagListener","buildResult","builderDataMapToLegacyOnTagResults","_updateComponentsByTagResult","packageIntegritiesByPublishedPackages","_getPublishedPackages","Array","from","addIntegritiesToConsumerComponentsGraphs","Succeed","comp","enrichComp","updateHiddenProp","ignoreNewestVersion","throwForNewestVersion","messagesFromEditorFetcher","MessagePerComponentFetcher","editor","tagDataPerComp","getMessagesFromEditor","tmp","componentId","msg","versionsFile","versionFileParser","VersionFileParser","autoAddedWorkspaceRoot","tagDataFromFile","consumerComponentsIdsMap","componentIdString","skipAutoTag","fromScope","getLaneAutoTagIdsFromScope","idsToTriggerAutoTag","hasVersion","autoTagDataWithLocalOnly","getAutoTagInfo","localOnly","listLocalOnly","fromWorkspace","hasWithoutVersion","workspaceIds","Set","a","toStringWithoutVersion","fromScopeFiltered","hiddenOnly","triggerIds","laneIds","updateDependents","toComponentIdsIncludeUpdateDependents","candidateLaneIds","import","includeUpdateDependents","reFetchUnBuiltVersion","reason","candidates","getManyConsumerComponents","notRemovedCandidates","candidate","getAutoTagInfoFromComponents","releaseType","autoTagReleaseType","incrementBy","exactVersion","isPreReleaseLike","includes","computedVersions","Promise","all","componentToTag","isAutoTag","sources","findOrAddComponent","nextVersion","version","isAutoAddedRoot","bumpRootAsPatch","getVersionToAdd","getNewVersion","tagData","versionToTag","exactVersionOrReleaseType","getValidVersionOrReleaseType","prereleaseId","preRelease","versionByEnteredId","getVersionByEnteredId","versionsToSkip","getVersionsPublishedToRegistry","setNewVersion","get","skipPublishedVersions","flatMap","hasExplicitVersion","pkgConfig","extensions","findExtension","PkgAspect","config","shouldPublishToExternalRegistry","packageName","componentIdToPackageName","registryUrl","getPublishRegistry","registries","getRegistries","err","console","formatWarningSummary","skipped","createIsVersionPublished","formatSection","formatItem","enteredVersion","softTagVersion","some","given","schema","CURRENT_SCHEMA","sha1","enteredIds","enteredId","buildStatus","Skipped","plannedTasksPerComp","getPlannedTasks","getHarmonyComps","clone","plannedTasks","existingBuilder","findCoreExtension","Extensions","ExtensionDataEntry","loadedComps","compact","consumerComp","getNewDependencyVersion","dependent","foundDependency","isDependencyVersionFromConfig","changeVersion","changeExtensionsVersion","ext","extensionId","newDepId","updateDepsResolverData","componentRangePrefix","entry","DependencyResolverAspect","dependencies","dep","__type","COMPONENT_DEP_TYPE","depId","ComponentID","fromObject","serialize","isSnapVersion","versionRange","oneComponentToTag","calcComponentRangePrefixByConsumerComponent","getAllDependencies","dependency","idsWithNewVersion","pinnedDependencies","getDependenciesWithVersionFromConfig","rootMap","findWorkspaceRootMap","rootInBatch","rootId","writeWorkspaceRoot","autoTagComps","messagePerComponent","copyLogFromPreviousSnap","basicLog","getBasicLog","getLog","msgFromEditor","item","currentLog","log","date","username","email","autoTagComp","defaultMsg","exports","newestVersionsP","componentFromModel","getModelComponentIfExist","BitError","listVersions","latest","getHeadRegardlessOfLaneAsTagOrHash","currentVersion","latestVersion","newestVersions","newestVersionsWithoutEmpty","NewerVersionFound","_addIntegritiesToDependenciesGraph","addIntegritiesToDependenciesGraph","bind","resolvedVersions","selector","integrity","previouslyUsedVersion","entries","index","indexOf","name","substring","pendingKey","packages","pendingPkg","resolution","replacePendingVersions","comps","removedComps","compBitIdsToRemove","deleteComponentsFiles","cleanFromBitMap","configMergeFile","getConflictMergeFile","compId","isNowSnapped","removeConflict","currentlyUnmerged","hasConflict","delete","isAvailableOnMain","isDefault","hasHead","versionToSetInBitmap","isTag","idLatest","toBitIdWithLatestVersionAllowNull","isOnBitmap","stagedData","getPerId","RemoveAspect","addFromComponentJson","componentMapObject","updateComponentId","availableOnMain","setOnLanesOnly","getComponent","resolveComponentId","compMapObj","toPlainObject","addComponentConfig","removeConfig","removed","markAsChanged","getConfigPerId","clearNextVersion","graph","s","replaceAll","updatedDependenciesGraph","DependenciesGraph","deserialize","pMapPool","versionObj","getBitObjectVersionById","hidden","addModifiedLog","concurrency"],"sources":["version-maker.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport { compact, get } from 'lodash';\nimport type { ReleaseType } from 'semver';\nimport { v4 } from 'uuid';\nimport { BitError } from '@teambit/bit-error';\nimport type { Scope } from '@teambit/legacy.scope';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { BuildStatus, Extensions } from '@teambit/legacy.constants';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport { CURRENT_SCHEMA } from '@teambit/legacy.consumer-component';\nimport { linkToNodeModulesByComponents } from '@teambit/workspace.modules.node-modules-linker';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport { NewerVersionFound } from '@teambit/legacy.consumer';\nimport type { Component } from '@teambit/component';\nimport { RemoveAspect, deleteComponentsFiles } from '@teambit/remove';\nimport { formatItem, formatSection, formatWarningSummary } from '@teambit/cli';\nimport { getValidVersionOrReleaseType } from '@teambit/pkg.modules.semver-helper';\nimport { componentIdToPackageName } from '@teambit/pkg.modules.component-package-name';\nimport { PkgAspect, getPublishRegistry, shouldPublishToExternalRegistry } from '@teambit/pkg';\nimport { getBasicLog } from '@teambit/harmony.modules.get-basic-log';\nimport { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport { isSnap as isSnapVersion } from '@teambit/component-version';\nimport type { BuilderMain, OnTagOpts, UnbuiltBuilderData } from '@teambit/builder';\nimport type { ModelComponent, Log, Lane } from '@teambit/objects';\nimport { DependenciesGraph } from '@teambit/objects';\nimport { ExtensionDataEntry } from '@teambit/legacy.extension-data';\nimport type { MessagePerComponent } from './message-per-component';\nimport { MessagePerComponentFetcher } from './message-per-component';\nimport { VersionFileParser } from './version-file-parser';\nimport { throwForPlusRangeVersions } from './plus-range-versions';\nimport type { VersionCandidate } from './published-versions';\nimport { createIsVersionPublished, skipPublishedVersions } from './published-versions';\nimport type { DependencyResolverMain, ComponentRangePrefix } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect, COMPONENT_DEP_TYPE } from '@teambit/dependency-resolver';\nimport type { Registries } from '@teambit/pkg.entities.registry';\nimport type { ScopeMain, StagedConfig } from '@teambit/scope';\nimport type { Workspace, AutoTagResult } from '@teambit/workspace';\nimport { getAutoTagInfoFromComponents } from '@teambit/workspace';\nimport { findWorkspaceRootMap, writeWorkspaceRoot } from '@teambit/workspace-root';\nimport { pMapPool } from '@teambit/toolbox.promise.map-pool';\nimport type { PackageIntegritiesByPublishedPackages, SnappingMain, TagDataPerComp } from './snapping.main.runtime';\nimport type { LaneId } from '@teambit/lane-id';\n\nexport type BasicTagSnapParams = {\n message: string;\n skipTests?: boolean;\n skipTasks?: string;\n build?: boolean;\n ignoreBuildErrors?: boolean;\n rebuildDepsGraph?: boolean;\n noLockDeps?: boolean;\n detachHead?: boolean;\n overrideHead?: boolean;\n loose?: boolean;\n};\n\nexport type BasicTagParams = BasicTagSnapParams & {\n ignoreNewestVersion?: boolean;\n skipAutoTag?: boolean;\n soft?: boolean;\n persist: boolean;\n disableTagAndSnapPipelines?: boolean;\n preReleaseId?: string;\n editor?: string;\n versionsFile?: string;\n unmodified?: boolean;\n ignoreIssues?: string;\n /**\n * when the computed version is already in the registry, tag the next version that isn't.\n */\n skipPublishedVersions?: boolean;\n};\n\n/**\n * a workspace component that depends on a tagged/snapped component, but its config sets the version of this\n * dependency (e.g. \"bit deps set\"). it doesn't use the workspace version, so it's not auto-tagged.\n */\nexport type DependentWithPinnedDeps = { id: ComponentID; pinnedDependencies: string[] };\n\nexport type VersionMakerParams = {\n tagDataPerComp?: TagDataPerComp[];\n populateArtifactsFrom?: ComponentID[];\n populateArtifactsIgnorePkgJson?: boolean;\n copyLogFromPreviousSnap?: boolean;\n exactVersion?: string | null | undefined;\n releaseType?: ReleaseType;\n autoTagReleaseType?: ReleaseType;\n incrementBy?: number;\n isSnap?: boolean;\n packageManagerConfigRootDir?: string;\n exitOnFirstFailedTask?: boolean;\n updateDependentsOnLane?: boolean;\n setHeadAsParent?: boolean;\n /**\n * the workspace-root component that joined the batch on its own, being new or modified. see\n * SnappingMain.getWorkspaceRootToTagAlong.\n */\n autoAddedWorkspaceRoot?: ComponentID;\n} & BasicTagParams;\n\ntype ComputedVersion = { componentToTag: ConsumerComponent; version: string };\n\n/**\n * create a tag or a snap of the given components and save them in the local scope.\n */\nexport class VersionMaker {\n private workspace?: Workspace;\n private consumer?: Consumer;\n private legacyScope: Scope;\n private scope: ScopeMain;\n private builder: BuilderMain;\n private dependencyResolver: DependencyResolverMain;\n private allComponentsToTag: ConsumerComponent[] = [];\n private allWorkspaceComps?: Component[];\n private batchId: string = '';\n constructor(\n private snapping: SnappingMain,\n private components: Component[],\n private consumerComponents: ConsumerComponent[],\n private ids: ComponentIdList,\n private params: VersionMakerParams\n ) {\n this.workspace = snapping.workspace;\n this.scope = snapping.scope;\n this.builder = snapping.builder;\n this.dependencyResolver = snapping.dependencyResolver;\n\n this.consumer = this.workspace?.consumer;\n this.legacyScope = this.scope.legacyScope;\n }\n\n async makeVersion(): Promise<{\n taggedComponents: ConsumerComponent[];\n autoTaggedResults: AutoTagResult[];\n dependentsWithPinnedDeps: DependentWithPinnedDeps[];\n publishedPackages: string[];\n stagedConfig?: StagedConfig;\n removedComponents?: ComponentIdList;\n totalComponentsCount?: number;\n batchId: string;\n }> {\n this.batchId = v4();\n this.allWorkspaceComps = this.workspace ? await this.workspace.list() : undefined;\n const componentsToTag = this.getUniqCompsToTag();\n const idsToTag = ComponentIdList.fromArray(componentsToTag.map((c) => c.id));\n // a component that is tagged explicitly is not auto-tagged too (the scope flow may find it as both)\n // like updateDependenciesVersions, a removed component is not a new version of its dependents' dependency\n const removedIds = ComponentIdList.fromArray(componentsToTag.filter((c) => c.isRemoved()).map((c) => c.id));\n const autoTagData = (await this.getAutoTagData(idsToTag, removedIds)).filter(\n (autoTagItem) => !idsToTag.has(autoTagItem.component.id)\n );\n const autoTagComponents = autoTagData.map((autoTagItem) => autoTagItem.component);\n const autoTagIds = ComponentIdList.fromArray(autoTagComponents.map((autoTag) => autoTag.id));\n\n // Validate component issues for auto-tag components\n if (this.allWorkspaceComps && autoTagIds.length) {\n const autoTagHarmonyComponents = this.allWorkspaceComps.filter((c) => autoTagIds.has(c.id));\n await this.builder.throwForComponentIssues(autoTagHarmonyComponents, this.params.ignoreIssues);\n }\n\n await this.triggerOnPreSnap(autoTagIds);\n this.allComponentsToTag = [...componentsToTag, ...autoTagComponents];\n // in a bare scope (e.g. bit.cloud), the components were already snapped in a workspace, so they passed this check\n if (this.workspace) throwForPlusRangeVersions(this.allComponentsToTag);\n await this.parseVersionsFile(idsToTag, autoTagIds);\n const messagePerId = await this.getMessagePerId(idsToTag, autoTagIds);\n await this.checkForNewerVersions();\n this.setCurrentSchema();\n // go through all components and find the future versions for them\n this.params.isSnap ? this.setHashes() : await this.setFutureVersions(autoTagIds);\n // go through all dependencies and update their versions\n this.updateDependenciesVersions();\n const dependentsWithPinnedDeps = this.getDependentsWithPinnedDeps();\n this.recordWorkspaceRoot();\n await this.addLogToComponents(componentsToTag, autoTagComponents, messagePerId);\n // don't move it down. otherwise, it'll be empty and we don't know which components were during merge.\n // (it's being deleted in snapping.main.runtime - `_addCompToObjects` method)\n const unmergedComps = (await this.workspace?.listComponentsDuringMerge()) || [];\n const lane = await this.legacyScope.getCurrentLaneObject();\n const stagedConfig = (await this.workspace?.scope.getStagedConfig()) || undefined;\n if (this.params.soft) {\n if (!this.consumer) throw new Error(`unable to soft-tag without consumer`);\n this.consumer.updateNextVersionOnBitmap(this.allComponentsToTag, this.params.preReleaseId);\n return {\n taggedComponents: componentsToTag,\n autoTaggedResults: autoTagData,\n dependentsWithPinnedDeps,\n publishedPackages: [],\n stagedConfig,\n totalComponentsCount: this.allComponentsToTag.length,\n batchId: this.batchId,\n };\n }\n\n const { rebuildDepsGraph, noLockDeps, build, updateDependentsOnLane, setHeadAsParent, detachHead, overrideHead } =\n this.params;\n await this.snapping._addFlattenedDependenciesToComponents(this.allComponentsToTag, rebuildDepsGraph);\n if (!noLockDeps) {\n await this._addDependenciesGraphToComponents();\n }\n await this.snapping.throwForDepsFromAnotherLane(this.allComponentsToTag);\n if (!build) this.setUnbuiltBuilderData();\n this.addBuildStatus(this.allComponentsToTag, BuildStatus.Pending);\n\n const currentLane = this.consumer?.getCurrentLaneId();\n await mapSeries(this.allComponentsToTag, async (component) => {\n // hidden lane entries (lane.updateDependents) cascade through autotag but must not enter\n // the workspace bitmap. Detect via two signals: workspace flow uses absence-from-bitmap\n // (cascade autotag loaded the comp from scope); bare-scope flow checks updateDependents.\n const isHiddenLaneEntry = Boolean(\n (this.consumer && !this.consumer.bitMap.getComponentIfExist(component.id, { ignoreVersion: true })) ||\n (!this.consumer && lane?.findUpdateDependent(component.id))\n );\n // explicit signal to addVersion. Order matters — auto-tag cascade results check the\n // existing entry's bucket BEFORE applying the caller-level `updateDependentsOnLane` flag,\n // so a bare-scope reverse cascade that auto-tags a *visible* lane.components dependent\n // doesn't accidentally move it into the hidden bucket.\n // - explicit target of `snapFromScope({ updateDependents: true })` → hidden (caller flag)\n // - hidden cascade snap (auto-tagged) → keep hidden, raise override flag\n // - workspace component (in bitmap) → promote to visible (the promote-on-import path)\n // - auto-tagged visible lane component → keep visible\n const isExplicitTarget = this.ids.searchWithoutVersion(component.id) !== undefined;\n const addToUpdateDependentsInLane = (updateDependentsOnLane && isExplicitTarget) || isHiddenLaneEntry;\n const results = await this.snapping._addCompToObjects({\n source: component,\n lane,\n shouldValidateVersion: Boolean(build),\n addVersionOpts: {\n addToUpdateDependentsInLane,\n setHeadAsParent,\n detachHead,\n overrideHead: overrideHead,\n },\n batchId: this.batchId,\n });\n if (!build) {\n component.dependenciesGraph = undefined;\n component.flattenedEdges = [];\n const workspaceComp = this._findWorkspaceCompByConsumerComp(component);\n if (workspaceComp?.state._consumer) {\n workspaceComp.state._consumer.dependenciesGraph = undefined;\n workspaceComp.state._consumer.flattenedEdges = [];\n }\n }\n if (this.workspace && !isHiddenLaneEntry) {\n const modelComponent = component.modelComponent || (await this.legacyScope.getModelComponent(component.id));\n await updateVersions(\n this.workspace,\n stagedConfig!,\n currentLane!,\n modelComponent,\n results.addedVersionStr,\n true\n );\n } else if (this.workspace && isHiddenLaneEntry) {\n // hidden cascade snaps don't get a bitmap entry, but the new Version still needs to be\n // tracked in stagedSnaps so `bit export` includes it when computing the export set and\n // sends its objects over the wire.\n const modelComponent = component.modelComponent || (await this.legacyScope.getModelComponent(component.id));\n const hash = modelComponent.getRef(results.addedVersionStr);\n if (hash) this.workspace.scope.legacyScope.stagedSnaps.addSnap(hash.toString());\n }\n });\n\n if (this.workspace) {\n await this.workspace.scope.legacyScope.stagedSnaps.write();\n }\n const publishedPackages: string[] = [];\n // hidden lane entries are scope-only — `workspace.getManyByLegacy` would throw\n // MissingBitMapComponent for them. Route the workspace path through visible-only and load\n // any hidden cascade entries from scope so the build pipeline still sees them.\n const visibleCompsToTag = this.workspace\n ? this.allComponentsToTag.filter((c) => this.consumer?.bitMap.getComponentIfExist(c.id, { ignoreVersion: true }))\n : this.allComponentsToTag;\n const hiddenCompsToTag = this.workspace\n ? this.allComponentsToTag.filter((c) => !this.consumer?.bitMap.getComponentIfExist(c.id, { ignoreVersion: true }))\n : [];\n const harmonyVisibleCompsToTag = await (this.workspace || this.scope).getManyByLegacy(visibleCompsToTag);\n const harmonyHiddenCompsToTag = hiddenCompsToTag.length ? await this.scope.getManyByLegacy(hiddenCompsToTag) : [];\n const harmonyCompsToTag = [...harmonyVisibleCompsToTag, ...harmonyHiddenCompsToTag];\n // this is not necessarily the same as the previous allComponentsToTag. although it should be, because\n // harmonyCompsToTag is created from allComponentsToTag. however, for aspects, the getMany returns them from cache\n // and therefore, their instance of ConsumerComponent can be different than the one in allComponentsToTag.\n this.allComponentsToTag = harmonyCompsToTag.map((c) => c.state._consumer);\n await this.build(harmonyCompsToTag, publishedPackages);\n\n const removedComponents = await removeDeletedComponentsFromBitmap(this.allComponentsToTag, this.workspace);\n await this.addLaneObject(lane);\n await this.legacyScope.objects.persist();\n await removeMergeConfigFromComponents(unmergedComps, this.allComponentsToTag, this.workspace);\n if (this.workspace) {\n await linkToNodeModulesByComponents(harmonyCompsToTag, this.workspace);\n }\n // clear all objects. otherwise, ModelComponent has the wrong divergeData\n this.legacyScope.objects.clearObjectsFromCache();\n\n return {\n taggedComponents: componentsToTag,\n autoTaggedResults: autoTagData,\n dependentsWithPinnedDeps,\n publishedPackages,\n stagedConfig,\n removedComponents,\n totalComponentsCount: this.allComponentsToTag.length,\n batchId: this.batchId,\n };\n }\n\n private async _addDependenciesGraphToComponents(): Promise<void> {\n if (!this.workspace || !this.allWorkspaceComps) {\n return;\n }\n this.snapping.logger.setStatusLine('adding dependencies graph...');\n this.snapping.logger.profile('snap._addDependenciesGraphToComponents');\n const componentIdByPkgName = this._getComponentIdByPkgNameMap();\n const options = {\n rootDir: this.workspace.path,\n rootComponentsPath: this.workspace.rootComponentsPath,\n componentIdByPkgName,\n };\n const components: Array<{ component: Component; componentRelativeDir: string }> = [];\n for (const consumerComponent of this.allComponentsToTag) {\n const component = this._findWorkspaceCompByConsumerComp(consumerComponent);\n if (consumerComponent.componentMap?.rootDir && component) {\n components.push({\n component,\n componentRelativeDir: consumerComponent.componentMap.rootDir,\n });\n }\n }\n await this.dependencyResolver.addDependenciesGraph(components, options);\n this.snapping.logger.clearStatusLine();\n this.snapping.logger.profile('snap._addDependenciesGraphToComponents');\n }\n\n private _findWorkspaceCompByConsumerComp(consumerComponent: ConsumerComponent): Component | undefined {\n return this.allWorkspaceComps?.find((component) => component.id.isEqualWithoutVersion(consumerComponent.id));\n }\n\n private _getComponentIdByPkgNameMap(): Map<string, ComponentID> {\n if (!this.allWorkspaceComps) throw new Error('please make sure to populate this.allWorkspaceComps before');\n const componentIdByPkgName = new Map<string, ComponentID>();\n this.allComponentsToTag.forEach((consumerComponent) => {\n const component = this._findWorkspaceCompByConsumerComp(consumerComponent);\n if (component) {\n const pkgName = this.dependencyResolver.getPackageName(component);\n componentIdByPkgName.set(pkgName, consumerComponent.id);\n }\n });\n for (const workspaceComp of this.allWorkspaceComps) {\n if (\n this.allComponentsToTag.every(\n (snappedComponent) => !snappedComponent.id.isEqualWithoutVersion(workspaceComp.id)\n )\n ) {\n componentIdByPkgName.set(this.dependencyResolver.getPackageName(workspaceComp), workspaceComp.id);\n }\n }\n return componentIdByPkgName;\n }\n\n private async triggerOnPreSnap(autoTagIds: ComponentIdList) {\n const allFunctions = this.snapping.onPreSnapSlot.values();\n await mapSeries(allFunctions, (func) => func(this.components, autoTagIds, this.params));\n }\n\n private async addLaneObject(lane?: Lane) {\n if (lane) {\n const { message } = this.params;\n const msgStr = message ? ` (${message})` : '';\n // Use batchId as the lane history key so `bit reset` can identify and remove the\n // corresponding entry when it deletes the snapped versions.\n const laneHistory = await this.legacyScope.lanes.updateLaneHistory(lane, `snap${msgStr}`, this.batchId);\n this.legacyScope.objects.add(laneHistory);\n }\n }\n\n private async build(harmonyCompsToTag: Component[], publishedPackages: string[]) {\n if (!this.params.build) {\n return;\n }\n const {\n disableTagAndSnapPipelines,\n ignoreBuildErrors,\n isSnap,\n populateArtifactsFrom,\n skipTasks,\n packageManagerConfigRootDir,\n exitOnFirstFailedTask,\n populateArtifactsIgnorePkgJson,\n skipTests,\n loose,\n } = this.params;\n const onTagOpts: OnTagOpts = {\n disableTagAndSnapPipelines,\n throwOnError: true,\n forceDeploy: ignoreBuildErrors,\n isSnap,\n populateArtifactsFrom,\n loose,\n };\n const skipTasksParsed = skipTasks ? skipTasks.split(',').map((t) => t.trim()) : undefined;\n const seedersOnly = !this.workspace; // if tag from scope, build only the given components\n const isolateOptions = { packageManagerConfigRootDir, seedersOnly, populateArtifactsIgnorePkgJson };\n const builderOptions = { exitOnFirstFailedTask, skipTests, skipTasks: skipTasksParsed, loose };\n\n const componentsToBuild = harmonyCompsToTag.filter((c) => !c.isDeleted());\n if (componentsToBuild.length) {\n const componentsToBuildLegacy: ConsumerComponent[] = componentsToBuild.map((c) => c.state._consumer);\n await this.scope.reloadAspectsWithNewVersion(componentsToBuildLegacy);\n const { builderDataMap } = await this.builder.tagListener(\n componentsToBuild,\n onTagOpts,\n isolateOptions,\n builderOptions\n );\n const buildResult = this.builder.builderDataMapToLegacyOnTagResults(builderDataMap);\n\n this.snapping._updateComponentsByTagResult(componentsToBuildLegacy, buildResult);\n const packageIntegritiesByPublishedPackages = this.snapping._getPublishedPackages(componentsToBuildLegacy);\n publishedPackages.push(...Array.from(packageIntegritiesByPublishedPackages.keys()));\n\n addIntegritiesToConsumerComponentsGraphs(packageIntegritiesByPublishedPackages, this.allComponentsToTag);\n this.addBuildStatus(componentsToBuildLegacy, BuildStatus.Succeed);\n await mapSeries(componentsToBuild, (comp) => this.snapping.enrichComp(comp));\n if (populateArtifactsFrom) await updateHiddenProp(this.scope, populateArtifactsFrom);\n }\n }\n\n private async checkForNewerVersions() {\n // check for each one of the components whether it is using an old version\n // TODO: once --detach-head is supported by the remote, deprecate --ignore-newest-version. and change this\n // throwForNewestVersion to suggest using --detach-head instead. also, it the error should not be limited\n // to tags and can be thrown for snaps as well.\n // once --ignore-newest-version is removed, no need for this condition. it's ok to not provide the override-head option.\n const { detachHead, ignoreNewestVersion, isSnap } = this.params;\n if (ignoreNewestVersion && !detachHead) this.params.overrideHead = true;\n if (!ignoreNewestVersion && !isSnap) {\n await throwForNewestVersion(this.allComponentsToTag, this.legacyScope);\n }\n }\n\n private async getMessagePerId(idsToTag: ComponentIdList, autoTagIds: ComponentIdList) {\n const messagesFromEditorFetcher = new MessagePerComponentFetcher(idsToTag, autoTagIds);\n const { editor, message, tagDataPerComp } = this.params;\n if (editor) return messagesFromEditorFetcher.getMessagesFromEditor(this.legacyScope.tmp, editor);\n if (tagDataPerComp) return tagDataPerComp.map((t) => ({ id: t.componentId, msg: t.message || message }));\n return [];\n }\n\n private async parseVersionsFile(idsToTag: ComponentIdList, autoTagIds: ComponentIdList) {\n const { versionsFile } = this.params;\n if (!versionsFile) return;\n\n const allComponentsToTag = ComponentIdList.fromArray([...idsToTag, ...autoTagIds]);\n const versionFileParser = new VersionFileParser(allComponentsToTag, this.params.autoAddedWorkspaceRoot);\n const tagDataFromFile = await versionFileParser.parseVersionsFile(versionsFile);\n this.params.tagDataPerComp = tagDataFromFile;\n }\n\n private getUniqCompsToTag(): ConsumerComponent[] {\n const consumerComponentsIdsMap = {};\n // Concat and unique all the dependencies from all the components so we will not import\n // the same dependency more then once, it's mainly for performance purpose\n this.consumerComponents.forEach((consumerComponent) => {\n const componentIdString = consumerComponent.id.toString();\n // Store it in a map so we can take it easily from the sorted array which contain only the id\n consumerComponentsIdsMap[componentIdString] = consumerComponent;\n });\n return Object.values(consumerComponentsIdsMap); // consumerComponents unique\n }\n\n private async getAutoTagData(idsToTag: ComponentIdList, removedIds: ComponentIdList): Promise<AutoTagResult[]> {\n if (this.params.skipAutoTag) return [];\n // hidden lane.updateDependents are scope-only — they're not in the workspace\n // bitmap, so the workspace autotag candidate pool can't see them. Always run the scope-side\n // autotag pass alongside the workspace one when on a lane, so cascading a hidden updateDependent\n // off a workspace snap (scenario 1) works.\n const fromScope = await this.getLaneAutoTagIdsFromScope(\n idsToTag,\n removedIds,\n /* hiddenOnly */ Boolean(this.workspace)\n );\n if (!this.workspace) return fromScope;\n // ids without versions are new. it's impossible that tagged (and not-modified) components has\n // them as dependencies. Also filter out hidden lane entries — getAutoTagInfo loads\n // `[potentialComponents, ...changedComponents]` from the workspace, so a hidden id in\n // changedComponents throws MissingBitMapComponent. Hidden cascade is already covered by the\n // scope-side `fromScope` pass above.\n const consumer = this.workspace.consumer;\n const idsToTriggerAutoTag = idsToTag.filter(\n (id) => id.hasVersion() && consumer.bitMap.getComponentIfExist(id, { ignoreVersion: true })\n );\n const autoTagDataWithLocalOnly = await this.workspace.getAutoTagInfo(\n ComponentIdList.fromArray(idsToTriggerAutoTag)\n );\n const localOnly = this.workspace?.listLocalOnly();\n const fromWorkspace = localOnly\n ? autoTagDataWithLocalOnly.filter((autoTagItem) => !localOnly.hasWithoutVersion(autoTagItem.component.id))\n : autoTagDataWithLocalOnly;\n if (!fromScope.length) return fromWorkspace;\n // Dedupe: workspace autotag wins if the same id surfaces in both (the workspace consumer\n // component is the authoritative one to snap).\n const workspaceIds = new Set(fromWorkspace.map((a) => a.component.id.toStringWithoutVersion()));\n const fromScopeFiltered = fromScope.filter((a) => !workspaceIds.has(a.component.id.toStringWithoutVersion()));\n return [...fromWorkspace, ...fromScopeFiltered];\n }\n\n private async getLaneAutoTagIdsFromScope(\n idsToTag: ComponentIdList,\n removedIds: ComponentIdList,\n hiddenOnly = false\n ): Promise<AutoTagResult[]> {\n const triggerIds = ComponentIdList.fromArray(idsToTag.filter((id) => !removedIds.has(id)));\n if (!triggerIds.length) return [];\n const lane = await this.legacyScope.getCurrentLaneObject();\n if (!lane) return [];\n // for the workspace+lane path we only care about hidden entries — workspace autotag handles\n // visible ones. for the bare-scope path (no workspace), include all lane entries.\n const laneIds = hiddenOnly ? lane.updateDependents || [] : lane.toComponentIdsIncludeUpdateDependents();\n const candidateLaneIds = laneIds.filter((id) => !idsToTag.hasWithoutVersion(id));\n if (!candidateLaneIds.length) return [];\n // a bare scope (e.g. a Ripple cascade) has only the components it snaps. fetch the lane entries that are missing.\n await this.scope.import(candidateLaneIds, {\n lane,\n includeUpdateDependents: true,\n reFetchUnBuiltVersion: false,\n reason: 'to find the lane components to snap along',\n });\n const candidates = await this.legacyScope.getManyConsumerComponents(ComponentIdList.fromArray(candidateLaneIds));\n // a component that was removed from the lane is not snapped again, same as in a workspace, where it's not loaded\n const notRemovedCandidates = candidates.filter((candidate) => !candidate.isRemoved());\n return getAutoTagInfoFromComponents(notRemovedCandidates, triggerIds);\n }\n\n private async setFutureVersions(autoTagIds: ComponentIdList): Promise<void> {\n const { releaseType, autoTagReleaseType, tagDataPerComp, incrementBy, persist, soft, exactVersion, preReleaseId } =\n this.params;\n const isPreReleaseLike = releaseType\n ? ['prerelease', 'premajor', 'preminor', 'prepatch'].includes(releaseType)\n : false;\n const computedVersions: ComputedVersion[] = await Promise.all(\n this.allComponentsToTag.map(async (componentToTag) => {\n const isAutoTag = autoTagIds.hasWithoutVersion(componentToTag.id);\n const modelComponent = await this.legacyScope.sources.findOrAddComponent(componentToTag);\n const nextVersion = componentToTag.componentMap?.nextVersion?.version;\n const isAutoAddedRoot = Boolean(this.params.autoAddedWorkspaceRoot?.isEqualWithoutVersion(componentToTag.id));\n // the root joined the batch on its own. a version given for the members - `--ver`, the id, or\n // a versions-file DEFAULT - is not meant for it, so it is bumped the way an auto-tagged\n // dependent is.\n const bumpRootAsPatch = () =>\n soft ? 'patch' : modelComponent.getVersionToAdd('patch', undefined, incrementBy, preReleaseId);\n const getNewVersion = (): string => {\n if (tagDataPerComp) {\n const tagData = tagDataPerComp.find((t) => t.componentId.isEqualWithoutVersion(componentToTag.id));\n // a versions file names the components being tagged. it covers the root only when it names\n // it, see VersionFileParser - otherwise the root is still bumped on its own.\n if (!tagData && isAutoAddedRoot) return bumpRootAsPatch();\n if (!tagData) throw new Error(`tag-data is missing for ${componentToTag.id.toStringWithoutVersion()}`);\n if (!tagData.versionToTag)\n throw new Error(`tag-data.TagResults is missing for ${componentToTag.id.toStringWithoutVersion()}`);\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(tagData.versionToTag);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion,\n incrementBy,\n tagData.prereleaseId\n );\n }\n if (nextVersion && persist) {\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(nextVersion);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion,\n undefined,\n componentToTag.componentMap?.nextVersion?.preRelease\n );\n }\n if (isAutoTag) {\n // when set, it overrides the default patch bump (and the pre-release propagation below)\n if (autoTagReleaseType) {\n return soft\n ? autoTagReleaseType\n : modelComponent.getVersionToAdd(autoTagReleaseType, undefined, incrementBy, preReleaseId);\n }\n // auto-tag always bumped as patch unless it's pre-release\n if (isPreReleaseLike) {\n return soft\n ? (releaseType as string)\n : modelComponent.getVersionToAdd(releaseType, exactVersion, incrementBy, preReleaseId);\n }\n return soft ? 'patch' : modelComponent.getVersionToAdd('patch', undefined, incrementBy, preReleaseId);\n }\n if (isAutoAddedRoot) return bumpRootAsPatch();\n const versionByEnteredId = this.getVersionByEnteredId(this.ids, componentToTag, modelComponent);\n return soft\n ? versionByEnteredId || exactVersion || (releaseType as string)\n : versionByEnteredId ||\n modelComponent.getVersionToAdd(releaseType, exactVersion, incrementBy, preReleaseId);\n };\n return { componentToTag, version: getNewVersion() };\n })\n );\n const versionsToSkip = await this.getVersionsPublishedToRegistry(computedVersions);\n computedVersions.forEach(({ componentToTag, version }) => {\n componentToTag.setNewVersion(versionsToSkip.get(componentToTag.id.toStringWithoutVersion()) || version);\n });\n }\n\n /**\n * a version that is already in the registry can't be published again, so tagging it only fails\n * later on, during the publish task. see `published-versions.ts` for how the registry gets ahead\n * of the scope in the first place, and why a probe is enough to detect it.\n *\n * only derived versions are checked. a version given explicitly - `--ver`, a versions file, or\n * on the id itself (\"foo@1.2.3\") - is tagged as given, the registry is not consulted for it.\n *\n * @returns the version to tag instead, by component id, for the components that collided.\n */\n private async getVersionsPublishedToRegistry(computedVersions: ComputedVersion[]): Promise<Map<string, string>> {\n const { soft, exactVersion, tagDataPerComp } = this.params;\n // on a soft-tag the \"version\" is a release-type (e.g. \"patch\"), there is nothing to look up yet.\n if (!this.params.skipPublishedVersions || soft || exactVersion || tagDataPerComp) return new Map();\n // only an external registry can get ahead of the scope: a component published to bit's own\n // registry gets there during the export itself, so the export failing leaves nothing behind.\n // by default nothing is published externally, which makes this a no-op for most workspaces.\n const candidates = computedVersions.flatMap(({ componentToTag, version }): VersionCandidate[] => {\n if (this.hasExplicitVersion(componentToTag)) return [];\n const pkgConfig = componentToTag.extensions.findExtension(PkgAspect.id)?.config;\n if (!shouldPublishToExternalRegistry(pkgConfig)) return [];\n return [\n {\n id: componentToTag.id.toStringWithoutVersion(),\n packageName: componentIdToPackageName(componentToTag),\n version,\n registryUrl: getPublishRegistry(pkgConfig),\n },\n ];\n });\n if (!candidates.length) return new Map();\n let registries: Registries;\n try {\n registries = await this.dependencyResolver.getRegistries();\n } catch (err: any) {\n // skipping published versions is a safety net for a stuck release, never a reason to fail one.\n this.snapping.logger.console(\n formatWarningSummary(`unable to check the registry for published versions, tagging without it: ${err.message}`)\n );\n return new Map();\n }\n const skipped = await skipPublishedVersions(candidates, createIsVersionPublished(registries, this.snapping.logger));\n if (skipped.length) {\n // one section rather than a line per component: a run that got stuck can collide on all of them\n this.snapping.logger.console(\n formatSection(\n 'Versions already in the registry',\n 'an earlier run published these versions, tagging the next free one instead',\n skipped.map(({ packageName, version, versionToTag }) =>\n formatItem(`${packageName}: ${version} is taken, tagging ${versionToTag}`)\n )\n )\n );\n }\n return new Map(skipped.map(({ id, versionToTag }) => [id, versionToTag]));\n }\n\n /**\n * whether the version was given by the user for this specific component: on the id (\"foo@1.2.3\")\n * or on the soft-tag now being persisted. `--ver` and a versions file are explicit for the whole run.\n */\n private hasExplicitVersion(componentToTag: ConsumerComponent): boolean {\n const enteredVersion = this.ids.searchWithoutVersion(componentToTag.id)?.version;\n const softTagVersion = this.params.persist ? componentToTag.componentMap?.nextVersion?.version : undefined;\n return [enteredVersion, softTagVersion].some(\n (given) => given && Boolean(getValidVersionOrReleaseType(given).exactVersion)\n );\n }\n\n private setCurrentSchema() {\n this.allComponentsToTag.forEach((component) => {\n component.schema = CURRENT_SCHEMA;\n });\n }\n\n private setHashes(): void {\n this.allComponentsToTag.forEach((componentToTag) => {\n componentToTag.setNewVersion(sha1(v4()));\n });\n }\n\n private getVersionByEnteredId(\n enteredIds: ComponentIdList,\n component: ConsumerComponent,\n modelComponent: ModelComponent\n ): string | undefined {\n const enteredId = enteredIds.searchWithoutVersion(component.id);\n if (enteredId && enteredId.hasVersion()) {\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(enteredId.version as string);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion\n );\n }\n return undefined;\n }\n\n private addBuildStatus(components: ConsumerComponent[], buildStatus: BuildStatus) {\n components.forEach((component) => {\n component.buildStatus = component.isRemoved() ? BuildStatus.Skipped : buildStatus;\n });\n }\n\n /**\n * when not building, replace the builder data, otherwise, it has the old build data of the previous snap/tag.\n * (when building, the build overrides it anyway).\n * the new data has only the tasks that are going to run once the component is built (e.g. by the CI), so they can\n * be shown before the build starts.\n */\n private setUnbuiltBuilderData() {\n const plannedTasksPerComp = this.builder.getPlannedTasks(\n this.getHarmonyComps(this.allComponentsToTag.filter((c) => !c.isRemoved())),\n this.params.isSnap ? 'snap' : 'tag'\n );\n this.allComponentsToTag.forEach((component) => {\n component.extensions = component.extensions.clone();\n const plannedTasks = plannedTasksPerComp.get(component.id.toStringWithoutVersion());\n const data: Partial<UnbuiltBuilderData> = plannedTasks ? { plannedTasks } : {};\n const existingBuilder = component.extensions.findCoreExtension(Extensions.builder);\n if (existingBuilder) existingBuilder.data = data;\n else if (plannedTasks)\n component.extensions.push(new ExtensionDataEntry(undefined, undefined, Extensions.builder, {}, data));\n });\n }\n\n /**\n * the harmony components that were already loaded. (the auto-tagged ones are available only in a workspace).\n */\n private getHarmonyComps(consumerComponents: ConsumerComponent[]): Component[] {\n const loadedComps = [...this.components, ...(this.allWorkspaceComps || [])];\n return compact(\n consumerComponents.map((consumerComp) =>\n loadedComps.find((comp) => comp.id.isEqualWithoutVersion(consumerComp.id))\n )\n );\n }\n\n private updateDependenciesVersions() {\n // filter out removed components.\n // if a component has a deleted-component as a dependency, it was probably running \"bit install <dep>\" with a version\n // from main. we want to keep it as the user requested. Otherwise, this changes the dependency version to the newly\n // snapped one unintentionally.\n const componentsToTag = this.allComponentsToTag.filter((c) => !c.isRemoved());\n const getNewDependencyVersion = (id: ComponentID, dependent?: ConsumerComponent): ComponentID | null => {\n const foundDependency = componentsToTag.find((component) => component.id.isEqualWithoutVersion(id));\n if (!foundDependency) return null;\n // the dependent uses the version set in its config (e.g. \"bit deps set\"), not the workspace one. keep it.\n if (dependent?.isDependencyVersionFromConfig(id)) return null;\n return id.changeVersion(foundDependency.version);\n };\n const changeExtensionsVersion = (component: ConsumerComponent): void => {\n component.extensions.forEach((ext) => {\n if (ext.extensionId) {\n const newDepId = getNewDependencyVersion(ext.extensionId);\n if (newDepId) ext.extensionId = newDepId;\n }\n });\n };\n // in case we update dependencies according to the currently tagged component, we want to keep the versionRange\n // up to date with the new tags. e.g. 0.0.1 -> 0.0.2, will change the versionRange to ^0.0.2 or ~0.0.2.\n // in case componentRangePrefix is \"+\", we care only about packages in workspace.jsonc. so it won't be relevant.\n const updateDepsResolverData = (component: ConsumerComponent, componentRangePrefix?: ComponentRangePrefix) => {\n const entry = component.extensions.findCoreExtension(DependencyResolverAspect.id);\n if (!entry) {\n return component;\n }\n const dependencies = get(entry, ['data', 'dependencies'], []);\n dependencies.forEach((dep) => {\n if (dep.__type !== COMPONENT_DEP_TYPE) {\n return;\n }\n // @todo: it's unclear why \"dep.componentId\" randomly becomes a ComponentID instance.\n // this check is added because on Ripple in some scenarios it was throwing:\n // \"ComponentID.fromObject expect to get an object, got an instance of ComponentID\" (locally it didn't happen)\n const depId =\n dep.componentId instanceof ComponentID ? dep.componentId : ComponentID.fromObject(dep.componentId);\n const newDepId = getNewDependencyVersion(depId, component);\n dep.componentId = (newDepId || depId).serialize();\n dep.id = (newDepId || depId).toString();\n dep.version = (newDepId || depId).version;\n // if newDepId, then it means the dependency is in the current workspace and currently being tagged.\n // the versionRange needs to be updated to the new version.\n // However, for snaps, we should not apply range prefixes as they are not valid semver\n if (newDepId && (componentRangePrefix === '^' || componentRangePrefix === '~') && !isSnapVersion(dep.version)) {\n dep.versionRange = `${componentRangePrefix}${dep.version}`;\n }\n });\n return component;\n };\n\n componentsToTag.forEach((oneComponentToTag) => {\n const componentRangePrefix =\n this.dependencyResolver.calcComponentRangePrefixByConsumerComponent(oneComponentToTag);\n oneComponentToTag.getAllDependencies().forEach((dependency) => {\n const newDepId = getNewDependencyVersion(dependency.id, oneComponentToTag);\n if (!newDepId) return;\n dependency.id = newDepId;\n // if componentRangePrefix === '+', then, only it only saves packages in workspace.jsonc.\n // in this case, these dependencies are in .bitmap. not in workspace.jsonc. so it's not relevant.\n // For snaps (hash versions), we should not apply range prefixes as they are not valid semver\n if ((componentRangePrefix === '^' || componentRangePrefix === '~') && !isSnapVersion(newDepId.version)) {\n dependency.versionRange = `${componentRangePrefix}${newDepId.version}`;\n }\n });\n changeExtensionsVersion(oneComponentToTag);\n oneComponentToTag = updateDepsResolverData(oneComponentToTag);\n });\n }\n\n private getDependentsWithPinnedDeps(): DependentWithPinnedDeps[] {\n if (!this.allWorkspaceComps) return [];\n const idsToTag = ComponentIdList.fromArray(this.allComponentsToTag.map((c) => c.id));\n // like updateDependenciesVersions, a removed component doesn't count as a new version of a dependency\n const idsWithNewVersion = ComponentIdList.fromArray(\n this.allComponentsToTag.filter((c) => !c.isRemoved()).map((c) => c.id)\n );\n return compact(\n this.allWorkspaceComps.map((component) => {\n const consumerComponent: ConsumerComponent = component.state._consumer;\n const pinnedDependencies = consumerComponent.getDependenciesWithVersionFromConfig((id) =>\n idsWithNewVersion.hasWithoutVersion(id)\n );\n if (!pinnedDependencies.length || idsToTag.hasWithoutVersion(component.id)) return null;\n return { id: component.id, pinnedDependencies };\n })\n );\n }\n\n /**\n * every member of a workspace-root component records the root it is snapped in, at the version the\n * root has after this batch: its new version when it is snapped along, otherwise the one in .bitmap.\n * tag and snap bring a new or modified root into the batch (see SnappingMain.getWorkspaceRootToTagAlong),\n * so the version is only missing on the paths that don't, such as a merge snap made while the root\n * was never snapped. the root itself records nothing here, it carries the isRoot marker instead.\n * see WorkspaceRootMain.\n *\n * a workspace with no root of its own writes nothing, and has nothing to undo either: aspect data is\n * supplied fresh by the loader on every load rather than inherited from the version before it, so a\n * component imported from a workspace that had a root arrives here without one. what does carry over\n * is the extension's (empty) config, which is why the entry itself outlives the data it held.\n */\n private recordWorkspaceRoot() {\n const consumer = this.consumer;\n if (!consumer) return;\n const rootMap = findWorkspaceRootMap(consumer.bitMap);\n if (!rootMap) return;\n const rootInBatch = this.allComponentsToTag.find((component) => component.id.isEqualWithoutVersion(rootMap.id));\n const rootId = rootInBatch ? rootInBatch.id.changeVersion(rootInBatch.version) : rootMap.id;\n this.allComponentsToTag.forEach((component) => {\n // the root records no root of its own, it carries the isRoot marker the loader gives it\n if (component.id.isEqualWithoutVersion(rootMap.id)) return;\n // hidden lane entries (lane.updateDependents) cascade into the batch from the scope rather than\n // from the workspace, so they were not snapped in this root. absence from .bitmap is how they\n // are told apart elsewhere in this file as well\n if (!consumer.bitMap.getComponentIfExist(component.id, { ignoreVersion: true })) return;\n writeWorkspaceRoot(component.extensions, rootId);\n });\n }\n\n private async addLogToComponents(\n components: ConsumerComponent[],\n autoTagComps: ConsumerComponent[],\n messagePerComponent: MessagePerComponent[]\n ) {\n let { message } = this.params;\n const { persist, copyLogFromPreviousSnap } = this.params;\n // @ts-ignore this happens when running `bit tag -m \"\"`.\n if (message === true) {\n message = '';\n }\n const basicLog = await getBasicLog();\n const getLog = (component: ConsumerComponent): Log => {\n const nextVersion = persist ? component.componentMap?.nextVersion : null;\n const msgFromEditor = messagePerComponent.find((item) => item.id.isEqualWithoutVersion(component.id))?.msg;\n if (copyLogFromPreviousSnap) {\n const currentLog = component.log;\n if (!currentLog) {\n throw new Error(\n `addLogToComponents is set copyLogFromPreviousSnap: true, but it is unable to find log in the previous snap`\n );\n }\n // return a new object rather than mutating the current log. the current log object belongs\n // to the previous snap Version instance, which is cached in the repository. mutating it and\n // later persisting that Version (e.g. when marking it as hidden) would overwrite the\n // previous snap's message and date with the new version's data.\n return {\n ...currentLog,\n message: msgFromEditor || message || currentLog.message,\n date: basicLog.date,\n };\n }\n\n return {\n username: nextVersion?.username || basicLog.username,\n email: nextVersion?.email || basicLog.email,\n message: nextVersion?.message || msgFromEditor || message,\n date: basicLog.date,\n };\n };\n\n components.forEach((component) => {\n component.log = getLog(component);\n });\n autoTagComps.forEach((autoTagComp) => {\n autoTagComp.log = getLog(autoTagComp);\n const defaultMsg = 'bump dependencies versions';\n if (message) {\n autoTagComp.log.message += ` (${defaultMsg})`;\n } else if (!autoTagComp.log.message) {\n autoTagComp.log.message = defaultMsg;\n }\n });\n }\n}\n\nasync function throwForNewestVersion(allComponentsToTag: ConsumerComponent[], legacyScope: Scope) {\n const newestVersionsP = allComponentsToTag.map(async (component) => {\n if (component.componentFromModel) {\n // otherwise it's a new component, so this check is irrelevant\n const modelComponent = await legacyScope.getModelComponentIfExist(component.id);\n if (!modelComponent) throw new BitError(`component ${component.id} was not found in the model`);\n if (!modelComponent.listVersions().length) return null; // no versions yet, no issues.\n const latest = modelComponent.getHeadRegardlessOfLaneAsTagOrHash();\n if (latest !== component.version) {\n return {\n componentId: component.id.toStringWithoutVersion(),\n currentVersion: component.version!,\n latestVersion: latest,\n };\n }\n }\n return null;\n });\n const newestVersions = await Promise.all(newestVersionsP);\n const newestVersionsWithoutEmpty = compact(newestVersions);\n if (newestVersionsWithoutEmpty.length) {\n throw new NewerVersionFound(newestVersionsWithoutEmpty);\n }\n}\n\nfunction addIntegritiesToConsumerComponentsGraphs(\n packageIntegritiesByPublishedPackages: PackageIntegritiesByPublishedPackages,\n consumerComponents: ConsumerComponent[]\n) {\n const _addIntegritiesToDependenciesGraph = addIntegritiesToDependenciesGraph.bind(\n null,\n packageIntegritiesByPublishedPackages\n );\n for (const consumerComponent of consumerComponents) {\n if (consumerComponent.dependenciesGraph) {\n consumerComponent.dependenciesGraph = _addIntegritiesToDependenciesGraph(consumerComponent.dependenciesGraph);\n }\n }\n}\n\n/**\n * Updates the dependencies graph by replacing all \"pending\" version numbers of component dependencies\n * with the actual version numbers of the recently published packages. It also attaches the integrity\n * checksums of these components to ensure data integrity for each resolved dependency.\n *\n * @param packageIntegritiesByPublishedPackages - A map of package names and versions to their integrity checksums.\n * @param dependenciesGraph - The current dependencies graph, containing nodes with potentially \"pending\" versions.\n * @returns A new DependenciesGraph with updated versions and integrity checksums for all previously pending dependencies.\n */\nfunction addIntegritiesToDependenciesGraph(\n packageIntegritiesByPublishedPackages: PackageIntegritiesByPublishedPackages,\n dependenciesGraph: DependenciesGraph\n): DependenciesGraph {\n const resolvedVersions: Array<{ name: string; version: string; previouslyUsedVersion?: string }> = [];\n for (const [selector, { integrity, previouslyUsedVersion }] of packageIntegritiesByPublishedPackages.entries()) {\n if (integrity == null) continue;\n const index = selector.indexOf('@', 1);\n const name = selector.substring(0, index);\n const version = selector.substring(index + 1);\n const pendingKey = dependenciesGraph.packages.has(`${name}@${previouslyUsedVersion}`)\n ? `${name}@${previouslyUsedVersion}`\n : `${name}@${version}`;\n const pendingPkg = dependenciesGraph.packages.get(pendingKey);\n if (pendingPkg) {\n dependenciesGraph.packages.set(pendingKey, { ...pendingPkg, resolution: { integrity } });\n resolvedVersions.push({ name, version, previouslyUsedVersion });\n }\n }\n return replacePendingVersions(dependenciesGraph, resolvedVersions) as DependenciesGraph;\n}\n\nasync function removeDeletedComponentsFromBitmap(\n comps: ConsumerComponent[],\n workspace?: Workspace\n): Promise<ComponentIdList | undefined> {\n if (!workspace) {\n return undefined;\n }\n const removedComps = comps.filter((comp) => comp.isRemoved());\n if (!removedComps.length) return undefined;\n const compBitIdsToRemove = ComponentIdList.fromArray(removedComps.map((c) => c.id));\n await deleteComponentsFiles(workspace.consumer, compBitIdsToRemove);\n await workspace.consumer.cleanFromBitMap(compBitIdsToRemove);\n\n return compBitIdsToRemove;\n}\n\nasync function removeMergeConfigFromComponents(\n unmergedComps: ComponentID[],\n components: ConsumerComponent[],\n workspace?: Workspace\n) {\n if (!workspace || !unmergedComps.length) {\n return;\n }\n const configMergeFile = workspace.getConflictMergeFile();\n\n unmergedComps.forEach((compId) => {\n const isNowSnapped = components.find((c) => c.id.isEqualWithoutVersion(compId));\n if (isNowSnapped) {\n configMergeFile.removeConflict(compId.toStringWithoutVersion());\n }\n });\n const currentlyUnmerged = workspace ? await workspace.listComponentsDuringMerge() : [];\n if (configMergeFile.hasConflict() && currentlyUnmerged.length) {\n // it's possible that \"workspace\" section is still there. but if all \"unmerged\" are now merged,\n // then, it's safe to delete the file.\n await configMergeFile.write();\n } else {\n await configMergeFile.delete();\n }\n}\n\nexport type BitCloudUser = {\n username?: string;\n name?: string;\n displayName?: string;\n profileImage?: string;\n};\n\nfunction isAvailableOnMain(currentLane: LaneId, modelComponent: ModelComponent, id: ComponentID) {\n if (currentLane.isDefault()) {\n return true;\n }\n if (!id.hasVersion()) {\n // component was unsnapped on the current lane and is back to a new component\n return true;\n }\n return modelComponent.hasHead();\n}\n\nexport async function updateVersions(\n workspace: Workspace,\n stagedConfig: StagedConfig,\n currentLane: LaneId,\n modelComponent: ModelComponent,\n versionToSetInBitmap?: string, // helpful for detached head\n isTag = true\n) {\n const consumer = workspace.consumer;\n const idLatest: ComponentID = modelComponent.toBitIdWithLatestVersionAllowNull();\n const id = versionToSetInBitmap ? idLatest.changeVersion(versionToSetInBitmap) : idLatest;\n const isOnBitmap = consumer.bitMap.getComponentIfExist(id, { ignoreVersion: true });\n if (!isOnBitmap && !isTag) {\n // handle the case when a component was deleted, snapped/tagged and is now reset.\n const stagedData = stagedConfig.getPerId(id);\n if (stagedData?.config && stagedData.config[RemoveAspect.id]) {\n consumer.bitMap.addFromComponentJson(stagedData.id, stagedData.componentMapObject);\n }\n }\n consumer.bitMap.updateComponentId(id, undefined, undefined, true);\n const availableOnMain = isAvailableOnMain(currentLane, modelComponent, id);\n if (!availableOnMain) {\n consumer.bitMap.setOnLanesOnly(id, true);\n }\n const componentMap = consumer.bitMap.getComponent(id);\n const compId = await workspace.resolveComponentId(id);\n // it can be either a tag/snap or reset.\n if (isTag) {\n const compMapObj = componentMap.toPlainObject();\n const config = componentMap.config;\n stagedConfig.addComponentConfig(compId, config, compMapObj);\n const removeConfig = config?.[RemoveAspect.id];\n consumer.bitMap.removeConfig(id);\n if (removeConfig && removeConfig !== '-' && removeConfig.removed) {\n // a deleted component is removed from .bitmap at the end of the snap (see removeDeletedComponentsFromBitmap).\n // until then, keep it marked as removed. otherwise, it's loaded as a workspace component, although its files are\n // gone, and its dependents in this snap resolve it to the new (deleted) version.\n componentMap.config = { [RemoveAspect.id]: removeConfig };\n consumer.bitMap.markAsChanged();\n }\n const hash = modelComponent.getRef(id.version as string);\n if (!hash) throw new Error(`updateComponentsVersions: unable to find a hash for ${id.toString()}`);\n workspace.scope.legacyScope.stagedSnaps.addSnap(hash?.toString());\n } else if (!componentMap.config) {\n componentMap.config = stagedConfig.getConfigPerId(compId);\n }\n componentMap.clearNextVersion();\n}\n\nfunction replacePendingVersions(\n graph: DependenciesGraph,\n resolvedVersions: Array<{ name: string; version: string; previouslyUsedVersion?: string }>\n): DependenciesGraph {\n let s = graph.serialize();\n for (const { name, version, previouslyUsedVersion } of resolvedVersions) {\n if (previouslyUsedVersion) {\n s = s.replaceAll(`${name}@${previouslyUsedVersion}:`, `${name}@${version}`);\n }\n }\n const updatedDependenciesGraph = DependenciesGraph.deserialize(s);\n // This should never happen as we know at this point that the schema version is supported\n if (updatedDependenciesGraph == null) {\n throw new BitError('Failed to deserialize dependencies graph in replacePendingVersions()');\n }\n return updatedDependenciesGraph;\n}\n\n/**\n * relevant for \"_tag\" (tag-from-scope) command.\n * the new tag uses the same files/config/build-artifacts as the previous snap.\n * we want to mark the previous snap as hidden. so then \"bit log\" and \"bit blame\" won't show it.\n */\nasync function updateHiddenProp(scope: ScopeMain, ids: ComponentID[]) {\n const log = await getBasicLog();\n log.message = 'marked as hidden';\n await pMapPool(\n ids,\n async (id) => {\n const versionObj = await scope.getBitObjectVersionById(id);\n if (!versionObj) return;\n versionObj.hidden = true;\n versionObj.addModifiedLog(log);\n scope.legacyScope.objects.add(versionObj);\n },\n { concurrency: 50 }\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/snapping",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1283",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/component/snapping",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.component",
|
|
8
8
|
"name": "snapping",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.1283"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"graphlib": "2.1.8",
|
|
@@ -23,11 +23,15 @@
|
|
|
23
23
|
"@teambit/bit-error": "0.0.404",
|
|
24
24
|
"@teambit/component-id": "1.2.5",
|
|
25
25
|
"@teambit/graph.cleargraph": "0.0.11",
|
|
26
|
+
"@teambit/graph": "1.0.1266",
|
|
26
27
|
"@teambit/legacy.consumer-component": "0.0.197",
|
|
27
28
|
"@teambit/logger": "0.0.1503",
|
|
28
29
|
"@teambit/objects": "0.0.741",
|
|
30
|
+
"@teambit/scope": "1.0.1273",
|
|
29
31
|
"@teambit/toolbox.promise.map-pool": "0.0.24",
|
|
30
32
|
"@teambit/component.sources": "0.0.247",
|
|
33
|
+
"@teambit/component": "1.0.1251",
|
|
34
|
+
"@teambit/dependency-resolver": "1.0.1256",
|
|
31
35
|
"@teambit/legacy.consumer-config": "0.0.195",
|
|
32
36
|
"@teambit/legacy.extension-data": "0.0.197",
|
|
33
37
|
"@teambit/legacy-bit-id": "1.1.4",
|
|
@@ -43,32 +47,28 @@
|
|
|
43
47
|
"@teambit/legacy.component-list": "0.0.257",
|
|
44
48
|
"@teambit/legacy.consumer": "0.0.203",
|
|
45
49
|
"@teambit/legacy.dependency-graph": "0.0.202",
|
|
50
|
+
"@teambit/remove": "1.0.1276",
|
|
51
|
+
"@teambit/workspace": "1.0.1274",
|
|
46
52
|
"@teambit/component-issues": "0.0.192",
|
|
47
53
|
"@teambit/config-store": "0.0.315",
|
|
48
54
|
"@teambit/harmony": "0.4.12",
|
|
55
|
+
"@teambit/application": "1.0.1274",
|
|
56
|
+
"@teambit/builder": "1.0.1274",
|
|
49
57
|
"@teambit/component-version": "1.0.4",
|
|
58
|
+
"@teambit/export": "1.0.1278",
|
|
50
59
|
"@teambit/harmony.modules.get-basic-log": "0.0.204",
|
|
51
60
|
"@teambit/harmony.modules.runtimes": "0.0.4",
|
|
61
|
+
"@teambit/importer": "1.0.1276",
|
|
52
62
|
"@teambit/lane-id": "0.0.312",
|
|
53
63
|
"@teambit/lanes.modules.create-lane": "0.0.240",
|
|
54
64
|
"@teambit/legacy.scope-api": "0.0.258",
|
|
55
65
|
"@teambit/pkg.modules.semver-helper": "0.0.38",
|
|
66
|
+
"@teambit/workspace-root": "0.0.102",
|
|
56
67
|
"@teambit/pkg.modules.component-package-name": "0.0.199",
|
|
68
|
+
"@teambit/pkg": "1.0.1274",
|
|
57
69
|
"@teambit/toolbox.crypto.sha1": "0.0.24",
|
|
58
70
|
"@teambit/workspace.modules.node-modules-linker": "0.0.436",
|
|
59
|
-
"@teambit/
|
|
60
|
-
"@teambit/scope": "1.0.1273",
|
|
61
|
-
"@teambit/component": "1.0.1251",
|
|
62
|
-
"@teambit/dependencies": "1.0.1277",
|
|
63
|
-
"@teambit/dependency-resolver": "1.0.1256",
|
|
64
|
-
"@teambit/remove": "1.0.1276",
|
|
65
|
-
"@teambit/workspace": "1.0.1274",
|
|
66
|
-
"@teambit/application": "1.0.1274",
|
|
67
|
-
"@teambit/builder": "1.0.1274",
|
|
68
|
-
"@teambit/export": "1.0.1278",
|
|
69
|
-
"@teambit/importer": "1.0.1276",
|
|
70
|
-
"@teambit/workspace-root": "0.0.102",
|
|
71
|
-
"@teambit/pkg": "1.0.1274"
|
|
71
|
+
"@teambit/dependencies": "1.0.1278"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
74
|
"@types/graphlib": "2.1.7",
|
|
@@ -80,9 +80,9 @@
|
|
|
80
80
|
"@teambit/component.testing.mock-components": "0.0.479",
|
|
81
81
|
"@teambit/harmony.testing.load-aspect": "0.0.473",
|
|
82
82
|
"@teambit/workspace.testing.mock-workspace": "0.0.289",
|
|
83
|
-
"@teambit/harmony.envs.core-aspect-env": "2.1.2",
|
|
84
83
|
"@teambit/compiler": "1.0.1274",
|
|
85
|
-
"@teambit/issues": "1.0.1251"
|
|
84
|
+
"@teambit/issues": "1.0.1251",
|
|
85
|
+
"@teambit/harmony.envs.core-aspect-env": "2.1.2"
|
|
86
86
|
},
|
|
87
87
|
"peerDependencies": {
|
|
88
88
|
"chai": "5.2.1"
|
|
File without changes
|