import type { ReleaseType } from 'semver'; import { ComponentID, ComponentIdList } from '@teambit/component-id'; import type { ConsumerComponent } from '@teambit/legacy.consumer-component'; import type { Component } from '@teambit/component'; import type { ModelComponent } from '@teambit/objects'; import type { StagedConfig } from '@teambit/scope'; import type { Workspace, AutoTagResult } from '@teambit/workspace'; import type { SnappingMain, TagDataPerComp } from './snapping.main.runtime'; import type { LaneId } from '@teambit/lane-id'; export type BasicTagSnapParams = { message: string; skipTests?: boolean; skipTasks?: string; build?: boolean; ignoreBuildErrors?: boolean; rebuildDepsGraph?: boolean; noLockDeps?: boolean; detachHead?: boolean; overrideHead?: boolean; loose?: boolean; }; export type BasicTagParams = BasicTagSnapParams & { ignoreNewestVersion?: boolean; skipAutoTag?: boolean; soft?: boolean; persist: boolean; disableTagAndSnapPipelines?: boolean; preReleaseId?: string; editor?: string; versionsFile?: string; unmodified?: boolean; ignoreIssues?: string; }; export type VersionMakerParams = { tagDataPerComp?: TagDataPerComp[]; populateArtifactsFrom?: ComponentID[]; populateArtifactsIgnorePkgJson?: boolean; copyLogFromPreviousSnap?: boolean; exactVersion?: string | null | undefined; releaseType?: ReleaseType; incrementBy?: number; isSnap?: boolean; packageManagerConfigRootDir?: string; exitOnFirstFailedTask?: boolean; updateDependentsOnLane?: boolean; setHeadAsParent?: boolean; } & BasicTagParams; /** * create a tag or a snap of the given components and save them in the local scope. */ export declare class VersionMaker { private snapping; private components; private consumerComponents; private ids; private params; private workspace?; private consumer?; private legacyScope; private scope; private builder; private dependencyResolver; private allComponentsToTag; private allWorkspaceComps?; private batchId; constructor(snapping: SnappingMain, components: Component[], consumerComponents: ConsumerComponent[], ids: ComponentIdList, params: VersionMakerParams); makeVersion(): Promise<{ taggedComponents: ConsumerComponent[]; autoTaggedResults: AutoTagResult[]; publishedPackages: string[]; stagedConfig?: StagedConfig; removedComponents?: ComponentIdList; totalComponentsCount?: number; batchId: string; }>; private _addDependenciesGraphToComponents; private _findWorkspaceCompByConsumerComp; private _getComponentIdByPkgNameMap; private triggerOnPreSnap; private addLaneObject; private build; private checkForNewerVersions; private getMessagePerId; private parseVersionsFile; private getUniqCompsToTag; private getAutoTagData; private getLaneAutoTagIdsFromScope; private setFutureVersions; private setCurrentSchema; private setHashes; private getVersionByEnteredId; private addBuildStatus; /** * otherwise, tagging without build will have the old build data of the previous snap/tag. * in case we currently build, it's ok to leave the data as is, because it'll be overridden anyway. */ private emptyBuilderData; private updateDependenciesVersions; private addLogToComponents; } export type BitCloudUser = { username?: string; name?: string; displayName?: string; profileImage?: string; }; export declare function updateVersions(workspace: Workspace, stagedConfig: StagedConfig, currentLane: LaneId, modelComponent: ModelComponent, versionToSetInBitmap?: string, // helpful for detached head isTag?: boolean): Promise;