@teambit/lanes 0.0.331 → 0.0.332

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.
@@ -109,7 +109,7 @@ export declare class LaneMergeCmd implements Command {
109
109
  migration: boolean;
110
110
  remoteOp: boolean;
111
111
  constructor(lanes: LanesMain);
112
- report([name]: [string], { ours, theirs, manual, remote: remoteName, build, existing: existingOnWorkspaceOnly, noSnap, message: snapMessage, keepReadme, }: {
112
+ report([name]: [string], { ours, theirs, manual, remote: remoteName, build, existing: existingOnWorkspaceOnly, noSnap, message: snapMessage, keepReadme, squash, }: {
113
113
  ours: boolean;
114
114
  theirs: boolean;
115
115
  manual: boolean;
@@ -119,6 +119,7 @@ export declare class LaneMergeCmd implements Command {
119
119
  noSnap: boolean;
120
120
  message: string;
121
121
  keepReadme?: boolean;
122
+ squash: boolean;
122
123
  }): Promise<string>;
123
124
  }
124
125
  export declare class LaneRemoveCmd implements Command {
package/dist/lane.cmd.js CHANGED
@@ -377,7 +377,7 @@ class LaneMergeCmd {
377
377
  (0, _defineProperty2().default)(this, "name", 'merge <lane>');
378
378
  (0, _defineProperty2().default)(this, "description", `merge a local or a remote lane`);
379
379
  (0, _defineProperty2().default)(this, "alias", '');
380
- (0, _defineProperty2().default)(this, "options", [['', 'remote <name>', 'remote scope name'], ['', 'ours', 'in case of a conflict, override the used version with the current modification'], ['', 'theirs', 'in case of a conflict, override the current modification with the specified version'], ['', 'manual', 'in case of a conflict, leave the files with a conflict state to resolve them manually later'], ['', 'existing', 'checkout only components in a lane that exist in the workspace'], ['', 'no-snap', 'do not auto snap in case the merge completed without conflicts'], ['', 'build', 'in case of snap during the merge, run the build-pipeline (similar to bit snap --build)'], ['m', 'message <message>', 'override the default message for the auto snap'], ['', 'keep-readme', 'skip deleting the lane readme component after merging']]);
380
+ (0, _defineProperty2().default)(this, "options", [['', 'remote <name>', 'remote scope name'], ['', 'ours', 'in case of a conflict, override the used version with the current modification'], ['', 'theirs', 'in case of a conflict, override the current modification with the specified version'], ['', 'manual', 'in case of a conflict, leave the files with a conflict state to resolve them manually later'], ['', 'existing', 'checkout only components in a lane that exist in the workspace'], ['', 'no-snap', 'do not auto snap in case the merge completed without conflicts'], ['', 'build', 'in case of snap during the merge, run the build-pipeline (similar to bit snap --build)'], ['m', 'message <message>', 'override the default message for the auto snap'], ['', 'keep-readme', 'skip deleting the lane readme component after merging'], ['', 'squash', 'squash multiple snaps. keep the last one only']]);
381
381
  (0, _defineProperty2().default)(this, "loader", true);
382
382
  (0, _defineProperty2().default)(this, "private", true);
383
383
  (0, _defineProperty2().default)(this, "migration", true);
@@ -393,7 +393,8 @@ class LaneMergeCmd {
393
393
  existing: existingOnWorkspaceOnly = false,
394
394
  noSnap = false,
395
395
  message: snapMessage = '',
396
- keepReadme = false
396
+ keepReadme = false,
397
+ squash = false
397
398
  }) {
398
399
  build = (0, _featureToggle().isFeatureEnabled)(_featureToggle().BUILD_ON_CI) ? Boolean(build) : true;
399
400
  const mergeStrategy = (0, _mergeVersion().getMergeStrategy)(ours, theirs, manual);
@@ -410,7 +411,8 @@ class LaneMergeCmd {
410
411
  existingOnWorkspaceOnly,
411
412
  noSnap,
412
413
  snapMessage,
413
- keepReadme
414
+ keepReadme,
415
+ squash
414
416
  });
415
417
  const mergeResult = `${(0, _merging().mergeReport)(mergeResults)}`;
416
418
  const deleteResult = `${deleteResults.localResult ? (0, _removeTemplate().default)(deleteResults.localResult, false) : ''}${(deleteResults.remoteResult || []).map(item => (0, _removeTemplate().default)(item, true))}${deleteResults.readmeResult && _chalk().default.yellow(deleteResults.readmeResult) || ''}\n`;
@@ -1 +1 @@
1
- {"version":3,"names":["LaneListCmd","constructor","lanes","workspace","scope","report","args","laneOptions","details","remote","merged","notMerged","getLanes","showDefaultLane","mergedLanes","filter","l","isMerged","length","chalk","green","map","m","name","join","unmergedLanes","currentLane","getCurrentLane","laneDataOfCurrentLane","find","undefined","currentLaneReadmeComponentStr","outputReadmeComponent","readmeComponent","currentLaneStr","remoteOfCurrentLane","currentLaneComponents","outputComponents","components","outputRemoteLane","availableLanes","laneData","readmeComponentStr","laneTitle","bold","concat","outputFooter","footer","outputCurrentLane","outputAvailableLanes","json","LaneShowCmd","onlyLane","title","author","log","username","email","date","Date","parseInt","toLocaleString","LaneCreateCmd","createLaneOptions","result","createLane","remoteScopeOrDefaultScope","remoteScope","localLane","remoteScopeOutput","LaneAliasCmd","laneName","alias","laneId","aliasLane","toString","LaneChangeScopeCmd","localName","remoteScopeBefore","changeScope","LaneRenameCmd","currentName","newName","exported","exportErr","rename","exportedStr","message","LaneMergeCmd","ours","theirs","manual","remoteName","build","existing","existingOnWorkspaceOnly","noSnap","snapMessage","keepReadme","isFeatureEnabled","BUILD_ON_CI","Boolean","mergeStrategy","getMergeStrategy","BitError","mergeResults","deleteResults","mergeLane","mergeResult","mergeReport","deleteResult","localResult","paintRemoved","remoteResult","item","readmeResult","yellow","LaneRemoveCmd","names","force","silent","removePromptResult","approveOperation","yn","shouldProceed","laneResults","removeLanes","LaneImportCmd","switchCmd","lane","skipDependencyInstallation","getAll","LaneCmd","docsDomain","description","LaneRemoveReadmeCmd","removeLaneReadme","red","LaneAddReadmeCmd","componentId","addLaneReadme","componentsTitle","componentsStr","c","id","head","component","remoteLane"],"sources":["lane.cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport chalk from 'chalk';\nimport yn from 'yn';\nimport { ScopeMain } from '@teambit/scope';\nimport { Workspace } from '@teambit/workspace';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { LaneData } from '@teambit/legacy/dist/scope/lanes/lanes';\nimport { getMergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { mergeReport } from '@teambit/merging';\nimport { BUILD_ON_CI, isFeatureEnabled } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { BitError } from '@teambit/bit-error';\nimport { approveOperation } from '@teambit/legacy/dist/prompts';\nimport paintRemoved from '@teambit/legacy/dist/cli/templates/remove-template';\nimport { CreateLaneOptions, LanesMain } from './lanes.main.runtime';\nimport { SwitchCmd } from './switch.cmd';\n\ntype LaneOptions = {\n details?: boolean;\n remote?: string;\n merged?: boolean;\n notMerged?: boolean;\n json?: boolean;\n};\n\nexport class LaneListCmd implements Command {\n name = 'list';\n description = `list lanes`;\n alias = '';\n options = [\n ['d', 'details', 'show more details on the state of each component in each lane'],\n ['j', 'json', 'show lanes details in json format'],\n ['r', 'remote <string>', 'show remote lanes'],\n ['', 'merged', 'show merged lanes'],\n ['', 'not-merged', 'show not merged lanes'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n remoteOp = true;\n skipWorkspace = true;\n\n constructor(private lanes: LanesMain, private workspace: Workspace, private scope: ScopeMain) {}\n\n async report(args, laneOptions: LaneOptions): Promise<string> {\n const { details, remote, merged, notMerged } = laneOptions;\n\n const lanes = await this.lanes.getLanes({\n remote,\n merged,\n notMerged,\n showDefaultLane: true,\n });\n if (merged) {\n const mergedLanes = lanes.filter((l) => l.isMerged);\n if (!mergedLanes.length) return chalk.green('None of the lanes is merged');\n return chalk.green(mergedLanes.map((m) => m.name).join('\\n'));\n }\n if (notMerged) {\n const unmergedLanes = lanes.filter((l) => !l.isMerged);\n if (!unmergedLanes.length) return chalk.green('All lanes are merged');\n return chalk.green(unmergedLanes.map((m) => m.name).join('\\n'));\n }\n const currentLane = this.lanes.getCurrentLane();\n const laneDataOfCurrentLane = currentLane ? lanes.find((l) => l.name === currentLane) : undefined;\n const currentLaneReadmeComponentStr = outputReadmeComponent(laneDataOfCurrentLane?.readmeComponent);\n let currentLaneStr = currentLane ? `current lane - ${chalk.green.green(currentLane as string)}` : '';\n currentLaneStr += currentLaneReadmeComponentStr;\n\n if (details) {\n const remoteOfCurrentLane = laneDataOfCurrentLane ? laneDataOfCurrentLane.remote : null;\n const currentLaneComponents = laneDataOfCurrentLane ? outputComponents(laneDataOfCurrentLane.components) : '';\n if (currentLaneStr) {\n currentLaneStr += `${outputRemoteLane(remoteOfCurrentLane)}\\n${currentLaneComponents}`;\n }\n }\n\n const availableLanes = lanes\n .filter((l) => l.name !== currentLane)\n // @ts-ignore\n .map((laneData) => {\n const readmeComponentStr = outputReadmeComponent(laneData.readmeComponent);\n if (details) {\n const laneTitle = `> ${chalk.bold(laneData.name)}${outputRemoteLane(laneData.remote)}\\n`;\n const components = outputComponents(laneData.components);\n return laneTitle + readmeComponentStr.concat('\\n') + components;\n }\n return ` > ${chalk.green(laneData.name)} (${laneData.components.length} components)${readmeComponentStr}`;\n })\n .join('\\n');\n\n const outputFooter = () => {\n let footer = '\\n';\n if (details) {\n footer += 'You can use --merged and --not-merged to see which of the lanes is fully merged.';\n } else {\n footer +=\n \"to get more info on all lanes in workspace use 'bit lane list --details' or 'bit lane show <lane-name>' for a specific lane.\";\n }\n if (!remote && this.workspace) footer += `\\nswitch lanes using 'bit switch <name>'.`;\n\n return footer;\n };\n\n return outputCurrentLane() + outputAvailableLanes() + outputFooter();\n\n function outputCurrentLane() {\n return currentLaneStr ? `${currentLaneStr}\\n` : '';\n }\n\n function outputAvailableLanes() {\n if (!availableLanes) return '';\n return remote ? `${availableLanes}\\n` : `\\nAvailable lanes:\\n${availableLanes}\\n`;\n }\n }\n async json(args, laneOptions: LaneOptions) {\n const { remote, merged = false, notMerged = false } = laneOptions;\n\n const lanes = await this.lanes.getLanes({\n remote,\n showDefaultLane: true,\n merged,\n notMerged,\n });\n const currentLane = this.lanes.getCurrentLane();\n return { lanes, currentLane };\n }\n}\n\nexport class LaneShowCmd implements Command {\n name = 'show <name>';\n description = `show lane details`;\n alias = '';\n options = [\n ['j', 'json', 'show the lane details in json format'],\n ['r', 'remote <string>', 'show remote lanes'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n remoteOp = true;\n skipWorkspace = true;\n\n constructor(private lanes: LanesMain, private workspace: Workspace, private scope: ScopeMain) {}\n\n async report([name]: [string], laneOptions: LaneOptions): Promise<string> {\n const { remote } = laneOptions;\n\n const lanes = await this.lanes.getLanes({\n name,\n remote,\n });\n\n const onlyLane = lanes[0];\n const title = `showing information for ${chalk.bold(name)}${outputRemoteLane(onlyLane.remote)}\\n`;\n const author = `author: ${onlyLane.log?.username || 'N/A'} <${onlyLane.log?.email || 'N/A'}>\\n`;\n const date = onlyLane.log?.date ? `${new Date(parseInt(onlyLane.log.date)).toLocaleString()}\\n` : undefined;\n return title + author + date + outputComponents(onlyLane.components);\n }\n\n async json([name]: [string], laneOptions: LaneOptions) {\n const { remote } = laneOptions;\n\n const lanes = await this.lanes.getLanes({\n name,\n remote,\n });\n return lanes[0];\n }\n}\n\nexport class LaneCreateCmd implements Command {\n name = 'create <name>';\n description = `create and switch to a new lane`;\n extendedDescription = `a lane created from main (default-lane) is empty until components are snapped.\na lane created from another lane has all the components of the original lane.`;\n alias = '';\n options = [\n [\n '',\n 'remote-scope <string>',\n 'remote scope where this lane will be exported to, default to the defaultScope (can be changed later with \"bit lane change-scope\")',\n ],\n [\n '',\n 'alias <string>',\n 'a local alias to refer to this lane, default to the <name> (can be added later with \"bit lane alias\")',\n ],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([name]: [string], createLaneOptions: CreateLaneOptions): Promise<string> {\n const result = await this.lanes.createLane(name, createLaneOptions);\n const remoteScopeOrDefaultScope = createLaneOptions.remoteScope\n ? `the remote scope ${chalk.bold(createLaneOptions.remoteScope)}`\n : `the default-scope ${chalk.bold(result.remoteScope)}. to change it, please run \"bit lane track\" command`;\n const title = chalk.green(`successfully added and checked out to a new lane ${chalk.bold(result.localLane)}`);\n const remoteScopeOutput = `this lane will be exported to ${remoteScopeOrDefaultScope}`;\n return `${title}\\n${remoteScopeOutput}`;\n }\n}\n\nexport class LaneAliasCmd implements Command {\n name = 'alias <lane-name> <alias>';\n description = 'add an alias to a lane';\n extendedDescription = `an alias is a name that can be used to refer to a lane. it is saved locally and never reach the remote.\nit is useful when having multiple lanes with the same name, but with different remote scopes.`;\n alias = '';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([laneName, alias]: [string, string, string]): Promise<string> {\n const { laneId } = await this.lanes.aliasLane(laneName, alias);\n return `successfully added the alias ${chalk.bold(alias)} to the lane ${chalk.bold(laneId.toString())}`;\n }\n}\n\nexport class LaneChangeScopeCmd implements Command {\n name = 'change-scope <lane-name> <remote-scope>';\n description = `change the remote scope of a lane`;\n alias = '';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([localName, remoteScope]: [string, string]): Promise<string> {\n const { remoteScopeBefore } = await this.lanes.changeScope(localName, remoteScope);\n return `the remote-scope of ${chalk.bold(localName)} has been changed from ${chalk.bold(\n remoteScopeBefore\n )} to ${chalk.bold(remoteScope)}`;\n }\n}\n\nexport class LaneRenameCmd implements Command {\n name = 'rename <current-name> <new-name>';\n description = `EXPERIMENTAL. change the lane-name locally and on the remote (if exported)`;\n alias = '';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([currentName, newName]: [string, string]): Promise<string> {\n const { exported, exportErr } = await this.lanes.rename(currentName, newName);\n const exportedStr = exported\n ? `and have been exported successfully to the remote`\n : `however if failed to export the renamed lane to the remote, due to an error: ${\n exportErr?.message || 'unknown'\n }`;\n return `the lane ${chalk.bold(currentName)} has been changed to ${chalk.bold(newName)}, ${exportedStr}`;\n }\n}\n\nexport class LaneMergeCmd implements Command {\n name = 'merge <lane>';\n description = `merge a local or a remote lane`;\n alias = '';\n options = [\n ['', 'remote <name>', 'remote scope name'],\n ['', 'ours', 'in case of a conflict, override the used version with the current modification'],\n ['', 'theirs', 'in case of a conflict, override the current modification with the specified version'],\n ['', 'manual', 'in case of a conflict, leave the files with a conflict state to resolve them manually later'],\n ['', 'existing', 'checkout only components in a lane that exist in the workspace'],\n ['', 'no-snap', 'do not auto snap in case the merge completed without conflicts'],\n ['', 'build', 'in case of snap during the merge, run the build-pipeline (similar to bit snap --build)'],\n ['m', 'message <message>', 'override the default message for the auto snap'],\n ['', 'keep-readme', 'skip deleting the lane readme component after merging'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n remoteOp = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report(\n [name]: [string],\n {\n ours = false,\n theirs = false,\n manual = false,\n remote: remoteName,\n build,\n existing: existingOnWorkspaceOnly = false,\n noSnap = false,\n message: snapMessage = '',\n keepReadme = false,\n }: {\n ours: boolean;\n theirs: boolean;\n manual: boolean;\n remote?: string;\n existing?: boolean;\n build?: boolean;\n noSnap: boolean;\n message: string;\n keepReadme?: boolean;\n }\n ): Promise<string> {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\n const mergeStrategy = getMergeStrategy(ours, theirs, manual);\n if (noSnap && snapMessage) throw new BitError('unable to use \"noSnap\" and \"message\" flags together');\n\n const { mergeResults, deleteResults } = await this.lanes.mergeLane(name, {\n // @ts-ignore\n remoteName,\n build,\n // @ts-ignore\n mergeStrategy,\n existingOnWorkspaceOnly,\n noSnap,\n snapMessage,\n keepReadme,\n });\n\n const mergeResult = `${mergeReport(mergeResults)}`;\n const deleteResult = `${deleteResults.localResult ? paintRemoved(deleteResults.localResult, false) : ''}${(\n deleteResults.remoteResult || []\n ).map((item) => paintRemoved(item, true))}${\n (deleteResults.readmeResult && chalk.yellow(deleteResults.readmeResult)) || ''\n }\\n`;\n return mergeResult + deleteResult;\n }\n}\n\nexport class LaneRemoveCmd implements Command {\n name = 'remove <lane...>';\n description = `remove lanes`;\n alias = '';\n options = [\n ['r', 'remote', 'remove a remote lane (in the lane arg, use remote/lane-id syntax)'],\n [\n 'f',\n 'force',\n 'removes the component from the scope, even if used as a dependency. WARNING: components that depend on this component will corrupt',\n ],\n ['s', 'silent', 'skip confirmation'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report(\n [names]: [string[]],\n {\n remote = false,\n force = false,\n silent = false,\n }: {\n remote: boolean;\n force: boolean;\n silent: boolean;\n }\n ): Promise<string> {\n if (!silent) {\n const removePromptResult = await approveOperation();\n // @ts-ignore\n if (!yn(removePromptResult.shouldProceed)) {\n throw new BitError('the operation has been canceled');\n }\n }\n const laneResults = await this.lanes.removeLanes(names, { remote, force });\n return chalk.green(`successfully removed the following lane(s): ${chalk.bold(laneResults.join(', '))}`);\n }\n}\n\nexport class LaneImportCmd implements Command {\n name = 'import <lane>';\n description = `import a remote lane to your workspace`;\n alias = '';\n options = [\n ['', 'skip-dependency-installation', 'do not install packages of the imported components'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private switchCmd: SwitchCmd) {}\n\n async report(\n [lane]: [string],\n { skipDependencyInstallation = false }: { skipDependencyInstallation: boolean }\n ): Promise<string> {\n return this.switchCmd.report([lane], { getAll: true, skipDependencyInstallation });\n }\n}\n\nexport class LaneCmd implements Command {\n name = 'lane [name]';\n description = 'show lanes details';\n alias = '';\n options = [\n ['d', 'details', 'show more details on the state of each component in each lane'],\n ['j', 'json', 'show lanes details in json format'],\n ['r', 'remote <string>', 'show remote lanes'],\n ['', 'merged', 'show merged lanes'],\n ['', 'not-merged', 'show not merged lanes'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n remoteOp = true;\n skipWorkspace = true;\n commands: Command[] = [];\n\n constructor(private lanes: LanesMain, private workspace: Workspace, private scope: ScopeMain, docsDomain: string) {\n this.description = `show lanes details\nhttps://${docsDomain}/components/lanes`;\n }\n\n async report([name]: [string], laneOptions: LaneOptions): Promise<string> {\n return new LaneListCmd(this.lanes, this.workspace, this.scope).report([name], laneOptions);\n }\n}\n\nexport class LaneRemoveReadmeCmd implements Command {\n name = 'remove-readme [laneName]';\n description = 'EXPERIMENTAL. remove lane readme component';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n skipWorkspace = false;\n\n constructor(private lanes: LanesMain) {}\n\n async report([laneName]: [string]): Promise<string> {\n const { result, message } = await this.lanes.removeLaneReadme(laneName);\n\n if (result) {\n return chalk.green(\n `the readme component has been successfully removed from the lane ${laneName || this.lanes.getCurrentLane()}`\n );\n }\n\n return chalk.red(`${message}\\n`);\n }\n}\n\nexport class LaneAddReadmeCmd implements Command {\n name = 'add-readme <componentId> [laneName]';\n description = 'EXPERIMENTAL. add lane readme component';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n skipWorkspace = false;\n\n constructor(private lanes: LanesMain) {}\n\n async report([componentId, laneName]: [string, string]): Promise<string> {\n const { result, message } = await this.lanes.addLaneReadme(componentId, laneName);\n\n if (result)\n return chalk.green(\n `the component ${componentId} has been successfully added as the readme component for the lane ${\n laneName || this.lanes.getCurrentLane()\n }`\n );\n\n return chalk.red(\n `${message || ''}\\nthe component ${componentId} could not be added as a readme component for the lane ${\n laneName || this.lanes.getCurrentLane()\n }`\n );\n }\n}\n\nfunction outputComponents(components: LaneData['components']): string {\n const componentsTitle = `\\t${chalk.bold(`components (${components.length})`)}\\n`;\n const componentsStr = components.map((c) => `\\t ${c.id.toString()} - ${c.head}`).join('\\n');\n return componentsTitle + componentsStr;\n}\n\nfunction outputReadmeComponent(component: LaneData['readmeComponent']): string {\n if (!component) return '';\n return `\\n\\t${`${chalk.yellow('readme component')}\\n\\t ${component.id} - ${\n component.head ||\n `(unsnapped)\\n\\t(\"use bit snap ${component.id.name}\" to snap the readme component on the lane before exporting)`\n }`}\\n`;\n}\n\nfunction outputRemoteLane(remoteLane: string | null | undefined): string {\n if (!remoteLane) return '';\n return ` - (remote lane - ${remoteLane})`;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["LaneListCmd","constructor","lanes","workspace","scope","report","args","laneOptions","details","remote","merged","notMerged","getLanes","showDefaultLane","mergedLanes","filter","l","isMerged","length","chalk","green","map","m","name","join","unmergedLanes","currentLane","getCurrentLane","laneDataOfCurrentLane","find","undefined","currentLaneReadmeComponentStr","outputReadmeComponent","readmeComponent","currentLaneStr","remoteOfCurrentLane","currentLaneComponents","outputComponents","components","outputRemoteLane","availableLanes","laneData","readmeComponentStr","laneTitle","bold","concat","outputFooter","footer","outputCurrentLane","outputAvailableLanes","json","LaneShowCmd","onlyLane","title","author","log","username","email","date","Date","parseInt","toLocaleString","LaneCreateCmd","createLaneOptions","result","createLane","remoteScopeOrDefaultScope","remoteScope","localLane","remoteScopeOutput","LaneAliasCmd","laneName","alias","laneId","aliasLane","toString","LaneChangeScopeCmd","localName","remoteScopeBefore","changeScope","LaneRenameCmd","currentName","newName","exported","exportErr","rename","exportedStr","message","LaneMergeCmd","ours","theirs","manual","remoteName","build","existing","existingOnWorkspaceOnly","noSnap","snapMessage","keepReadme","squash","isFeatureEnabled","BUILD_ON_CI","Boolean","mergeStrategy","getMergeStrategy","BitError","mergeResults","deleteResults","mergeLane","mergeResult","mergeReport","deleteResult","localResult","paintRemoved","remoteResult","item","readmeResult","yellow","LaneRemoveCmd","names","force","silent","removePromptResult","approveOperation","yn","shouldProceed","laneResults","removeLanes","LaneImportCmd","switchCmd","lane","skipDependencyInstallation","getAll","LaneCmd","docsDomain","description","LaneRemoveReadmeCmd","removeLaneReadme","red","LaneAddReadmeCmd","componentId","addLaneReadme","componentsTitle","componentsStr","c","id","head","component","remoteLane"],"sources":["lane.cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport chalk from 'chalk';\nimport yn from 'yn';\nimport { ScopeMain } from '@teambit/scope';\nimport { Workspace } from '@teambit/workspace';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { LaneData } from '@teambit/legacy/dist/scope/lanes/lanes';\nimport { getMergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { mergeReport } from '@teambit/merging';\nimport { BUILD_ON_CI, isFeatureEnabled } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { BitError } from '@teambit/bit-error';\nimport { approveOperation } from '@teambit/legacy/dist/prompts';\nimport paintRemoved from '@teambit/legacy/dist/cli/templates/remove-template';\nimport { CreateLaneOptions, LanesMain } from './lanes.main.runtime';\nimport { SwitchCmd } from './switch.cmd';\n\ntype LaneOptions = {\n details?: boolean;\n remote?: string;\n merged?: boolean;\n notMerged?: boolean;\n json?: boolean;\n};\n\nexport class LaneListCmd implements Command {\n name = 'list';\n description = `list lanes`;\n alias = '';\n options = [\n ['d', 'details', 'show more details on the state of each component in each lane'],\n ['j', 'json', 'show lanes details in json format'],\n ['r', 'remote <string>', 'show remote lanes'],\n ['', 'merged', 'show merged lanes'],\n ['', 'not-merged', 'show not merged lanes'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n remoteOp = true;\n skipWorkspace = true;\n\n constructor(private lanes: LanesMain, private workspace: Workspace, private scope: ScopeMain) {}\n\n async report(args, laneOptions: LaneOptions): Promise<string> {\n const { details, remote, merged, notMerged } = laneOptions;\n\n const lanes = await this.lanes.getLanes({\n remote,\n merged,\n notMerged,\n showDefaultLane: true,\n });\n if (merged) {\n const mergedLanes = lanes.filter((l) => l.isMerged);\n if (!mergedLanes.length) return chalk.green('None of the lanes is merged');\n return chalk.green(mergedLanes.map((m) => m.name).join('\\n'));\n }\n if (notMerged) {\n const unmergedLanes = lanes.filter((l) => !l.isMerged);\n if (!unmergedLanes.length) return chalk.green('All lanes are merged');\n return chalk.green(unmergedLanes.map((m) => m.name).join('\\n'));\n }\n const currentLane = this.lanes.getCurrentLane();\n const laneDataOfCurrentLane = currentLane ? lanes.find((l) => l.name === currentLane) : undefined;\n const currentLaneReadmeComponentStr = outputReadmeComponent(laneDataOfCurrentLane?.readmeComponent);\n let currentLaneStr = currentLane ? `current lane - ${chalk.green.green(currentLane as string)}` : '';\n currentLaneStr += currentLaneReadmeComponentStr;\n\n if (details) {\n const remoteOfCurrentLane = laneDataOfCurrentLane ? laneDataOfCurrentLane.remote : null;\n const currentLaneComponents = laneDataOfCurrentLane ? outputComponents(laneDataOfCurrentLane.components) : '';\n if (currentLaneStr) {\n currentLaneStr += `${outputRemoteLane(remoteOfCurrentLane)}\\n${currentLaneComponents}`;\n }\n }\n\n const availableLanes = lanes\n .filter((l) => l.name !== currentLane)\n // @ts-ignore\n .map((laneData) => {\n const readmeComponentStr = outputReadmeComponent(laneData.readmeComponent);\n if (details) {\n const laneTitle = `> ${chalk.bold(laneData.name)}${outputRemoteLane(laneData.remote)}\\n`;\n const components = outputComponents(laneData.components);\n return laneTitle + readmeComponentStr.concat('\\n') + components;\n }\n return ` > ${chalk.green(laneData.name)} (${laneData.components.length} components)${readmeComponentStr}`;\n })\n .join('\\n');\n\n const outputFooter = () => {\n let footer = '\\n';\n if (details) {\n footer += 'You can use --merged and --not-merged to see which of the lanes is fully merged.';\n } else {\n footer +=\n \"to get more info on all lanes in workspace use 'bit lane list --details' or 'bit lane show <lane-name>' for a specific lane.\";\n }\n if (!remote && this.workspace) footer += `\\nswitch lanes using 'bit switch <name>'.`;\n\n return footer;\n };\n\n return outputCurrentLane() + outputAvailableLanes() + outputFooter();\n\n function outputCurrentLane() {\n return currentLaneStr ? `${currentLaneStr}\\n` : '';\n }\n\n function outputAvailableLanes() {\n if (!availableLanes) return '';\n return remote ? `${availableLanes}\\n` : `\\nAvailable lanes:\\n${availableLanes}\\n`;\n }\n }\n async json(args, laneOptions: LaneOptions) {\n const { remote, merged = false, notMerged = false } = laneOptions;\n\n const lanes = await this.lanes.getLanes({\n remote,\n showDefaultLane: true,\n merged,\n notMerged,\n });\n const currentLane = this.lanes.getCurrentLane();\n return { lanes, currentLane };\n }\n}\n\nexport class LaneShowCmd implements Command {\n name = 'show <name>';\n description = `show lane details`;\n alias = '';\n options = [\n ['j', 'json', 'show the lane details in json format'],\n ['r', 'remote <string>', 'show remote lanes'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n remoteOp = true;\n skipWorkspace = true;\n\n constructor(private lanes: LanesMain, private workspace: Workspace, private scope: ScopeMain) {}\n\n async report([name]: [string], laneOptions: LaneOptions): Promise<string> {\n const { remote } = laneOptions;\n\n const lanes = await this.lanes.getLanes({\n name,\n remote,\n });\n\n const onlyLane = lanes[0];\n const title = `showing information for ${chalk.bold(name)}${outputRemoteLane(onlyLane.remote)}\\n`;\n const author = `author: ${onlyLane.log?.username || 'N/A'} <${onlyLane.log?.email || 'N/A'}>\\n`;\n const date = onlyLane.log?.date ? `${new Date(parseInt(onlyLane.log.date)).toLocaleString()}\\n` : undefined;\n return title + author + date + outputComponents(onlyLane.components);\n }\n\n async json([name]: [string], laneOptions: LaneOptions) {\n const { remote } = laneOptions;\n\n const lanes = await this.lanes.getLanes({\n name,\n remote,\n });\n return lanes[0];\n }\n}\n\nexport class LaneCreateCmd implements Command {\n name = 'create <name>';\n description = `create and switch to a new lane`;\n extendedDescription = `a lane created from main (default-lane) is empty until components are snapped.\na lane created from another lane has all the components of the original lane.`;\n alias = '';\n options = [\n [\n '',\n 'remote-scope <string>',\n 'remote scope where this lane will be exported to, default to the defaultScope (can be changed later with \"bit lane change-scope\")',\n ],\n [\n '',\n 'alias <string>',\n 'a local alias to refer to this lane, default to the <name> (can be added later with \"bit lane alias\")',\n ],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([name]: [string], createLaneOptions: CreateLaneOptions): Promise<string> {\n const result = await this.lanes.createLane(name, createLaneOptions);\n const remoteScopeOrDefaultScope = createLaneOptions.remoteScope\n ? `the remote scope ${chalk.bold(createLaneOptions.remoteScope)}`\n : `the default-scope ${chalk.bold(result.remoteScope)}. to change it, please run \"bit lane track\" command`;\n const title = chalk.green(`successfully added and checked out to a new lane ${chalk.bold(result.localLane)}`);\n const remoteScopeOutput = `this lane will be exported to ${remoteScopeOrDefaultScope}`;\n return `${title}\\n${remoteScopeOutput}`;\n }\n}\n\nexport class LaneAliasCmd implements Command {\n name = 'alias <lane-name> <alias>';\n description = 'add an alias to a lane';\n extendedDescription = `an alias is a name that can be used to refer to a lane. it is saved locally and never reach the remote.\nit is useful when having multiple lanes with the same name, but with different remote scopes.`;\n alias = '';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([laneName, alias]: [string, string, string]): Promise<string> {\n const { laneId } = await this.lanes.aliasLane(laneName, alias);\n return `successfully added the alias ${chalk.bold(alias)} to the lane ${chalk.bold(laneId.toString())}`;\n }\n}\n\nexport class LaneChangeScopeCmd implements Command {\n name = 'change-scope <lane-name> <remote-scope>';\n description = `change the remote scope of a lane`;\n alias = '';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([localName, remoteScope]: [string, string]): Promise<string> {\n const { remoteScopeBefore } = await this.lanes.changeScope(localName, remoteScope);\n return `the remote-scope of ${chalk.bold(localName)} has been changed from ${chalk.bold(\n remoteScopeBefore\n )} to ${chalk.bold(remoteScope)}`;\n }\n}\n\nexport class LaneRenameCmd implements Command {\n name = 'rename <current-name> <new-name>';\n description = `EXPERIMENTAL. change the lane-name locally and on the remote (if exported)`;\n alias = '';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report([currentName, newName]: [string, string]): Promise<string> {\n const { exported, exportErr } = await this.lanes.rename(currentName, newName);\n const exportedStr = exported\n ? `and have been exported successfully to the remote`\n : `however if failed to export the renamed lane to the remote, due to an error: ${\n exportErr?.message || 'unknown'\n }`;\n return `the lane ${chalk.bold(currentName)} has been changed to ${chalk.bold(newName)}, ${exportedStr}`;\n }\n}\n\nexport class LaneMergeCmd implements Command {\n name = 'merge <lane>';\n description = `merge a local or a remote lane`;\n alias = '';\n options = [\n ['', 'remote <name>', 'remote scope name'],\n ['', 'ours', 'in case of a conflict, override the used version with the current modification'],\n ['', 'theirs', 'in case of a conflict, override the current modification with the specified version'],\n ['', 'manual', 'in case of a conflict, leave the files with a conflict state to resolve them manually later'],\n ['', 'existing', 'checkout only components in a lane that exist in the workspace'],\n ['', 'no-snap', 'do not auto snap in case the merge completed without conflicts'],\n ['', 'build', 'in case of snap during the merge, run the build-pipeline (similar to bit snap --build)'],\n ['m', 'message <message>', 'override the default message for the auto snap'],\n ['', 'keep-readme', 'skip deleting the lane readme component after merging'],\n ['', 'squash', 'squash multiple snaps. keep the last one only'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n remoteOp = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report(\n [name]: [string],\n {\n ours = false,\n theirs = false,\n manual = false,\n remote: remoteName,\n build,\n existing: existingOnWorkspaceOnly = false,\n noSnap = false,\n message: snapMessage = '',\n keepReadme = false,\n squash = false,\n }: {\n ours: boolean;\n theirs: boolean;\n manual: boolean;\n remote?: string;\n existing?: boolean;\n build?: boolean;\n noSnap: boolean;\n message: string;\n keepReadme?: boolean;\n squash: boolean;\n }\n ): Promise<string> {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\n const mergeStrategy = getMergeStrategy(ours, theirs, manual);\n if (noSnap && snapMessage) throw new BitError('unable to use \"noSnap\" and \"message\" flags together');\n\n const { mergeResults, deleteResults } = await this.lanes.mergeLane(name, {\n // @ts-ignore\n remoteName,\n build,\n // @ts-ignore\n mergeStrategy,\n existingOnWorkspaceOnly,\n noSnap,\n snapMessage,\n keepReadme,\n squash,\n });\n\n const mergeResult = `${mergeReport(mergeResults)}`;\n const deleteResult = `${deleteResults.localResult ? paintRemoved(deleteResults.localResult, false) : ''}${(\n deleteResults.remoteResult || []\n ).map((item) => paintRemoved(item, true))}${\n (deleteResults.readmeResult && chalk.yellow(deleteResults.readmeResult)) || ''\n }\\n`;\n return mergeResult + deleteResult;\n }\n}\n\nexport class LaneRemoveCmd implements Command {\n name = 'remove <lane...>';\n description = `remove lanes`;\n alias = '';\n options = [\n ['r', 'remote', 'remove a remote lane (in the lane arg, use remote/lane-id syntax)'],\n [\n 'f',\n 'force',\n 'removes the component from the scope, even if used as a dependency. WARNING: components that depend on this component will corrupt',\n ],\n ['s', 'silent', 'skip confirmation'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report(\n [names]: [string[]],\n {\n remote = false,\n force = false,\n silent = false,\n }: {\n remote: boolean;\n force: boolean;\n silent: boolean;\n }\n ): Promise<string> {\n if (!silent) {\n const removePromptResult = await approveOperation();\n // @ts-ignore\n if (!yn(removePromptResult.shouldProceed)) {\n throw new BitError('the operation has been canceled');\n }\n }\n const laneResults = await this.lanes.removeLanes(names, { remote, force });\n return chalk.green(`successfully removed the following lane(s): ${chalk.bold(laneResults.join(', '))}`);\n }\n}\n\nexport class LaneImportCmd implements Command {\n name = 'import <lane>';\n description = `import a remote lane to your workspace`;\n alias = '';\n options = [\n ['', 'skip-dependency-installation', 'do not install packages of the imported components'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n\n constructor(private switchCmd: SwitchCmd) {}\n\n async report(\n [lane]: [string],\n { skipDependencyInstallation = false }: { skipDependencyInstallation: boolean }\n ): Promise<string> {\n return this.switchCmd.report([lane], { getAll: true, skipDependencyInstallation });\n }\n}\n\nexport class LaneCmd implements Command {\n name = 'lane [name]';\n description = 'show lanes details';\n alias = '';\n options = [\n ['d', 'details', 'show more details on the state of each component in each lane'],\n ['j', 'json', 'show lanes details in json format'],\n ['r', 'remote <string>', 'show remote lanes'],\n ['', 'merged', 'show merged lanes'],\n ['', 'not-merged', 'show not merged lanes'],\n ] as CommandOptions;\n loader = true;\n private = true;\n migration = true;\n remoteOp = true;\n skipWorkspace = true;\n commands: Command[] = [];\n\n constructor(private lanes: LanesMain, private workspace: Workspace, private scope: ScopeMain, docsDomain: string) {\n this.description = `show lanes details\nhttps://${docsDomain}/components/lanes`;\n }\n\n async report([name]: [string], laneOptions: LaneOptions): Promise<string> {\n return new LaneListCmd(this.lanes, this.workspace, this.scope).report([name], laneOptions);\n }\n}\n\nexport class LaneRemoveReadmeCmd implements Command {\n name = 'remove-readme [laneName]';\n description = 'EXPERIMENTAL. remove lane readme component';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n skipWorkspace = false;\n\n constructor(private lanes: LanesMain) {}\n\n async report([laneName]: [string]): Promise<string> {\n const { result, message } = await this.lanes.removeLaneReadme(laneName);\n\n if (result) {\n return chalk.green(\n `the readme component has been successfully removed from the lane ${laneName || this.lanes.getCurrentLane()}`\n );\n }\n\n return chalk.red(`${message}\\n`);\n }\n}\n\nexport class LaneAddReadmeCmd implements Command {\n name = 'add-readme <componentId> [laneName]';\n description = 'EXPERIMENTAL. add lane readme component';\n options = [] as CommandOptions;\n loader = true;\n private = true;\n skipWorkspace = false;\n\n constructor(private lanes: LanesMain) {}\n\n async report([componentId, laneName]: [string, string]): Promise<string> {\n const { result, message } = await this.lanes.addLaneReadme(componentId, laneName);\n\n if (result)\n return chalk.green(\n `the component ${componentId} has been successfully added as the readme component for the lane ${\n laneName || this.lanes.getCurrentLane()\n }`\n );\n\n return chalk.red(\n `${message || ''}\\nthe component ${componentId} could not be added as a readme component for the lane ${\n laneName || this.lanes.getCurrentLane()\n }`\n );\n }\n}\n\nfunction outputComponents(components: LaneData['components']): string {\n const componentsTitle = `\\t${chalk.bold(`components (${components.length})`)}\\n`;\n const componentsStr = components.map((c) => `\\t ${c.id.toString()} - ${c.head}`).join('\\n');\n return componentsTitle + componentsStr;\n}\n\nfunction outputReadmeComponent(component: LaneData['readmeComponent']): string {\n if (!component) return '';\n return `\\n\\t${`${chalk.yellow('readme component')}\\n\\t ${component.id} - ${\n component.head ||\n `(unsnapped)\\n\\t(\"use bit snap ${component.id.name}\" to snap the readme component on the lane before exporting)`\n }`}\\n`;\n}\n\nfunction outputRemoteLane(remoteLane: string | null | undefined): string {\n if (!remoteLane) return '';\n return ` - (remote lane - ${remoteLane})`;\n}\n"],"mappings":"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"}
@@ -25,6 +25,7 @@ export declare type MergeLaneOptions = {
25
25
  existingOnWorkspaceOnly: boolean;
26
26
  build: boolean;
27
27
  keepReadme: boolean;
28
+ squash: boolean;
28
29
  };
29
30
  export declare type CreateLaneOptions = {
30
31
  remoteScope?: string;
@@ -1 +1 @@
1
- {"version":3,"names":["LanesMain","constructor","workspace","scope","merging","componentAspect","logger","getLanes","name","remote","merged","showDefaultLane","notMerged","showMergeData","Boolean","consumer","remoteObj","getRemoteByName","lanes","listLanes","DEFAULT_LANE","defaultLane","getLaneDataOfDefaultLane","legacyScope","getLanesData","push","getCurrentLane","getCurrentLaneName","getCurrentLaneId","createLane","remoteScope","alias","BitError","throwForInvalidLaneName","defaultScope","setCurrentLane","trackLaneData","localLane","remoteLane","trackLane","onDestroy","localName","remoteName","laneId","parseLaneIdFromString","lane","loadLane","beforeTrackData","getRemoteTrackedDataByLocalLane","beforeTrackDataCloned","undefined","afterTrackData","aliasLane","laneName","includes","LANE_REMOTE_DELIMITER","trackData","laneNameWithoutScope","split","removeTrackLane","changeScope","remoteScopeBefore","saveLane","rename","currentName","newName","existingAliasWithNewName","remoteIdStr","previousAlias","getAliasByLaneId","WorkspaceLane","getPath","objects","remoteLanes","renameRefByNewLaneName","currentLaneName","clonedLaneToExport","clone","components","exported","exportErr","exportLane","err","error","id","toString","message","exportMany","isLegacy","laneObject","ids","BitIds","codemod","changeLocallyAlthoughRemoteIsDifferent","includeDependencies","idsWithFutureScope","allVersions","importLane","scopeComponentImporter","ScopeComponentsImporter","getInstance","results","importLanes","removeLanes","laneNames","force","laneResults","mergeLane","options","mergeLanes","bitMap","syncWithLanes","workspaceLane","switchLanes","merge","getAll","skipDependencyInstallation","mergeStrategy","mergeOptions","Object","keys","MergeOptions","join","switchProps","existingOnWorkspaceOnly","checkoutProps","skipNpmInstall","verbose","ignorePackageJson","ignoreDist","isLane","promptMergeOptions","writeConfig","reset","all","LaneSwitcher","switch","getDiff","values","diffOptions","laneDiffGenerator","LaneDiffGenerator","generate","getLaneComponentModels","laneComponents","host","getHost","laneComponentIds","Promise","map","laneComponent","legacyIdWithVersion","changeVersion","head","resolveComponentId","getMany","getLaneReadmeComponent","laneReadmeComponent","readmeComponent","laneReadmeComponentId","get","removeLaneReadme","result","readmeComponentId","existingLaneConfig","getSpecificComponentConfig","LanesAspect","remoteLaneIdStr","toLaneId","readme","removeSpecificComponentConfig","addSpecificComponentConfig","setReadmeComponent","write","addLaneReadme","readmeComponentIdStr","readmeComponentBitId","_legacy","bitIds","scopeComponents","list","filter","component","getAuthoredAndImportedBitIdsOfDefaultLane","bitId","version","isMerged","provider","cli","graphql","community","loggerMain","createLogger","lanesMain","switchCmd","SwitchCmd","laneCmd","LaneCmd","getDocsDomain","commands","LaneListCmd","LaneShowCmd","LaneCreateCmd","LaneMergeCmd","LaneRemoveCmd","LaneChangeScopeCmd","LaneAliasCmd","LaneRenameCmd","LaneDiffCmd","LaneAddReadmeCmd","LaneRemoveReadmeCmd","LaneImportCmd","register","lanesSchema","CLIAspect","ScopeAspect","WorkspaceAspect","GraphqlAspect","CommunityAspect","MergingAspect","ComponentAspect","LoggerAspect","MainRuntime","addRuntime"],"sources":["lanes.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ScopeMain, ScopeAspect } from '@teambit/scope';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport getRemoteByName from '@teambit/legacy/dist/remotes/get-remote-by-name';\nimport { LaneDiffCmd, LaneDiffGenerator } from '@teambit/lanes.modules.diff';\nimport { LaneData } from '@teambit/legacy/dist/scope/lanes/lanes';\nimport { LaneId, DEFAULT_LANE, LANE_REMOTE_DELIMITER } from '@teambit/lane-id';\nimport { BitError } from '@teambit/bit-error';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { DiffOptions } from '@teambit/legacy/dist/consumer/component-ops/components-diff';\nimport { exportMany } from '@teambit/legacy/dist/scope/component-ops/export-scope-components';\nimport {\n MergeStrategy,\n ApplyVersionResults,\n MergeOptions,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { TrackLane } from '@teambit/legacy/dist/scope/scope-json';\nimport { CommunityAspect } from '@teambit/community';\nimport type { CommunityMain } from '@teambit/community';\nimport ComponentAspect, { Component, ComponentMain } from '@teambit/component';\nimport removeLanes from '@teambit/legacy/dist/consumer/lanes/remove-lanes';\nimport WorkspaceLane from '@teambit/legacy/dist/consumer/bit-map/workspace-lane';\nimport { Lane } from '@teambit/legacy/dist/scope/models';\nimport ScopeComponentsImporter from '@teambit/legacy/dist/scope/component-ops/scope-components-importer';\nimport { Scope as LegacyScope } from '@teambit/legacy/dist/scope';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { BitIds } from '@teambit/legacy/dist/bit-id';\nimport { MergingMain, MergingAspect } from '@teambit/merging';\nimport { LanesAspect } from './lanes.aspect';\nimport {\n LaneCmd,\n LaneCreateCmd,\n LaneImportCmd,\n LaneListCmd,\n LaneMergeCmd,\n LaneRemoveCmd,\n LaneShowCmd,\n LaneChangeScopeCmd,\n LaneAliasCmd,\n LaneRenameCmd,\n LaneAddReadmeCmd,\n LaneRemoveReadmeCmd,\n} from './lane.cmd';\nimport { lanesSchema } from './lanes.graphql';\nimport { SwitchCmd } from './switch.cmd';\nimport { mergeLanes } from './merge-lanes';\nimport { LaneSwitcher } from './switch-lanes';\nimport { createLane, throwForInvalidLaneName } from './create-lane';\n\nexport { Lane };\n\nexport type LaneResults = {\n lanes: LaneData[];\n currentLane?: string | null;\n};\n\nexport type MergeLaneOptions = {\n remoteName: string | null;\n mergeStrategy: MergeStrategy;\n noSnap: boolean;\n snapMessage: string;\n existingOnWorkspaceOnly: boolean;\n build: boolean;\n keepReadme: boolean;\n};\n\nexport type CreateLaneOptions = {\n remoteScope?: string; // default to the defaultScope in workspace.jsonc\n alias?: string; // default to the remote name\n};\n\nexport type SwitchLaneOptions = {\n alias?: string;\n merge?: MergeStrategy;\n getAll?: boolean;\n skipDependencyInstallation?: boolean;\n verbose?: boolean;\n override?: boolean;\n};\n\nexport class LanesMain {\n constructor(\n private workspace: Workspace | undefined,\n private scope: ScopeMain,\n private merging: MergingMain,\n private componentAspect: ComponentMain,\n private logger: Logger\n ) {}\n\n async getLanes({\n name,\n remote,\n merged,\n showDefaultLane,\n notMerged,\n }: {\n name?: string;\n remote?: string;\n merged?: boolean;\n showDefaultLane?: boolean;\n notMerged?: boolean;\n }): Promise<LaneData[]> {\n const showMergeData = Boolean(merged || notMerged);\n const consumer = this.workspace?.consumer;\n if (remote) {\n const remoteObj = await getRemoteByName(remote, consumer);\n const lanes = await remoteObj.listLanes(name, showMergeData);\n return lanes;\n }\n\n if (name === DEFAULT_LANE) {\n const defaultLane = await this.getLaneDataOfDefaultLane();\n return defaultLane ? [defaultLane] : [];\n }\n\n const lanes = await this.scope.legacyScope.lanes.getLanesData(this.scope.legacyScope, name, showMergeData);\n\n if (showDefaultLane) {\n const defaultLane = await this.getLaneDataOfDefaultLane();\n if (defaultLane) lanes.push(defaultLane);\n }\n\n return lanes;\n }\n\n getCurrentLane(): string | null {\n if (!this.workspace?.consumer) return null;\n return this.scope.legacyScope.lanes.getCurrentLaneName();\n }\n\n getCurrentLaneId(): LaneId | null {\n if (!this.workspace) return null;\n return this.scope.legacyScope.lanes.getCurrentLaneId();\n }\n\n async createLane(name: string, { remoteScope, alias }: CreateLaneOptions = {}): Promise<TrackLane> {\n if (!this.workspace) {\n throw new BitError(`unable to create a lane outside of Bit workspace`);\n }\n if (alias) {\n throwForInvalidLaneName(alias);\n }\n const scope = remoteScope || this.workspace.defaultScope;\n await createLane(this.workspace.consumer, name, scope);\n this.scope.legacyScope.lanes.setCurrentLane(name);\n const trackLaneData = {\n localLane: alias || name,\n remoteLane: name,\n remoteScope: scope,\n };\n this.scope.legacyScope.lanes.trackLane(trackLaneData);\n await this.workspace.consumer.onDestroy();\n\n return trackLaneData;\n }\n\n async trackLane(\n localName: string,\n remoteScope: string,\n remoteName?: string\n ): Promise<{ beforeTrackData?: TrackLane; afterTrackData: TrackLane }> {\n if (!this.workspace) {\n throw new BitError(`unable to track a lane outside of Bit workspace`);\n }\n const laneId = await this.scope.legacyScope.lanes.parseLaneIdFromString(localName);\n const lane = await this.scope.legacyScope.lanes.loadLane(laneId);\n if (!lane) {\n throw new BitError(`unable to find a local lane \"${localName}\"`);\n }\n const beforeTrackData = this.scope.legacyScope.lanes.getRemoteTrackedDataByLocalLane(localName);\n const beforeTrackDataCloned = beforeTrackData ? { ...beforeTrackData } : undefined;\n const afterTrackData = {\n localLane: localName,\n remoteLane: remoteName || beforeTrackData?.remoteLane || localName,\n remoteScope,\n };\n this.scope.legacyScope.lanes.trackLane(afterTrackData);\n await this.workspace.consumer.onDestroy();\n\n return { beforeTrackData: beforeTrackDataCloned, afterTrackData };\n }\n\n async aliasLane(laneName: string, alias: string): Promise<{ laneId: LaneId }> {\n if (!this.workspace) {\n throw new BitError(`unable to alias a lane outside of Bit workspace`);\n }\n if (alias.includes(LANE_REMOTE_DELIMITER)) {\n throw new BitError(`an alias cannot include a delimiter \"${LANE_REMOTE_DELIMITER}\"`);\n }\n if (alias === laneName) {\n throw new BitError(`an alias cannot be the same as the lane name`);\n }\n const laneId = await this.scope.legacyScope.lanes.parseLaneIdFromString(laneName);\n const lane = await this.scope.legacyScope.lanes.loadLane(laneId);\n if (!lane) {\n throw new BitError(`unable to find a local lane \"${laneName}\"`);\n }\n const trackData = {\n localLane: alias,\n remoteLane: laneId.name,\n remoteScope: laneId.scope,\n };\n const laneNameWithoutScope = laneName.includes(LANE_REMOTE_DELIMITER)\n ? laneName.split(LANE_REMOTE_DELIMITER)[1]\n : laneName;\n this.scope.legacyScope.lanes.removeTrackLane(laneNameWithoutScope);\n this.scope.legacyScope.lanes.trackLane(trackData);\n await this.workspace.consumer.onDestroy();\n\n return { laneId };\n }\n\n async changeScope(laneName: string, remoteScope: string): Promise<{ remoteScopeBefore: string }> {\n if (!this.workspace) {\n throw new BitError(`unable to change-scope of a lane outside of Bit workspace`);\n }\n const laneNameWithoutScope = laneName.includes(LANE_REMOTE_DELIMITER)\n ? laneName.split(LANE_REMOTE_DELIMITER)[1]\n : laneName;\n const laneId = await this.scope.legacyScope.lanes.parseLaneIdFromString(laneName);\n const lane = await this.scope.legacyScope.lanes.loadLane(laneId);\n if (!lane) {\n throw new BitError(`unable to find a local lane \"${laneName}\"`);\n }\n const remoteScopeBefore = lane.scope;\n lane.scope = remoteScope;\n const trackData = {\n localLane: laneNameWithoutScope,\n remoteLane: laneId.name,\n remoteScope,\n };\n this.scope.legacyScope.lanes.trackLane(trackData);\n await this.scope.legacyScope.lanes.saveLane(lane);\n await this.workspace.consumer.onDestroy();\n\n return { remoteScopeBefore };\n }\n\n /**\n * change a lane-name and if possible, export the lane to the remote\n */\n async rename(currentName: string, newName: string): Promise<{ exported: boolean; exportErr?: Error }> {\n if (!this.workspace) {\n throw new BitError(`unable to rename a lane outside of Bit workspace`);\n }\n throwForInvalidLaneName(newName);\n const existingAliasWithNewName = this.scope.legacyScope.lanes.getRemoteTrackedDataByLocalLane(newName);\n if (existingAliasWithNewName) {\n const remoteIdStr = `${existingAliasWithNewName.remoteLane}/${existingAliasWithNewName.remoteScope}`;\n throw new BitError(`unable to rename to ${newName}. this name is already used to track: ${remoteIdStr}`);\n }\n const laneNameWithoutScope = currentName.includes(LANE_REMOTE_DELIMITER)\n ? currentName.split(LANE_REMOTE_DELIMITER)[1]\n : currentName;\n const laneId = await this.scope.legacyScope.lanes.parseLaneIdFromString(currentName);\n const lane = await this.scope.legacyScope.lanes.loadLane(laneId);\n if (!lane) {\n throw new BitError(`unable to find a local lane \"${currentName}\"`);\n }\n\n // rename the workspace-lane file\n const previousAlias = this.scope.legacyScope.lanes.getAliasByLaneId(laneId);\n if (previousAlias) {\n await WorkspaceLane.rename(this.scope.legacyScope.getPath(), previousAlias, newName);\n }\n\n // rename the ref file\n await this.scope.legacyScope.objects.remoteLanes.renameRefByNewLaneName(laneNameWithoutScope, newName, lane.scope);\n\n // change tracking data\n const afterTrackData = {\n localLane: newName,\n remoteLane: newName,\n remoteScope: lane.scope,\n };\n this.scope.legacyScope.lanes.trackLane(afterTrackData);\n this.scope.legacyScope.lanes.removeTrackLane(laneNameWithoutScope);\n\n // change the lane object\n lane.name = newName;\n await this.scope.legacyScope.lanes.saveLane(lane);\n\n // change current-lane if needed\n const currentLaneName = this.getCurrentLane();\n if (currentLaneName === laneNameWithoutScope) this.scope.legacyScope.lanes.setCurrentLane(newName);\n\n // export the lane with only the name-change\n const clonedLaneToExport = lane.clone();\n clonedLaneToExport.components = []; // otherwise, it'll export the changes done on the components.\n let exported = false;\n let exportErr: Error | undefined;\n try {\n await this.exportLane(clonedLaneToExport);\n exported = true;\n } catch (err: any) {\n this.logger.error(`unable to export ${lane.id.toString()}: ${err.message}`);\n exportErr = err;\n }\n\n await this.workspace.consumer.onDestroy();\n\n return { exported, exportErr };\n }\n\n async exportLane(lane: Lane) {\n await exportMany({\n scope: this.scope.legacyScope,\n isLegacy: false,\n laneObject: lane,\n ids: new BitIds(),\n codemod: false,\n changeLocallyAlthoughRemoteIsDifferent: false,\n includeDependencies: false,\n remoteName: null,\n idsWithFutureScope: new BitIds(),\n allVersions: false,\n });\n }\n\n async importLane(laneId: LaneId): Promise<Lane> {\n const scopeComponentImporter = ScopeComponentsImporter.getInstance(this.scope.legacyScope);\n const results = await scopeComponentImporter.importLanes([laneId]);\n return results[0];\n }\n\n async removeLanes(laneNames: string[], { remote, force }: { remote: boolean; force: boolean }): Promise<string[]> {\n const results = await removeLanes(this.workspace?.consumer, laneNames, remote, force);\n if (this.workspace) await this.workspace.consumer.onDestroy();\n\n return results.laneResults;\n }\n\n async mergeLane(\n laneName: string,\n options: MergeLaneOptions\n ): Promise<{ mergeResults: ApplyVersionResults; deleteResults: any }> {\n if (!this.workspace) {\n throw new BitError(`unable to merge a lane outside of Bit workspace`);\n }\n const results = await mergeLanes({\n merging: this.merging,\n consumer: this.workspace.consumer,\n laneName,\n ...options,\n });\n\n await this.workspace.consumer.onDestroy();\n this.workspace.consumer.bitMap.syncWithLanes(this.workspace.consumer.bitMap.workspaceLane);\n return results;\n }\n\n /**\n * switch to a different local or remote lane.\n * switching to a remote lane also imports and writes the components of that remote lane.\n * by default, only the components existing on the workspace will be imported from that lane, unless the \"getAll\"\n * flag is true.\n */\n async switchLanes(\n laneName: string,\n { alias, merge, getAll = false, skipDependencyInstallation = false }: SwitchLaneOptions\n ) {\n if (!this.workspace) {\n throw new BitError(`unable to switch lanes outside of Bit workspace`);\n }\n let mergeStrategy;\n if (merge && typeof merge === 'string') {\n const mergeOptions = Object.keys(MergeOptions);\n if (!mergeOptions.includes(merge)) {\n throw new BitError(`merge must be one of the following: ${mergeOptions.join(', ')}`);\n }\n mergeStrategy = merge;\n }\n if (alias) {\n throwForInvalidLaneName(alias);\n }\n\n const switchProps = {\n laneName,\n existingOnWorkspaceOnly: !getAll,\n alias,\n };\n const checkoutProps = {\n mergeStrategy,\n skipNpmInstall: skipDependencyInstallation,\n verbose: false, // not relevant in Harmony\n ignorePackageJson: true, // not relevant in Harmony\n ignoreDist: true, // not relevant in Harmony\n isLane: true,\n promptMergeOptions: false,\n writeConfig: false,\n reset: false,\n all: false,\n };\n return new LaneSwitcher(this.workspace, this.logger, switchProps, checkoutProps).switch();\n }\n\n /**\n * the values array may include zero to two values and will be processed as following:\n * [] => diff between the current lane and default lane. (only inside workspace).\n * [to] => diff between the current lane (or default-lane when in scope) and \"to\" lane.\n * [from, to] => diff between \"from\" lane and \"to\" lane.\n */\n public getDiff(values: string[], diffOptions: DiffOptions = {}) {\n const laneDiffGenerator = new LaneDiffGenerator(this.workspace, this.scope);\n return laneDiffGenerator.generate(values, diffOptions);\n }\n\n async getLaneComponentModels(lane: LaneData): Promise<Component[]> {\n if (!lane) return [];\n\n const laneComponents = lane.components;\n const host = this.componentAspect.getHost();\n const laneComponentIds = await Promise.all(\n laneComponents.map((laneComponent) => {\n const legacyIdWithVersion = laneComponent.id.changeVersion(laneComponent.head);\n return host.resolveComponentId(legacyIdWithVersion);\n })\n );\n const components = await host.getMany(laneComponentIds);\n return components;\n }\n\n async getLaneReadmeComponent(lane: LaneData): Promise<Component | undefined> {\n if (!lane) return undefined;\n const laneReadmeComponent = lane.readmeComponent;\n if (!laneReadmeComponent) return undefined;\n const host = this.componentAspect.getHost();\n const laneReadmeComponentId = await host.resolveComponentId(\n laneReadmeComponent.id.changeVersion(laneReadmeComponent.head)\n );\n const readmeComponent = await host.get(laneReadmeComponentId);\n return readmeComponent;\n }\n\n async removeLaneReadme(laneName?: string): Promise<{ result: boolean; message?: string }> {\n if (!this.workspace) {\n throw new BitError('unable to remove the lane readme component outside of Bit workspace');\n }\n const currentLaneName = this.getCurrentLane();\n\n if (!laneName && !currentLaneName) {\n return {\n result: false,\n message: 'unable to remove the lane readme component. Either pass a laneName or switch to a lane',\n };\n }\n\n const scope: LegacyScope = this.workspace.scope.legacyScope;\n const laneId: LaneId = laneName\n ? await scope.lanes.parseLaneIdFromString(laneName)\n : (this.getCurrentLaneId() as LaneId);\n const lane: Lane | null | undefined = await scope.loadLane(laneId);\n\n if (!lane?.readmeComponent) {\n throw new BitError(`there is no readme component added to the lane ${laneName || currentLaneName}`);\n }\n\n const readmeComponentId = await this.workspace.resolveComponentId(lane.readmeComponent.id);\n const existingLaneConfig =\n (await this.workspace.getSpecificComponentConfig(readmeComponentId, LanesAspect.id)) || {};\n\n const remoteLaneIdStr = lane.toLaneId().toString();\n\n if (existingLaneConfig.readme) {\n delete existingLaneConfig.readme[remoteLaneIdStr];\n await this.workspace.removeSpecificComponentConfig(readmeComponentId, LanesAspect.id, false);\n await this.workspace.addSpecificComponentConfig(readmeComponentId, LanesAspect.id, existingLaneConfig);\n }\n\n lane.setReadmeComponent(undefined);\n await scope.lanes.saveLane(lane);\n await this.workspace.bitMap.write();\n\n return { result: true };\n }\n\n async addLaneReadme(readmeComponentIdStr: string, laneName?: string): Promise<{ result: boolean; message?: string }> {\n if (!this.workspace) {\n throw new BitError(`unable to track a lane readme component outside of Bit workspace`);\n }\n const readmeComponentId = await this.workspace.resolveComponentId(readmeComponentIdStr);\n\n const readmeComponentBitId = readmeComponentId._legacy;\n const scope: LegacyScope = this.workspace.scope.legacyScope;\n const laneId: LaneId = laneName\n ? await scope.lanes.parseLaneIdFromString(laneName)\n : (this.getCurrentLaneId() as LaneId);\n\n const lane: Lane | null | undefined = await scope.loadLane(laneId);\n\n if (!lane) {\n return { result: false, message: `cannot find lane ${laneName}` };\n }\n\n lane.setReadmeComponent(readmeComponentBitId);\n await scope.lanes.saveLane(lane);\n\n const existingLaneConfig =\n (await this.workspace.getSpecificComponentConfig(readmeComponentId, LanesAspect.id)) || {};\n\n const remoteLaneIdStr = lane.toLaneId().toString();\n\n if (existingLaneConfig.readme) {\n await this.workspace.addSpecificComponentConfig(readmeComponentId, LanesAspect.id, {\n ...existingLaneConfig,\n readme: {\n ...existingLaneConfig.readme,\n [remoteLaneIdStr]: true,\n },\n });\n } else {\n await this.workspace.addSpecificComponentConfig(readmeComponentId, LanesAspect.id, {\n ...existingLaneConfig,\n readme: {\n [remoteLaneIdStr]: true,\n },\n });\n }\n await this.workspace.bitMap.write();\n return { result: true };\n }\n\n private async getLaneDataOfDefaultLane(): Promise<LaneData | null> {\n const consumer = this.workspace?.consumer;\n let bitIds: BitId[] = [];\n if (!consumer) {\n const scopeComponents = await this.scope.list();\n bitIds = scopeComponents.filter((component) => component.head).map((component) => component.id._legacy);\n } else {\n bitIds = consumer.bitMap.getAuthoredAndImportedBitIdsOfDefaultLane();\n }\n\n return {\n name: DEFAULT_LANE,\n remote: null,\n components: bitIds.map((bitId) => ({ id: bitId, head: bitId.version as string })),\n isMerged: null,\n };\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n ScopeAspect,\n WorkspaceAspect,\n GraphqlAspect,\n CommunityAspect,\n MergingAspect,\n ComponentAspect,\n LoggerAspect,\n ];\n static runtime = MainRuntime;\n static async provider([cli, scope, workspace, graphql, community, merging, component, loggerMain]: [\n CLIMain,\n ScopeMain,\n Workspace,\n GraphqlMain,\n CommunityMain,\n MergingMain,\n ComponentMain,\n LoggerMain\n ]) {\n const logger = loggerMain.createLogger(LanesAspect.id);\n const lanesMain = new LanesMain(workspace, scope, merging, component, logger);\n const isLegacy = workspace && workspace.consumer.isLegacy;\n const switchCmd = new SwitchCmd(lanesMain);\n if (!isLegacy) {\n const laneCmd = new LaneCmd(lanesMain, workspace, scope, community.getDocsDomain());\n laneCmd.commands = [\n new LaneListCmd(lanesMain, workspace, scope),\n switchCmd,\n new LaneShowCmd(lanesMain, workspace, scope),\n new LaneCreateCmd(lanesMain),\n new LaneMergeCmd(lanesMain),\n new LaneRemoveCmd(lanesMain),\n new LaneChangeScopeCmd(lanesMain),\n new LaneAliasCmd(lanesMain),\n new LaneRenameCmd(lanesMain),\n new LaneDiffCmd(workspace, scope),\n new LaneAddReadmeCmd(lanesMain),\n new LaneRemoveReadmeCmd(lanesMain),\n new LaneImportCmd(switchCmd),\n ];\n cli.register(laneCmd, switchCmd);\n graphql.register(lanesSchema(lanesMain));\n }\n return lanesMain;\n }\n}\n\nLanesAspect.addRuntime(LanesMain);\n\nexport default LanesMain;\n"],"mappings":"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"}
1
+ {"version":3,"names":["LanesMain","constructor","workspace","scope","merging","componentAspect","logger","getLanes","name","remote","merged","showDefaultLane","notMerged","showMergeData","Boolean","consumer","remoteObj","getRemoteByName","lanes","listLanes","DEFAULT_LANE","defaultLane","getLaneDataOfDefaultLane","legacyScope","getLanesData","push","getCurrentLane","getCurrentLaneName","getCurrentLaneId","createLane","remoteScope","alias","BitError","throwForInvalidLaneName","defaultScope","setCurrentLane","trackLaneData","localLane","remoteLane","trackLane","onDestroy","localName","remoteName","laneId","parseLaneIdFromString","lane","loadLane","beforeTrackData","getRemoteTrackedDataByLocalLane","beforeTrackDataCloned","undefined","afterTrackData","aliasLane","laneName","includes","LANE_REMOTE_DELIMITER","trackData","laneNameWithoutScope","split","removeTrackLane","changeScope","remoteScopeBefore","saveLane","rename","currentName","newName","existingAliasWithNewName","remoteIdStr","previousAlias","getAliasByLaneId","WorkspaceLane","getPath","objects","remoteLanes","renameRefByNewLaneName","currentLaneName","clonedLaneToExport","clone","components","exported","exportErr","exportLane","err","error","id","toString","message","exportMany","isLegacy","laneObject","ids","BitIds","codemod","changeLocallyAlthoughRemoteIsDifferent","includeDependencies","idsWithFutureScope","allVersions","importLane","scopeComponentImporter","ScopeComponentsImporter","getInstance","results","importLanes","removeLanes","laneNames","force","laneResults","mergeLane","options","mergeLanes","bitMap","syncWithLanes","workspaceLane","switchLanes","merge","getAll","skipDependencyInstallation","mergeStrategy","mergeOptions","Object","keys","MergeOptions","join","switchProps","existingOnWorkspaceOnly","checkoutProps","skipNpmInstall","verbose","ignorePackageJson","ignoreDist","isLane","promptMergeOptions","writeConfig","reset","all","LaneSwitcher","switch","getDiff","values","diffOptions","laneDiffGenerator","LaneDiffGenerator","generate","getLaneComponentModels","laneComponents","host","getHost","laneComponentIds","Promise","map","laneComponent","legacyIdWithVersion","changeVersion","head","resolveComponentId","getMany","getLaneReadmeComponent","laneReadmeComponent","readmeComponent","laneReadmeComponentId","get","removeLaneReadme","result","readmeComponentId","existingLaneConfig","getSpecificComponentConfig","LanesAspect","remoteLaneIdStr","toLaneId","readme","removeSpecificComponentConfig","addSpecificComponentConfig","setReadmeComponent","write","addLaneReadme","readmeComponentIdStr","readmeComponentBitId","_legacy","bitIds","scopeComponents","list","filter","component","getAuthoredAndImportedBitIdsOfDefaultLane","bitId","version","isMerged","provider","cli","graphql","community","loggerMain","createLogger","lanesMain","switchCmd","SwitchCmd","laneCmd","LaneCmd","getDocsDomain","commands","LaneListCmd","LaneShowCmd","LaneCreateCmd","LaneMergeCmd","LaneRemoveCmd","LaneChangeScopeCmd","LaneAliasCmd","LaneRenameCmd","LaneDiffCmd","LaneAddReadmeCmd","LaneRemoveReadmeCmd","LaneImportCmd","register","lanesSchema","CLIAspect","ScopeAspect","WorkspaceAspect","GraphqlAspect","CommunityAspect","MergingAspect","ComponentAspect","LoggerAspect","MainRuntime","addRuntime"],"sources":["lanes.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ScopeMain, ScopeAspect } from '@teambit/scope';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport getRemoteByName from '@teambit/legacy/dist/remotes/get-remote-by-name';\nimport { LaneDiffCmd, LaneDiffGenerator } from '@teambit/lanes.modules.diff';\nimport { LaneData } from '@teambit/legacy/dist/scope/lanes/lanes';\nimport { LaneId, DEFAULT_LANE, LANE_REMOTE_DELIMITER } from '@teambit/lane-id';\nimport { BitError } from '@teambit/bit-error';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { DiffOptions } from '@teambit/legacy/dist/consumer/component-ops/components-diff';\nimport { exportMany } from '@teambit/legacy/dist/scope/component-ops/export-scope-components';\nimport {\n MergeStrategy,\n ApplyVersionResults,\n MergeOptions,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { TrackLane } from '@teambit/legacy/dist/scope/scope-json';\nimport { CommunityAspect } from '@teambit/community';\nimport type { CommunityMain } from '@teambit/community';\nimport ComponentAspect, { Component, ComponentMain } from '@teambit/component';\nimport removeLanes from '@teambit/legacy/dist/consumer/lanes/remove-lanes';\nimport WorkspaceLane from '@teambit/legacy/dist/consumer/bit-map/workspace-lane';\nimport { Lane } from '@teambit/legacy/dist/scope/models';\nimport ScopeComponentsImporter from '@teambit/legacy/dist/scope/component-ops/scope-components-importer';\nimport { Scope as LegacyScope } from '@teambit/legacy/dist/scope';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { BitIds } from '@teambit/legacy/dist/bit-id';\nimport { MergingMain, MergingAspect } from '@teambit/merging';\nimport { LanesAspect } from './lanes.aspect';\nimport {\n LaneCmd,\n LaneCreateCmd,\n LaneImportCmd,\n LaneListCmd,\n LaneMergeCmd,\n LaneRemoveCmd,\n LaneShowCmd,\n LaneChangeScopeCmd,\n LaneAliasCmd,\n LaneRenameCmd,\n LaneAddReadmeCmd,\n LaneRemoveReadmeCmd,\n} from './lane.cmd';\nimport { lanesSchema } from './lanes.graphql';\nimport { SwitchCmd } from './switch.cmd';\nimport { mergeLanes } from './merge-lanes';\nimport { LaneSwitcher } from './switch-lanes';\nimport { createLane, throwForInvalidLaneName } from './create-lane';\n\nexport { Lane };\n\nexport type LaneResults = {\n lanes: LaneData[];\n currentLane?: string | null;\n};\n\nexport type MergeLaneOptions = {\n remoteName: string | null;\n mergeStrategy: MergeStrategy;\n noSnap: boolean;\n snapMessage: string;\n existingOnWorkspaceOnly: boolean;\n build: boolean;\n keepReadme: boolean;\n squash: boolean;\n};\n\nexport type CreateLaneOptions = {\n remoteScope?: string; // default to the defaultScope in workspace.jsonc\n alias?: string; // default to the remote name\n};\n\nexport type SwitchLaneOptions = {\n alias?: string;\n merge?: MergeStrategy;\n getAll?: boolean;\n skipDependencyInstallation?: boolean;\n verbose?: boolean;\n override?: boolean;\n};\n\nexport class LanesMain {\n constructor(\n private workspace: Workspace | undefined,\n private scope: ScopeMain,\n private merging: MergingMain,\n private componentAspect: ComponentMain,\n private logger: Logger\n ) {}\n\n async getLanes({\n name,\n remote,\n merged,\n showDefaultLane,\n notMerged,\n }: {\n name?: string;\n remote?: string;\n merged?: boolean;\n showDefaultLane?: boolean;\n notMerged?: boolean;\n }): Promise<LaneData[]> {\n const showMergeData = Boolean(merged || notMerged);\n const consumer = this.workspace?.consumer;\n if (remote) {\n const remoteObj = await getRemoteByName(remote, consumer);\n const lanes = await remoteObj.listLanes(name, showMergeData);\n return lanes;\n }\n\n if (name === DEFAULT_LANE) {\n const defaultLane = await this.getLaneDataOfDefaultLane();\n return defaultLane ? [defaultLane] : [];\n }\n\n const lanes = await this.scope.legacyScope.lanes.getLanesData(this.scope.legacyScope, name, showMergeData);\n\n if (showDefaultLane) {\n const defaultLane = await this.getLaneDataOfDefaultLane();\n if (defaultLane) lanes.push(defaultLane);\n }\n\n return lanes;\n }\n\n getCurrentLane(): string | null {\n if (!this.workspace?.consumer) return null;\n return this.scope.legacyScope.lanes.getCurrentLaneName();\n }\n\n getCurrentLaneId(): LaneId | null {\n if (!this.workspace) return null;\n return this.scope.legacyScope.lanes.getCurrentLaneId();\n }\n\n async createLane(name: string, { remoteScope, alias }: CreateLaneOptions = {}): Promise<TrackLane> {\n if (!this.workspace) {\n throw new BitError(`unable to create a lane outside of Bit workspace`);\n }\n if (alias) {\n throwForInvalidLaneName(alias);\n }\n const scope = remoteScope || this.workspace.defaultScope;\n await createLane(this.workspace.consumer, name, scope);\n this.scope.legacyScope.lanes.setCurrentLane(name);\n const trackLaneData = {\n localLane: alias || name,\n remoteLane: name,\n remoteScope: scope,\n };\n this.scope.legacyScope.lanes.trackLane(trackLaneData);\n await this.workspace.consumer.onDestroy();\n\n return trackLaneData;\n }\n\n async trackLane(\n localName: string,\n remoteScope: string,\n remoteName?: string\n ): Promise<{ beforeTrackData?: TrackLane; afterTrackData: TrackLane }> {\n if (!this.workspace) {\n throw new BitError(`unable to track a lane outside of Bit workspace`);\n }\n const laneId = await this.scope.legacyScope.lanes.parseLaneIdFromString(localName);\n const lane = await this.scope.legacyScope.lanes.loadLane(laneId);\n if (!lane) {\n throw new BitError(`unable to find a local lane \"${localName}\"`);\n }\n const beforeTrackData = this.scope.legacyScope.lanes.getRemoteTrackedDataByLocalLane(localName);\n const beforeTrackDataCloned = beforeTrackData ? { ...beforeTrackData } : undefined;\n const afterTrackData = {\n localLane: localName,\n remoteLane: remoteName || beforeTrackData?.remoteLane || localName,\n remoteScope,\n };\n this.scope.legacyScope.lanes.trackLane(afterTrackData);\n await this.workspace.consumer.onDestroy();\n\n return { beforeTrackData: beforeTrackDataCloned, afterTrackData };\n }\n\n async aliasLane(laneName: string, alias: string): Promise<{ laneId: LaneId }> {\n if (!this.workspace) {\n throw new BitError(`unable to alias a lane outside of Bit workspace`);\n }\n if (alias.includes(LANE_REMOTE_DELIMITER)) {\n throw new BitError(`an alias cannot include a delimiter \"${LANE_REMOTE_DELIMITER}\"`);\n }\n if (alias === laneName) {\n throw new BitError(`an alias cannot be the same as the lane name`);\n }\n const laneId = await this.scope.legacyScope.lanes.parseLaneIdFromString(laneName);\n const lane = await this.scope.legacyScope.lanes.loadLane(laneId);\n if (!lane) {\n throw new BitError(`unable to find a local lane \"${laneName}\"`);\n }\n const trackData = {\n localLane: alias,\n remoteLane: laneId.name,\n remoteScope: laneId.scope,\n };\n const laneNameWithoutScope = laneName.includes(LANE_REMOTE_DELIMITER)\n ? laneName.split(LANE_REMOTE_DELIMITER)[1]\n : laneName;\n this.scope.legacyScope.lanes.removeTrackLane(laneNameWithoutScope);\n this.scope.legacyScope.lanes.trackLane(trackData);\n await this.workspace.consumer.onDestroy();\n\n return { laneId };\n }\n\n async changeScope(laneName: string, remoteScope: string): Promise<{ remoteScopeBefore: string }> {\n if (!this.workspace) {\n throw new BitError(`unable to change-scope of a lane outside of Bit workspace`);\n }\n const laneNameWithoutScope = laneName.includes(LANE_REMOTE_DELIMITER)\n ? laneName.split(LANE_REMOTE_DELIMITER)[1]\n : laneName;\n const laneId = await this.scope.legacyScope.lanes.parseLaneIdFromString(laneName);\n const lane = await this.scope.legacyScope.lanes.loadLane(laneId);\n if (!lane) {\n throw new BitError(`unable to find a local lane \"${laneName}\"`);\n }\n const remoteScopeBefore = lane.scope;\n lane.scope = remoteScope;\n const trackData = {\n localLane: laneNameWithoutScope,\n remoteLane: laneId.name,\n remoteScope,\n };\n this.scope.legacyScope.lanes.trackLane(trackData);\n await this.scope.legacyScope.lanes.saveLane(lane);\n await this.workspace.consumer.onDestroy();\n\n return { remoteScopeBefore };\n }\n\n /**\n * change a lane-name and if possible, export the lane to the remote\n */\n async rename(currentName: string, newName: string): Promise<{ exported: boolean; exportErr?: Error }> {\n if (!this.workspace) {\n throw new BitError(`unable to rename a lane outside of Bit workspace`);\n }\n throwForInvalidLaneName(newName);\n const existingAliasWithNewName = this.scope.legacyScope.lanes.getRemoteTrackedDataByLocalLane(newName);\n if (existingAliasWithNewName) {\n const remoteIdStr = `${existingAliasWithNewName.remoteLane}/${existingAliasWithNewName.remoteScope}`;\n throw new BitError(`unable to rename to ${newName}. this name is already used to track: ${remoteIdStr}`);\n }\n const laneNameWithoutScope = currentName.includes(LANE_REMOTE_DELIMITER)\n ? currentName.split(LANE_REMOTE_DELIMITER)[1]\n : currentName;\n const laneId = await this.scope.legacyScope.lanes.parseLaneIdFromString(currentName);\n const lane = await this.scope.legacyScope.lanes.loadLane(laneId);\n if (!lane) {\n throw new BitError(`unable to find a local lane \"${currentName}\"`);\n }\n\n // rename the workspace-lane file\n const previousAlias = this.scope.legacyScope.lanes.getAliasByLaneId(laneId);\n if (previousAlias) {\n await WorkspaceLane.rename(this.scope.legacyScope.getPath(), previousAlias, newName);\n }\n\n // rename the ref file\n await this.scope.legacyScope.objects.remoteLanes.renameRefByNewLaneName(laneNameWithoutScope, newName, lane.scope);\n\n // change tracking data\n const afterTrackData = {\n localLane: newName,\n remoteLane: newName,\n remoteScope: lane.scope,\n };\n this.scope.legacyScope.lanes.trackLane(afterTrackData);\n this.scope.legacyScope.lanes.removeTrackLane(laneNameWithoutScope);\n\n // change the lane object\n lane.name = newName;\n await this.scope.legacyScope.lanes.saveLane(lane);\n\n // change current-lane if needed\n const currentLaneName = this.getCurrentLane();\n if (currentLaneName === laneNameWithoutScope) this.scope.legacyScope.lanes.setCurrentLane(newName);\n\n // export the lane with only the name-change\n const clonedLaneToExport = lane.clone();\n clonedLaneToExport.components = []; // otherwise, it'll export the changes done on the components.\n let exported = false;\n let exportErr: Error | undefined;\n try {\n await this.exportLane(clonedLaneToExport);\n exported = true;\n } catch (err: any) {\n this.logger.error(`unable to export ${lane.id.toString()}: ${err.message}`);\n exportErr = err;\n }\n\n await this.workspace.consumer.onDestroy();\n\n return { exported, exportErr };\n }\n\n async exportLane(lane: Lane) {\n await exportMany({\n scope: this.scope.legacyScope,\n isLegacy: false,\n laneObject: lane,\n ids: new BitIds(),\n codemod: false,\n changeLocallyAlthoughRemoteIsDifferent: false,\n includeDependencies: false,\n remoteName: null,\n idsWithFutureScope: new BitIds(),\n allVersions: false,\n });\n }\n\n async importLane(laneId: LaneId): Promise<Lane> {\n const scopeComponentImporter = ScopeComponentsImporter.getInstance(this.scope.legacyScope);\n const results = await scopeComponentImporter.importLanes([laneId]);\n return results[0];\n }\n\n async removeLanes(laneNames: string[], { remote, force }: { remote: boolean; force: boolean }): Promise<string[]> {\n const results = await removeLanes(this.workspace?.consumer, laneNames, remote, force);\n if (this.workspace) await this.workspace.consumer.onDestroy();\n\n return results.laneResults;\n }\n\n async mergeLane(\n laneName: string,\n options: MergeLaneOptions\n ): Promise<{ mergeResults: ApplyVersionResults; deleteResults: any }> {\n if (!this.workspace) {\n throw new BitError(`unable to merge a lane outside of Bit workspace`);\n }\n const results = await mergeLanes({\n merging: this.merging,\n consumer: this.workspace.consumer,\n laneName,\n ...options,\n });\n\n await this.workspace.consumer.onDestroy();\n this.workspace.consumer.bitMap.syncWithLanes(this.workspace.consumer.bitMap.workspaceLane);\n return results;\n }\n\n /**\n * switch to a different local or remote lane.\n * switching to a remote lane also imports and writes the components of that remote lane.\n * by default, only the components existing on the workspace will be imported from that lane, unless the \"getAll\"\n * flag is true.\n */\n async switchLanes(\n laneName: string,\n { alias, merge, getAll = false, skipDependencyInstallation = false }: SwitchLaneOptions\n ) {\n if (!this.workspace) {\n throw new BitError(`unable to switch lanes outside of Bit workspace`);\n }\n let mergeStrategy;\n if (merge && typeof merge === 'string') {\n const mergeOptions = Object.keys(MergeOptions);\n if (!mergeOptions.includes(merge)) {\n throw new BitError(`merge must be one of the following: ${mergeOptions.join(', ')}`);\n }\n mergeStrategy = merge;\n }\n if (alias) {\n throwForInvalidLaneName(alias);\n }\n\n const switchProps = {\n laneName,\n existingOnWorkspaceOnly: !getAll,\n alias,\n };\n const checkoutProps = {\n mergeStrategy,\n skipNpmInstall: skipDependencyInstallation,\n verbose: false, // not relevant in Harmony\n ignorePackageJson: true, // not relevant in Harmony\n ignoreDist: true, // not relevant in Harmony\n isLane: true,\n promptMergeOptions: false,\n writeConfig: false,\n reset: false,\n all: false,\n };\n return new LaneSwitcher(this.workspace, this.logger, switchProps, checkoutProps).switch();\n }\n\n /**\n * the values array may include zero to two values and will be processed as following:\n * [] => diff between the current lane and default lane. (only inside workspace).\n * [to] => diff between the current lane (or default-lane when in scope) and \"to\" lane.\n * [from, to] => diff between \"from\" lane and \"to\" lane.\n */\n public getDiff(values: string[], diffOptions: DiffOptions = {}) {\n const laneDiffGenerator = new LaneDiffGenerator(this.workspace, this.scope);\n return laneDiffGenerator.generate(values, diffOptions);\n }\n\n async getLaneComponentModels(lane: LaneData): Promise<Component[]> {\n if (!lane) return [];\n\n const laneComponents = lane.components;\n const host = this.componentAspect.getHost();\n const laneComponentIds = await Promise.all(\n laneComponents.map((laneComponent) => {\n const legacyIdWithVersion = laneComponent.id.changeVersion(laneComponent.head);\n return host.resolveComponentId(legacyIdWithVersion);\n })\n );\n const components = await host.getMany(laneComponentIds);\n return components;\n }\n\n async getLaneReadmeComponent(lane: LaneData): Promise<Component | undefined> {\n if (!lane) return undefined;\n const laneReadmeComponent = lane.readmeComponent;\n if (!laneReadmeComponent) return undefined;\n const host = this.componentAspect.getHost();\n const laneReadmeComponentId = await host.resolveComponentId(\n laneReadmeComponent.id.changeVersion(laneReadmeComponent.head)\n );\n const readmeComponent = await host.get(laneReadmeComponentId);\n return readmeComponent;\n }\n\n async removeLaneReadme(laneName?: string): Promise<{ result: boolean; message?: string }> {\n if (!this.workspace) {\n throw new BitError('unable to remove the lane readme component outside of Bit workspace');\n }\n const currentLaneName = this.getCurrentLane();\n\n if (!laneName && !currentLaneName) {\n return {\n result: false,\n message: 'unable to remove the lane readme component. Either pass a laneName or switch to a lane',\n };\n }\n\n const scope: LegacyScope = this.workspace.scope.legacyScope;\n const laneId: LaneId = laneName\n ? await scope.lanes.parseLaneIdFromString(laneName)\n : (this.getCurrentLaneId() as LaneId);\n const lane: Lane | null | undefined = await scope.loadLane(laneId);\n\n if (!lane?.readmeComponent) {\n throw new BitError(`there is no readme component added to the lane ${laneName || currentLaneName}`);\n }\n\n const readmeComponentId = await this.workspace.resolveComponentId(lane.readmeComponent.id);\n const existingLaneConfig =\n (await this.workspace.getSpecificComponentConfig(readmeComponentId, LanesAspect.id)) || {};\n\n const remoteLaneIdStr = lane.toLaneId().toString();\n\n if (existingLaneConfig.readme) {\n delete existingLaneConfig.readme[remoteLaneIdStr];\n await this.workspace.removeSpecificComponentConfig(readmeComponentId, LanesAspect.id, false);\n await this.workspace.addSpecificComponentConfig(readmeComponentId, LanesAspect.id, existingLaneConfig);\n }\n\n lane.setReadmeComponent(undefined);\n await scope.lanes.saveLane(lane);\n await this.workspace.bitMap.write();\n\n return { result: true };\n }\n\n async addLaneReadme(readmeComponentIdStr: string, laneName?: string): Promise<{ result: boolean; message?: string }> {\n if (!this.workspace) {\n throw new BitError(`unable to track a lane readme component outside of Bit workspace`);\n }\n const readmeComponentId = await this.workspace.resolveComponentId(readmeComponentIdStr);\n\n const readmeComponentBitId = readmeComponentId._legacy;\n const scope: LegacyScope = this.workspace.scope.legacyScope;\n const laneId: LaneId = laneName\n ? await scope.lanes.parseLaneIdFromString(laneName)\n : (this.getCurrentLaneId() as LaneId);\n\n const lane: Lane | null | undefined = await scope.loadLane(laneId);\n\n if (!lane) {\n return { result: false, message: `cannot find lane ${laneName}` };\n }\n\n lane.setReadmeComponent(readmeComponentBitId);\n await scope.lanes.saveLane(lane);\n\n const existingLaneConfig =\n (await this.workspace.getSpecificComponentConfig(readmeComponentId, LanesAspect.id)) || {};\n\n const remoteLaneIdStr = lane.toLaneId().toString();\n\n if (existingLaneConfig.readme) {\n await this.workspace.addSpecificComponentConfig(readmeComponentId, LanesAspect.id, {\n ...existingLaneConfig,\n readme: {\n ...existingLaneConfig.readme,\n [remoteLaneIdStr]: true,\n },\n });\n } else {\n await this.workspace.addSpecificComponentConfig(readmeComponentId, LanesAspect.id, {\n ...existingLaneConfig,\n readme: {\n [remoteLaneIdStr]: true,\n },\n });\n }\n await this.workspace.bitMap.write();\n return { result: true };\n }\n\n private async getLaneDataOfDefaultLane(): Promise<LaneData | null> {\n const consumer = this.workspace?.consumer;\n let bitIds: BitId[] = [];\n if (!consumer) {\n const scopeComponents = await this.scope.list();\n bitIds = scopeComponents.filter((component) => component.head).map((component) => component.id._legacy);\n } else {\n bitIds = consumer.bitMap.getAuthoredAndImportedBitIdsOfDefaultLane();\n }\n\n return {\n name: DEFAULT_LANE,\n remote: null,\n components: bitIds.map((bitId) => ({ id: bitId, head: bitId.version as string })),\n isMerged: null,\n };\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n ScopeAspect,\n WorkspaceAspect,\n GraphqlAspect,\n CommunityAspect,\n MergingAspect,\n ComponentAspect,\n LoggerAspect,\n ];\n static runtime = MainRuntime;\n static async provider([cli, scope, workspace, graphql, community, merging, component, loggerMain]: [\n CLIMain,\n ScopeMain,\n Workspace,\n GraphqlMain,\n CommunityMain,\n MergingMain,\n ComponentMain,\n LoggerMain\n ]) {\n const logger = loggerMain.createLogger(LanesAspect.id);\n const lanesMain = new LanesMain(workspace, scope, merging, component, logger);\n const isLegacy = workspace && workspace.consumer.isLegacy;\n const switchCmd = new SwitchCmd(lanesMain);\n if (!isLegacy) {\n const laneCmd = new LaneCmd(lanesMain, workspace, scope, community.getDocsDomain());\n laneCmd.commands = [\n new LaneListCmd(lanesMain, workspace, scope),\n switchCmd,\n new LaneShowCmd(lanesMain, workspace, scope),\n new LaneCreateCmd(lanesMain),\n new LaneMergeCmd(lanesMain),\n new LaneRemoveCmd(lanesMain),\n new LaneChangeScopeCmd(lanesMain),\n new LaneAliasCmd(lanesMain),\n new LaneRenameCmd(lanesMain),\n new LaneDiffCmd(workspace, scope),\n new LaneAddReadmeCmd(lanesMain),\n new LaneRemoveReadmeCmd(lanesMain),\n new LaneImportCmd(switchCmd),\n ];\n cli.register(laneCmd, switchCmd);\n graphql.register(lanesSchema(lanesMain));\n }\n return lanesMain;\n }\n}\n\nLanesAspect.addRuntime(LanesMain);\n\nexport default LanesMain;\n"],"mappings":"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"}
@@ -1,18 +1,12 @@
1
1
  import { Consumer } from '@teambit/legacy/dist/consumer';
2
- import { ApplyVersionResults, MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';
2
+ import { ApplyVersionResults } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';
3
3
  import { MergingMain } from '@teambit/merging';
4
- export declare function mergeLanes({ merging, consumer, mergeStrategy, laneName, remoteName, noSnap, snapMessage, existingOnWorkspaceOnly, build, keepReadme, }: {
4
+ import { MergeLaneOptions } from './lanes.main.runtime';
5
+ export declare function mergeLanes({ merging, consumer, laneName, mergeStrategy, remoteName, noSnap, snapMessage, existingOnWorkspaceOnly, build, keepReadme, squash, }: {
5
6
  merging: MergingMain;
6
7
  consumer: Consumer;
7
- mergeStrategy: MergeStrategy;
8
8
  laneName: string;
9
- remoteName: string | null;
10
- noSnap: boolean;
11
- snapMessage: string;
12
- existingOnWorkspaceOnly: boolean;
13
- build: boolean;
14
- keepReadme?: boolean;
15
- }): Promise<{
9
+ } & MergeLaneOptions): Promise<{
16
10
  mergeResults: ApplyVersionResults;
17
11
  deleteResults: any;
18
12
  }>;
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  require("core-js/modules/es.array.iterator.js");
4
6
 
5
7
  require("core-js/modules/es.promise.js");
@@ -9,6 +11,16 @@ Object.defineProperty(exports, "__esModule", {
9
11
  });
10
12
  exports.mergeLanes = mergeLanes;
11
13
 
14
+ function _chalk() {
15
+ const data = _interopRequireDefault(require("chalk"));
16
+
17
+ _chalk = function () {
18
+ return data;
19
+ };
20
+
21
+ return data;
22
+ }
23
+
12
24
  function _bitError() {
13
25
  const data = require("@teambit/bit-error");
14
26
 
@@ -52,14 +64,15 @@ function _consumer() {
52
64
  async function mergeLanes({
53
65
  merging,
54
66
  consumer,
55
- mergeStrategy,
56
67
  laneName,
68
+ mergeStrategy,
57
69
  remoteName,
58
70
  noSnap,
59
71
  snapMessage,
60
72
  existingOnWorkspaceOnly,
61
73
  build,
62
- keepReadme
74
+ keepReadme,
75
+ squash
63
76
  }) {
64
77
  const currentLaneId = consumer.getCurrentLaneId();
65
78
 
@@ -98,6 +111,11 @@ async function mergeLanes({
98
111
  }
99
112
 
100
113
  const allComponentsStatus = await getAllComponentsStatus();
114
+
115
+ if (squash) {
116
+ squashSnaps(allComponentsStatus, laneName, consumer);
117
+ }
118
+
101
119
  const mergeResults = await merging.mergeSnaps({
102
120
  mergeStrategy,
103
121
  allComponentsStatus,
@@ -148,4 +166,67 @@ async function mergeLanes({
148
166
  }
149
167
  }
150
168
 
169
+ function squashSnaps(allComponentsStatus, laneName, consumer) {
170
+ const failedComponents = allComponentsStatus.filter(c => c.failureMessage && !c.unchangedLegitimately);
171
+
172
+ if (failedComponents.length) {
173
+ const failureMsgs = failedComponents.map(failedComponent => `${_chalk().default.bold(failedComponent.id.toString())} - ${_chalk().default.red(failedComponent.failureMessage)}`).join('\n');
174
+ throw new (_bitError().BitError)(`unable to squash due to the following failures:\n${failureMsgs}`);
175
+ }
176
+
177
+ const succeededComponents = allComponentsStatus.filter(c => !c.failureMessage);
178
+ succeededComponents.forEach(({
179
+ id,
180
+ divergeData,
181
+ componentFromModel
182
+ }) => {
183
+ if (!divergeData) {
184
+ throw new Error(`unable to squash. divergeData is missing from ${id.toString()}`);
185
+ }
186
+
187
+ if (divergeData.isDiverged()) {
188
+ throw new (_bitError().BitError)(`unable to squash because ${id.toString()} is diverged in history.
189
+ consider switching to ${laneName} first, merging this lane, then switching back to this lane and merging ${laneName}`);
190
+ }
191
+
192
+ if (divergeData.isLocalAhead()) {
193
+ // nothing to do. current is ahead, nothing to merge. (it was probably filtered out already as a "failedComponent")
194
+ return;
195
+ }
196
+
197
+ if (!divergeData.isRemoteAhead()) {
198
+ // nothing to do. current and remote are the same, nothing to merge. (it was probably filtered out already as a "failedComponent")
199
+ return;
200
+ } // remote is ahead and was not diverge.
201
+
202
+
203
+ const remoteSnaps = divergeData.snapsOnRemoteOnly;
204
+
205
+ if (remoteSnaps.length === 0) {
206
+ throw new Error(`remote is ahead but it has no snaps. it's impossible`);
207
+ }
208
+
209
+ if (remoteSnaps.length === 1) {
210
+ // nothing to squash. it has only one commit.
211
+ return;
212
+ }
213
+
214
+ if (!componentFromModel) {
215
+ throw new Error('unable to squash, the componentFromModel is missing');
216
+ } // do the squash.
217
+
218
+
219
+ if (divergeData.commonSnapBeforeDiverge) {
220
+ componentFromModel.addAsOnlyParent(divergeData.commonSnapBeforeDiverge);
221
+ } else {
222
+ // there is no commonSnapBeforeDiverge. the local has no snaps, all are remote, no need for parents. keep only head.
223
+ componentFromModel.parents.forEach(ref => componentFromModel.removeParent(ref));
224
+ }
225
+
226
+ const squashedSnaps = remoteSnaps.filter(snap => !snap.isEqual(componentFromModel.hash()));
227
+ componentFromModel.setSquashed(squashedSnaps);
228
+ consumer.scope.objects.add(componentFromModel);
229
+ });
230
+ }
231
+
151
232
  //# sourceMappingURL=merge-lanes.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["mergeLanes","merging","consumer","mergeStrategy","laneName","remoteName","noSnap","snapMessage","existingOnWorkspaceOnly","build","keepReadme","currentLaneId","getCurrentLaneId","name","BitError","laneId","getParsedLaneId","localLane","isDefault","scope","loadLane","bitIds","otherLane","remoteLane","otherLaneName","isDefaultLane","DEFAULT_LANE","bitMap","getAuthoredAndImportedBitIdsOfDefaultLane","filter","id","hasVersion","remoteLaneId","LaneId","from","objects","remoteLanes","getRemoteLane","length","getRemoteBitIds","components","map","c","changeVersion","head","toString","allComponentsStatus","getAllComponentsStatus","mergeResults","mergeSnaps","mergedSuccessfully","failedComponents","every","failedComponent","unchangedLegitimately","deleteResults","readmeComponent","syncWithLanes","workspaceLane","readmeComponentId","hash","remove","ids","force","remote","track","deleteFiles","readmeResult","tmp","Tmp","componentsStatus","Promise","all","bitId","getComponentMergeStatus","clear","err"],"sources":["merge-lanes.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { ApplyVersionResults, MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { LaneId, DEFAULT_LANE } from '@teambit/lane-id';\nimport { Lane } from '@teambit/legacy/dist/scope/models';\nimport { Tmp } from '@teambit/legacy/dist/scope/repositories';\nimport { MergingMain } from '@teambit/merging';\nimport { remove } from '@teambit/legacy/dist/api/consumer';\n\nexport async function mergeLanes({\n merging,\n consumer,\n mergeStrategy,\n laneName,\n remoteName,\n noSnap,\n snapMessage,\n existingOnWorkspaceOnly,\n build,\n keepReadme,\n}: {\n merging: MergingMain;\n consumer: Consumer;\n mergeStrategy: MergeStrategy;\n laneName: string;\n remoteName: string | null;\n noSnap: boolean;\n snapMessage: string;\n existingOnWorkspaceOnly: boolean;\n build: boolean;\n keepReadme?: boolean;\n}): Promise<{ mergeResults: ApplyVersionResults; deleteResults: any }> {\n const currentLaneId = consumer.getCurrentLaneId();\n if (!remoteName && laneName === currentLaneId.name) {\n throw new BitError(`unable to switch to lane \"${laneName}\", you're already checked out to this lane`);\n }\n const laneId = await consumer.getParsedLaneId(laneName);\n const localLane = currentLaneId.isDefault() ? null : await consumer.scope.loadLane(currentLaneId);\n let bitIds: BitId[];\n let otherLane: Lane | null | undefined;\n let remoteLane;\n let otherLaneName: string;\n const isDefaultLane = laneName === DEFAULT_LANE;\n\n if (isDefaultLane) {\n bitIds = consumer.bitMap.getAuthoredAndImportedBitIdsOfDefaultLane().filter((id) => id.hasVersion());\n otherLaneName = DEFAULT_LANE;\n } else if (remoteName) {\n const remoteLaneId = LaneId.from(laneId.name, remoteName);\n remoteLane = await consumer.scope.objects.remoteLanes.getRemoteLane(remoteLaneId);\n if (!remoteLane.length) {\n throw new BitError(\n `unable to switch to \"${laneName}\" of \"${remoteName}\", the remote lane was not found or not fetched locally`\n );\n }\n bitIds = await consumer.scope.objects.remoteLanes.getRemoteBitIds(remoteLaneId);\n otherLaneName = `${remoteName}/${laneId.name}`;\n } else {\n otherLane = await consumer.scope.loadLane(laneId);\n if (!otherLane) throw new BitError(`unable to switch to \"${laneName}\", the lane was not found`);\n bitIds = otherLane.components.map((c) => c.id.changeVersion(c.head.toString()));\n otherLaneName = laneId.name;\n }\n\n const allComponentsStatus = await getAllComponentsStatus();\n\n const mergeResults = await merging.mergeSnaps({\n mergeStrategy,\n allComponentsStatus,\n remoteName,\n laneId,\n localLane,\n noSnap,\n snapMessage,\n build,\n });\n\n const mergedSuccessfully =\n !mergeResults.failedComponents ||\n mergeResults.failedComponents.length === 0 ||\n mergeResults.failedComponents.every((failedComponent) => failedComponent.unchangedLegitimately);\n\n let deleteResults = {};\n\n if (!keepReadme && otherLane && otherLane.readmeComponent && mergedSuccessfully) {\n await consumer.bitMap.syncWithLanes(consumer.bitMap.workspaceLane);\n\n const readmeComponentId = [\n otherLane.readmeComponent.id.changeVersion(otherLane.readmeComponent?.head?.hash).toString(),\n ];\n\n deleteResults = await remove({\n ids: readmeComponentId,\n force: false,\n remote: false,\n track: false,\n deleteFiles: true,\n });\n } else if (otherLane && !otherLane.readmeComponent) {\n deleteResults = { readmeResult: `lane ${otherLane.name} doesn't have a readme component` };\n }\n\n return { mergeResults, deleteResults };\n\n async function getAllComponentsStatus() {\n const tmp = new Tmp(consumer.scope);\n try {\n const componentsStatus = await Promise.all(\n bitIds.map((bitId) => merging.getComponentMergeStatus(bitId, localLane, otherLaneName, existingOnWorkspaceOnly))\n );\n await tmp.clear();\n return componentsStatus;\n } catch (err: any) {\n await tmp.clear();\n throw err;\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["mergeLanes","merging","consumer","laneName","mergeStrategy","remoteName","noSnap","snapMessage","existingOnWorkspaceOnly","build","keepReadme","squash","currentLaneId","getCurrentLaneId","name","BitError","laneId","getParsedLaneId","localLane","isDefault","scope","loadLane","bitIds","otherLane","remoteLane","otherLaneName","isDefaultLane","DEFAULT_LANE","bitMap","getAuthoredAndImportedBitIdsOfDefaultLane","filter","id","hasVersion","remoteLaneId","LaneId","from","objects","remoteLanes","getRemoteLane","length","getRemoteBitIds","components","map","c","changeVersion","head","toString","allComponentsStatus","getAllComponentsStatus","squashSnaps","mergeResults","mergeSnaps","mergedSuccessfully","failedComponents","every","failedComponent","unchangedLegitimately","deleteResults","readmeComponent","syncWithLanes","workspaceLane","readmeComponentId","hash","remove","ids","force","remote","track","deleteFiles","readmeResult","tmp","Tmp","componentsStatus","Promise","all","bitId","getComponentMergeStatus","clear","err","failureMessage","failureMsgs","chalk","bold","red","join","succeededComponents","forEach","divergeData","componentFromModel","Error","isDiverged","isLocalAhead","isRemoteAhead","remoteSnaps","snapsOnRemoteOnly","commonSnapBeforeDiverge","addAsOnlyParent","parents","ref","removeParent","squashedSnaps","snap","isEqual","setSquashed","add"],"sources":["merge-lanes.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { BitError } from '@teambit/bit-error';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { ApplyVersionResults } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { LaneId, DEFAULT_LANE } from '@teambit/lane-id';\nimport { Lane } from '@teambit/legacy/dist/scope/models';\nimport { Tmp } from '@teambit/legacy/dist/scope/repositories';\nimport { MergingMain, ComponentStatus } from '@teambit/merging';\nimport { remove } from '@teambit/legacy/dist/api/consumer';\nimport { MergeLaneOptions } from './lanes.main.runtime';\n\nexport async function mergeLanes({\n merging,\n consumer,\n laneName,\n mergeStrategy,\n remoteName,\n noSnap,\n snapMessage,\n existingOnWorkspaceOnly,\n build,\n keepReadme,\n squash,\n}: {\n merging: MergingMain;\n consumer: Consumer;\n laneName: string;\n} & MergeLaneOptions): Promise<{ mergeResults: ApplyVersionResults; deleteResults: any }> {\n const currentLaneId = consumer.getCurrentLaneId();\n if (!remoteName && laneName === currentLaneId.name) {\n throw new BitError(`unable to switch to lane \"${laneName}\", you're already checked out to this lane`);\n }\n const laneId = await consumer.getParsedLaneId(laneName);\n const localLane = currentLaneId.isDefault() ? null : await consumer.scope.loadLane(currentLaneId);\n let bitIds: BitId[];\n let otherLane: Lane | null | undefined;\n let remoteLane;\n let otherLaneName: string;\n const isDefaultLane = laneName === DEFAULT_LANE;\n\n if (isDefaultLane) {\n bitIds = consumer.bitMap.getAuthoredAndImportedBitIdsOfDefaultLane().filter((id) => id.hasVersion());\n otherLaneName = DEFAULT_LANE;\n } else if (remoteName) {\n const remoteLaneId = LaneId.from(laneId.name, remoteName);\n remoteLane = await consumer.scope.objects.remoteLanes.getRemoteLane(remoteLaneId);\n if (!remoteLane.length) {\n throw new BitError(\n `unable to switch to \"${laneName}\" of \"${remoteName}\", the remote lane was not found or not fetched locally`\n );\n }\n bitIds = await consumer.scope.objects.remoteLanes.getRemoteBitIds(remoteLaneId);\n otherLaneName = `${remoteName}/${laneId.name}`;\n } else {\n otherLane = await consumer.scope.loadLane(laneId);\n if (!otherLane) throw new BitError(`unable to switch to \"${laneName}\", the lane was not found`);\n bitIds = otherLane.components.map((c) => c.id.changeVersion(c.head.toString()));\n otherLaneName = laneId.name;\n }\n\n const allComponentsStatus = await getAllComponentsStatus();\n\n if (squash) {\n squashSnaps(allComponentsStatus, laneName, consumer);\n }\n\n const mergeResults = await merging.mergeSnaps({\n mergeStrategy,\n allComponentsStatus,\n remoteName,\n laneId,\n localLane,\n noSnap,\n snapMessage,\n build,\n });\n\n const mergedSuccessfully =\n !mergeResults.failedComponents ||\n mergeResults.failedComponents.length === 0 ||\n mergeResults.failedComponents.every((failedComponent) => failedComponent.unchangedLegitimately);\n\n let deleteResults = {};\n\n if (!keepReadme && otherLane && otherLane.readmeComponent && mergedSuccessfully) {\n await consumer.bitMap.syncWithLanes(consumer.bitMap.workspaceLane);\n\n const readmeComponentId = [\n otherLane.readmeComponent.id.changeVersion(otherLane.readmeComponent?.head?.hash).toString(),\n ];\n\n deleteResults = await remove({\n ids: readmeComponentId,\n force: false,\n remote: false,\n track: false,\n deleteFiles: true,\n });\n } else if (otherLane && !otherLane.readmeComponent) {\n deleteResults = { readmeResult: `lane ${otherLane.name} doesn't have a readme component` };\n }\n\n return { mergeResults, deleteResults };\n\n async function getAllComponentsStatus(): Promise<ComponentStatus[]> {\n const tmp = new Tmp(consumer.scope);\n try {\n const componentsStatus = await Promise.all(\n bitIds.map((bitId) => merging.getComponentMergeStatus(bitId, localLane, otherLaneName, existingOnWorkspaceOnly))\n );\n await tmp.clear();\n return componentsStatus;\n } catch (err: any) {\n await tmp.clear();\n throw err;\n }\n }\n}\n\nfunction squashSnaps(allComponentsStatus: ComponentStatus[], laneName: string, consumer: Consumer) {\n const failedComponents = allComponentsStatus.filter((c) => c.failureMessage && !c.unchangedLegitimately);\n if (failedComponents.length) {\n const failureMsgs = failedComponents\n .map(\n (failedComponent) =>\n `${chalk.bold(failedComponent.id.toString())} - ${chalk.red(failedComponent.failureMessage as string)}`\n )\n .join('\\n');\n throw new BitError(`unable to squash due to the following failures:\\n${failureMsgs}`);\n }\n const succeededComponents = allComponentsStatus.filter((c) => !c.failureMessage);\n succeededComponents.forEach(({ id, divergeData, componentFromModel }) => {\n if (!divergeData) {\n throw new Error(`unable to squash. divergeData is missing from ${id.toString()}`);\n }\n if (divergeData.isDiverged()) {\n throw new BitError(`unable to squash because ${id.toString()} is diverged in history.\nconsider switching to ${laneName} first, merging this lane, then switching back to this lane and merging ${laneName}`);\n }\n if (divergeData.isLocalAhead()) {\n // nothing to do. current is ahead, nothing to merge. (it was probably filtered out already as a \"failedComponent\")\n return;\n }\n if (!divergeData.isRemoteAhead()) {\n // nothing to do. current and remote are the same, nothing to merge. (it was probably filtered out already as a \"failedComponent\")\n return;\n }\n // remote is ahead and was not diverge.\n const remoteSnaps = divergeData.snapsOnRemoteOnly;\n if (remoteSnaps.length === 0) {\n throw new Error(`remote is ahead but it has no snaps. it's impossible`);\n }\n if (remoteSnaps.length === 1) {\n // nothing to squash. it has only one commit.\n return;\n }\n if (!componentFromModel) {\n throw new Error('unable to squash, the componentFromModel is missing');\n }\n\n // do the squash.\n if (divergeData.commonSnapBeforeDiverge) {\n componentFromModel.addAsOnlyParent(divergeData.commonSnapBeforeDiverge);\n } else {\n // there is no commonSnapBeforeDiverge. the local has no snaps, all are remote, no need for parents. keep only head.\n componentFromModel.parents.forEach((ref) => componentFromModel.removeParent(ref));\n }\n const squashedSnaps = remoteSnaps.filter((snap) => !snap.isEqual(componentFromModel.hash()));\n componentFromModel.setSquashed(squashedSnaps);\n consumer.scope.objects.add(componentFromModel);\n });\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAIA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGO,eAAeA,UAAf,CAA0B;EAC/BC,OAD+B;EAE/BC,QAF+B;EAG/BC,QAH+B;EAI/BC,aAJ+B;EAK/BC,UAL+B;EAM/BC,MAN+B;EAO/BC,WAP+B;EAQ/BC,uBAR+B;EAS/BC,KAT+B;EAU/BC,UAV+B;EAW/BC;AAX+B,CAA1B,EAgBmF;EACxF,MAAMC,aAAa,GAAGV,QAAQ,CAACW,gBAAT,EAAtB;;EACA,IAAI,CAACR,UAAD,IAAeF,QAAQ,KAAKS,aAAa,CAACE,IAA9C,EAAoD;IAClD,MAAM,KAAIC,oBAAJ,EAAc,6BAA4BZ,QAAS,4CAAnD,CAAN;EACD;;EACD,MAAMa,MAAM,GAAG,MAAMd,QAAQ,CAACe,eAAT,CAAyBd,QAAzB,CAArB;EACA,MAAMe,SAAS,GAAGN,aAAa,CAACO,SAAd,KAA4B,IAA5B,GAAmC,MAAMjB,QAAQ,CAACkB,KAAT,CAAeC,QAAf,CAAwBT,aAAxB,CAA3D;EACA,IAAIU,MAAJ;EACA,IAAIC,SAAJ;EACA,IAAIC,UAAJ;EACA,IAAIC,aAAJ;;EACA,MAAMC,aAAa,GAAGvB,QAAQ,KAAKwB,sBAAnC;;EAEA,IAAID,aAAJ,EAAmB;IACjBJ,MAAM,GAAGpB,QAAQ,CAAC0B,MAAT,CAAgBC,yCAAhB,GAA4DC,MAA5D,CAAoEC,EAAD,IAAQA,EAAE,CAACC,UAAH,EAA3E,CAAT;IACAP,aAAa,GAAGE,sBAAhB;EACD,CAHD,MAGO,IAAItB,UAAJ,EAAgB;IACrB,MAAM4B,YAAY,GAAGC,gBAAA,CAAOC,IAAP,CAAYnB,MAAM,CAACF,IAAnB,EAAyBT,UAAzB,CAArB;;IACAmB,UAAU,GAAG,MAAMtB,QAAQ,CAACkB,KAAT,CAAegB,OAAf,CAAuBC,WAAvB,CAAmCC,aAAnC,CAAiDL,YAAjD,CAAnB;;IACA,IAAI,CAACT,UAAU,CAACe,MAAhB,EAAwB;MACtB,MAAM,KAAIxB,oBAAJ,EACH,wBAAuBZ,QAAS,SAAQE,UAAW,yDADhD,CAAN;IAGD;;IACDiB,MAAM,GAAG,MAAMpB,QAAQ,CAACkB,KAAT,CAAegB,OAAf,CAAuBC,WAAvB,CAAmCG,eAAnC,CAAmDP,YAAnD,CAAf;IACAR,aAAa,GAAI,GAAEpB,UAAW,IAAGW,MAAM,CAACF,IAAK,EAA7C;EACD,CAVM,MAUA;IACLS,SAAS,GAAG,MAAMrB,QAAQ,CAACkB,KAAT,CAAeC,QAAf,CAAwBL,MAAxB,CAAlB;IACA,IAAI,CAACO,SAAL,EAAgB,MAAM,KAAIR,oBAAJ,EAAc,wBAAuBZ,QAAS,2BAA9C,CAAN;IAChBmB,MAAM,GAAGC,SAAS,CAACkB,UAAV,CAAqBC,GAArB,CAA0BC,CAAD,IAAOA,CAAC,CAACZ,EAAF,CAAKa,aAAL,CAAmBD,CAAC,CAACE,IAAF,CAAOC,QAAP,EAAnB,CAAhC,CAAT;IACArB,aAAa,GAAGT,MAAM,CAACF,IAAvB;EACD;;EAED,MAAMiC,mBAAmB,GAAG,MAAMC,sBAAsB,EAAxD;;EAEA,IAAIrC,MAAJ,EAAY;IACVsC,WAAW,CAACF,mBAAD,EAAsB5C,QAAtB,EAAgCD,QAAhC,CAAX;EACD;;EAED,MAAMgD,YAAY,GAAG,MAAMjD,OAAO,CAACkD,UAAR,CAAmB;IAC5C/C,aAD4C;IAE5C2C,mBAF4C;IAG5C1C,UAH4C;IAI5CW,MAJ4C;IAK5CE,SAL4C;IAM5CZ,MAN4C;IAO5CC,WAP4C;IAQ5CE;EAR4C,CAAnB,CAA3B;EAWA,MAAM2C,kBAAkB,GACtB,CAACF,YAAY,CAACG,gBAAd,IACAH,YAAY,CAACG,gBAAb,CAA8Bd,MAA9B,KAAyC,CADzC,IAEAW,YAAY,CAACG,gBAAb,CAA8BC,KAA9B,CAAqCC,eAAD,IAAqBA,eAAe,CAACC,qBAAzE,CAHF;EAKA,IAAIC,aAAa,GAAG,EAApB;;EAEA,IAAI,CAAC/C,UAAD,IAAea,SAAf,IAA4BA,SAAS,CAACmC,eAAtC,IAAyDN,kBAA7D,EAAiF;IAAA;;IAC/E,MAAMlD,QAAQ,CAAC0B,MAAT,CAAgB+B,aAAhB,CAA8BzD,QAAQ,CAAC0B,MAAT,CAAgBgC,aAA9C,CAAN;IAEA,MAAMC,iBAAiB,GAAG,CACxBtC,SAAS,CAACmC,eAAV,CAA0B3B,EAA1B,CAA6Ba,aAA7B,0BAA2CrB,SAAS,CAACmC,eAArD,oFAA2C,sBAA2Bb,IAAtE,2DAA2C,uBAAiCiB,IAA5E,EAAkFhB,QAAlF,EADwB,CAA1B;IAIAW,aAAa,GAAG,MAAM,IAAAM,kBAAA,EAAO;MAC3BC,GAAG,EAAEH,iBADsB;MAE3BI,KAAK,EAAE,KAFoB;MAG3BC,MAAM,EAAE,KAHmB;MAI3BC,KAAK,EAAE,KAJoB;MAK3BC,WAAW,EAAE;IALc,CAAP,CAAtB;EAOD,CAdD,MAcO,IAAI7C,SAAS,IAAI,CAACA,SAAS,CAACmC,eAA5B,EAA6C;IAClDD,aAAa,GAAG;MAAEY,YAAY,EAAG,QAAO9C,SAAS,CAACT,IAAK;IAAvC,CAAhB;EACD;;EAED,OAAO;IAAEoC,YAAF;IAAgBO;EAAhB,CAAP;;EAEA,eAAeT,sBAAf,GAAoE;IAClE,MAAMsB,GAAG,GAAG,KAAIC,mBAAJ,EAAQrE,QAAQ,CAACkB,KAAjB,CAAZ;;IACA,IAAI;MACF,MAAMoD,gBAAgB,GAAG,MAAMC,OAAO,CAACC,GAAR,CAC7BpD,MAAM,CAACoB,GAAP,CAAYiC,KAAD,IAAW1E,OAAO,CAAC2E,uBAAR,CAAgCD,KAAhC,EAAuCzD,SAAvC,EAAkDO,aAAlD,EAAiEjB,uBAAjE,CAAtB,CAD6B,CAA/B;MAGA,MAAM8D,GAAG,CAACO,KAAJ,EAAN;MACA,OAAOL,gBAAP;IACD,CAND,CAME,OAAOM,GAAP,EAAiB;MACjB,MAAMR,GAAG,CAACO,KAAJ,EAAN;MACA,MAAMC,GAAN;IACD;EACF;AACF;;AAED,SAAS7B,WAAT,CAAqBF,mBAArB,EAA6D5C,QAA7D,EAA+ED,QAA/E,EAAmG;EACjG,MAAMmD,gBAAgB,GAAGN,mBAAmB,CAACjB,MAApB,CAA4Ba,CAAD,IAAOA,CAAC,CAACoC,cAAF,IAAoB,CAACpC,CAAC,CAACa,qBAAzD,CAAzB;;EACA,IAAIH,gBAAgB,CAACd,MAArB,EAA6B;IAC3B,MAAMyC,WAAW,GAAG3B,gBAAgB,CACjCX,GADiB,CAEfa,eAAD,IACG,GAAE0B,gBAAA,CAAMC,IAAN,CAAW3B,eAAe,CAACxB,EAAhB,CAAmBe,QAAnB,EAAX,CAA0C,MAAKmC,gBAAA,CAAME,GAAN,CAAU5B,eAAe,CAACwB,cAA1B,CAAoD,EAHxF,EAKjBK,IALiB,CAKZ,IALY,CAApB;IAMA,MAAM,KAAIrE,oBAAJ,EAAc,oDAAmDiE,WAAY,EAA7E,CAAN;EACD;;EACD,MAAMK,mBAAmB,GAAGtC,mBAAmB,CAACjB,MAApB,CAA4Ba,CAAD,IAAO,CAACA,CAAC,CAACoC,cAArC,CAA5B;EACAM,mBAAmB,CAACC,OAApB,CAA4B,CAAC;IAAEvD,EAAF;IAAMwD,WAAN;IAAmBC;EAAnB,CAAD,KAA6C;IACvE,IAAI,CAACD,WAAL,EAAkB;MAChB,MAAM,IAAIE,KAAJ,CAAW,iDAAgD1D,EAAE,CAACe,QAAH,EAAc,EAAzE,CAAN;IACD;;IACD,IAAIyC,WAAW,CAACG,UAAZ,EAAJ,EAA8B;MAC5B,MAAM,KAAI3E,oBAAJ,EAAc,4BAA2BgB,EAAE,CAACe,QAAH,EAAc;AACnE,wBAAwB3C,QAAS,2EAA0EA,QAAS,EADxG,CAAN;IAED;;IACD,IAAIoF,WAAW,CAACI,YAAZ,EAAJ,EAAgC;MAC9B;MACA;IACD;;IACD,IAAI,CAACJ,WAAW,CAACK,aAAZ,EAAL,EAAkC;MAChC;MACA;IACD,CAfsE,CAgBvE;;;IACA,MAAMC,WAAW,GAAGN,WAAW,CAACO,iBAAhC;;IACA,IAAID,WAAW,CAACtD,MAAZ,KAAuB,CAA3B,EAA8B;MAC5B,MAAM,IAAIkD,KAAJ,CAAW,sDAAX,CAAN;IACD;;IACD,IAAII,WAAW,CAACtD,MAAZ,KAAuB,CAA3B,EAA8B;MAC5B;MACA;IACD;;IACD,IAAI,CAACiD,kBAAL,EAAyB;MACvB,MAAM,IAAIC,KAAJ,CAAU,qDAAV,CAAN;IACD,CA3BsE,CA6BvE;;;IACA,IAAIF,WAAW,CAACQ,uBAAhB,EAAyC;MACvCP,kBAAkB,CAACQ,eAAnB,CAAmCT,WAAW,CAACQ,uBAA/C;IACD,CAFD,MAEO;MACL;MACAP,kBAAkB,CAACS,OAAnB,CAA2BX,OAA3B,CAAoCY,GAAD,IAASV,kBAAkB,CAACW,YAAnB,CAAgCD,GAAhC,CAA5C;IACD;;IACD,MAAME,aAAa,GAAGP,WAAW,CAAC/D,MAAZ,CAAoBuE,IAAD,IAAU,CAACA,IAAI,CAACC,OAAL,CAAad,kBAAkB,CAAC1B,IAAnB,EAAb,CAA9B,CAAtB;IACA0B,kBAAkB,CAACe,WAAnB,CAA+BH,aAA/B;IACAlG,QAAQ,CAACkB,KAAT,CAAegB,OAAf,CAAuBoE,GAAvB,CAA2BhB,kBAA3B;EACD,CAvCD;AAwCD"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/lanes",
3
- "version": "0.0.331",
3
+ "version": "0.0.332",
4
4
  "homepage": "https://bit.dev/teambit/lanes/lanes",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.lanes",
8
8
  "name": "lanes",
9
- "version": "0.0.331"
9
+ "version": "0.0.332"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -18,23 +18,23 @@
18
18
  "core-js": "^3.0.0",
19
19
  "@teambit/harmony": "0.3.3",
20
20
  "@teambit/bit-error": "0.0.394",
21
- "@teambit/cli": "0.0.501",
22
- "@teambit/merging": "0.0.74",
23
- "@teambit/scope": "0.0.759",
24
- "@teambit/workspace": "0.0.759",
25
- "@teambit/graphql": "0.0.759",
26
- "@teambit/community": "0.0.49",
27
- "@teambit/component": "0.0.759",
28
- "@teambit/lane-id": "0.0.20",
29
- "@teambit/lanes.modules.diff": "0.0.128",
21
+ "@teambit/cli": "0.0.502",
22
+ "@teambit/merging": "0.0.75",
23
+ "@teambit/scope": "0.0.760",
24
+ "@teambit/workspace": "0.0.760",
25
+ "@teambit/graphql": "0.0.760",
26
+ "@teambit/community": "0.0.50",
27
+ "@teambit/component": "0.0.760",
28
+ "@teambit/lane-id": "0.0.21",
29
+ "@teambit/lanes.modules.diff": "0.0.129",
30
30
  "@teambit/legacy-bit-id": "0.0.399",
31
- "@teambit/logger": "0.0.594",
31
+ "@teambit/logger": "0.0.595",
32
32
  "@teambit/design.ui.pages.not-found": "0.0.355",
33
- "@teambit/lanes.ui.lanes": "0.0.68",
34
- "@teambit/sidebar": "0.0.759",
33
+ "@teambit/lanes.ui.lanes": "0.0.69",
34
+ "@teambit/sidebar": "0.0.760",
35
35
  "@teambit/ui-foundation.ui.menu": "0.0.487",
36
36
  "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.490",
37
- "@teambit/ui": "0.0.759"
37
+ "@teambit/ui": "0.0.760"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/react": "^17.0.8",
@@ -50,7 +50,7 @@
50
50
  },
51
51
  "peerDependencies": {
52
52
  "react-router-dom": "^6.0.0",
53
- "@teambit/legacy": "1.0.281",
53
+ "@teambit/legacy": "1.0.282",
54
54
  "react-dom": "^16.8.0 || ^17.0.0",
55
55
  "react": "^16.8.0 || ^17.0.0"
56
56
  },
@@ -78,7 +78,7 @@
78
78
  "react": "-"
79
79
  },
80
80
  "peerDependencies": {
81
- "@teambit/legacy": "1.0.281",
81
+ "@teambit/legacy": "1.0.282",
82
82
  "react-dom": "^16.8.0 || ^17.0.0",
83
83
  "react": "^16.8.0 || ^17.0.0"
84
84
  }
@@ -1,2 +1,2 @@
1
- export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.331/dist/lanes.composition.js')]
2
- export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.331/dist/lanes.docs.mdx')]
1
+ export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.332/dist/lanes.composition.js')]
2
+ export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.332/dist/lanes.docs.mdx')]