@teambit/checkout 1.0.317 → 1.0.319

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,5 @@
1
1
  import { Command, CommandOptions } from '@teambit/cli';
2
- import { ApplyVersionResults } from '@teambit/merging';
3
- import { MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';
2
+ import { ApplyVersionResults, MergeStrategy } from '@teambit/merging';
4
3
  import { CheckoutMain, CheckoutProps } from './checkout.main.runtime';
5
4
  export declare class CheckoutCmd implements Command {
6
5
  private checkout;
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_lodash","_merging","_constants","_componentId","_bitError","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CheckoutCmd","constructor","checkout","name","description","COMPONENT_PATTERN_HELP","report","to","componentPattern","interactiveMerge","forceOurs","forceTheirs","autoMergeResolve","manual","all","workspaceOnly","verbose","skipDependencyInstallation","revert","BitError","HEAD","checkoutProps","promptMergeOptions","mergeStrategy","isLane","skipNpmInstall","head","LATEST","latest","reset","main","startsWith","ancestor","parseInt","split","isNaN","ComponentID","isValidVersion","version","checkoutResults","checkoutByCLIValues","checkoutOutput","exports","alternativeTitle","components","failedComponents","removedComponents","addedComponents","leftUnresolvedConflicts","workspaceConfigUpdateResult","newFromLane","newFromLaneAdded","installationError","compilationError","realFailedComponents","filter","f","unchangedLegitimately","length","Error","notCheckedOutComponents","getNotCheckedOutOutput","chalk","green","bold","toString","title","body","map","failedComponent","id","unchangedMessage","join","underline","getWsConfigUpdateLogs","logs","logsStr","getConflictSummary","suggestion","conflictSummary","conflictSummaryReport","conflictStr","yellow","getSuccessfulOutput","newLine","switchedOrReverted","component","componentName","toStringWithoutVersion","applyVersionReport","getVerOutput","versionOutput","showVersion","getNewOnLaneOutput","getSummary","checkedOut","notCheckedOutLegitimately","checkedOutStr","unchangedLegitimatelyStr","newOnLaneNum","newOnLaneAddedStr","newOnLaneStr","compact","getRemovedOutput","getAddedOutput","getWorkspaceConfigUpdateOutput","installationErrorOutput","compilationErrorOutput"],"sources":["checkout-cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { compact } from 'lodash';\nimport {\n ApplyVersionResults,\n applyVersionReport,\n conflictSummaryReport,\n installationErrorOutput,\n compilationErrorOutput,\n getRemovedOutput,\n getAddedOutput,\n getWorkspaceConfigUpdateOutput,\n} from '@teambit/merging';\nimport { COMPONENT_PATTERN_HELP, HEAD, LATEST } from '@teambit/legacy/dist/constants';\nimport { MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { ComponentID } from '@teambit/component-id';\nimport { BitError } from '@teambit/bit-error';\nimport { CheckoutMain, CheckoutProps } from './checkout.main.runtime';\n\nexport class CheckoutCmd implements Command {\n name = 'checkout <to> [component-pattern]';\n arguments = [\n {\n name: 'to',\n description:\n \"permitted values: [head, latest, reset, {specific-version}, {head~x}]. 'head' - last snap/tag. 'latest' - semver latest tag. 'reset' - removes local changes\",\n },\n {\n name: 'component-pattern',\n description: COMPONENT_PATTERN_HELP,\n },\n ];\n description = 'switch between component versions or remove local changes';\n helpUrl = 'reference/components/merging-changes#checkout-snaps-to-the-working-directory';\n group = 'development';\n extendedDescription = `\n\\`bit checkout <version> [component-pattern]\\` => checkout the specified ids (or all components when --all is used) to the specified version\n\\`bit checkout head [component-pattern]\\` => checkout to the last snap/tag (use --latest if you only want semver tags), omit [component-pattern] to checkout head for all\n\\`bit checkout head~x [component-pattern]\\` => go backward x generations from the head and checkout to that version\n\\`bit checkout latest [component-pattern]\\` => checkout to the latest satisfying semver tag, omit [component-pattern] to checkout latest for all\n\\`bit checkout reset [component-pattern]\\` => remove local modifications from the specified ids (or all components when --all is used). also, if a component dir is deleted from the filesystem, it'll be restored\nwhen on a lane, \"checkout head\" only checks out components on this lane. to update main components, run \"bit lane merge main\"`;\n alias = 'U';\n options = [\n [\n 'i',\n 'interactive-merge',\n 'when a component is modified and the merge process found conflicts, display options to resolve them',\n ],\n [\n 'r',\n 'auto-merge-resolve <merge-strategy>',\n 'in case of merge conflict, resolve according to the provided strategy: [ours, theirs, manual]',\n ],\n [\n '',\n 'manual',\n 'same as \"--auto-merge-resolve manual\". in case of merge conflict, write the files with the conflict markers',\n ],\n ['a', 'all', 'all components'],\n [\n 'e',\n 'workspace-only',\n \"only relevant for 'bit checkout head' when on a lane. don't import components from the remote lane that are not already in the workspace\",\n ],\n ['v', 'verbose', 'showing verbose output for inspection'],\n ['x', 'skip-dependency-installation', 'do not auto-install dependencies of the imported components'],\n ['', 'force-ours', 'do not merge, preserve local files as is'],\n ['', 'force-theirs', 'do not merge, just overwrite with incoming files'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private checkout: CheckoutMain) {}\n\n async report(\n [to, componentPattern]: [string, string],\n {\n interactiveMerge = false,\n forceOurs,\n forceTheirs,\n autoMergeResolve,\n manual,\n all = false,\n workspaceOnly = false,\n verbose = false,\n skipDependencyInstallation = false,\n revert = false,\n }: {\n interactiveMerge?: boolean;\n forceOurs?: boolean;\n forceTheirs?: boolean;\n autoMergeResolve?: MergeStrategy;\n manual?: boolean;\n all?: boolean;\n workspaceOnly?: boolean;\n verbose?: boolean;\n skipDependencyInstallation?: boolean;\n revert?: boolean;\n }\n ) {\n if (forceOurs && forceTheirs) {\n throw new BitError('please use either --force-ours or --force-theirs, not both');\n }\n if (\n autoMergeResolve &&\n autoMergeResolve !== 'ours' &&\n autoMergeResolve !== 'theirs' &&\n autoMergeResolve !== 'manual'\n ) {\n throw new BitError('--auto-merge-resolve must be one of the following: [ours, theirs, manual]');\n }\n if (manual) autoMergeResolve = 'manual';\n if (workspaceOnly && to !== HEAD) {\n throw new BitError('--workspace-only is only relevant when running \"bit checkout head\" on a lane');\n }\n const checkoutProps: CheckoutProps = {\n promptMergeOptions: interactiveMerge,\n mergeStrategy: autoMergeResolve,\n all,\n verbose,\n isLane: false,\n skipNpmInstall: skipDependencyInstallation,\n workspaceOnly,\n revert,\n forceOurs,\n forceTheirs,\n };\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 if (to === 'main') checkoutProps.main = true;\n else if (to.startsWith(`${HEAD}~`)) {\n const ancestor = parseInt(to.split('~')[1]);\n if (Number.isNaN(ancestor))\n throw new BitError(`the character after \"${HEAD}~\" must be a number, got ${ancestor}`);\n checkoutProps.ancestor = ancestor;\n } else {\n if (!ComponentID.isValidVersion(to)) throw new BitError(`the specified version \"${to}\" is not a valid version`);\n checkoutProps.version = to;\n }\n\n const checkoutResults = await this.checkout.checkoutByCLIValues(componentPattern || '', checkoutProps);\n return checkoutOutput(checkoutResults, checkoutProps);\n }\n}\n\nexport function checkoutOutput(\n checkoutResults: ApplyVersionResults,\n checkoutProps: CheckoutProps,\n alternativeTitle?: string\n) {\n const {\n components,\n version,\n failedComponents,\n removedComponents,\n addedComponents,\n leftUnresolvedConflicts,\n workspaceConfigUpdateResult,\n newFromLane,\n newFromLaneAdded,\n installationError,\n compilationError,\n }: ApplyVersionResults = checkoutResults;\n\n const { head, reset, latest, main, revert, verbose, all } = checkoutProps;\n\n // components that failed for no legitimate reason. e.g. merge-conflict.\n const realFailedComponents = (failedComponents || []).filter((f) => !f.unchangedLegitimately);\n if (realFailedComponents.length) {\n throw new Error('checkout should throw in case of errors');\n }\n // components that weren't checked out for legitimate reasons, e.g. up-to-date.\n const notCheckedOutComponents = failedComponents || [];\n\n const getNotCheckedOutOutput = () => {\n if (!notCheckedOutComponents.length) return '';\n if (!verbose && all) {\n return chalk.green(\n `checkout was not needed for ${chalk.bold(\n notCheckedOutComponents.length.toString()\n )} components (use --verbose to get more details)\\n`\n );\n }\n const title = 'checkout was not required for the following component(s)';\n const body = notCheckedOutComponents\n .map((failedComponent) => `${failedComponent.id.toString()} - ${failedComponent.unchangedMessage}`)\n .join('\\n');\n return `${chalk.underline(title)}\\n${body}`;\n };\n const getWsConfigUpdateLogs = () => {\n const logs = workspaceConfigUpdateResult?.logs;\n if (!logs || !logs.length) return '';\n const logsStr = logs.join('\\n');\n return `${chalk.underline('verbose logs of workspace config update')}\\n${logsStr}`;\n };\n const getConflictSummary = () => {\n if (!components || !components.length || !leftUnresolvedConflicts) return '';\n const title = `files with conflicts summary\\n`;\n const suggestion = `\\n\\nfix the conflicts above manually and then run \"bit install\".\nonce ready, snap/tag the components to persist the changes`;\n const conflictSummary = conflictSummaryReport(components);\n return chalk.underline(title) + conflictSummary.conflictStr + chalk.yellow(suggestion);\n };\n const getSuccessfulOutput = () => {\n if (!components || !components.length) return '';\n const newLine = '\\n';\n const switchedOrReverted = revert ? 'reverted' : 'switched';\n if (components.length === 1) {\n const component = components[0];\n const componentName = reset ? component.id.toString() : component.id.toStringWithoutVersion();\n if (reset) return `successfully reset ${chalk.bold(componentName)}\\n`;\n const title =\n alternativeTitle ||\n `successfully ${switchedOrReverted} ${chalk.bold(componentName)} to version ${chalk.bold(\n // @ts-ignore version is defined when !reset\n head || latest ? component.id.version : version\n )}`;\n return chalk.bold(title) + newLine + applyVersionReport(components, false);\n }\n if (reset) {\n const title = 'successfully reset the following components\\n\\n';\n const body = components.map((component) => chalk.bold(component.id.toString())).join('\\n');\n return chalk.underline(title) + body;\n }\n const getVerOutput = () => {\n if (head) return 'their head version';\n if (latest) return 'their latest version';\n if (main) return 'their main version';\n // @ts-ignore version is defined when !reset\n return `version ${chalk.bold(version)}`;\n };\n const versionOutput = getVerOutput();\n const title =\n alternativeTitle || `successfully ${switchedOrReverted} ${components.length} components to ${versionOutput}`;\n const showVersion = head || reset;\n return chalk.bold(title) + newLine + applyVersionReport(components, true, showVersion);\n };\n const getNewOnLaneOutput = () => {\n if (!newFromLane?.length) return '';\n const title = newFromLaneAdded\n ? `successfully added the following components from the lane`\n : `the following components exist on the lane but were not added to the workspace. omit --workspace-only flag to add them`;\n const body = newFromLane.join('\\n');\n return `${chalk.underline(title)}\\n${body}`;\n };\n const getSummary = () => {\n const checkedOut = components?.length || 0;\n const notCheckedOutLegitimately = notCheckedOutComponents.length;\n const title = chalk.bold.underline('Summary');\n const checkedOutStr = `\\nTotal Changed: ${chalk.bold(checkedOut.toString())}`;\n const unchangedLegitimatelyStr = `\\nTotal Unchanged: ${chalk.bold(notCheckedOutLegitimately.toString())}`;\n const newOnLaneNum = newFromLane?.length || 0;\n const newOnLaneAddedStr = newFromLaneAdded ? ' (added)' : ' (not added)';\n const newOnLaneStr = newOnLaneNum\n ? `\\nNew on lane${newOnLaneAddedStr}: ${chalk.bold(newOnLaneNum.toString())}`\n : '';\n\n return title + checkedOutStr + unchangedLegitimatelyStr + newOnLaneStr;\n };\n\n return compact([\n getWsConfigUpdateLogs(),\n getNotCheckedOutOutput(),\n getSuccessfulOutput(),\n getRemovedOutput(removedComponents),\n getAddedOutput(addedComponents),\n getNewOnLaneOutput(),\n getWorkspaceConfigUpdateOutput(workspaceConfigUpdateResult),\n getConflictSummary(),\n getSummary(),\n installationErrorOutput(installationError),\n compilationErrorOutput(compilationError),\n ]).join('\\n\\n');\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_lodash","_merging","_constants","_componentId","_bitError","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CheckoutCmd","constructor","checkout","name","description","COMPONENT_PATTERN_HELP","report","to","componentPattern","interactiveMerge","forceOurs","forceTheirs","autoMergeResolve","manual","all","workspaceOnly","verbose","skipDependencyInstallation","revert","BitError","HEAD","checkoutProps","promptMergeOptions","mergeStrategy","isLane","skipNpmInstall","head","LATEST","latest","reset","main","startsWith","ancestor","parseInt","split","isNaN","ComponentID","isValidVersion","version","checkoutResults","checkoutByCLIValues","checkoutOutput","exports","alternativeTitle","components","failedComponents","removedComponents","addedComponents","leftUnresolvedConflicts","workspaceConfigUpdateResult","newFromLane","newFromLaneAdded","installationError","compilationError","realFailedComponents","filter","f","unchangedLegitimately","length","Error","notCheckedOutComponents","getNotCheckedOutOutput","chalk","green","bold","toString","title","body","map","failedComponent","id","unchangedMessage","join","underline","getWsConfigUpdateLogs","logs","logsStr","getConflictSummary","suggestion","conflictSummary","conflictSummaryReport","conflictStr","yellow","getSuccessfulOutput","newLine","switchedOrReverted","component","componentName","toStringWithoutVersion","applyVersionReport","getVerOutput","versionOutput","showVersion","getNewOnLaneOutput","getSummary","checkedOut","notCheckedOutLegitimately","checkedOutStr","unchangedLegitimatelyStr","newOnLaneNum","newOnLaneAddedStr","newOnLaneStr","compact","getRemovedOutput","getAddedOutput","getWorkspaceConfigUpdateOutput","installationErrorOutput","compilationErrorOutput"],"sources":["checkout-cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { compact } from 'lodash';\nimport {\n ApplyVersionResults,\n applyVersionReport,\n conflictSummaryReport,\n installationErrorOutput,\n compilationErrorOutput,\n getRemovedOutput,\n getAddedOutput,\n MergeStrategy,\n getWorkspaceConfigUpdateOutput,\n} from '@teambit/merging';\nimport { COMPONENT_PATTERN_HELP, HEAD, LATEST } from '@teambit/legacy/dist/constants';\nimport { ComponentID } from '@teambit/component-id';\nimport { BitError } from '@teambit/bit-error';\nimport { CheckoutMain, CheckoutProps } from './checkout.main.runtime';\n\nexport class CheckoutCmd implements Command {\n name = 'checkout <to> [component-pattern]';\n arguments = [\n {\n name: 'to',\n description:\n \"permitted values: [head, latest, reset, {specific-version}, {head~x}]. 'head' - last snap/tag. 'latest' - semver latest tag. 'reset' - removes local changes\",\n },\n {\n name: 'component-pattern',\n description: COMPONENT_PATTERN_HELP,\n },\n ];\n description = 'switch between component versions or remove local changes';\n helpUrl = 'reference/components/merging-changes#checkout-snaps-to-the-working-directory';\n group = 'development';\n extendedDescription = `\n\\`bit checkout <version> [component-pattern]\\` => checkout the specified ids (or all components when --all is used) to the specified version\n\\`bit checkout head [component-pattern]\\` => checkout to the last snap/tag (use --latest if you only want semver tags), omit [component-pattern] to checkout head for all\n\\`bit checkout head~x [component-pattern]\\` => go backward x generations from the head and checkout to that version\n\\`bit checkout latest [component-pattern]\\` => checkout to the latest satisfying semver tag, omit [component-pattern] to checkout latest for all\n\\`bit checkout reset [component-pattern]\\` => remove local modifications from the specified ids (or all components when --all is used). also, if a component dir is deleted from the filesystem, it'll be restored\nwhen on a lane, \"checkout head\" only checks out components on this lane. to update main components, run \"bit lane merge main\"`;\n alias = 'U';\n options = [\n [\n 'i',\n 'interactive-merge',\n 'when a component is modified and the merge process found conflicts, display options to resolve them',\n ],\n [\n 'r',\n 'auto-merge-resolve <merge-strategy>',\n 'in case of merge conflict, resolve according to the provided strategy: [ours, theirs, manual]',\n ],\n [\n '',\n 'manual',\n 'same as \"--auto-merge-resolve manual\". in case of merge conflict, write the files with the conflict markers',\n ],\n ['a', 'all', 'all components'],\n [\n 'e',\n 'workspace-only',\n \"only relevant for 'bit checkout head' when on a lane. don't import components from the remote lane that are not already in the workspace\",\n ],\n ['v', 'verbose', 'showing verbose output for inspection'],\n ['x', 'skip-dependency-installation', 'do not auto-install dependencies of the imported components'],\n ['', 'force-ours', 'do not merge, preserve local files as is'],\n ['', 'force-theirs', 'do not merge, just overwrite with incoming files'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private checkout: CheckoutMain) {}\n\n async report(\n [to, componentPattern]: [string, string],\n {\n interactiveMerge = false,\n forceOurs,\n forceTheirs,\n autoMergeResolve,\n manual,\n all = false,\n workspaceOnly = false,\n verbose = false,\n skipDependencyInstallation = false,\n revert = false,\n }: {\n interactiveMerge?: boolean;\n forceOurs?: boolean;\n forceTheirs?: boolean;\n autoMergeResolve?: MergeStrategy;\n manual?: boolean;\n all?: boolean;\n workspaceOnly?: boolean;\n verbose?: boolean;\n skipDependencyInstallation?: boolean;\n revert?: boolean;\n }\n ) {\n if (forceOurs && forceTheirs) {\n throw new BitError('please use either --force-ours or --force-theirs, not both');\n }\n if (\n autoMergeResolve &&\n autoMergeResolve !== 'ours' &&\n autoMergeResolve !== 'theirs' &&\n autoMergeResolve !== 'manual'\n ) {\n throw new BitError('--auto-merge-resolve must be one of the following: [ours, theirs, manual]');\n }\n if (manual) autoMergeResolve = 'manual';\n if (workspaceOnly && to !== HEAD) {\n throw new BitError('--workspace-only is only relevant when running \"bit checkout head\" on a lane');\n }\n const checkoutProps: CheckoutProps = {\n promptMergeOptions: interactiveMerge,\n mergeStrategy: autoMergeResolve,\n all,\n verbose,\n isLane: false,\n skipNpmInstall: skipDependencyInstallation,\n workspaceOnly,\n revert,\n forceOurs,\n forceTheirs,\n };\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 if (to === 'main') checkoutProps.main = true;\n else if (to.startsWith(`${HEAD}~`)) {\n const ancestor = parseInt(to.split('~')[1]);\n if (Number.isNaN(ancestor))\n throw new BitError(`the character after \"${HEAD}~\" must be a number, got ${ancestor}`);\n checkoutProps.ancestor = ancestor;\n } else {\n if (!ComponentID.isValidVersion(to)) throw new BitError(`the specified version \"${to}\" is not a valid version`);\n checkoutProps.version = to;\n }\n\n const checkoutResults = await this.checkout.checkoutByCLIValues(componentPattern || '', checkoutProps);\n return checkoutOutput(checkoutResults, checkoutProps);\n }\n}\n\nexport function checkoutOutput(\n checkoutResults: ApplyVersionResults,\n checkoutProps: CheckoutProps,\n alternativeTitle?: string\n) {\n const {\n components,\n version,\n failedComponents,\n removedComponents,\n addedComponents,\n leftUnresolvedConflicts,\n workspaceConfigUpdateResult,\n newFromLane,\n newFromLaneAdded,\n installationError,\n compilationError,\n }: ApplyVersionResults = checkoutResults;\n\n const { head, reset, latest, main, revert, verbose, all } = checkoutProps;\n\n // components that failed for no legitimate reason. e.g. merge-conflict.\n const realFailedComponents = (failedComponents || []).filter((f) => !f.unchangedLegitimately);\n if (realFailedComponents.length) {\n throw new Error('checkout should throw in case of errors');\n }\n // components that weren't checked out for legitimate reasons, e.g. up-to-date.\n const notCheckedOutComponents = failedComponents || [];\n\n const getNotCheckedOutOutput = () => {\n if (!notCheckedOutComponents.length) return '';\n if (!verbose && all) {\n return chalk.green(\n `checkout was not needed for ${chalk.bold(\n notCheckedOutComponents.length.toString()\n )} components (use --verbose to get more details)\\n`\n );\n }\n const title = 'checkout was not required for the following component(s)';\n const body = notCheckedOutComponents\n .map((failedComponent) => `${failedComponent.id.toString()} - ${failedComponent.unchangedMessage}`)\n .join('\\n');\n return `${chalk.underline(title)}\\n${body}`;\n };\n const getWsConfigUpdateLogs = () => {\n const logs = workspaceConfigUpdateResult?.logs;\n if (!logs || !logs.length) return '';\n const logsStr = logs.join('\\n');\n return `${chalk.underline('verbose logs of workspace config update')}\\n${logsStr}`;\n };\n const getConflictSummary = () => {\n if (!components || !components.length || !leftUnresolvedConflicts) return '';\n const title = `files with conflicts summary\\n`;\n const suggestion = `\\n\\nfix the conflicts above manually and then run \"bit install\".\nonce ready, snap/tag the components to persist the changes`;\n const conflictSummary = conflictSummaryReport(components);\n return chalk.underline(title) + conflictSummary.conflictStr + chalk.yellow(suggestion);\n };\n const getSuccessfulOutput = () => {\n if (!components || !components.length) return '';\n const newLine = '\\n';\n const switchedOrReverted = revert ? 'reverted' : 'switched';\n if (components.length === 1) {\n const component = components[0];\n const componentName = reset ? component.id.toString() : component.id.toStringWithoutVersion();\n if (reset) return `successfully reset ${chalk.bold(componentName)}\\n`;\n const title =\n alternativeTitle ||\n `successfully ${switchedOrReverted} ${chalk.bold(componentName)} to version ${chalk.bold(\n // @ts-ignore version is defined when !reset\n head || latest ? component.id.version : version\n )}`;\n return chalk.bold(title) + newLine + applyVersionReport(components, false);\n }\n if (reset) {\n const title = 'successfully reset the following components\\n\\n';\n const body = components.map((component) => chalk.bold(component.id.toString())).join('\\n');\n return chalk.underline(title) + body;\n }\n const getVerOutput = () => {\n if (head) return 'their head version';\n if (latest) return 'their latest version';\n if (main) return 'their main version';\n // @ts-ignore version is defined when !reset\n return `version ${chalk.bold(version)}`;\n };\n const versionOutput = getVerOutput();\n const title =\n alternativeTitle || `successfully ${switchedOrReverted} ${components.length} components to ${versionOutput}`;\n const showVersion = head || reset;\n return chalk.bold(title) + newLine + applyVersionReport(components, true, showVersion);\n };\n const getNewOnLaneOutput = () => {\n if (!newFromLane?.length) return '';\n const title = newFromLaneAdded\n ? `successfully added the following components from the lane`\n : `the following components exist on the lane but were not added to the workspace. omit --workspace-only flag to add them`;\n const body = newFromLane.join('\\n');\n return `${chalk.underline(title)}\\n${body}`;\n };\n const getSummary = () => {\n const checkedOut = components?.length || 0;\n const notCheckedOutLegitimately = notCheckedOutComponents.length;\n const title = chalk.bold.underline('Summary');\n const checkedOutStr = `\\nTotal Changed: ${chalk.bold(checkedOut.toString())}`;\n const unchangedLegitimatelyStr = `\\nTotal Unchanged: ${chalk.bold(notCheckedOutLegitimately.toString())}`;\n const newOnLaneNum = newFromLane?.length || 0;\n const newOnLaneAddedStr = newFromLaneAdded ? ' (added)' : ' (not added)';\n const newOnLaneStr = newOnLaneNum\n ? `\\nNew on lane${newOnLaneAddedStr}: ${chalk.bold(newOnLaneNum.toString())}`\n : '';\n\n return title + checkedOutStr + unchangedLegitimatelyStr + newOnLaneStr;\n };\n\n return compact([\n getWsConfigUpdateLogs(),\n getNotCheckedOutOutput(),\n getSuccessfulOutput(),\n getRemovedOutput(removedComponents),\n getAddedOutput(addedComponents),\n getNewOnLaneOutput(),\n getWorkspaceConfigUpdateOutput(workspaceConfigUpdateResult),\n getConflictSummary(),\n getSummary(),\n installationErrorOutput(installationError),\n compilationErrorOutput(compilationError),\n ]).join('\\n\\n');\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,10 +2,8 @@ import { Consumer } from '@teambit/legacy/dist/consumer';
2
2
  import { ComponentID } from '@teambit/component-id';
3
3
  import Version from '@teambit/legacy/dist/scope/models/version';
4
4
  import { SourceFile } from '@teambit/legacy/dist/consumer/component/sources';
5
- import { MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';
6
- import { MergeResultsThreeWay } from '@teambit/legacy/dist/consumer/versions-ops/merge-version/three-way-merge';
7
5
  import ConsumerComponent from '@teambit/legacy/dist/consumer/component';
8
- import { ApplyVersionResult, FilesStatus } from '@teambit/merging';
6
+ import { ApplyVersionResult, FilesStatus, MergeStrategy, MergeResultsThreeWay } from '@teambit/merging';
9
7
  import { CheckoutProps } from './checkout.main.runtime';
10
8
  export type ComponentStatusBase = {
11
9
  currentComponent?: ConsumerComponent;
@@ -36,13 +36,6 @@ function _removePath() {
36
36
  };
37
37
  return data;
38
38
  }
39
- function _mergeVersion() {
40
- const data = require("@teambit/legacy/dist/consumer/versions-ops/merge-version");
41
- _mergeVersion = function () {
42
- return data;
43
- };
44
- return data;
45
- }
46
39
  function _bitError() {
47
40
  const data = require("@teambit/bit-error");
48
41
  _bitError = function () {
@@ -57,6 +50,13 @@ function _chalk() {
57
50
  };
58
51
  return data;
59
52
  }
53
+ function _merging() {
54
+ const data = require("@teambit/merging");
55
+ _merging = function () {
56
+ return data;
57
+ };
58
+ return data;
59
+ }
60
60
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
61
61
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
62
62
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -95,12 +95,12 @@ mergeResults, checkoutProps) {
95
95
  forceOurs
96
96
  } = checkoutProps;
97
97
  let filesStatus = {};
98
- if (mergeResults?.hasConflicts && mergeStrategy === _mergeVersion().MergeOptions.ours || forceOurs) {
98
+ if (mergeResults?.hasConflicts && mergeStrategy === _merging().MergeOptions.ours || forceOurs) {
99
99
  // even when isLane is true, the mergeResults is possible only when the component is on the filesystem
100
100
  // otherwise it's impossible to have conflicts
101
101
  if (!componentFromFS) throw new Error(`applyVersion expect to get componentFromFS for ${id.toString()}`);
102
102
  componentFromFS.files.forEach(file => {
103
- filesStatus[(0, _path2().pathNormalizeToLinux)(file.relative)] = _mergeVersion().FileStatus.unchanged;
103
+ filesStatus[(0, _path2().pathNormalizeToLinux)(file.relative)] = _merging().FileStatus.unchanged;
104
104
  });
105
105
  consumer.bitMap.updateComponentId(id);
106
106
  return {
@@ -142,7 +142,7 @@ function updateFileStatus(files, filesStatus, componentFromFS) {
142
142
  const fileFromFs = componentFromFS?.files.find(f => f.relative === file.relative);
143
143
  const areFilesEqual = fileFromFs && Buffer.compare(fileFromFs.contents, file.contents) === 0;
144
144
  // @ts-ignore
145
- filesStatus[(0, _path2().pathNormalizeToLinux)(file.relative)] = areFilesEqual ? _mergeVersion().FileStatus.unchanged : _mergeVersion().FileStatus.updated;
145
+ filesStatus[(0, _path2().pathNormalizeToLinux)(file.relative)] = areFilesEqual ? _merging().FileStatus.unchanged : _merging().FileStatus.updated;
146
146
  });
147
147
  }
148
148
 
@@ -166,9 +166,9 @@ async function removeFilesIfNeeded(filesStatus, consumer, componentFromFS) {
166
166
  const filename = (0, _path2().pathNormalizeToLinux)(file.relative);
167
167
  if (!filesStatus[filename]) {
168
168
  // @ts-ignore todo: typescript has a good point here. it should be the string "removed", not chalk.green(removed).
169
- filesStatus[filename] = _mergeVersion().FileStatus.removed;
169
+ filesStatus[filename] = _merging().FileStatus.removed;
170
170
  }
171
- if (filesStatus[filename] === _mergeVersion().FileStatus.removed) {
171
+ if (filesStatus[filename] === _merging().FileStatus.removed) {
172
172
  dataToPersist.removePath(new (_removePath().default)(file.path));
173
173
  }
174
174
  });
@@ -185,7 +185,7 @@ async function removeFilesIfNeeded(filesStatus, consumer, componentFromFS) {
185
185
  function applyModifiedVersion(componentFiles, mergeResults, mergeStrategy) {
186
186
  let modifiedFiles = componentFiles.map(file => file.clone());
187
187
  const filesStatus = {};
188
- if (mergeResults.hasConflicts && mergeStrategy !== _mergeVersion().MergeOptions.manual) {
188
+ if (mergeResults.hasConflicts && mergeStrategy !== _merging().MergeOptions.manual) {
189
189
  return {
190
190
  filesStatus,
191
191
  modifiedFiles
@@ -197,14 +197,14 @@ function applyModifiedVersion(componentFiles, mergeResults, mergeStrategy) {
197
197
  if (!foundFile) throw new (_bitError().BitError)(`file ${filePath} not found`);
198
198
  if (file.conflict) {
199
199
  foundFile.contents = Buffer.from(file.conflict);
200
- filesStatus[file.filePath] = _mergeVersion().FileStatus.manual;
200
+ filesStatus[file.filePath] = _merging().FileStatus.manual;
201
201
  } else if (typeof file.output === 'string') {
202
202
  foundFile.contents = Buffer.from(file.output);
203
- filesStatus[file.filePath] = _mergeVersion().FileStatus.merged;
203
+ filesStatus[file.filePath] = _merging().FileStatus.merged;
204
204
  } else if (file.isBinaryConflict) {
205
205
  // leave the file as is and notify the user later about it.
206
206
  foundFile.contents = file.fsFile.contents;
207
- filesStatus[file.filePath] = _mergeVersion().FileStatus.binaryConflict;
207
+ filesStatus[file.filePath] = _merging().FileStatus.binaryConflict;
208
208
  } else {
209
209
  throw new (_bitError().BitError)(`file ${filePath} does not have output nor conflict`);
210
210
  }
@@ -213,41 +213,41 @@ function applyModifiedVersion(componentFiles, mergeResults, mergeStrategy) {
213
213
  const filePath = path().normalize(file.filePath);
214
214
  if (modifiedFiles.find(m => m.relative === filePath)) return;
215
215
  modifiedFiles.push(file.fsFile);
216
- filesStatus[file.filePath] = _mergeVersion().FileStatus.added;
216
+ filesStatus[file.filePath] = _merging().FileStatus.added;
217
217
  });
218
218
  mergeResults.deletedConflictFiles.forEach(file => {
219
219
  if (!file.fsFile) return;
220
220
  const filePath = path().normalize(file.filePath);
221
221
  if (modifiedFiles.find(m => m.relative === filePath)) return;
222
222
  modifiedFiles.push(file.fsFile);
223
- filesStatus[file.filePath] = _mergeVersion().FileStatus.added;
223
+ filesStatus[file.filePath] = _merging().FileStatus.added;
224
224
  });
225
225
  mergeResults.removeFiles.forEach(file => {
226
226
  const filePath = path().normalize(file.filePath);
227
- filesStatus[file.filePath] = _mergeVersion().FileStatus.removed;
227
+ filesStatus[file.filePath] = _merging().FileStatus.removed;
228
228
  modifiedFiles = modifiedFiles.filter(f => f.relative !== filePath);
229
229
  });
230
230
  mergeResults.remainDeletedFiles.forEach(file => {
231
231
  const filePath = path().normalize(file.filePath);
232
232
  modifiedFiles = modifiedFiles.filter(f => f.relative !== filePath);
233
- filesStatus[file.filePath] = _mergeVersion().FileStatus.remainDeleted;
233
+ filesStatus[file.filePath] = _merging().FileStatus.remainDeleted;
234
234
  });
235
235
  mergeResults.deletedConflictFiles.forEach(file => {
236
- filesStatus[file.filePath] = _mergeVersion().FileStatus.deletedConflict;
236
+ filesStatus[file.filePath] = _merging().FileStatus.deletedConflict;
237
237
  });
238
238
  mergeResults.overrideFiles.forEach(file => {
239
239
  const filePath = path().normalize(file.filePath);
240
240
  const foundFile = modifiedFiles.find(componentFile => componentFile.relative === filePath);
241
241
  if (!foundFile) throw new (_bitError().BitError)(`file ${filePath} not found`);
242
242
  foundFile.contents = file.fsFile.contents;
243
- filesStatus[file.filePath] = _mergeVersion().FileStatus.overridden;
243
+ filesStatus[file.filePath] = _merging().FileStatus.overridden;
244
244
  });
245
245
  mergeResults.updatedFiles.forEach(file => {
246
246
  const filePath = path().normalize(file.filePath);
247
247
  const foundFile = modifiedFiles.find(componentFile => componentFile.relative === filePath);
248
248
  if (!foundFile) throw new (_bitError().BitError)(`file ${filePath} not found`);
249
249
  foundFile.contents = file.content;
250
- filesStatus[file.filePath] = _mergeVersion().FileStatus.updated;
250
+ filesStatus[file.filePath] = _merging().FileStatus.updated;
251
251
  });
252
252
  return {
253
253
  filesStatus,
@@ -1 +1 @@
1
- {"version":3,"names":["path","data","_interopRequireWildcard","require","_path2","_dataToPersist","_interopRequireDefault","_removePath","_mergeVersion","_bitError","_chalk","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","applyVersion","consumer","id","componentFromFS","mergeResults","checkoutProps","isLane","Error","toString","mergeStrategy","forceOurs","filesStatus","hasConflicts","MergeOptions","ours","files","file","pathNormalizeToLinux","relative","FileStatus","unchanged","bitMap","updateComponentId","applyVersionResult","component","loadComponentFromModelImportIfNeeded","componentMap","BitError","updateFileStatus","undefined","removeFilesIfNeeded","modifiedStatus","modifiedFiles","applyModifiedVersion","fileFromFs","find","f","areFilesEqual","Buffer","compare","contents","updated","isExistOnFs","getComponentIdIfExist","ignoreVersion","filePathsFromFS","dataToPersist","DataToPersist","filename","removed","removePath","RemovePath","persistAllToFS","componentFiles","map","clone","manual","filePath","normalize","foundFile","componentFile","conflict","from","output","merged","isBinaryConflict","fsFile","binaryConflict","addFiles","m","added","deletedConflictFiles","removeFiles","remainDeletedFiles","remainDeleted","deletedConflict","overrideFiles","overridden","updatedFiles","content","throwForFailures","allComponentsStatus","failedComponents","c","unchangedMessage","unchangedLegitimately","failureMsgs","failedComponent","chalk","bold","red","join"],"sources":["checkout-version.ts"],"sourcesContent":["import * as path from 'path';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { ComponentID } from '@teambit/component-id';\nimport Version from '@teambit/legacy/dist/scope/models/version';\nimport { SourceFile } from '@teambit/legacy/dist/consumer/component/sources';\nimport { pathNormalizeToLinux, PathOsBased } from '@teambit/legacy/dist/utils/path';\nimport DataToPersist from '@teambit/legacy/dist/consumer/component/sources/data-to-persist';\nimport RemovePath from '@teambit/legacy/dist/consumer/component/sources/remove-path';\nimport { FileStatus, MergeOptions, MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { MergeResultsThreeWay } from '@teambit/legacy/dist/consumer/versions-ops/merge-version/three-way-merge';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { BitError } from '@teambit/bit-error';\nimport chalk from 'chalk';\nimport { ApplyVersionResult, FilesStatus } from '@teambit/merging';\nimport { CheckoutProps } from './checkout.main.runtime';\n\nexport type ComponentStatusBase = {\n currentComponent?: ConsumerComponent;\n componentFromModel?: Version;\n id: ComponentID;\n shouldBeRemoved?: boolean; // in case the component is soft-removed, it should be removed from the workspace\n unchangedMessage?: string; // this gets populated either upon skip or failure.\n unchangedLegitimately?: boolean; // true for skipped legitimately (e.g. already up to date). false for failure.\n};\n\nexport type ComponentStatus = ComponentStatusBase & {\n mergeResults?: MergeResultsThreeWay | null | undefined;\n};\n\nexport type ApplyVersionWithComps = {\n applyVersionResult: ApplyVersionResult;\n component?: ConsumerComponent;\n // in case the component needs to be written to the filesystem, this is the component to write.\n legacyCompToWrite?: ConsumerComponent;\n};\n\n/**\n * This function optionally returns \"component\" object. If it returns, it means it needs to be written to the filesystem.\n * Otherwise, it means the component is already up to date and no need to write it.\n *\n * If no need to change anything (ours), then don't return the component object.\n * Otherwise, either return the component object as is (if no conflicts or \"theirs\"), or change the files in this\n * component object. Later, this component object is written to the filesystem.\n *\n * 1) when the files are modified with conflicts and the strategy is \"ours\", or forceOurs was used, leave the FS as is.\n *\n * 2) when the files are modified with conflicts and the strategy is \"theirs\", or forceTheirs was used, write the\n * component according to \"component\" object\n *\n * 3) when files are modified with no conflict or files are modified with conflicts and the\n * strategy is manual, load the component according to id.version and update component.files.\n * applyModifiedVersion() docs explains what files are updated/added.\n *\n * Side note:\n * Deleted file => if files are in used version but not in the modified one, no need to delete it. (similar to git).\n * Added file => if files are not in used version but in the modified one, they'll be under mergeResults.addFiles\n */\nexport async function applyVersion(\n consumer: Consumer,\n id: ComponentID,\n componentFromFS: ConsumerComponent | null | undefined, // it can be null only when isLanes is true\n mergeResults: MergeResultsThreeWay | null | undefined,\n checkoutProps: CheckoutProps\n): Promise<ApplyVersionWithComps> {\n if (!checkoutProps.isLane && !componentFromFS)\n throw new Error(`applyVersion expect to get componentFromFS for ${id.toString()}`);\n const { mergeStrategy, forceOurs } = checkoutProps;\n let filesStatus = {};\n if ((mergeResults?.hasConflicts && mergeStrategy === MergeOptions.ours) || forceOurs) {\n // even when isLane is true, the mergeResults is possible only when the component is on the filesystem\n // otherwise it's impossible to have conflicts\n if (!componentFromFS) throw new Error(`applyVersion expect to get componentFromFS for ${id.toString()}`);\n componentFromFS.files.forEach((file) => {\n filesStatus[pathNormalizeToLinux(file.relative)] = FileStatus.unchanged;\n });\n consumer.bitMap.updateComponentId(id);\n return { applyVersionResult: { id, filesStatus } };\n }\n const component = await consumer.loadComponentFromModelImportIfNeeded(id);\n const componentMap = componentFromFS && componentFromFS.componentMap;\n if (componentFromFS && !componentMap) throw new BitError('applyVersion: componentMap was not found');\n\n const files = component.files;\n updateFileStatus(files, filesStatus, componentFromFS || undefined);\n\n await removeFilesIfNeeded(filesStatus, consumer, componentFromFS || undefined);\n\n if (mergeResults) {\n // update files according to the merge results\n const { filesStatus: modifiedStatus, modifiedFiles } = applyModifiedVersion(files, mergeResults, mergeStrategy);\n filesStatus = { ...filesStatus, ...modifiedStatus };\n component.files = modifiedFiles;\n }\n\n // in case of forceTheirs, the mergeResults is undefined, the \"component\" object is according to \"theirs\", so it'll work\n // expected. (later, it writes the component object).\n\n return {\n applyVersionResult: { id, filesStatus },\n component,\n };\n}\n\nexport function updateFileStatus(files: SourceFile[], filesStatus: FilesStatus, componentFromFS?: ConsumerComponent) {\n files.forEach((file) => {\n const fileFromFs = componentFromFS?.files.find((f) => f.relative === file.relative);\n const areFilesEqual = fileFromFs && Buffer.compare(fileFromFs.contents, file.contents) === 0;\n // @ts-ignore\n filesStatus[pathNormalizeToLinux(file.relative)] = areFilesEqual ? FileStatus.unchanged : FileStatus.updated;\n });\n}\n\n/**\n * when files exist on the filesystem but not on the checked out versions, they need to be deleted.\n * without this function, these files would be left on the filesystem. (we don't delete the comp-dir before writing).\n * this needs to be done *before* the component is written to the filesystem, otherwise, it won't work when a file\n * has a case change. e.g. from uppercase to lowercase. (see merge-lane.e2e 'renaming files from uppercase to lowercase').\n */\nexport async function removeFilesIfNeeded(\n filesStatus: FilesStatus,\n consumer: Consumer,\n componentFromFS?: ConsumerComponent\n) {\n if (!componentFromFS) return;\n // @todo: if the component is not in the FS, it should be passed as undefined here.\n // in the case this is coming from merge-lane, it's sometimes populated from the scope.\n const isExistOnFs = consumer.bitMap.getComponentIdIfExist(componentFromFS.id, { ignoreVersion: true });\n if (!isExistOnFs) return;\n const filePathsFromFS = componentFromFS.files || [];\n const dataToPersist = new DataToPersist();\n filePathsFromFS.forEach((file) => {\n const filename = pathNormalizeToLinux(file.relative);\n if (!filesStatus[filename]) {\n // @ts-ignore todo: typescript has a good point here. it should be the string \"removed\", not chalk.green(removed).\n filesStatus[filename] = FileStatus.removed;\n }\n if (filesStatus[filename] === FileStatus.removed) {\n dataToPersist.removePath(new RemovePath(file.path));\n }\n });\n await dataToPersist.persistAllToFS();\n}\n\n/**\n * relevant only when\n * 1) there is no conflict => add files from mergeResults: addFiles, overrideFiles and modifiedFiles.output.\n * 2) there is conflict and mergeStrategy is manual => add files from mergeResults: addFiles, overrideFiles and modifiedFiles.conflict.\n *\n * this function only updates the files content, it doesn't write the files\n */\nexport function applyModifiedVersion(\n componentFiles: SourceFile[],\n mergeResults: MergeResultsThreeWay,\n mergeStrategy: MergeStrategy | null | undefined\n): { filesStatus: Record<string, any>; modifiedFiles: SourceFile[] } {\n let modifiedFiles = componentFiles.map((file) => file.clone());\n const filesStatus = {};\n if (mergeResults.hasConflicts && mergeStrategy !== MergeOptions.manual) {\n return { filesStatus, modifiedFiles };\n }\n mergeResults.modifiedFiles.forEach((file) => {\n const filePath: PathOsBased = path.normalize(file.filePath);\n const foundFile = modifiedFiles.find((componentFile) => componentFile.relative === filePath);\n if (!foundFile) throw new BitError(`file ${filePath} not found`);\n if (file.conflict) {\n foundFile.contents = Buffer.from(file.conflict);\n filesStatus[file.filePath] = FileStatus.manual;\n } else if (typeof file.output === 'string') {\n foundFile.contents = Buffer.from(file.output);\n filesStatus[file.filePath] = FileStatus.merged;\n } else if (file.isBinaryConflict) {\n // leave the file as is and notify the user later about it.\n foundFile.contents = file.fsFile.contents;\n filesStatus[file.filePath] = FileStatus.binaryConflict;\n } else {\n throw new BitError(`file ${filePath} does not have output nor conflict`);\n }\n });\n\n mergeResults.addFiles.forEach((file) => {\n const filePath: PathOsBased = path.normalize(file.filePath);\n if (modifiedFiles.find((m) => m.relative === filePath)) return;\n modifiedFiles.push(file.fsFile);\n filesStatus[file.filePath] = FileStatus.added;\n });\n mergeResults.deletedConflictFiles.forEach((file) => {\n if (!file.fsFile) return;\n const filePath: PathOsBased = path.normalize(file.filePath);\n if (modifiedFiles.find((m) => m.relative === filePath)) return;\n modifiedFiles.push(file.fsFile);\n filesStatus[file.filePath] = FileStatus.added;\n });\n mergeResults.removeFiles.forEach((file) => {\n const filePath: PathOsBased = path.normalize(file.filePath);\n filesStatus[file.filePath] = FileStatus.removed;\n modifiedFiles = modifiedFiles.filter((f) => f.relative !== filePath);\n });\n mergeResults.remainDeletedFiles.forEach((file) => {\n const filePath: PathOsBased = path.normalize(file.filePath);\n modifiedFiles = modifiedFiles.filter((f) => f.relative !== filePath);\n filesStatus[file.filePath] = FileStatus.remainDeleted;\n });\n mergeResults.deletedConflictFiles.forEach((file) => {\n filesStatus[file.filePath] = FileStatus.deletedConflict;\n });\n\n mergeResults.overrideFiles.forEach((file) => {\n const filePath: PathOsBased = path.normalize(file.filePath);\n const foundFile = modifiedFiles.find((componentFile) => componentFile.relative === filePath);\n if (!foundFile) throw new BitError(`file ${filePath} not found`);\n foundFile.contents = file.fsFile.contents;\n filesStatus[file.filePath] = FileStatus.overridden;\n });\n mergeResults.updatedFiles.forEach((file) => {\n const filePath: PathOsBased = path.normalize(file.filePath);\n const foundFile = modifiedFiles.find((componentFile) => componentFile.relative === filePath);\n if (!foundFile) throw new BitError(`file ${filePath} not found`);\n foundFile.contents = file.content;\n filesStatus[file.filePath] = FileStatus.updated;\n });\n\n return { filesStatus, modifiedFiles };\n}\n\nexport function throwForFailures(allComponentsStatus: ComponentStatusBase[]) {\n const failedComponents = allComponentsStatus.filter((c) => c.unchangedMessage && !c.unchangedLegitimately);\n if (failedComponents.length) {\n const failureMsgs = failedComponents\n .map(\n (failedComponent) =>\n `${chalk.bold(failedComponent.id.toString())} - ${chalk.red(failedComponent.unchangedMessage as string)}`\n )\n .join('\\n');\n throw new BitError(`unable to proceed due to the following failures:\\n${failureMsgs}`);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["path","data","_interopRequireWildcard","require","_path2","_dataToPersist","_interopRequireDefault","_removePath","_bitError","_chalk","_merging","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","applyVersion","consumer","id","componentFromFS","mergeResults","checkoutProps","isLane","Error","toString","mergeStrategy","forceOurs","filesStatus","hasConflicts","MergeOptions","ours","files","file","pathNormalizeToLinux","relative","FileStatus","unchanged","bitMap","updateComponentId","applyVersionResult","component","loadComponentFromModelImportIfNeeded","componentMap","BitError","updateFileStatus","undefined","removeFilesIfNeeded","modifiedStatus","modifiedFiles","applyModifiedVersion","fileFromFs","find","f","areFilesEqual","Buffer","compare","contents","updated","isExistOnFs","getComponentIdIfExist","ignoreVersion","filePathsFromFS","dataToPersist","DataToPersist","filename","removed","removePath","RemovePath","persistAllToFS","componentFiles","map","clone","manual","filePath","normalize","foundFile","componentFile","conflict","from","output","merged","isBinaryConflict","fsFile","binaryConflict","addFiles","m","added","deletedConflictFiles","removeFiles","remainDeletedFiles","remainDeleted","deletedConflict","overrideFiles","overridden","updatedFiles","content","throwForFailures","allComponentsStatus","failedComponents","c","unchangedMessage","unchangedLegitimately","failureMsgs","failedComponent","chalk","bold","red","join"],"sources":["checkout-version.ts"],"sourcesContent":["import * as path from 'path';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { ComponentID } from '@teambit/component-id';\nimport Version from '@teambit/legacy/dist/scope/models/version';\nimport { SourceFile } from '@teambit/legacy/dist/consumer/component/sources';\nimport { pathNormalizeToLinux, PathOsBased } from '@teambit/legacy/dist/utils/path';\nimport DataToPersist from '@teambit/legacy/dist/consumer/component/sources/data-to-persist';\nimport RemovePath from '@teambit/legacy/dist/consumer/component/sources/remove-path';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { BitError } from '@teambit/bit-error';\nimport chalk from 'chalk';\nimport {\n ApplyVersionResult,\n FilesStatus,\n FileStatus,\n MergeOptions,\n MergeStrategy,\n MergeResultsThreeWay,\n} from '@teambit/merging';\nimport { CheckoutProps } from './checkout.main.runtime';\n\nexport type ComponentStatusBase = {\n currentComponent?: ConsumerComponent;\n componentFromModel?: Version;\n id: ComponentID;\n shouldBeRemoved?: boolean; // in case the component is soft-removed, it should be removed from the workspace\n unchangedMessage?: string; // this gets populated either upon skip or failure.\n unchangedLegitimately?: boolean; // true for skipped legitimately (e.g. already up to date). false for failure.\n};\n\nexport type ComponentStatus = ComponentStatusBase & {\n mergeResults?: MergeResultsThreeWay | null | undefined;\n};\n\nexport type ApplyVersionWithComps = {\n applyVersionResult: ApplyVersionResult;\n component?: ConsumerComponent;\n // in case the component needs to be written to the filesystem, this is the component to write.\n legacyCompToWrite?: ConsumerComponent;\n};\n\n/**\n * This function optionally returns \"component\" object. If it returns, it means it needs to be written to the filesystem.\n * Otherwise, it means the component is already up to date and no need to write it.\n *\n * If no need to change anything (ours), then don't return the component object.\n * Otherwise, either return the component object as is (if no conflicts or \"theirs\"), or change the files in this\n * component object. Later, this component object is written to the filesystem.\n *\n * 1) when the files are modified with conflicts and the strategy is \"ours\", or forceOurs was used, leave the FS as is.\n *\n * 2) when the files are modified with conflicts and the strategy is \"theirs\", or forceTheirs was used, write the\n * component according to \"component\" object\n *\n * 3) when files are modified with no conflict or files are modified with conflicts and the\n * strategy is manual, load the component according to id.version and update component.files.\n * applyModifiedVersion() docs explains what files are updated/added.\n *\n * Side note:\n * Deleted file => if files are in used version but not in the modified one, no need to delete it. (similar to git).\n * Added file => if files are not in used version but in the modified one, they'll be under mergeResults.addFiles\n */\nexport async function applyVersion(\n consumer: Consumer,\n id: ComponentID,\n componentFromFS: ConsumerComponent | null | undefined, // it can be null only when isLanes is true\n mergeResults: MergeResultsThreeWay | null | undefined,\n checkoutProps: CheckoutProps\n): Promise<ApplyVersionWithComps> {\n if (!checkoutProps.isLane && !componentFromFS)\n throw new Error(`applyVersion expect to get componentFromFS for ${id.toString()}`);\n const { mergeStrategy, forceOurs } = checkoutProps;\n let filesStatus = {};\n if ((mergeResults?.hasConflicts && mergeStrategy === MergeOptions.ours) || forceOurs) {\n // even when isLane is true, the mergeResults is possible only when the component is on the filesystem\n // otherwise it's impossible to have conflicts\n if (!componentFromFS) throw new Error(`applyVersion expect to get componentFromFS for ${id.toString()}`);\n componentFromFS.files.forEach((file) => {\n filesStatus[pathNormalizeToLinux(file.relative)] = FileStatus.unchanged;\n });\n consumer.bitMap.updateComponentId(id);\n return { applyVersionResult: { id, filesStatus } };\n }\n const component = await consumer.loadComponentFromModelImportIfNeeded(id);\n const componentMap = componentFromFS && componentFromFS.componentMap;\n if (componentFromFS && !componentMap) throw new BitError('applyVersion: componentMap was not found');\n\n const files = component.files;\n updateFileStatus(files, filesStatus, componentFromFS || undefined);\n\n await removeFilesIfNeeded(filesStatus, consumer, componentFromFS || undefined);\n\n if (mergeResults) {\n // update files according to the merge results\n const { filesStatus: modifiedStatus, modifiedFiles } = applyModifiedVersion(files, mergeResults, mergeStrategy);\n filesStatus = { ...filesStatus, ...modifiedStatus };\n component.files = modifiedFiles;\n }\n\n // in case of forceTheirs, the mergeResults is undefined, the \"component\" object is according to \"theirs\", so it'll work\n // expected. (later, it writes the component object).\n\n return {\n applyVersionResult: { id, filesStatus },\n component,\n };\n}\n\nexport function updateFileStatus(files: SourceFile[], filesStatus: FilesStatus, componentFromFS?: ConsumerComponent) {\n files.forEach((file) => {\n const fileFromFs = componentFromFS?.files.find((f) => f.relative === file.relative);\n const areFilesEqual = fileFromFs && Buffer.compare(fileFromFs.contents, file.contents) === 0;\n // @ts-ignore\n filesStatus[pathNormalizeToLinux(file.relative)] = areFilesEqual ? FileStatus.unchanged : FileStatus.updated;\n });\n}\n\n/**\n * when files exist on the filesystem but not on the checked out versions, they need to be deleted.\n * without this function, these files would be left on the filesystem. (we don't delete the comp-dir before writing).\n * this needs to be done *before* the component is written to the filesystem, otherwise, it won't work when a file\n * has a case change. e.g. from uppercase to lowercase. (see merge-lane.e2e 'renaming files from uppercase to lowercase').\n */\nexport async function removeFilesIfNeeded(\n filesStatus: FilesStatus,\n consumer: Consumer,\n componentFromFS?: ConsumerComponent\n) {\n if (!componentFromFS) return;\n // @todo: if the component is not in the FS, it should be passed as undefined here.\n // in the case this is coming from merge-lane, it's sometimes populated from the scope.\n const isExistOnFs = consumer.bitMap.getComponentIdIfExist(componentFromFS.id, { ignoreVersion: true });\n if (!isExistOnFs) return;\n const filePathsFromFS = componentFromFS.files || [];\n const dataToPersist = new DataToPersist();\n filePathsFromFS.forEach((file) => {\n const filename = pathNormalizeToLinux(file.relative);\n if (!filesStatus[filename]) {\n // @ts-ignore todo: typescript has a good point here. it should be the string \"removed\", not chalk.green(removed).\n filesStatus[filename] = FileStatus.removed;\n }\n if (filesStatus[filename] === FileStatus.removed) {\n dataToPersist.removePath(new RemovePath(file.path));\n }\n });\n await dataToPersist.persistAllToFS();\n}\n\n/**\n * relevant only when\n * 1) there is no conflict => add files from mergeResults: addFiles, overrideFiles and modifiedFiles.output.\n * 2) there is conflict and mergeStrategy is manual => add files from mergeResults: addFiles, overrideFiles and modifiedFiles.conflict.\n *\n * this function only updates the files content, it doesn't write the files\n */\nexport function applyModifiedVersion(\n componentFiles: SourceFile[],\n mergeResults: MergeResultsThreeWay,\n mergeStrategy: MergeStrategy | null | undefined\n): { filesStatus: Record<string, any>; modifiedFiles: SourceFile[] } {\n let modifiedFiles = componentFiles.map((file) => file.clone());\n const filesStatus = {};\n if (mergeResults.hasConflicts && mergeStrategy !== MergeOptions.manual) {\n return { filesStatus, modifiedFiles };\n }\n mergeResults.modifiedFiles.forEach((file) => {\n const filePath: PathOsBased = path.normalize(file.filePath);\n const foundFile = modifiedFiles.find((componentFile) => componentFile.relative === filePath);\n if (!foundFile) throw new BitError(`file ${filePath} not found`);\n if (file.conflict) {\n foundFile.contents = Buffer.from(file.conflict);\n filesStatus[file.filePath] = FileStatus.manual;\n } else if (typeof file.output === 'string') {\n foundFile.contents = Buffer.from(file.output);\n filesStatus[file.filePath] = FileStatus.merged;\n } else if (file.isBinaryConflict) {\n // leave the file as is and notify the user later about it.\n foundFile.contents = file.fsFile.contents;\n filesStatus[file.filePath] = FileStatus.binaryConflict;\n } else {\n throw new BitError(`file ${filePath} does not have output nor conflict`);\n }\n });\n\n mergeResults.addFiles.forEach((file) => {\n const filePath: PathOsBased = path.normalize(file.filePath);\n if (modifiedFiles.find((m) => m.relative === filePath)) return;\n modifiedFiles.push(file.fsFile);\n filesStatus[file.filePath] = FileStatus.added;\n });\n mergeResults.deletedConflictFiles.forEach((file) => {\n if (!file.fsFile) return;\n const filePath: PathOsBased = path.normalize(file.filePath);\n if (modifiedFiles.find((m) => m.relative === filePath)) return;\n modifiedFiles.push(file.fsFile);\n filesStatus[file.filePath] = FileStatus.added;\n });\n mergeResults.removeFiles.forEach((file) => {\n const filePath: PathOsBased = path.normalize(file.filePath);\n filesStatus[file.filePath] = FileStatus.removed;\n modifiedFiles = modifiedFiles.filter((f) => f.relative !== filePath);\n });\n mergeResults.remainDeletedFiles.forEach((file) => {\n const filePath: PathOsBased = path.normalize(file.filePath);\n modifiedFiles = modifiedFiles.filter((f) => f.relative !== filePath);\n filesStatus[file.filePath] = FileStatus.remainDeleted;\n });\n mergeResults.deletedConflictFiles.forEach((file) => {\n filesStatus[file.filePath] = FileStatus.deletedConflict;\n });\n\n mergeResults.overrideFiles.forEach((file) => {\n const filePath: PathOsBased = path.normalize(file.filePath);\n const foundFile = modifiedFiles.find((componentFile) => componentFile.relative === filePath);\n if (!foundFile) throw new BitError(`file ${filePath} not found`);\n foundFile.contents = file.fsFile.contents;\n filesStatus[file.filePath] = FileStatus.overridden;\n });\n mergeResults.updatedFiles.forEach((file) => {\n const filePath: PathOsBased = path.normalize(file.filePath);\n const foundFile = modifiedFiles.find((componentFile) => componentFile.relative === filePath);\n if (!foundFile) throw new BitError(`file ${filePath} not found`);\n foundFile.contents = file.content;\n filesStatus[file.filePath] = FileStatus.updated;\n });\n\n return { filesStatus, modifiedFiles };\n}\n\nexport function throwForFailures(allComponentsStatus: ComponentStatusBase[]) {\n const failedComponents = allComponentsStatus.filter((c) => c.unchangedMessage && !c.unchangedLegitimately);\n if (failedComponents.length) {\n const failureMsgs = failedComponents\n .map(\n (failedComponent) =>\n `${chalk.bold(failedComponent.id.toString())} - ${chalk.red(failedComponent.unchangedMessage as string)}`\n )\n .join('\\n');\n throw new BitError(`unable to proceed due to the following failures:\\n${failureMsgs}`);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,10 +2,9 @@ import { CLIMain } from '@teambit/cli';
2
2
  import { Logger, LoggerMain } from '@teambit/logger';
3
3
  import { Workspace } from '@teambit/workspace';
4
4
  import { RemoveMain } from '@teambit/remove';
5
- import { ApplyVersionResults } from '@teambit/merging';
5
+ import { ApplyVersionResults, MergeStrategy } from '@teambit/merging';
6
6
  import { ImporterMain } from '@teambit/importer';
7
7
  import { ComponentWriterMain } from '@teambit/component-writer';
8
- import { MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';
9
8
  import { ComponentID } from '@teambit/component-id';
10
9
  import { ModelComponent, Lane } from '@teambit/legacy/dist/scope/models';
11
10
  import { ComponentStatusBase } from './checkout-version';
@@ -53,6 +53,13 @@ function _remove() {
53
53
  };
54
54
  return data;
55
55
  }
56
+ function _merging() {
57
+ const data = require("@teambit/merging");
58
+ _merging = function () {
59
+ return data;
60
+ };
61
+ return data;
62
+ }
56
63
  function _importer() {
57
64
  const data = require("@teambit/importer");
58
65
  _importer = function () {
@@ -74,13 +81,6 @@ function _componentWriter() {
74
81
  };
75
82
  return data;
76
83
  }
77
- function _mergeVersion() {
78
- const data = require("@teambit/legacy/dist/consumer/versions-ops/merge-version");
79
- _mergeVersion = function () {
80
- return data;
81
- };
82
- return data;
83
- }
84
84
  function _pMapSeries() {
85
85
  const data = _interopRequireDefault(require("p-map-series"));
86
86
  _pMapSeries = function () {
@@ -196,7 +196,7 @@ class CheckoutMain {
196
196
  if (!promptMergeOptions && !checkoutProps.mergeStrategy) {
197
197
  throw new (_bitError().BitError)(`automatic merge has failed for component ${componentWithConflict.id.toStringWithoutVersion()}.\nplease use "--auto-merge-resolve" with 'manual', 'ours' or 'theirs' to resolve the conflict/s`);
198
198
  }
199
- if (!checkoutProps.mergeStrategy) checkoutProps.mergeStrategy = await (0, _mergeVersion().getMergeStrategyInteractive)();
199
+ if (!checkoutProps.mergeStrategy) checkoutProps.mergeStrategy = await (0, _merging().getMergeStrategyInteractive)();
200
200
  }
201
201
  (0, _checkoutVersion().throwForFailures)(allComponentsStatus);
202
202
  const failedComponents = allComponentsStatus.filter(componentStatus => componentStatus.unchangedMessage).filter(componentStatus => !componentStatus.shouldBeRemoved).map(componentStatus => ({
@@ -570,7 +570,7 @@ class CheckoutMain {
570
570
  baseVersion = parent.toString();
571
571
  baseComponent = await componentModel.loadVersion(baseVersion, repo);
572
572
  }
573
- const mergeResults = await (0, _mergeVersion().threeWayMerge)({
573
+ const mergeResults = await (0, _merging().threeWayMerge)({
574
574
  scope: consumer.scope,
575
575
  otherComponent,
576
576
  otherLabel: loadStash ? 'stash' : newVersion,