@teambit/checkout 0.0.217 → 0.0.219

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.
@@ -3,6 +3,7 @@ import { Logger, LoggerMain } from '@teambit/logger';
3
3
  import { Workspace } from '@teambit/workspace';
4
4
  import { BitId } from '@teambit/legacy-bit-id';
5
5
  import { ApplyVersionResults } from '@teambit/merging';
6
+ import { ImporterMain } from '@teambit/importer';
6
7
  import { ComponentWriterMain } from '@teambit/component-writer';
7
8
  import { MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';
8
9
  import { Version, ModelComponent } from '@teambit/legacy/dist/scope/models';
@@ -38,7 +39,8 @@ export declare class CheckoutMain {
38
39
  private workspace;
39
40
  private logger;
40
41
  private componentWriter;
41
- constructor(workspace: Workspace, logger: Logger, componentWriter: ComponentWriterMain);
42
+ private importer;
43
+ constructor(workspace: Workspace, logger: Logger, componentWriter: ComponentWriterMain, importer: ImporterMain);
42
44
  checkout(checkoutProps: CheckoutProps): Promise<ApplyVersionResults>;
43
45
  checkoutByCLIValues(to: CheckoutTo, componentPattern: string, checkoutProps: CheckoutProps): Promise<ApplyVersionResults>;
44
46
  private syncNewComponents;
@@ -50,11 +52,12 @@ export declare class CheckoutMain {
50
52
  static slots: never[];
51
53
  static dependencies: import("@teambit/harmony").Aspect[];
52
54
  static runtime: import("@teambit/harmony").RuntimeDefinition;
53
- static provider([cli, workspace, loggerMain, compWriter]: [
55
+ static provider([cli, workspace, loggerMain, compWriter, importer]: [
54
56
  CLIMain,
55
57
  Workspace,
56
58
  LoggerMain,
57
- ComponentWriterMain
59
+ ComponentWriterMain,
60
+ ImporterMain
58
61
  ]): Promise<CheckoutMain>;
59
62
  }
60
63
  export default CheckoutMain;
@@ -65,6 +65,13 @@ function _loaderMessages() {
65
65
  };
66
66
  return data;
67
67
  }
68
+ function _importer() {
69
+ const data = _interopRequireDefault(require("@teambit/importer"));
70
+ _importer = function () {
71
+ return data;
72
+ };
73
+ return data;
74
+ }
68
75
  function _constants() {
69
76
  const data = require("@teambit/legacy/dist/constants");
70
77
  _constants = function () {
@@ -140,10 +147,11 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
140
147
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
141
148
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
142
149
  class CheckoutMain {
143
- constructor(workspace, logger, componentWriter) {
150
+ constructor(workspace, logger, componentWriter, importer) {
144
151
  this.workspace = workspace;
145
152
  this.logger = logger;
146
153
  this.componentWriter = componentWriter;
154
+ this.importer = importer;
147
155
  }
148
156
  async checkout(checkoutProps) {
149
157
  var _checkoutProps$ids, _newFromLane, _componentWriterResul, _componentWriterResul2;
@@ -154,10 +162,7 @@ class CheckoutMain {
154
162
  promptMergeOptions
155
163
  } = checkoutProps;
156
164
  await this.syncNewComponents(checkoutProps);
157
- await this.workspace.scope.import(ids || [], {
158
- useCache: false,
159
- preferDependencyGraph: true
160
- });
165
+ await this.importer.importCurrentObjects(); // important. among others, it fetches the remote lane object and its new components.
161
166
  const bitIds = _bitId().BitIds.fromArray((ids === null || ids === void 0 ? void 0 : ids.map(id => id._legacy)) || []);
162
167
  const {
163
168
  components
@@ -275,7 +280,7 @@ class CheckoutMain {
275
280
  });
276
281
  } catch (err) {
277
282
  // don't stop the process. it's possible that the scope doesn't exist yet because these are new components
278
- this.logger.error(`unable to sync new components due to an error`, err);
283
+ this.logger.error(`unable to sync new components, if these components are really new, ignore the error`, err);
279
284
  }
280
285
  }
281
286
  async makeLaneComponentsAvailableOnMain() {
@@ -316,6 +321,7 @@ class CheckoutMain {
316
321
  checkoutProps.ids = ids.map(id => checkoutProps.head || checkoutProps.latest ? id.changeVersion(_constants().LATEST) : id);
317
322
  }
318
323
  async getNewComponentsFromLane(ids) {
324
+ // current lane object is up to date due to the previous `importCurrentObjects()` call
319
325
  const lane = await this.workspace.consumer.getCurrentLaneObject();
320
326
  if (!lane) {
321
327
  return [];
@@ -452,16 +458,16 @@ class CheckoutMain {
452
458
  mergeResults
453
459
  };
454
460
  }
455
- static async provider([cli, workspace, loggerMain, compWriter]) {
461
+ static async provider([cli, workspace, loggerMain, compWriter, importer]) {
456
462
  const logger = loggerMain.createLogger(_checkout().CheckoutAspect.id);
457
- const checkoutMain = new CheckoutMain(workspace, logger, compWriter);
463
+ const checkoutMain = new CheckoutMain(workspace, logger, compWriter, importer);
458
464
  cli.register(new (_checkoutCmd().CheckoutCmd)(checkoutMain));
459
465
  return checkoutMain;
460
466
  }
461
467
  }
462
468
  exports.CheckoutMain = CheckoutMain;
463
469
  (0, _defineProperty2().default)(CheckoutMain, "slots", []);
464
- (0, _defineProperty2().default)(CheckoutMain, "dependencies", [_cli().CLIAspect, _workspace().default, _logger().LoggerAspect, _componentWriter().ComponentWriterAspect]);
470
+ (0, _defineProperty2().default)(CheckoutMain, "dependencies", [_cli().CLIAspect, _workspace().default, _logger().LoggerAspect, _componentWriter().ComponentWriterAspect, _importer().default]);
465
471
  (0, _defineProperty2().default)(CheckoutMain, "runtime", _cli().MainRuntime);
466
472
  _checkout().CheckoutAspect.addRuntime(CheckoutMain);
467
473
  var _default = CheckoutMain;
@@ -1 +1 @@
1
- {"version":3,"names":["CheckoutMain","constructor","workspace","logger","componentWriter","checkout","checkoutProps","consumer","version","ids","promptMergeOptions","syncNewComponents","scope","import","useCache","preferDependencyGraph","bitIds","BitIds","fromArray","map","id","_legacy","components","loadComponents","allComponentStatusBeforeMerge","Promise","all","component","getComponentStatusBeforeMergeAttempt","compsNeedMerge","filter","c","propsForMerge","compsNotNeedMerge","toImport","compStatus","idsToImport","push","changeVersion","currentlyUsedVersion","flat","legacyScope","scopeImporter","importManyIfMissingWithoutDeps","getComponentsStatusOfMergeNeeded","tmp","Tmp","afterMergeAttempt","getMergeStatus","clear","err","compStatusMergeNeeded","allComponentsStatus","componentWithConflict","find","mergeResults","hasConflicts","mergeStrategy","GeneralError","toStringWithoutVersion","getMergeStrategyInteractive","failedComponents","componentStatus","failureMessage","unchangedLegitimately","succeededComponents","checkoutPropsLegacy","componentsResults","mapSeries","componentFromFS","applyVersion","markFilesToBeRemovedIfNeeded","componentsLegacy","compact","newFromLane","newFromLaneAdded","head","getNewComponentsFromLane","workspaceOnly","compsNewFromLane","loadComponentFromModelImportIfNeeded","leftUnresolvedConflicts","componentWriterResults","length","manyComponentsWriterOpts","skipDependencyInstallation","skipNpmInstall","verbose","resetConfig","reset","writeMany","deleteFilesIfNeeded","appliedVersionComponents","applyVersionResult","n","toString","installationError","compilationError","checkoutByCLIValues","to","componentPattern","setStatusLine","BEFORE_CHECKOUT","OutsideWorkspaceError","makeLaneComponentsAvailableOnMain","parseValues","checkoutResults","onDestroy","notExported","hasScope","changeScope","scopeComponentsImporter","importManyDeltaWithoutDeps","fromHead","error","unavailableOnMain","getUnavailableOnMainComponents","bitMap","makeComponentsAvailableOnMain","HEAD","LATEST","latest","BitId","isValidVersion","BitError","console","idsOnWorkspace","idsByPattern","listIds","currentLane","getCurrentLaneObject","currentLaneIds","toBitIds","hasWithoutVersion","lane","laneBitIds","newIds","bitId","isEqualWithoutVersion","newComponentIds","resolveMultipleComponentIds","nonRemovedNewIds","isRemoved","isComponentRemoved","headVersion","latestVersion","repo","objects","componentModel","getModelComponentIfExist","returnFailure","msg","unmerged","unmergedComponents","getEntry","name","getNewVersion","headIncludeRemote","newVersion","hasVersion","existingBitMapId","getBitId","ignoreVersion","currentVersionObject","loadVersion","isModified","isComponentModified","versionRef","getRef","Error","componentVersion","getObject","hash","newId","componentFromModel","baseVersion","baseComponent","otherComponent","threeWayMerge","otherLabel","currentComponent","currentLabel","provider","cli","loggerMain","compWriter","createLogger","CheckoutAspect","checkoutMain","register","CheckoutCmd","CLIAspect","WorkspaceAspect","LoggerAspect","ComponentWriterAspect","MainRuntime","addRuntime"],"sources":["checkout.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport WorkspaceAspect, { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { BitError } from '@teambit/bit-error';\nimport { compact } from 'lodash';\nimport { BEFORE_CHECKOUT } from '@teambit/legacy/dist/cli/loader/loader-messages';\nimport { ApplyVersionResults } from '@teambit/merging';\nimport { HEAD, LATEST } from '@teambit/legacy/dist/constants';\nimport { ComponentWriterAspect, ComponentWriterMain } from '@teambit/component-writer';\nimport {\n applyVersion,\n markFilesToBeRemovedIfNeeded,\n ComponentStatus,\n deleteFilesIfNeeded,\n} from '@teambit/legacy/dist/consumer/versions-ops/checkout-version';\nimport {\n FailedComponents,\n getMergeStrategyInteractive,\n MergeStrategy,\n threeWayMerge,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport GeneralError from '@teambit/legacy/dist/error/general-error';\nimport mapSeries from 'p-map-series';\nimport { BitIds } from '@teambit/legacy/dist/bit-id';\nimport { Version, ModelComponent } from '@teambit/legacy/dist/scope/models';\nimport { Tmp } from '@teambit/legacy/dist/scope/repositories';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { ComponentID } from '@teambit/component-id';\nimport { CheckoutCmd } from './checkout-cmd';\nimport { CheckoutAspect } from './checkout.aspect';\n\nexport type CheckoutProps = {\n version?: string; // if reset is true, the version is undefined\n ids?: ComponentID[];\n head?: boolean;\n latest?: boolean;\n promptMergeOptions?: boolean;\n mergeStrategy?: MergeStrategy | null;\n verbose?: boolean;\n skipNpmInstall?: boolean;\n reset?: boolean; // remove local changes. if set, the version is undefined.\n all?: boolean; // checkout all ids\n isLane?: boolean;\n workspaceOnly?: boolean;\n};\n\nexport type ComponentStatusBeforeMergeAttempt = {\n componentFromFS?: ConsumerComponent;\n componentFromModel?: Version;\n id: BitId;\n failureMessage?: string;\n unchangedLegitimately?: boolean; // failed to checkout but for a legitimate reason, such as, up-to-date\n propsForMerge?: {\n currentlyUsedVersion: string;\n componentModel: ModelComponent;\n };\n};\n\ntype CheckoutTo = 'head' | 'reset' | string;\n\nexport class CheckoutMain {\n constructor(private workspace: Workspace, private logger: Logger, private componentWriter: ComponentWriterMain) {}\n\n async checkout(checkoutProps: CheckoutProps): Promise<ApplyVersionResults> {\n const consumer = this.workspace.consumer;\n const { version, ids, promptMergeOptions } = checkoutProps;\n await this.syncNewComponents(checkoutProps);\n await this.workspace.scope.import(ids || [], { useCache: false, preferDependencyGraph: true });\n const bitIds = BitIds.fromArray(ids?.map((id) => id._legacy) || []);\n const { components } = await consumer.loadComponents(bitIds);\n\n const allComponentStatusBeforeMerge = await Promise.all(\n components.map((component) => this.getComponentStatusBeforeMergeAttempt(component, checkoutProps))\n );\n const compsNeedMerge = allComponentStatusBeforeMerge.filter((c) => c.propsForMerge);\n const compsNotNeedMerge = allComponentStatusBeforeMerge.filter((c) => !c.propsForMerge) as ComponentStatus[];\n\n // in case the requested versions to checkout don't exist locally, import them.\n const toImport = allComponentStatusBeforeMerge\n .map((compStatus) => {\n const idsToImport = [compStatus.id];\n if (compStatus.propsForMerge) {\n idsToImport.push(compStatus.id.changeVersion(compStatus.propsForMerge.currentlyUsedVersion));\n }\n return idsToImport;\n })\n .flat();\n await this.workspace.scope.legacyScope.scopeImporter.importManyIfMissingWithoutDeps({\n ids: BitIds.fromArray(toImport),\n });\n\n const getComponentsStatusOfMergeNeeded = async (): Promise<ComponentStatus[]> => {\n const tmp = new Tmp(consumer.scope);\n try {\n const afterMergeAttempt = await Promise.all(compsNeedMerge.map((c) => this.getMergeStatus(c)));\n await tmp.clear();\n return afterMergeAttempt;\n } catch (err: any) {\n await tmp.clear();\n throw err;\n }\n };\n\n const compStatusMergeNeeded = await getComponentsStatusOfMergeNeeded();\n\n const allComponentsStatus: ComponentStatus[] = [...compStatusMergeNeeded, ...compsNotNeedMerge];\n const componentWithConflict = allComponentsStatus.find(\n (component) => component.mergeResults && component.mergeResults.hasConflicts\n );\n if (componentWithConflict) {\n if (!promptMergeOptions && !checkoutProps.mergeStrategy) {\n throw new GeneralError(\n `automatic merge has failed for component ${componentWithConflict.id.toStringWithoutVersion()}.\\nplease use \"--manual\" to manually merge changes or use \"--theirs / --ours\" to choose one of the conflicted versions`\n );\n }\n if (!checkoutProps.mergeStrategy) checkoutProps.mergeStrategy = await getMergeStrategyInteractive();\n }\n const failedComponents: FailedComponents[] = allComponentsStatus\n .filter((componentStatus) => componentStatus.failureMessage)\n .map((componentStatus) => ({\n id: componentStatus.id,\n failureMessage: componentStatus.failureMessage as string,\n unchangedLegitimately: componentStatus.unchangedLegitimately,\n }));\n\n const succeededComponents = allComponentsStatus.filter((componentStatus) => !componentStatus.failureMessage);\n // do not use Promise.all for applyVersion. otherwise, it'll write all components in parallel,\n // which can be an issue when some components are also dependencies of others\n const checkoutPropsLegacy = { ...checkoutProps, ids: checkoutProps.ids?.map((id) => id._legacy) };\n const componentsResults = await mapSeries(succeededComponents, ({ id, componentFromFS, mergeResults }) => {\n return applyVersion(consumer, id, componentFromFS, mergeResults, checkoutPropsLegacy);\n });\n\n markFilesToBeRemovedIfNeeded(succeededComponents, componentsResults);\n\n const componentsLegacy = compact(componentsResults.map((c) => c.component));\n\n let newFromLane: ComponentID[] | undefined;\n let newFromLaneAdded = false;\n if (checkoutProps.head) {\n newFromLane = await this.getNewComponentsFromLane(checkoutProps.ids || []);\n if (!checkoutProps.workspaceOnly) {\n const compsNewFromLane = await Promise.all(\n newFromLane.map((id) => consumer.loadComponentFromModelImportIfNeeded(id._legacy))\n );\n componentsLegacy.push(...compsNewFromLane);\n newFromLaneAdded = true;\n }\n }\n\n const leftUnresolvedConflicts = componentWithConflict && checkoutProps.mergeStrategy === 'manual';\n let componentWriterResults;\n if (componentsLegacy.length) {\n const manyComponentsWriterOpts = {\n components: componentsLegacy,\n skipDependencyInstallation: checkoutProps.skipNpmInstall || leftUnresolvedConflicts,\n verbose: checkoutProps.verbose,\n resetConfig: checkoutProps.reset,\n };\n componentWriterResults = await this.componentWriter.writeMany(manyComponentsWriterOpts);\n await deleteFilesIfNeeded(componentsResults, consumer);\n }\n\n const appliedVersionComponents = componentsResults.map((c) => c.applyVersionResult);\n\n return {\n components: appliedVersionComponents,\n version,\n failedComponents,\n leftUnresolvedConflicts,\n newFromLane: newFromLane?.map((n) => n.toString()),\n newFromLaneAdded,\n installationError: componentWriterResults?.installationError,\n compilationError: componentWriterResults?.compilationError,\n };\n }\n\n async checkoutByCLIValues(\n to: CheckoutTo,\n componentPattern: string,\n checkoutProps: CheckoutProps\n ): Promise<ApplyVersionResults> {\n this.logger.setStatusLine(BEFORE_CHECKOUT);\n if (!this.workspace) throw new OutsideWorkspaceError();\n const consumer = this.workspace.consumer;\n if (to === 'head') await this.makeLaneComponentsAvailableOnMain();\n await this.parseValues(to, componentPattern, checkoutProps);\n const checkoutResults = await this.checkout(checkoutProps);\n await consumer.onDestroy();\n return checkoutResults;\n }\n\n private async syncNewComponents({ ids, head }: CheckoutProps) {\n if (!head) return;\n const notExported = ids?.filter((id) => !id._legacy.hasScope()).map((id) => id._legacy.changeScope(id.scope));\n const scopeComponentsImporter = this.workspace.consumer.scope.scopeImporter;\n try {\n await scopeComponentsImporter.importManyDeltaWithoutDeps({\n ids: BitIds.fromArray(notExported || []),\n fromHead: true,\n });\n } catch (err) {\n // don't stop the process. it's possible that the scope doesn't exist yet because these are new components\n this.logger.error(`unable to sync new components due to an error`, err);\n }\n }\n\n private async makeLaneComponentsAvailableOnMain() {\n const unavailableOnMain = await this.workspace.getUnavailableOnMainComponents();\n if (!unavailableOnMain.length) return;\n this.workspace.bitMap.makeComponentsAvailableOnMain(unavailableOnMain);\n }\n\n private async parseValues(to: CheckoutTo, componentPattern: string, checkoutProps: CheckoutProps) {\n if (to === HEAD) checkoutProps.head = true;\n else if (to === LATEST) checkoutProps.latest = true;\n else if (to === 'reset') checkoutProps.reset = true;\n else {\n if (!BitId.isValidVersion(to)) throw new BitError(`the specified version \"${to}\" is not a valid version`);\n checkoutProps.version = to;\n }\n if (checkoutProps.head && !componentPattern) {\n if (checkoutProps.all) {\n this.logger.console(`\"--all\" is deprecated for \"bit checkout ${HEAD}\", please omit it.`);\n }\n checkoutProps.all = true;\n }\n if (checkoutProps.latest && !componentPattern) {\n if (checkoutProps.all) {\n this.logger.console(`\"--all\" is deprecated for \"bit checkout ${LATEST}\", please omit it.`);\n }\n checkoutProps.all = true;\n }\n if (componentPattern && checkoutProps.all) {\n throw new GeneralError('please specify either [component-pattern] or --all, not both');\n }\n if (!componentPattern && !checkoutProps.all) {\n throw new GeneralError('please specify [component-pattern] or use --all flag');\n }\n if (checkoutProps.workspaceOnly && !checkoutProps.head) {\n throw new BitError(`--workspace-only flag can only be used with \"head\" (bit checkout head --workspace-only)`);\n }\n const idsOnWorkspace = componentPattern\n ? await this.workspace.idsByPattern(componentPattern)\n : await this.workspace.listIds();\n const currentLane = await this.workspace.consumer.getCurrentLaneObject();\n const currentLaneIds = currentLane?.toBitIds();\n const ids = currentLaneIds\n ? idsOnWorkspace.filter((id) => currentLaneIds.hasWithoutVersion(id._legacy))\n : idsOnWorkspace;\n checkoutProps.ids = ids.map((id) => (checkoutProps.head || checkoutProps.latest ? id.changeVersion(LATEST) : id));\n }\n\n private async getNewComponentsFromLane(ids: ComponentID[]): Promise<ComponentID[]> {\n const lane = await this.workspace.consumer.getCurrentLaneObject();\n if (!lane) {\n return [];\n }\n const laneBitIds = lane.toBitIds();\n const newIds = laneBitIds.filter((bitId) => !ids.find((id) => id._legacy.isEqualWithoutVersion(bitId)));\n const newComponentIds = await this.workspace.resolveMultipleComponentIds(newIds);\n const nonRemovedNewIds: ComponentID[] = [];\n await Promise.all(\n newComponentIds.map(async (id) => {\n const isRemoved = await this.workspace.scope.isComponentRemoved(id);\n if (!isRemoved) nonRemovedNewIds.push(id);\n })\n );\n return nonRemovedNewIds;\n }\n\n private async getComponentStatusBeforeMergeAttempt(\n component: ConsumerComponent,\n checkoutProps: CheckoutProps\n ): Promise<ComponentStatusBeforeMergeAttempt> {\n const consumer = this.workspace.consumer;\n const { version, head: headVersion, reset, latest: latestVersion } = checkoutProps;\n const repo = consumer.scope.objects;\n const componentModel = await consumer.scope.getModelComponentIfExist(component.id);\n const componentStatus: ComponentStatus = { id: component.id };\n const returnFailure = (msg: string, unchangedLegitimately = false) => {\n componentStatus.failureMessage = msg;\n componentStatus.unchangedLegitimately = unchangedLegitimately;\n return componentStatus;\n };\n if (!componentModel) {\n return returnFailure(`component ${component.id.toString()} is new, no version to checkout`, true);\n }\n const unmerged = repo.unmergedComponents.getEntry(component.name);\n if (!reset && unmerged) {\n return returnFailure(\n `component ${component.id.toStringWithoutVersion()} is in during-merge state, please snap/tag it first (or use bit merge --resolve/--abort)`\n );\n }\n const getNewVersion = async (): Promise<string> => {\n if (reset) return component.id.version as string;\n\n if (headVersion) return componentModel.headIncludeRemote(repo);\n if (latestVersion) return componentModel.latestVersion();\n // @ts-ignore if !reset the version is defined\n return version;\n };\n const newVersion = await getNewVersion();\n if (version && !headVersion) {\n const hasVersion = await componentModel.hasVersion(version, repo);\n if (!hasVersion)\n return returnFailure(`component ${component.id.toStringWithoutVersion()} doesn't have version ${version}`);\n }\n const existingBitMapId = consumer.bitMap.getBitId(component.id, { ignoreVersion: true });\n const currentlyUsedVersion = existingBitMapId.version;\n if (!currentlyUsedVersion) {\n return returnFailure(`component ${component.id.toStringWithoutVersion()} is new`);\n }\n if (version && currentlyUsedVersion === version) {\n // it won't be relevant for 'reset' as it doesn't have a version\n return returnFailure(`component ${component.id.toStringWithoutVersion()} is already at version ${version}`, true);\n }\n if (headVersion && currentlyUsedVersion === newVersion) {\n return returnFailure(\n `component ${component.id.toStringWithoutVersion()} is already at the latest version, which is ${newVersion}`,\n true\n );\n }\n const currentVersionObject: Version = await componentModel.loadVersion(currentlyUsedVersion, repo);\n const isModified = await consumer.isComponentModified(currentVersionObject, component);\n if (!isModified && reset) {\n return returnFailure(`component ${component.id.toStringWithoutVersion()} is not modified`, true);\n }\n\n const versionRef = componentModel.getRef(newVersion);\n if (!versionRef) throw new Error(`unable to get ref ${newVersion} from ${componentModel.id()}`);\n const componentVersion = (await consumer.scope.getObject(versionRef.hash)) as Version;\n const newId = component.id.changeVersion(newVersion);\n\n if (reset || !isModified) {\n // if the component is not modified, no need to try merge the files, they will be written later on according to the\n // checked out version. same thing when no version is specified, it'll be reset to the model-version later.\n return { componentFromFS: component, componentFromModel: componentVersion, id: newId };\n }\n\n const propsForMerge = {\n currentlyUsedVersion,\n componentModel,\n };\n\n return { componentFromFS: component, componentFromModel: componentVersion, id: newId, propsForMerge };\n }\n\n private async getMergeStatus({\n componentFromFS,\n componentFromModel,\n id,\n propsForMerge,\n }: ComponentStatusBeforeMergeAttempt): Promise<ComponentStatus> {\n if (!propsForMerge) throw new Error(`propsForMerge is missing for ${id.toString()}`);\n if (!componentFromFS) throw new Error(`componentFromFS is missing for ${id.toString()}`);\n const consumer = this.workspace.consumer;\n const repo = consumer.scope.objects;\n const { currentlyUsedVersion, componentModel } = propsForMerge;\n\n // this is tricky. imagine the user is 0.0.2+modification and wants to checkout to 0.0.1.\n // the base is 0.0.1, as it's the common version for 0.0.1 and 0.0.2. however, if we let git merge-file use the 0.0.1\n // as the base, then, it'll get the changes done since 0.0.1 to 0.0.1, which is nothing, and put them on top of\n // 0.0.2+modification. in other words, it won't make any change.\n // this scenario of checking out while there are modified files, is forbidden in Git. here, we want to simulate a similar\n // experience of \"git stash\", then \"git checkout\", then \"git stash pop\". practically, we want the changes done on 0.0.2\n // to be added to 0.0.1\n // if there is no modification, it doesn't go the threeWayMerge anyway, so it doesn't matter what the base is.\n const baseVersion = currentlyUsedVersion;\n const newVersion = id.version as string;\n const baseComponent: Version = await componentModel.loadVersion(baseVersion, repo);\n const otherComponent: Version = await componentModel.loadVersion(newVersion, repo);\n const mergeResults = await threeWayMerge({\n consumer,\n otherComponent,\n otherLabel: newVersion,\n currentComponent: componentFromFS,\n currentLabel: `${currentlyUsedVersion} modified`,\n baseComponent,\n });\n\n return { componentFromFS, componentFromModel, id, mergeResults };\n }\n\n static slots = [];\n static dependencies = [CLIAspect, WorkspaceAspect, LoggerAspect, ComponentWriterAspect];\n\n static runtime = MainRuntime;\n\n static async provider([cli, workspace, loggerMain, compWriter]: [\n CLIMain,\n Workspace,\n LoggerMain,\n ComponentWriterMain\n ]) {\n const logger = loggerMain.createLogger(CheckoutAspect.id);\n const checkoutMain = new CheckoutMain(workspace, logger, compWriter);\n cli.register(new CheckoutCmd(checkoutMain));\n return checkoutMain;\n }\n}\n\nCheckoutAspect.addRuntime(CheckoutMain);\n\nexport default CheckoutMain;\n"],"mappings":"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"}
1
+ {"version":3,"names":["CheckoutMain","constructor","workspace","logger","componentWriter","importer","checkout","checkoutProps","consumer","version","ids","promptMergeOptions","syncNewComponents","importCurrentObjects","bitIds","BitIds","fromArray","map","id","_legacy","components","loadComponents","allComponentStatusBeforeMerge","Promise","all","component","getComponentStatusBeforeMergeAttempt","compsNeedMerge","filter","c","propsForMerge","compsNotNeedMerge","toImport","compStatus","idsToImport","push","changeVersion","currentlyUsedVersion","flat","scope","legacyScope","scopeImporter","importManyIfMissingWithoutDeps","getComponentsStatusOfMergeNeeded","tmp","Tmp","afterMergeAttempt","getMergeStatus","clear","err","compStatusMergeNeeded","allComponentsStatus","componentWithConflict","find","mergeResults","hasConflicts","mergeStrategy","GeneralError","toStringWithoutVersion","getMergeStrategyInteractive","failedComponents","componentStatus","failureMessage","unchangedLegitimately","succeededComponents","checkoutPropsLegacy","componentsResults","mapSeries","componentFromFS","applyVersion","markFilesToBeRemovedIfNeeded","componentsLegacy","compact","newFromLane","newFromLaneAdded","head","getNewComponentsFromLane","workspaceOnly","compsNewFromLane","loadComponentFromModelImportIfNeeded","leftUnresolvedConflicts","componentWriterResults","length","manyComponentsWriterOpts","skipDependencyInstallation","skipNpmInstall","verbose","resetConfig","reset","writeMany","deleteFilesIfNeeded","appliedVersionComponents","applyVersionResult","n","toString","installationError","compilationError","checkoutByCLIValues","to","componentPattern","setStatusLine","BEFORE_CHECKOUT","OutsideWorkspaceError","makeLaneComponentsAvailableOnMain","parseValues","checkoutResults","onDestroy","notExported","hasScope","changeScope","scopeComponentsImporter","importManyDeltaWithoutDeps","fromHead","error","unavailableOnMain","getUnavailableOnMainComponents","bitMap","makeComponentsAvailableOnMain","HEAD","LATEST","latest","BitId","isValidVersion","BitError","console","idsOnWorkspace","idsByPattern","listIds","currentLane","getCurrentLaneObject","currentLaneIds","toBitIds","hasWithoutVersion","lane","laneBitIds","newIds","bitId","isEqualWithoutVersion","newComponentIds","resolveMultipleComponentIds","nonRemovedNewIds","isRemoved","isComponentRemoved","headVersion","latestVersion","repo","objects","componentModel","getModelComponentIfExist","returnFailure","msg","unmerged","unmergedComponents","getEntry","name","getNewVersion","headIncludeRemote","newVersion","hasVersion","existingBitMapId","getBitId","ignoreVersion","currentVersionObject","loadVersion","isModified","isComponentModified","versionRef","getRef","Error","componentVersion","getObject","hash","newId","componentFromModel","baseVersion","baseComponent","otherComponent","threeWayMerge","otherLabel","currentComponent","currentLabel","provider","cli","loggerMain","compWriter","createLogger","CheckoutAspect","checkoutMain","register","CheckoutCmd","CLIAspect","WorkspaceAspect","LoggerAspect","ComponentWriterAspect","ImporterAspect","MainRuntime","addRuntime"],"sources":["checkout.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport WorkspaceAspect, { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { BitError } from '@teambit/bit-error';\nimport { compact } from 'lodash';\nimport { BEFORE_CHECKOUT } from '@teambit/legacy/dist/cli/loader/loader-messages';\nimport { ApplyVersionResults } from '@teambit/merging';\nimport ImporterAspect, { ImporterMain } from '@teambit/importer';\nimport { HEAD, LATEST } from '@teambit/legacy/dist/constants';\nimport { ComponentWriterAspect, ComponentWriterMain } from '@teambit/component-writer';\nimport {\n applyVersion,\n markFilesToBeRemovedIfNeeded,\n ComponentStatus,\n deleteFilesIfNeeded,\n} from '@teambit/legacy/dist/consumer/versions-ops/checkout-version';\nimport {\n FailedComponents,\n getMergeStrategyInteractive,\n MergeStrategy,\n threeWayMerge,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport GeneralError from '@teambit/legacy/dist/error/general-error';\nimport mapSeries from 'p-map-series';\nimport { BitIds } from '@teambit/legacy/dist/bit-id';\nimport { Version, ModelComponent } from '@teambit/legacy/dist/scope/models';\nimport { Tmp } from '@teambit/legacy/dist/scope/repositories';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { ComponentID } from '@teambit/component-id';\nimport { CheckoutCmd } from './checkout-cmd';\nimport { CheckoutAspect } from './checkout.aspect';\n\nexport type CheckoutProps = {\n version?: string; // if reset is true, the version is undefined\n ids?: ComponentID[];\n head?: boolean;\n latest?: boolean;\n promptMergeOptions?: boolean;\n mergeStrategy?: MergeStrategy | null;\n verbose?: boolean;\n skipNpmInstall?: boolean;\n reset?: boolean; // remove local changes. if set, the version is undefined.\n all?: boolean; // checkout all ids\n isLane?: boolean;\n workspaceOnly?: boolean;\n};\n\nexport type ComponentStatusBeforeMergeAttempt = {\n componentFromFS?: ConsumerComponent;\n componentFromModel?: Version;\n id: BitId;\n failureMessage?: string;\n unchangedLegitimately?: boolean; // failed to checkout but for a legitimate reason, such as, up-to-date\n propsForMerge?: {\n currentlyUsedVersion: string;\n componentModel: ModelComponent;\n };\n};\n\ntype CheckoutTo = 'head' | 'reset' | string;\n\nexport class CheckoutMain {\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private componentWriter: ComponentWriterMain,\n private importer: ImporterMain\n ) {}\n\n async checkout(checkoutProps: CheckoutProps): Promise<ApplyVersionResults> {\n const consumer = this.workspace.consumer;\n const { version, ids, promptMergeOptions } = checkoutProps;\n await this.syncNewComponents(checkoutProps);\n await this.importer.importCurrentObjects(); // important. among others, it fetches the remote lane object and its new components.\n const bitIds = BitIds.fromArray(ids?.map((id) => id._legacy) || []);\n const { components } = await consumer.loadComponents(bitIds);\n\n const allComponentStatusBeforeMerge = await Promise.all(\n components.map((component) => this.getComponentStatusBeforeMergeAttempt(component, checkoutProps))\n );\n const compsNeedMerge = allComponentStatusBeforeMerge.filter((c) => c.propsForMerge);\n const compsNotNeedMerge = allComponentStatusBeforeMerge.filter((c) => !c.propsForMerge) as ComponentStatus[];\n\n // in case the requested versions to checkout don't exist locally, import them.\n const toImport = allComponentStatusBeforeMerge\n .map((compStatus) => {\n const idsToImport = [compStatus.id];\n if (compStatus.propsForMerge) {\n idsToImport.push(compStatus.id.changeVersion(compStatus.propsForMerge.currentlyUsedVersion));\n }\n return idsToImport;\n })\n .flat();\n await this.workspace.scope.legacyScope.scopeImporter.importManyIfMissingWithoutDeps({\n ids: BitIds.fromArray(toImport),\n });\n\n const getComponentsStatusOfMergeNeeded = async (): Promise<ComponentStatus[]> => {\n const tmp = new Tmp(consumer.scope);\n try {\n const afterMergeAttempt = await Promise.all(compsNeedMerge.map((c) => this.getMergeStatus(c)));\n await tmp.clear();\n return afterMergeAttempt;\n } catch (err: any) {\n await tmp.clear();\n throw err;\n }\n };\n\n const compStatusMergeNeeded = await getComponentsStatusOfMergeNeeded();\n\n const allComponentsStatus: ComponentStatus[] = [...compStatusMergeNeeded, ...compsNotNeedMerge];\n const componentWithConflict = allComponentsStatus.find(\n (component) => component.mergeResults && component.mergeResults.hasConflicts\n );\n if (componentWithConflict) {\n if (!promptMergeOptions && !checkoutProps.mergeStrategy) {\n throw new GeneralError(\n `automatic merge has failed for component ${componentWithConflict.id.toStringWithoutVersion()}.\\nplease use \"--manual\" to manually merge changes or use \"--theirs / --ours\" to choose one of the conflicted versions`\n );\n }\n if (!checkoutProps.mergeStrategy) checkoutProps.mergeStrategy = await getMergeStrategyInteractive();\n }\n const failedComponents: FailedComponents[] = allComponentsStatus\n .filter((componentStatus) => componentStatus.failureMessage)\n .map((componentStatus) => ({\n id: componentStatus.id,\n failureMessage: componentStatus.failureMessage as string,\n unchangedLegitimately: componentStatus.unchangedLegitimately,\n }));\n\n const succeededComponents = allComponentsStatus.filter((componentStatus) => !componentStatus.failureMessage);\n // do not use Promise.all for applyVersion. otherwise, it'll write all components in parallel,\n // which can be an issue when some components are also dependencies of others\n const checkoutPropsLegacy = { ...checkoutProps, ids: checkoutProps.ids?.map((id) => id._legacy) };\n const componentsResults = await mapSeries(succeededComponents, ({ id, componentFromFS, mergeResults }) => {\n return applyVersion(consumer, id, componentFromFS, mergeResults, checkoutPropsLegacy);\n });\n\n markFilesToBeRemovedIfNeeded(succeededComponents, componentsResults);\n\n const componentsLegacy = compact(componentsResults.map((c) => c.component));\n\n let newFromLane: ComponentID[] | undefined;\n let newFromLaneAdded = false;\n if (checkoutProps.head) {\n newFromLane = await this.getNewComponentsFromLane(checkoutProps.ids || []);\n if (!checkoutProps.workspaceOnly) {\n const compsNewFromLane = await Promise.all(\n newFromLane.map((id) => consumer.loadComponentFromModelImportIfNeeded(id._legacy))\n );\n componentsLegacy.push(...compsNewFromLane);\n newFromLaneAdded = true;\n }\n }\n\n const leftUnresolvedConflicts = componentWithConflict && checkoutProps.mergeStrategy === 'manual';\n let componentWriterResults;\n if (componentsLegacy.length) {\n const manyComponentsWriterOpts = {\n components: componentsLegacy,\n skipDependencyInstallation: checkoutProps.skipNpmInstall || leftUnresolvedConflicts,\n verbose: checkoutProps.verbose,\n resetConfig: checkoutProps.reset,\n };\n componentWriterResults = await this.componentWriter.writeMany(manyComponentsWriterOpts);\n await deleteFilesIfNeeded(componentsResults, consumer);\n }\n\n const appliedVersionComponents = componentsResults.map((c) => c.applyVersionResult);\n\n return {\n components: appliedVersionComponents,\n version,\n failedComponents,\n leftUnresolvedConflicts,\n newFromLane: newFromLane?.map((n) => n.toString()),\n newFromLaneAdded,\n installationError: componentWriterResults?.installationError,\n compilationError: componentWriterResults?.compilationError,\n };\n }\n\n async checkoutByCLIValues(\n to: CheckoutTo,\n componentPattern: string,\n checkoutProps: CheckoutProps\n ): Promise<ApplyVersionResults> {\n this.logger.setStatusLine(BEFORE_CHECKOUT);\n if (!this.workspace) throw new OutsideWorkspaceError();\n const consumer = this.workspace.consumer;\n if (to === 'head') await this.makeLaneComponentsAvailableOnMain();\n await this.parseValues(to, componentPattern, checkoutProps);\n const checkoutResults = await this.checkout(checkoutProps);\n await consumer.onDestroy();\n return checkoutResults;\n }\n\n private async syncNewComponents({ ids, head }: CheckoutProps) {\n if (!head) return;\n const notExported = ids?.filter((id) => !id._legacy.hasScope()).map((id) => id._legacy.changeScope(id.scope));\n const scopeComponentsImporter = this.workspace.consumer.scope.scopeImporter;\n try {\n await scopeComponentsImporter.importManyDeltaWithoutDeps({\n ids: BitIds.fromArray(notExported || []),\n fromHead: true,\n });\n } catch (err) {\n // don't stop the process. it's possible that the scope doesn't exist yet because these are new components\n this.logger.error(`unable to sync new components, if these components are really new, ignore the error`, err);\n }\n }\n\n private async makeLaneComponentsAvailableOnMain() {\n const unavailableOnMain = await this.workspace.getUnavailableOnMainComponents();\n if (!unavailableOnMain.length) return;\n this.workspace.bitMap.makeComponentsAvailableOnMain(unavailableOnMain);\n }\n\n private async parseValues(to: CheckoutTo, componentPattern: string, checkoutProps: CheckoutProps) {\n if (to === HEAD) checkoutProps.head = true;\n else if (to === LATEST) checkoutProps.latest = true;\n else if (to === 'reset') checkoutProps.reset = true;\n else {\n if (!BitId.isValidVersion(to)) throw new BitError(`the specified version \"${to}\" is not a valid version`);\n checkoutProps.version = to;\n }\n if (checkoutProps.head && !componentPattern) {\n if (checkoutProps.all) {\n this.logger.console(`\"--all\" is deprecated for \"bit checkout ${HEAD}\", please omit it.`);\n }\n checkoutProps.all = true;\n }\n if (checkoutProps.latest && !componentPattern) {\n if (checkoutProps.all) {\n this.logger.console(`\"--all\" is deprecated for \"bit checkout ${LATEST}\", please omit it.`);\n }\n checkoutProps.all = true;\n }\n if (componentPattern && checkoutProps.all) {\n throw new GeneralError('please specify either [component-pattern] or --all, not both');\n }\n if (!componentPattern && !checkoutProps.all) {\n throw new GeneralError('please specify [component-pattern] or use --all flag');\n }\n if (checkoutProps.workspaceOnly && !checkoutProps.head) {\n throw new BitError(`--workspace-only flag can only be used with \"head\" (bit checkout head --workspace-only)`);\n }\n const idsOnWorkspace = componentPattern\n ? await this.workspace.idsByPattern(componentPattern)\n : await this.workspace.listIds();\n const currentLane = await this.workspace.consumer.getCurrentLaneObject();\n const currentLaneIds = currentLane?.toBitIds();\n const ids = currentLaneIds\n ? idsOnWorkspace.filter((id) => currentLaneIds.hasWithoutVersion(id._legacy))\n : idsOnWorkspace;\n checkoutProps.ids = ids.map((id) => (checkoutProps.head || checkoutProps.latest ? id.changeVersion(LATEST) : id));\n }\n\n private async getNewComponentsFromLane(ids: ComponentID[]): Promise<ComponentID[]> {\n // current lane object is up to date due to the previous `importCurrentObjects()` call\n const lane = await this.workspace.consumer.getCurrentLaneObject();\n if (!lane) {\n return [];\n }\n const laneBitIds = lane.toBitIds();\n const newIds = laneBitIds.filter((bitId) => !ids.find((id) => id._legacy.isEqualWithoutVersion(bitId)));\n const newComponentIds = await this.workspace.resolveMultipleComponentIds(newIds);\n const nonRemovedNewIds: ComponentID[] = [];\n await Promise.all(\n newComponentIds.map(async (id) => {\n const isRemoved = await this.workspace.scope.isComponentRemoved(id);\n if (!isRemoved) nonRemovedNewIds.push(id);\n })\n );\n return nonRemovedNewIds;\n }\n\n private async getComponentStatusBeforeMergeAttempt(\n component: ConsumerComponent,\n checkoutProps: CheckoutProps\n ): Promise<ComponentStatusBeforeMergeAttempt> {\n const consumer = this.workspace.consumer;\n const { version, head: headVersion, reset, latest: latestVersion } = checkoutProps;\n const repo = consumer.scope.objects;\n const componentModel = await consumer.scope.getModelComponentIfExist(component.id);\n const componentStatus: ComponentStatus = { id: component.id };\n const returnFailure = (msg: string, unchangedLegitimately = false) => {\n componentStatus.failureMessage = msg;\n componentStatus.unchangedLegitimately = unchangedLegitimately;\n return componentStatus;\n };\n if (!componentModel) {\n return returnFailure(`component ${component.id.toString()} is new, no version to checkout`, true);\n }\n const unmerged = repo.unmergedComponents.getEntry(component.name);\n if (!reset && unmerged) {\n return returnFailure(\n `component ${component.id.toStringWithoutVersion()} is in during-merge state, please snap/tag it first (or use bit merge --resolve/--abort)`\n );\n }\n const getNewVersion = async (): Promise<string> => {\n if (reset) return component.id.version as string;\n\n if (headVersion) return componentModel.headIncludeRemote(repo);\n if (latestVersion) return componentModel.latestVersion();\n // @ts-ignore if !reset the version is defined\n return version;\n };\n const newVersion = await getNewVersion();\n if (version && !headVersion) {\n const hasVersion = await componentModel.hasVersion(version, repo);\n if (!hasVersion)\n return returnFailure(`component ${component.id.toStringWithoutVersion()} doesn't have version ${version}`);\n }\n const existingBitMapId = consumer.bitMap.getBitId(component.id, { ignoreVersion: true });\n const currentlyUsedVersion = existingBitMapId.version;\n if (!currentlyUsedVersion) {\n return returnFailure(`component ${component.id.toStringWithoutVersion()} is new`);\n }\n if (version && currentlyUsedVersion === version) {\n // it won't be relevant for 'reset' as it doesn't have a version\n return returnFailure(`component ${component.id.toStringWithoutVersion()} is already at version ${version}`, true);\n }\n if (headVersion && currentlyUsedVersion === newVersion) {\n return returnFailure(\n `component ${component.id.toStringWithoutVersion()} is already at the latest version, which is ${newVersion}`,\n true\n );\n }\n const currentVersionObject: Version = await componentModel.loadVersion(currentlyUsedVersion, repo);\n const isModified = await consumer.isComponentModified(currentVersionObject, component);\n if (!isModified && reset) {\n return returnFailure(`component ${component.id.toStringWithoutVersion()} is not modified`, true);\n }\n\n const versionRef = componentModel.getRef(newVersion);\n if (!versionRef) throw new Error(`unable to get ref ${newVersion} from ${componentModel.id()}`);\n const componentVersion = (await consumer.scope.getObject(versionRef.hash)) as Version;\n const newId = component.id.changeVersion(newVersion);\n\n if (reset || !isModified) {\n // if the component is not modified, no need to try merge the files, they will be written later on according to the\n // checked out version. same thing when no version is specified, it'll be reset to the model-version later.\n return { componentFromFS: component, componentFromModel: componentVersion, id: newId };\n }\n\n const propsForMerge = {\n currentlyUsedVersion,\n componentModel,\n };\n\n return { componentFromFS: component, componentFromModel: componentVersion, id: newId, propsForMerge };\n }\n\n private async getMergeStatus({\n componentFromFS,\n componentFromModel,\n id,\n propsForMerge,\n }: ComponentStatusBeforeMergeAttempt): Promise<ComponentStatus> {\n if (!propsForMerge) throw new Error(`propsForMerge is missing for ${id.toString()}`);\n if (!componentFromFS) throw new Error(`componentFromFS is missing for ${id.toString()}`);\n const consumer = this.workspace.consumer;\n const repo = consumer.scope.objects;\n const { currentlyUsedVersion, componentModel } = propsForMerge;\n\n // this is tricky. imagine the user is 0.0.2+modification and wants to checkout to 0.0.1.\n // the base is 0.0.1, as it's the common version for 0.0.1 and 0.0.2. however, if we let git merge-file use the 0.0.1\n // as the base, then, it'll get the changes done since 0.0.1 to 0.0.1, which is nothing, and put them on top of\n // 0.0.2+modification. in other words, it won't make any change.\n // this scenario of checking out while there are modified files, is forbidden in Git. here, we want to simulate a similar\n // experience of \"git stash\", then \"git checkout\", then \"git stash pop\". practically, we want the changes done on 0.0.2\n // to be added to 0.0.1\n // if there is no modification, it doesn't go the threeWayMerge anyway, so it doesn't matter what the base is.\n const baseVersion = currentlyUsedVersion;\n const newVersion = id.version as string;\n const baseComponent: Version = await componentModel.loadVersion(baseVersion, repo);\n const otherComponent: Version = await componentModel.loadVersion(newVersion, repo);\n const mergeResults = await threeWayMerge({\n consumer,\n otherComponent,\n otherLabel: newVersion,\n currentComponent: componentFromFS,\n currentLabel: `${currentlyUsedVersion} modified`,\n baseComponent,\n });\n\n return { componentFromFS, componentFromModel, id, mergeResults };\n }\n\n static slots = [];\n static dependencies = [CLIAspect, WorkspaceAspect, LoggerAspect, ComponentWriterAspect, ImporterAspect];\n\n static runtime = MainRuntime;\n\n static async provider([cli, workspace, loggerMain, compWriter, importer]: [\n CLIMain,\n Workspace,\n LoggerMain,\n ComponentWriterMain,\n ImporterMain\n ]) {\n const logger = loggerMain.createLogger(CheckoutAspect.id);\n const checkoutMain = new CheckoutMain(workspace, logger, compWriter, importer);\n cli.register(new CheckoutCmd(checkoutMain));\n return checkoutMain;\n }\n}\n\nCheckoutAspect.addRuntime(CheckoutMain);\n\nexport default CheckoutMain;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/checkout",
3
- "version": "0.0.217",
3
+ "version": "0.0.219",
4
4
  "homepage": "https://bit.cloud/teambit/component/checkout",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "checkout",
9
- "version": "0.0.217"
9
+ "version": "0.0.219"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -18,11 +18,12 @@
18
18
  "@teambit/component-id": "0.0.427",
19
19
  "@teambit/legacy-bit-id": "0.0.423",
20
20
  "@teambit/bit-error": "0.0.402",
21
- "@teambit/cli": "0.0.705",
22
- "@teambit/merging": "0.0.363",
23
- "@teambit/component-writer": "0.0.84",
24
- "@teambit/logger": "0.0.798",
25
- "@teambit/workspace": "0.0.1048"
21
+ "@teambit/cli": "0.0.706",
22
+ "@teambit/merging": "0.0.365",
23
+ "@teambit/component-writer": "0.0.86",
24
+ "@teambit/importer": "0.0.479",
25
+ "@teambit/logger": "0.0.799",
26
+ "@teambit/workspace": "0.0.1050"
26
27
  },
27
28
  "devDependencies": {
28
29
  "@types/lodash": "4.14.165",
@@ -34,7 +35,7 @@
34
35
  "@types/testing-library__jest-dom": "5.9.5"
35
36
  },
36
37
  "peerDependencies": {
37
- "@teambit/legacy": "1.0.484",
38
+ "@teambit/legacy": "1.0.486",
38
39
  "react": "^16.8.0 || ^17.0.0",
39
40
  "react-dom": "^16.8.0 || ^17.0.0"
40
41
  },